diff --git a/packages/reffuse/src/Reffuse.ts b/packages/reffuse/src/Reffuse.ts index 87d13e4..1c65dbe 100644 --- a/packages/reffuse/src/Reffuse.ts +++ b/packages/reffuse/src/Reffuse.ts @@ -7,9 +7,14 @@ 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 }] -) => +) => ( < BaseClass extends ReffuseHelpers.ReffuseHelpersClass, R1 @@ -29,9 +34,9 @@ export const withContexts = >( ) => class extends self { static readonly contexts = [...self.contexts, ...contexts] } as any +) - -export const withExtension = (extension: ReffuseExtension.ReffuseExtension) => +export const withExtension = (extension: ReffuseExtension.ReffuseExtension) => ( < BaseClass extends ReffuseHelpers.ReffuseHelpersClass, R @@ -45,3 +50,4 @@ export const withExtension = (extension: ReffuseExtension.Reff Object.assign(class_.prototype, extension()) return class_ as any } +)