diff --git a/packages/reffuse/src/Reffuse.ts b/packages/reffuse/src/Reffuse.ts index 1c65dbe..ccfcfe1 100644 --- a/packages/reffuse/src/Reffuse.ts +++ b/packages/reffuse/src/Reffuse.ts @@ -7,11 +7,6 @@ import type { Merge, StaticType } from "./types.js" export class Reffuse extends ReffuseHelpers.make() {} -export const make = < - Class extends ReffuseHelpers.ReffuseHelpersClass ->(class_: Class): InstanceType => - new class_() as any - export const withContexts = >( ...contexts: [...{ [K in keyof R2]: ReffuseContext.ReffuseContext }] ) => ( diff --git a/packages/reffuse/src/ReffuseHelpers.ts b/packages/reffuse/src/ReffuseHelpers.ts index 81dae91..5553a37 100644 --- a/packages/reffuse/src/ReffuseHelpers.ts +++ b/packages/reffuse/src/ReffuseHelpers.ts @@ -428,20 +428,26 @@ export interface ReffuseHelpers extends Pipeable.Pipeable {} ReffuseHelpers.prototype.pipe = function pipe() { return Pipeable.pipeArguments(this, arguments) -} +}; export interface ReffuseHelpersClass extends Pipeable.Pipeable { new(): ReffuseHelpers + make(this: new () => Self): Self readonly contexts: readonly ReffuseContext.ReffuseContext[] } +(ReffuseHelpers as ReffuseHelpersClass).make = function make() { + return new this() +}; + (ReffuseHelpers as ReffuseHelpersClass).pipe = function pipe() { return Pipeable.pipeArguments(this, arguments) -} +}; -export const make = (): ReffuseHelpersClass => +export const make = (): ReffuseHelpersClass => ( class extends (ReffuseHelpers as ReffuseHelpersClass) { static readonly contexts = [] } +)