@simplestack/store 0.3.0 → 0.5.0
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.
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/dist/react.d.ts +2 -0
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +2 -2
- package/dist/react.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
export type StateObject = Record<string | number | symbol, any>;
|
|
2
2
|
export type StatePrimitive = string | number | boolean | null | undefined;
|
|
3
3
|
export type Setter<T extends StateObject | StatePrimitive> = T | ((state: T) => T);
|
|
4
|
+
export type SelectValue<S, K extends keyof S> = S extends readonly (infer U)[] ? U | undefined : string extends keyof S ? S[K] | undefined : number extends keyof S ? S[K] | undefined : S[K];
|
|
5
|
+
export type SelectFn<T extends StateObject | StatePrimitive> = T extends StateObject ? <K extends keyof T>(key: K) => Store<SelectValue<T, K>> : undefined;
|
|
4
6
|
export type Store<T extends StateObject | StatePrimitive> = {
|
|
5
7
|
get: () => T;
|
|
6
8
|
set: (setter: Setter<T>) => void;
|
|
7
9
|
listen: (callback: (state: T) => void) => () => void;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
} : {});
|
|
10
|
+
select: SelectFn<T>;
|
|
11
|
+
};
|
|
11
12
|
export declare function store(initial: number): Store<number>;
|
|
12
13
|
export declare function store(initial: string): Store<string>;
|
|
13
14
|
export declare function store(initial: boolean): Store<boolean>;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;AAChE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAE1E,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;AAChE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAE1E,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAInF,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAExC,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,GAE5C,MAAM,SAAS,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GACzC,MAAM,SAAS,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GACzC,CAAC,CAAC,CAAC,CAAC,CAAC;AAGX,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,IACvD,CAAC,SAAS,WAAW,GACnB,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GACvD,SAAS,CAAC;AAEhB,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,IAAI;IACxD,GAAG,EAAE,MAAM,CAAC,CAAC;IACb,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACjC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;IACrD,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;CACvB,CAAC;AAGF,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AACtD,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AACtD,wBAAgB,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AACxD,wBAAgB,KAAK,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAyFpF,wBAAgB,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,MAAM,IAAI,CAAC,cAmBjE"}
|
package/dist/index.js
CHANGED
|
@@ -35,7 +35,19 @@ const createStoreApi = (get, set) => {
|
|
|
35
35
|
return createStoreApi(getSelected, setSelected);
|
|
36
36
|
}
|
|
37
37
|
;
|
|
38
|
-
|
|
38
|
+
if (isStateObject(get())) {
|
|
39
|
+
Object.assign(api, { select });
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
// Hide select method to prevent accidental usage on primitive stores
|
|
43
|
+
// but still log useful error messages
|
|
44
|
+
Object.defineProperty(api, 'select', {
|
|
45
|
+
value: select,
|
|
46
|
+
enumerable: false,
|
|
47
|
+
writable: false,
|
|
48
|
+
configurable: false
|
|
49
|
+
});
|
|
50
|
+
}
|
|
39
51
|
return api;
|
|
40
52
|
};
|
|
41
53
|
function getUnexpectedSelectError(objType) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/react.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { StateObject, StatePrimitive, Store } from "./index.js";
|
|
2
2
|
export declare function useStoreValue<T extends StateObject | StatePrimitive>(store: Store<T>): T;
|
|
3
|
+
export declare function useStoreValue<T extends StateObject | StatePrimitive>(store: Store<T> | undefined): T | undefined;
|
|
4
|
+
export declare function useStoreValue<T extends StateObject | StatePrimitive>(store: undefined): undefined;
|
|
3
5
|
//# sourceMappingURL=react.d.ts.map
|
package/dist/react.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAErE,wBAAgB,aAAa,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAErE,wBAAgB,aAAa,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1F,wBAAgB,aAAa,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,CAAC;AAClH,wBAAgB,aAAa,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC"}
|
package/dist/react.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { useState, useEffect } from "react";
|
|
2
2
|
export function useStoreValue(store) {
|
|
3
|
-
const [state, setState] = useState(store
|
|
3
|
+
const [state, setState] = useState(store?.get());
|
|
4
4
|
useEffect(() => {
|
|
5
|
-
return store
|
|
5
|
+
return store?.listen(setState);
|
|
6
6
|
}, [store]);
|
|
7
7
|
return state;
|
|
8
8
|
}
|
package/dist/react.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAM5C,MAAM,UAAU,aAAa,CAAyC,KAA2B;IAC7F,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAChE,SAAS,CAAC,GAAG,EAAE;QACX,OAAO,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACZ,OAAO,KAAK,CAAC;AACjB,CAAC"}
|