r-state-tree 0.4.4 → 0.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,17 +1,17 @@
1
- import { Props, StoreConfiguration } from "../types";
1
+ import { Props, StoreProps, StoreConfiguration } from "../types";
2
2
  export declare function allowNewStore<T>(fn: () => T): T;
3
- type CreateStoreProps<T extends Props> = {
3
+ type CreateStoreProps<T extends Record<string, any>> = {
4
4
  [K in keyof T as undefined extends T[K] ? K : never]?: T[K] extends infer U ? U extends undefined ? never : undefined extends U ? U | undefined : U : never;
5
5
  } & {
6
6
  [K in keyof T as undefined extends T[K] ? never : K]?: T[K];
7
- } & Pick<Props, 'key'>;
8
- export declare function createStore<K extends Store<T>, T extends Props>(Type: new (props: T) => K, props?: CreateStoreProps<T>): K;
9
- export declare function updateStore<K extends Store<T>, T extends Props>(store: K, props: CreateStoreProps<T>): K;
7
+ } & Pick<Props, "key" | "models"> & Partial<Record<string, unknown>>;
8
+ export declare function createStore<K extends Store<any>, T extends Record<string, any> = K extends Store<infer P> ? P : never>(Type: new (props: StoreProps<T>) => K, props?: CreateStoreProps<T>): K;
9
+ export declare function updateStore<K extends Store<T>, T extends Record<string, any>>(store: K, props: CreateStoreProps<T>): K;
10
10
  export declare function types<T extends Store>(config: Partial<StoreConfiguration<T>>): Partial<StoreConfiguration<T>>;
11
- export default class Store<PropsType extends Props = Props> {
11
+ export default class Store<PropsType extends Record<string, any> = StoreProps<Props>> {
12
12
  static get types(): StoreConfiguration<unknown>;
13
- props: PropsType;
14
- constructor(props: PropsType);
13
+ props: StoreProps<PropsType>;
14
+ constructor(props: StoreProps<PropsType>);
15
15
  get key(): string | number | undefined;
16
16
  reaction<T>(track: () => T, callback: (a: T) => void): () => void;
17
17
  storeDidMount(): void;
package/dist/types.d.ts CHANGED
@@ -17,6 +17,13 @@ export type Props = {
17
17
  [key: string]: Model | Model[] | null;
18
18
  };
19
19
  };
20
+ export type StoreProps<T extends Record<string, any> = Record<string, any>> = T & {
21
+ [key: string]: unknown;
22
+ key?: Key;
23
+ models?: {
24
+ [key: string]: Model | Model[] | null;
25
+ };
26
+ };
20
27
  export type StoreCtor<S extends Store = Store> = (new (...args: ConstructorParameters<typeof Store>) => S) & {
21
28
  [P in keyof Store]: Store[P];
22
29
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "r-state-tree",
3
- "version": "0.4.4",
3
+ "version": "0.4.6",
4
4
  "description": "reactive state management library",
5
5
  "main": "dist/r-state-tree.cjs",
6
6
  "module": "dist/r-state-tree.js",