diff --git a/src/Schema/MobX/ObservableClass.ts b/src/Schema/MobX/ObservableClass.ts index e723f12..61243c7 100644 --- a/src/Schema/MobX/ObservableClass.ts +++ b/src/Schema/MobX/ObservableClass.ts @@ -8,24 +8,19 @@ interface ObservableClassSelf { readonly fields: { readonly [K in keyof Schema.Struct.Fields]: Schema.Struct.Fields[K] } } -export const ObservableClass = ( - self: Self, - options?: Omit, -) => - class Observable extends self { - declare ["constructor"]: typeof Observable +interface ObservableClassOptions extends Omit {} - constructor(...args: any[]) { - super(...args) +export const ObservableClass = (options?: ObservableClassOptions) => + (self: Self) => + class Observable extends self { + declare ["constructor"]: typeof Observable - makeObservable(this, - mapValues(this.constructor.fields, () => observable), - options, - ) - } - } as Self + constructor(...args: any[]) { + super(...args) -export const ObservableClassDual: { - (options?: Omit): (self: Self) => Self - (self: Self, options?: Omit): Self -} = () => {} + makeObservable(this, + mapValues(this.constructor.fields, () => observable), + options, + ) + } + } as Self diff --git a/src/tests.ts b/src/tests.ts index f1adbc7..e23104f 100644 --- a/src/tests.ts +++ b/src/tests.ts @@ -22,7 +22,7 @@ class User extends MutableTaggedClass()("User", { id: S.BigIntFromSelf, role: S.Union(S.Literal("BasicUser"), S.Literal("Admin")), }).pipe( - ObservableClass + ObservableClass() ) {} const JsonifiableUser = User.pipe(