nexa-state 0.5.2 → 0.6.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.
@@ -1 +1 @@
1
- {"version":3,"file":"persist.d.ts","sourceRoot":"","sources":["../src/persist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAE7D,KAAK,WAAW,GAAG;IACjB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IACnC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACzC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B,CAAA;AAED,wBAAgB,OAAO,CAAC,CAAC,EACvB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,CAAC,EACV,OAAO,GAAE,WAA0B,GAClC,MAAM,CAAC,CAAC,CAAC,CAeX"}
1
+ {"version":3,"file":"persist.d.ts","sourceRoot":"","sources":["../src/persist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAE7D,KAAK,WAAW,GAAG;IACjB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IACnC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACzC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B,CAAA;AAED,wBAAgB,OAAO,CAAC,CAAC,EACvB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,CAAC,EACV,OAAO,GAAE,WAA0B,GAClC,MAAM,CAAC,CAAC,CAAC,CAwBX"}
package/dist/persist.js CHANGED
@@ -1,9 +1,17 @@
1
1
  import { signal, effect } from 'nexa-reactivity';
2
2
  export function persist(key, initial, storage = localStorage) {
3
+ let initialValue = initial;
3
4
  const stored = storage.getItem(key);
4
- const initialValue = stored !== null ? JSON.parse(stored) : initial;
5
+ if (stored !== null) {
6
+ try {
7
+ initialValue = JSON.parse(stored);
8
+ }
9
+ catch {
10
+ storage.removeItem(key);
11
+ }
12
+ }
5
13
  const s = signal(initialValue);
6
- effect(() => {
14
+ const e = effect(() => {
7
15
  const val = s.value;
8
16
  if (val === null || val === undefined) {
9
17
  storage.removeItem(key);
@@ -12,6 +20,7 @@ export function persist(key, initial, storage = localStorage) {
12
20
  storage.setItem(key, JSON.stringify(val));
13
21
  }
14
22
  });
23
+ s.dispose = () => e.dispose();
15
24
  return s;
16
25
  }
17
26
  //# sourceMappingURL=persist.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"persist.js","sourceRoot":"","sources":["../src/persist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAe,MAAM,iBAAiB,CAAA;AAQ7D,MAAM,UAAU,OAAO,CACrB,GAAW,EACX,OAAU,EACV,UAAuB,YAAY;IAEnC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACnC,MAAM,YAAY,GAAM,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IACtE,MAAM,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;IAE9B,MAAM,CAAC,GAAG,EAAE;QACV,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAA;QACnB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACzB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,CAAA;AACV,CAAC"}
1
+ {"version":3,"file":"persist.js","sourceRoot":"","sources":["../src/persist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAe,MAAM,iBAAiB,CAAA;AAQ7D,MAAM,UAAU,OAAO,CACrB,GAAW,EACX,OAAU,EACV,UAAuB,YAAY;IAEnC,IAAI,YAAY,GAAM,OAAO,CAAA;IAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACnC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACzB,CAAC;IACH,CAAC;IACD,MAAM,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;IAE9B,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE;QACpB,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAA;QACnB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACzB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC,CAAC,CAED;IAAC,CAAS,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;IAEvC,OAAO,CAAC,CAAA;AACV,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nexa-state",
3
- "version": "0.5.2",
3
+ "version": "0.6.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -20,7 +20,7 @@
20
20
  "access": "public"
21
21
  },
22
22
  "peerDependencies": {
23
- "nexa-reactivity": "0.5.2"
23
+ "nexa-reactivity": "0.6.0"
24
24
  },
25
25
  "scripts": {
26
26
  "build": "tsc",
package/dist/index.d.ts DELETED
@@ -1,9 +0,0 @@
1
- import { type Signal } from 'nexa-reactivity';
2
- export declare function createStore<T extends Record<string, any>>(initial: T): {
3
- state: {
4
- [K in keyof T]: Signal<T[K]>;
5
- };
6
- };
7
- export { persist } from './persist';
8
- export declare function defineStore<T extends Record<string, any>>(_name: string, factory: () => T): () => T;
9
- //# sourceMappingURL=index.d.ts.map
package/dist/persist.d.ts DELETED
@@ -1,9 +0,0 @@
1
- import { type Signal } from 'nexa-reactivity';
2
- type StorageLike = {
3
- getItem(key: string): string | null;
4
- setItem(key: string, value: string): void;
5
- removeItem(key: string): void;
6
- };
7
- export declare function persist<T>(key: string, initial: T, storage?: StorageLike): Signal<T>;
8
- export {};
9
- //# sourceMappingURL=persist.d.ts.map