storion 0.11.1 โ 0.11.3
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 +99 -51
- package/dist/async/async.d.ts +31 -0
- package/dist/async/async.d.ts.map +1 -1
- package/dist/async/index.js +8 -601
- package/dist/async/safe.d.ts +0 -12
- package/dist/async/safe.d.ts.map +1 -1
- package/dist/{effect-1beiYe_c.js โ effect-QvO_JK_q.js} +790 -81
- package/dist/isPromiseLike-bFkfHAbm.js +6 -0
- package/dist/persist/index.js +1 -3
- package/dist/pool.d.ts +17 -0
- package/dist/pool.d.ts.map +1 -1
- package/dist/react/index.js +11 -11
- package/dist/storion.js +15 -15
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<h1 align="center">Storion</h1>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
-
<strong>State management that
|
|
8
|
+
<strong>State management that just works</strong>
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
11
|
<p align="center">
|
|
@@ -16,16 +16,14 @@
|
|
|
16
16
|
</p>
|
|
17
17
|
|
|
18
18
|
<p align="center">
|
|
19
|
-
<a href="https://linq2js.github.io/storion/"><strong>๐
|
|
19
|
+
<a href="https://linq2js.github.io/storion/"><strong>๐ Docs</strong></a> ยท
|
|
20
20
|
<a href="https://linq2js.github.io/storion/demos.html">Demos</a> ยท
|
|
21
21
|
<a href="https://linq2js.github.io/storion/api/store.html">API</a> ยท
|
|
22
|
-
<a href="https://linq2js.github.io/storion/guide/getting-started.html">
|
|
22
|
+
<a href="https://linq2js.github.io/storion/guide/getting-started.html">Get Started</a>
|
|
23
23
|
</p>
|
|
24
24
|
|
|
25
25
|
---
|
|
26
26
|
|
|
27
|
-
## The Simplest Counter You'll Ever Write
|
|
28
|
-
|
|
29
27
|
```tsx
|
|
30
28
|
import { create } from "storion/react";
|
|
31
29
|
|
|
@@ -38,45 +36,45 @@ const [_, useCounter] = create({
|
|
|
38
36
|
});
|
|
39
37
|
|
|
40
38
|
function Counter() {
|
|
41
|
-
const { count, inc
|
|
39
|
+
const { count, inc } = useCounter((s, a) => ({ count: s.count, ...a }));
|
|
42
40
|
return <button onClick={inc}>{count}</button>;
|
|
43
41
|
}
|
|
44
42
|
```
|
|
45
43
|
|
|
46
|
-
**
|
|
44
|
+
**No Provider. No boilerplate. It just works.**
|
|
47
45
|
|
|
48
46
|
---
|
|
49
47
|
|
|
50
|
-
##
|
|
48
|
+
## Features
|
|
51
49
|
|
|
52
|
-
|
|
|
53
|
-
|
|
|
54
|
-
|
|
|
55
|
-
|
|
|
56
|
-
|
|
|
57
|
-
|
|
|
58
|
-
|
|
|
50
|
+
| Feature | Description |
|
|
51
|
+
| -------------------- | -------------------------------------------- |
|
|
52
|
+
| ๐ฏ **Auto-tracking** | Read state โ subscribed automatically |
|
|
53
|
+
| โก **Fine-grained** | Only changed state triggers re-renders |
|
|
54
|
+
| ๐ **Type-safe** | Full TypeScript inference, zero manual types |
|
|
55
|
+
| ๐ **Async-first** | Loading states, error handling, Suspense |
|
|
56
|
+
| ๐ ๏ธ **DevTools** | Time-travel debugging built-in |
|
|
57
|
+
| ๐ฆ **~4KB** | Tiny bundle, no compromises |
|
|
59
58
|
|
|
60
59
|
---
|
|
61
60
|
|
|
62
|
-
##
|
|
61
|
+
## Install
|
|
63
62
|
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
โฆ Fine-grained Change count? Only Counter re-renders
|
|
67
|
-
โฆ Type-safe Full inference, zero manual types
|
|
68
|
-
โฆ Async-first Loading, error, stale states built-in
|
|
69
|
-
โฆ DevTools Time-travel debugging included
|
|
70
|
-
โฆ Scalable From counter to enterprise, same API
|
|
63
|
+
```bash
|
|
64
|
+
npm install storion
|
|
71
65
|
```
|
|
72
66
|
|
|
73
67
|
---
|
|
74
68
|
|
|
75
|
-
##
|
|
69
|
+
## Usage
|
|
70
|
+
|
|
71
|
+
### Single Store
|
|
76
72
|
|
|
77
|
-
|
|
73
|
+
For isolated features, widgets, or prototypes:
|
|
78
74
|
|
|
79
75
|
```tsx
|
|
76
|
+
import { create } from "storion/react";
|
|
77
|
+
|
|
80
78
|
const [_, useAuth] = create({
|
|
81
79
|
state: { user: null },
|
|
82
80
|
setup: ({ state }) => ({
|
|
@@ -90,49 +88,99 @@ const [_, useAuth] = create({
|
|
|
90
88
|
});
|
|
91
89
|
```
|
|
92
90
|
|
|
93
|
-
|
|
91
|
+
### Multiple Stores
|
|
92
|
+
|
|
93
|
+
For apps with shared state (auth, cart, users):
|
|
94
94
|
|
|
95
95
|
```tsx
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
96
|
+
import { store, container, StoreProvider, useStore } from "storion/react";
|
|
97
|
+
|
|
98
|
+
const authStore = store({
|
|
99
|
+
name: "auth",
|
|
100
|
+
state: { user: null },
|
|
101
|
+
setup: ({ state }) => ({
|
|
102
|
+
login: (user) => {
|
|
103
|
+
state.user = user;
|
|
104
|
+
},
|
|
105
|
+
logout: () => {
|
|
106
|
+
state.user = null;
|
|
107
|
+
},
|
|
108
|
+
}),
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
const cartStore = store({
|
|
112
|
+
name: "cart",
|
|
113
|
+
state: { items: [] },
|
|
114
|
+
setup: ({ state, get }) => {
|
|
115
|
+
const [auth] = get(authStore); // Cross-store access
|
|
116
|
+
return {
|
|
117
|
+
add: (item) => {
|
|
118
|
+
state.items.push(item);
|
|
119
|
+
},
|
|
120
|
+
clear: () => {
|
|
121
|
+
state.items = [];
|
|
122
|
+
},
|
|
123
|
+
};
|
|
103
124
|
},
|
|
104
125
|
});
|
|
126
|
+
|
|
127
|
+
const app = container();
|
|
128
|
+
|
|
129
|
+
function App() {
|
|
130
|
+
return (
|
|
131
|
+
<StoreProvider container={app}>
|
|
132
|
+
<Shop />
|
|
133
|
+
</StoreProvider>
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
function Shop() {
|
|
138
|
+
const { items, add } = useStore(({ get }) => {
|
|
139
|
+
const [state, actions] = get(cartStore);
|
|
140
|
+
return { items: state.items, add: actions.add };
|
|
141
|
+
});
|
|
142
|
+
// ...
|
|
143
|
+
}
|
|
105
144
|
```
|
|
106
145
|
|
|
107
|
-
|
|
146
|
+
### Async Data
|
|
108
147
|
|
|
109
148
|
```tsx
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
149
|
+
import { store } from "storion/react";
|
|
150
|
+
import { async } from "storion/async";
|
|
151
|
+
|
|
152
|
+
const usersStore = store({
|
|
153
|
+
name: "users",
|
|
154
|
+
state: { users: async.fresh([]) },
|
|
155
|
+
setup: ({ focus }) => {
|
|
156
|
+
const query = async(focus("users"), async (ctx) => {
|
|
157
|
+
const res = await fetch("/api/users", { signal: ctx.signal });
|
|
158
|
+
return res.json();
|
|
159
|
+
});
|
|
160
|
+
return { fetch: query.dispatch, refresh: query.refresh };
|
|
161
|
+
},
|
|
162
|
+
});
|
|
114
163
|
```
|
|
115
164
|
|
|
116
165
|
---
|
|
117
166
|
|
|
118
|
-
##
|
|
119
|
-
|
|
120
|
-
๐ **[Full Documentation](https://linq2js.github.io/storion/)** โ Everything you need
|
|
167
|
+
## When to Use What
|
|
121
168
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
169
|
+
| Scenario | Use |
|
|
170
|
+
| --------------------- | --------------------------- |
|
|
171
|
+
| Single feature/widget | `create()` |
|
|
172
|
+
| Multiple stores | `store()` + `container()` |
|
|
173
|
+
| Testing with mocks | `container()` + `app.set()` |
|
|
174
|
+
| Persistence | `app.use(persist())` |
|
|
127
175
|
|
|
128
176
|
---
|
|
129
177
|
|
|
130
|
-
##
|
|
178
|
+
## Documentation
|
|
131
179
|
|
|
132
|
-
|
|
180
|
+
๐ **[Full Docs](https://linq2js.github.io/storion/)** โ [Get Started](https://linq2js.github.io/storion/guide/getting-started.html) ยท [Core Concepts](https://linq2js.github.io/storion/guide/core-concepts.html) ยท [Async](https://linq2js.github.io/storion/guide/async.html) ยท [API](https://linq2js.github.io/storion/api/store.html) ยท [Demos](https://linq2js.github.io/storion/demos.html)
|
|
133
181
|
|
|
134
182
|
---
|
|
135
183
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
184
|
+
## License
|
|
185
|
+
|
|
186
|
+
MIT ยฉ [linq2js](https://github.com/linq2js)
|
package/dist/async/async.d.ts
CHANGED
|
@@ -2,11 +2,28 @@ import { Focus, MetaEntry, SelectorMixin } from '../types';
|
|
|
2
2
|
import { AsyncState, AsyncMode, AsyncHandler, AsyncOptions, AsyncActions, CancellablePromise, InferAsyncData, MapAsyncData, MapSettledResult, RaceResult, AsyncKey, AsyncRequestId } from './types';
|
|
3
3
|
import { Abortable } from './abortable';
|
|
4
4
|
|
|
5
|
+
interface PromiseState<T = any> {
|
|
6
|
+
status: "pending" | "fulfilled" | "rejected";
|
|
7
|
+
resolved: T | undefined;
|
|
8
|
+
rejected: any;
|
|
9
|
+
}
|
|
5
10
|
/**
|
|
6
11
|
* Get the pending promise for an async state (for Suspense).
|
|
7
12
|
* Returns undefined if no pending promise.
|
|
8
13
|
*/
|
|
9
14
|
export declare function getPendingPromise<T>(state: AsyncState<T, any>): Promise<T> | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* Convert a value or parameterless function to a Promise.
|
|
17
|
+
* Handles: PromiseLike, sync values, functions returning either.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* toPromise(42) // Promise.resolve(42)
|
|
21
|
+
* toPromise(Promise.resolve(42)) // Promise.resolve(42)
|
|
22
|
+
* toPromise(() => 42) // Promise.resolve(42)
|
|
23
|
+
* toPromise(() => fetchData()) // fetchData() promise
|
|
24
|
+
* toPromise(thenable) // Promise wrapping thenable
|
|
25
|
+
*/
|
|
26
|
+
export declare function toPromise<T>(value: T | (() => T)): Promise<Awaited<T>>;
|
|
10
27
|
/**
|
|
11
28
|
* Wraps a synchronous or async function to always return a Promise.
|
|
12
29
|
* Ensures async execution even for synchronous functions.
|
|
@@ -183,6 +200,20 @@ export declare namespace async {
|
|
|
183
200
|
* Also considers stale data as "ready" in stale mode.
|
|
184
201
|
*/
|
|
185
202
|
function race<T extends Record<string, AsyncState<any, any>>>(states: T): RaceResult<T>;
|
|
203
|
+
/**
|
|
204
|
+
* Wraps a promise with the state of the promise.
|
|
205
|
+
* @param promise - The promise to get the state of.
|
|
206
|
+
* @returns The promise with the state attached.
|
|
207
|
+
*/
|
|
208
|
+
function withState<T>(promise: PromiseLike<T>): PromiseLike<T> & {
|
|
209
|
+
state: PromiseState<T>;
|
|
210
|
+
};
|
|
211
|
+
/**
|
|
212
|
+
* Get the state of a promise.
|
|
213
|
+
* @param promise - The promise to get the state of.
|
|
214
|
+
* @returns The state of the promise.
|
|
215
|
+
*/
|
|
216
|
+
function state<T>(promise: PromiseLike<T>): PromiseState<T>;
|
|
186
217
|
/**
|
|
187
218
|
* Returns all data if all states are ready.
|
|
188
219
|
* In stale mode, stale data counts as ready.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../../src/async/async.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,SAAS,EAET,aAAa,EACd,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EAET,YAAY,EACZ,YAAY,EACZ,YAAY,EAEZ,kBAAkB,EAClB,cAAc,EAEd,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,cAAc,EAEf,MAAM,SAAS,CAAC;AAOjB,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../../src/async/async.ts"],"names":[],"mappings":"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"}
|