ustor 0.0.7 → 0.0.9

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/README.md CHANGED
@@ -23,7 +23,7 @@ This library provides a powerful reactivity system for creating stateful objects
23
23
  - [Deeply Nested Structures](#deeply-nested-structures)
24
24
  - [Arrays and Objects](#arrays-and-objects)
25
25
  - [Reactivity and Effects](#reactivity-and-effects)
26
- - [Integration with Solid.js, Preact Signals, and React or anything](#integration-with-solidjs-preact-signals-and-react)
26
+ - [Integration with Solid.js, Preact Signals or any](#integration-with-solidjs-preact-signals-or-any)
27
27
 
28
28
  ## Installation
29
29
 
@@ -34,7 +34,7 @@ npm install ustor
34
34
  yarn add ustor
35
35
  ```
36
36
 
37
- This library can be integrated `solid-js`, `@preact/signals-core`, `ulive`, `usignal`, `oby`, `sinuous`, `react` for managing reactive signals or any other libarary you can think of.
37
+ This library can be integrated with `solid-js`, `@preact/signals-core`, `ulive`, `usignal`, `oby`, `sinuous` any other libarary you can think of for managing reactive signals.
38
38
 
39
39
  ## Setup
40
40
 
@@ -42,8 +42,8 @@ First, import the `store` function and the `api` object. You need to initialize
42
42
 
43
43
  ```javascript
44
44
  import { store, api } from "./src";
45
- // import { signal } from '@preact/signals-core'; // 'usignal' 'ulive'
46
45
  import { createSignal } from "solid-js";
46
+ // import { signal } from '@preact/signals-core'; // 'usignal' 'ulive'
47
47
 
48
48
  // Solid.js setup
49
49
  api.signal = createSignal;
@@ -188,9 +188,9 @@ s.a = 4;
188
188
  console.log(effectValue); // 8
189
189
  ```
190
190
 
191
- ## Integration with Solid.js, Preact Signals, and React
191
+ ## Integration with Solid.js, Preact Signals or any
192
192
 
193
- This library can be used with Solid.js, Preact Signals, React, or any other UI framework to provide reactive signals.
193
+ This library can be used with Solid.js, Preact Signals, or any other UI framework to provide reactive signals.
194
194
 
195
195
  To use Solid.js:
196
196
 
@@ -218,27 +218,6 @@ api.set = (signal, v) => (signal.value = v);
218
218
  api.is = (v) => v?.peek;
219
219
  ```
220
220
 
221
- To use React:
222
-
223
- ```javascript
224
- import { useState, useMemo } from "react";
225
-
226
- api.signal = useState;
227
- api.get = (signal) => signal?.[0]();
228
- api.set = (signal, value) => signal?.[1](value);
229
- api.is = (v) => Array.isArray(v) && typeof v[1] === "function";
230
-
231
- const state = store({
232
- count: 0,
233
- get double() {
234
- //useMemo
235
- return useMemo(() => {
236
- return this.count * this.count;
237
- }, [this.count]);
238
- },
239
- });
240
- ```
241
-
242
221
  To use any signal library
243
222
 
244
223
  ```javascript
@@ -254,7 +233,7 @@ const state = store({
254
233
  });
255
234
  ```
256
235
 
257
- The library provides a unified API to work with different reactive systems, allowing you to switch between Solid.js, Preact Signals, React, or any other UI framework easily.
236
+ The library provides a unified API to work with different reactive systems, allowing you to switch between Solid.js, Preact Signals, or any other UI framework easily.
258
237
 
259
238
  ### License
260
239
 
@@ -262,4 +241,4 @@ This library is provided "as-is" under the MIT license. Feel free to use, modify
262
241
 
263
242
  ### Thanks and Inspiration
264
243
 
265
- - **[dy](https://github.com/dy)**
244
+ - **[dy](https://github.com/dy)**
package/dist/index.es.js CHANGED
@@ -2,11 +2,7 @@ let api = {},
2
2
  _s = Symbol("s"),
3
3
  is = (v) => v[_s],
4
4
  isObject = (v) => v && v.constructor === Object,
5
- resolve = (v) => Array.isArray(v)
6
- ? store(v)
7
- : isObject(v)
8
- ? Object.seal(store(v))
9
- : v,
5
+ resolve = (v) => Array.isArray(v) ? store(v) : isObject(v) ? Object.seal(store(v)) : v,
10
6
  store = (values, proto) => {
11
7
  if ((is(values) && !proto) || !(api.signal && api.get && api.set && api.is)) return values;
12
8
  if (Array.isArray(values)) values.forEach((item, i) => values[i] = is(item) ? item : store(item));
@@ -15,7 +11,7 @@ let api = {},
15
11
  Object.entries(Object.getOwnPropertyDescriptors(values)).forEach(
16
12
  ([key, desc]) => {
17
13
  let signal = api.is(desc.value) ? desc.value : api.signal(resolve(desc.value)),
18
- memo = desc.get ? api.memo ? api.memo(desc.get.bind(state)) : desc.get.bind(state)?.() : signal;
14
+ memo = desc.get ? (api.memo ? api.memo(desc.get.bind(state)) : desc.get.bind(state)()) : signal;
19
15
  Object.defineProperty(state, key, {
20
16
  get: () => desc.get ? memo : api.get(memo),
21
17
  set: desc.get ? desc.set?.bind(state) : v => api.set(signal, resolve(v)),
package/dist/index.js CHANGED
@@ -4,11 +4,7 @@ let api = {},
4
4
  _s = Symbol("s"),
5
5
  is = (v) => v[_s],
6
6
  isObject = (v) => v && v.constructor === Object,
7
- resolve = (v) => Array.isArray(v)
8
- ? store(v)
9
- : isObject(v)
10
- ? Object.seal(store(v))
11
- : v,
7
+ resolve = (v) => Array.isArray(v) ? store(v) : isObject(v) ? Object.seal(store(v)) : v,
12
8
  store = (values, proto) => {
13
9
  if ((is(values) && !proto) || !(api.signal && api.get && api.set && api.is)) return values;
14
10
  if (Array.isArray(values)) values.forEach((item, i) => values[i] = is(item) ? item : store(item));
@@ -17,7 +13,7 @@ let api = {},
17
13
  Object.entries(Object.getOwnPropertyDescriptors(values)).forEach(
18
14
  ([key, desc]) => {
19
15
  let signal = api.is(desc.value) ? desc.value : api.signal(resolve(desc.value)),
20
- memo = desc.get ? api.memo ? api.memo(desc.get.bind(state)) : desc.get.bind(state)?.() : signal;
16
+ memo = desc.get ? (api.memo ? api.memo(desc.get.bind(state)) : desc.get.bind(state)()) : signal;
21
17
  Object.defineProperty(state, key, {
22
18
  get: () => desc.get ? memo : api.get(memo),
23
19
  set: desc.get ? desc.set?.bind(state) : v => api.set(signal, resolve(v)),
package/dist/index.min.js CHANGED
@@ -1 +1 @@
1
- var template=function(e){let t={},r=Symbol("s"),a=e=>e[r],i=e=>e&&e.constructor===Object,s=e=>Array.isArray(e)?n(e):i(e)?Object.seal(n(e)):e,n=(e,c)=>{if(a(e)&&!c||!(t.signal&&t.get&&t.set&&t.is))return e;if(Array.isArray(e)&&e.forEach(((t,r)=>e[r]=a(t)?t:n(t))),i(e)){let a=Object.create(c||Object.getPrototypeOf(e));return Object.entries(Object.getOwnPropertyDescriptors(e)).forEach((([e,r])=>{let i=t.is(r.value)?r.value:t.signal(s(r.value)),n=r.get?t.memo?t.memo(r.get.bind(a)):r.get.bind(a)?.():i;Object.defineProperty(a,e,{get:()=>r.get?n:t.get(n),set:r.get?r.set?.bind(a):e=>t.set(i,s(e)),enumerable:!0})})),Object.defineProperty(a,r,{value:!0}),a}return e};return e.api=t,e.is=a,e.store=n,e}({});
1
+ var ustor=function(e){let t={},r=Symbol("s"),s=e=>e[r],i=e=>e&&e.constructor===Object,a=e=>Array.isArray(e)?n(e):i(e)?Object.seal(n(e)):e,n=(e,o)=>{if(s(e)&&!o||!(t.signal&&t.get&&t.set&&t.is))return e;if(Array.isArray(e)&&e.forEach(((t,r)=>e[r]=s(t)?t:n(t))),i(e)){let s=Object.create(o||Object.getPrototypeOf(e));return Object.entries(Object.getOwnPropertyDescriptors(e)).forEach((([e,r])=>{let i=t.is(r.value)?r.value:t.signal(a(r.value)),n=r.get?t.memo?t.memo(r.get.bind(s)):r.get.bind(s)():i;Object.defineProperty(s,e,{get:()=>r.get?n:t.get(n),set:r.get?r.set?.bind(s):e=>t.set(i,a(e)),enumerable:!0})})),Object.defineProperty(s,r,{value:!0}),s}return e};return e.api=t,e.is=s,e.store=n,e}({});
package/dist/index.umd.js CHANGED
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).template={})}(this,(function(e){let t={},r=Symbol("s"),i=e=>e[r],o=e=>e&&e.constructor===Object,n=e=>Array.isArray(e)?s(e):o(e)?Object.seal(s(e)):e,s=(e,a)=>{if(i(e)&&!a||!(t.signal&&t.get&&t.set&&t.is))return e;if(Array.isArray(e)&&e.forEach(((t,r)=>e[r]=i(t)?t:s(t))),o(e)){let i=Object.create(a||Object.getPrototypeOf(e));return Object.entries(Object.getOwnPropertyDescriptors(e)).forEach((([e,r])=>{let o=t.is(r.value)?r.value:t.signal(n(r.value)),s=r.get?t.memo?t.memo(r.get.bind(i)):r.get.bind(i)?.():o;Object.defineProperty(i,e,{get:()=>r.get?s:t.get(s),set:r.get?r.set?.bind(i):e=>t.set(o,n(e)),enumerable:!0})})),Object.defineProperty(i,r,{value:!0}),i}return e};e.api=t,e.is=i,e.store=s}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ustor={})}(this,(function(e){let t={},r=Symbol("s"),o=e=>e[r],i=e=>e&&e.constructor===Object,n=e=>Array.isArray(e)?s(e):i(e)?Object.seal(s(e)):e,s=(e,f)=>{if(o(e)&&!f||!(t.signal&&t.get&&t.set&&t.is))return e;if(Array.isArray(e)&&e.forEach(((t,r)=>e[r]=o(t)?t:s(t))),i(e)){let o=Object.create(f||Object.getPrototypeOf(e));return Object.entries(Object.getOwnPropertyDescriptors(e)).forEach((([e,r])=>{let i=t.is(r.value)?r.value:t.signal(n(r.value)),s=r.get?t.memo?t.memo(r.get.bind(o)):r.get.bind(o)():i;Object.defineProperty(o,e,{get:()=>r.get?s:t.get(s),set:r.get?r.set?.bind(o):e=>t.set(i,n(e)),enumerable:!0})})),Object.defineProperty(o,r,{value:!0}),o}return e};e.api=t,e.is=o,e.store=s}));
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ustor",
3
- "description": "A lightweight reactive store library that provides a powerful reactivity system for managing state, compatible with any UI framework, including React, Solid.js, and Preact Signals.",
4
- "version": "0.0.7",
3
+ "description": "A lightweight reactive store library that provides a powerful reactivity system for managing state, compatible with any UI framework, including Solid.js, and Preact Signals.",
4
+ "version": "0.0.9",
5
5
  "type": "module",
6
6
  "source": "./src/index.js",
7
7
  "main": "./dist/index.js",
@@ -29,8 +29,12 @@
29
29
  "devDependencies": {
30
30
  "@preact/signals-core": "^1.8.0",
31
31
  "@rollup/plugin-terser": "^0.4.4",
32
+ "oby": "^15.1.2",
33
+ "reactively": "^0.0.1",
32
34
  "rollup": "^4.24.0",
33
35
  "rollup-plugin-bundle-size": "^1.0.3",
36
+ "s-js": "^0.4.9",
37
+ "sinuous": "^0.32.1",
34
38
  "solid-js": "^1.9.2",
35
39
  "ulive": "^1.0.7",
36
40
  "vitest": "^2.1.3"
@@ -43,8 +47,6 @@
43
47
  "createmutable",
44
48
  "mutable",
45
49
  "createstore",
46
- "react",
47
- "preact",
48
50
  "solid.js",
49
51
  "state",
50
52
  "observable",