nexa-state 0.1.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 +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/persist.d.ts +9 -0
- package/dist/persist.d.ts.map +1 -0
- package/dist/persist.js +17 -0
- package/dist/persist.js.map +1 -0
- package/package.json +28 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAErD,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG;IAAE,KAAK,EAAE;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,CAAA;CAAE,CAMlH;AAED,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAQnG"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { signal } from 'nexa-reactivity';
|
|
2
|
+
export function createStore(initial) {
|
|
3
|
+
const state = {};
|
|
4
|
+
for (const key of Object.keys(initial)) {
|
|
5
|
+
state[key] = signal(initial[key]);
|
|
6
|
+
}
|
|
7
|
+
return { state };
|
|
8
|
+
}
|
|
9
|
+
export { persist } from './persist';
|
|
10
|
+
export function defineStore(_name, factory) {
|
|
11
|
+
let instance = null;
|
|
12
|
+
return () => {
|
|
13
|
+
if (!instance) {
|
|
14
|
+
instance = factory();
|
|
15
|
+
}
|
|
16
|
+
return instance;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAe,MAAM,iBAAiB,CAAA;AAErD,MAAM,UAAU,WAAW,CAAgC,OAAU;IACnE,MAAM,KAAK,GAAG,EAAsC,CAAA;IACpD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,KAAK,CAAC,GAAc,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;IAC9C,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,CAAA;AAClB,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,MAAM,UAAU,WAAW,CAAgC,KAAa,EAAE,OAAgB;IACxF,IAAI,QAAQ,GAAa,IAAI,CAAA;IAC7B,OAAO,GAAG,EAAE;QACV,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,OAAO,EAAE,CAAA;QACtB,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
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
|
|
@@ -0,0 +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"}
|
package/dist/persist.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { signal, effect } from 'nexa-reactivity';
|
|
2
|
+
export function persist(key, initial, storage = localStorage) {
|
|
3
|
+
const stored = storage.getItem(key);
|
|
4
|
+
const initialValue = stored !== null ? JSON.parse(stored) : initial;
|
|
5
|
+
const s = signal(initialValue);
|
|
6
|
+
effect(() => {
|
|
7
|
+
const val = s.value;
|
|
8
|
+
if (val === null || val === undefined) {
|
|
9
|
+
storage.removeItem(key);
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
storage.setItem(key, JSON.stringify(val));
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
return s;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=persist.js.map
|
|
@@ -0,0 +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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "nexa-state",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"module": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js",
|
|
12
|
+
"default": "./dist/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"nexa-reactivity": "0.1.0"
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist"
|
|
20
|
+
],
|
|
21
|
+
"publishConfig": {
|
|
22
|
+
"access": "public"
|
|
23
|
+
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "tsc",
|
|
26
|
+
"clean": "rm -rf dist"
|
|
27
|
+
}
|
|
28
|
+
}
|