mobx-simple-store
Advanced tools
Comparing version 1.4.1 to 1.4.2
@@ -20,5 +20,7 @@ declare function constant<T>(): T; | ||
createProxiedModelArray(initialData: any[], currentPath: string): any[]; | ||
parseReadablesToModels(readables: any[], currentPath: string): ({ | ||
parseReadablesToModels(readables: any[], currentPath: string): (({ | ||
[x: string]: any; | ||
} | undefined)[]; | ||
} & { | ||
[x: string]: unknown; | ||
}) | undefined)[]; | ||
static isArray(value: any): boolean; | ||
@@ -42,2 +44,10 @@ static setObservable({ observableData, name, instance, initialValue, isNullable, currentPath, }: SetObservableParams<MSSArray<any>>): void; | ||
type NotNullableKeys<T> = { | ||
[K in keyof T]: T[K] extends MSSModel<any, any, any> ? K : T[K] extends MSSArray<any> ? K : T[K] extends MSSMaybeNull<any> ? never : K; | ||
}[keyof T]; | ||
type NullableKeys<T> = { | ||
[K in keyof T]: T[K] extends MSSModel<any, any, any> ? never : T[K] extends MSSArray<any> ? never : T[K] extends MSSMaybeNull<any> ? K : never; | ||
}[keyof T]; | ||
type Or<P, T> = P extends undefined ? T : P; | ||
@@ -56,3 +66,5 @@ | ||
type ToModel<T> = { | ||
[P in keyof T]: T[P] extends MSSModel<infer O, infer V, infer A> ? ToModel<O & V & ParseActions<A>> : T[P] extends MSSArray<infer C> ? C extends MSSModel<infer O, infer V, infer A> ? ObservableArray<ToModel<O & V & ParseActions<A>>, ToModel<O>> : ObservableArray<C> : T[P] extends MSSMaybeNull<infer C> ? C extends MSSModel<infer O, infer V, infer A> ? Nullable<ToModel<O & V & ParseActions<A>>> : C extends MSSArray<infer D> ? D extends MSSModel<infer O, infer V, infer A> ? Nullable<ObservableArray<ToModel<O & V & ParseActions<A>>, ToModel<O>>> : Nullable<ObservableArray<D>> : Nullable<C> : T[P]; | ||
[P in NotNullableKeys<T>]: T[P] extends MSSModel<infer O, infer OV, infer OA> ? ToModel<O & OV & ParseActions<OA>> : T[P] extends MSSArray<infer C> ? C extends MSSModel<infer O, infer OV, infer OA> ? ObservableArray<ToModel<O & OV & ParseActions<OA>>, ToModel<O>> : C extends MSSMaybeNull<infer D> ? D extends MSSModel<infer E, infer EV, infer EA> ? ObservableArray<Nullable<ObservableArray<ToModel<E & EV & ParseActions<EA>>, ToModel<E>>>> : ObservableArray<Nullable<D>> : ObservableArray<C> : T[P]; | ||
} & { | ||
[P in NullableKeys<T>]?: T[P] extends MSSMaybeNull<infer C> ? C extends MSSModel<infer O, infer V, infer A> ? Nullable<ToModel<O & V & ParseActions<A>>> : C extends MSSArray<infer D> ? D extends MSSModel<infer O, infer OV, infer OA> ? Nullable<ObservableArray<ToModel<O & OV & ParseActions<OA>>, ToModel<O>>> : D extends MSSMaybeNull<infer E> ? E extends MSSModel<infer F, infer FV, infer FA> ? Nullable<Nullable<ObservableArray<ToModel<F & FV & ParseActions<FA>>, ToModel<F>>>> : Nullable<ObservableArray<Nullable<E>>> : Nullable<ObservableArray<D>> : Nullable<C> : never; | ||
}; | ||
@@ -62,3 +74,5 @@ type ParseModel<T> = T extends MSSModel<infer O, infer V, infer A> ? ToModel<O & V & ParseActions<A>> : never; | ||
type ToJSON<T> = { | ||
[K in keyof T]: T[K] extends MSSModel<infer O, any, any> ? ToJSON<O> : T[K] extends MSSArray<infer C> ? C extends MSSModel<infer O, any, any> ? ToJSON<O>[] : C[] : T[K] extends MSSMaybeNull<infer C> ? C extends MSSModel<infer O, any, any> ? Nullable<ToJSON<O>> : C extends MSSArray<infer D> ? D extends MSSModel<infer O, any, any> ? Nullable<ToJSON<O>[]> : Nullable<D[]> : Nullable<C> : T[K]; | ||
[K in NotNullableKeys<T>]: T[K] extends MSSModel<infer O, any, any> ? ToJSON<O> : T[K] extends MSSArray<infer C> ? C extends MSSModel<infer O, any, any> ? ToJSON<O>[] : C extends MSSMaybeNull<infer D> ? D extends MSSModel<infer E, any, any> ? Nullable<ToJSON<E>>[] : Nullable<D>[] : C[] : T[K]; | ||
} & { | ||
[K in NullableKeys<T>]?: T[K] extends MSSMaybeNull<infer C> ? C extends MSSModel<infer O, any, any> ? Nullable<ToJSON<O>> : C extends MSSArray<infer D> ? D extends MSSModel<infer O, any, any> ? Nullable<ToJSON<O>[]> : D extends MSSMaybeNull<infer E> ? E extends MSSModel<infer F, any, any> ? Nullable<Nullable<ToJSON<F>>[]> : Nullable<Nullable<E>[]> : Nullable<D[]> : Nullable<C> : never; | ||
}; | ||
@@ -65,0 +79,0 @@ type ParseJSON<T> = T extends MSSModel<infer O, any, any> ? ToJSON<O> : never; |
{ | ||
"name": "mobx-simple-store", | ||
"version": "1.4.1", | ||
"version": "1.4.2", | ||
"description": "Mobx Simple Store (also MSS) is a wrapper around Mobx that helps the user create a reactive state tree store with an opinionated structure and setters that can read JSON objects.", | ||
@@ -5,0 +5,0 @@ "author": "irwinarruda", |
26881
174