@simplestack/store 0.4.0 → 0.5.1

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 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
- } & (T extends StateObject ? {
9
- select: <K extends keyof T>(key: K) => Store<T[K]>;
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>;
@@ -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;AAEnF,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;CACxD,GAAG,CAAC,CAAC,SAAS,WAAW,GAAG;IACzB,MAAM,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACtD,GAAG,EAAE,CAAC,CAAC;AAGR,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;AA6EpF,wBAAgB,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,MAAM,IAAI,CAAC,cAmBjE"}
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;AA4EpF,wBAAgB,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,MAAM,IAAI,CAAC,cAmBjE"}
package/dist/index.js CHANGED
@@ -11,42 +11,39 @@ const createStoreApi = (get, set) => {
11
11
  callback(get());
12
12
  });
13
13
  };
14
- const api = { get, set, listen };
14
+ if (isStatePrimitive(get())) {
15
+ return { get, set, listen, select: undefined };
16
+ }
15
17
  function select(key) {
16
18
  const getSelected = () => {
17
19
  const state = get();
18
- if (!isStateObject(state)) {
19
- throw new Error(getUnexpectedSelectError(typeof state));
20
+ if (isStatePrimitive(state)) {
21
+ throw new Error(UNEXPECTED_SELECT_ERROR);
20
22
  }
21
23
  return state[key];
22
24
  };
23
25
  const setSelected = (setter) => {
24
26
  set((state) => {
25
- if (!isStateObject(state)) {
26
- throw new Error(getUnexpectedSelectError(typeof state));
27
+ if (isStatePrimitive(state)) {
28
+ throw new Error(UNEXPECTED_SELECT_ERROR);
27
29
  }
28
- const prev = state[key];
29
- const next = typeof setter === "function" ? setter(prev) : setter;
30
+ const stateObj = state;
31
+ const prev = stateObj[key];
32
+ const next = typeof setter === "function"
33
+ ? setter(prev)
34
+ : setter;
30
35
  if (Object.is(prev, next))
31
36
  return state;
32
- return { ...state, [key]: next };
37
+ return { ...stateObj, [key]: next };
33
38
  });
34
39
  };
35
40
  return createStoreApi(getSelected, setSelected);
36
41
  }
37
- ;
38
- Object.assign(api, { select });
39
- return api;
42
+ return { get, set, listen, select: select };
40
43
  };
41
- function getUnexpectedSelectError(objType) {
42
- let error = `\`.select()\` was unexpectedly called on a state value that wasn't an object. Received type: ${objType}.`;
43
- if (objType === 'undefined') {
44
- error += ` It's possible you tried to select a nested value on an object key or an array index. If so, try checking if the key is defined before calling \`.select()\`.`;
45
- }
46
- return error;
47
- }
48
- function isStateObject(state) {
49
- return typeof state === "object" && state !== null;
44
+ const UNEXPECTED_SELECT_ERROR = "Internal: select() was unexpectedly called on a state value that wasn't an object.";
45
+ function isStatePrimitive(state) {
46
+ return typeof state === "string" || typeof state === "number" || typeof state === "boolean" || state === null || state === undefined;
50
47
  }
51
48
  let needsEnqueue = true;
52
49
  const w = new Signal.subtle.Watcher(() => {
@@ -79,4 +76,8 @@ export function effect(callback) {
79
76
  cleanup = undefined;
80
77
  };
81
78
  }
79
+ const noteStore = store({
80
+ notes: [],
81
+ });
82
+ const firstNoteTitle = noteStore.select("notes").select(0).select?.('title');
82
83
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
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
- import type { Setter, StateObject, StatePrimitive, Store } from "./index.js";
2
- export declare function useStore<T extends StateObject | StatePrimitive>(store: Store<T>): [T, (setter: Setter<T>) => void];
1
+ import type { StateObject, StatePrimitive, Store } from "./index.js";
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
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAE7E,wBAAgB,QAAQ,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAMlH"}
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,9 +1,9 @@
1
1
  import { useState, useEffect } from "react";
2
- export function useStore(store) {
3
- const [state, setState] = useState(store.get());
2
+ export function useStoreValue(store) {
3
+ const [state, setState] = useState(store?.get());
4
4
  useEffect(() => {
5
- return store.listen(setState);
5
+ return store?.listen(setState);
6
6
  }, [store]);
7
- return [state, store.set];
7
+ return state;
8
8
  }
9
9
  //# sourceMappingURL=react.js.map
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;AAG5C,MAAM,UAAU,QAAQ,CAAyC,KAAe;IAC5E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;IAChD,SAAS,CAAC,GAAG,EAAE;QACX,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACZ,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAC9B,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simplestack/store",
3
- "version": "0.4.0",
3
+ "version": "0.5.1",
4
4
  "description": "A simple storage solution for React",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",