reactjrx 1.30.0 → 1.31.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.cjs
CHANGED
|
@@ -147,10 +147,8 @@ function trigger(mapper = rxjs.identity) {
|
|
|
147
147
|
}
|
|
148
148
|
const SIGNAL_RESET = Symbol("SIGNAL_RESET");
|
|
149
149
|
function signal(options) {
|
|
150
|
-
const { default: defaultValue
|
|
150
|
+
const { default: defaultValue } = options ?? {};
|
|
151
151
|
const subject = new rxjs.BehaviorSubject(defaultValue);
|
|
152
|
-
const subject$ = subject.asObservable();
|
|
153
|
-
const useValue = () => useObserve(subject$, { defaultValue: subject.getValue(), key });
|
|
154
152
|
const setValue = (arg) => {
|
|
155
153
|
if (arg === subject.getValue())
|
|
156
154
|
return;
|
|
@@ -168,26 +166,24 @@ function signal(options) {
|
|
|
168
166
|
subject.next(arg);
|
|
169
167
|
};
|
|
170
168
|
const getValue = () => subject.getValue();
|
|
171
|
-
return
|
|
172
|
-
|
|
173
|
-
setValue,
|
|
169
|
+
return {
|
|
170
|
+
setState: setValue,
|
|
174
171
|
getValue,
|
|
172
|
+
options,
|
|
175
173
|
/**
|
|
176
174
|
* @important
|
|
177
175
|
* We return the original behavior subject for two reasons:
|
|
178
176
|
* - useObserve may return the default value directly instead of undefined
|
|
179
177
|
* - the scope exist for react binding, this observable is a direct access outside of it
|
|
180
178
|
*/
|
|
181
|
-
subject
|
|
182
|
-
|
|
183
|
-
{ setState: setValue, useState: useValue }
|
|
184
|
-
];
|
|
179
|
+
subject
|
|
180
|
+
};
|
|
185
181
|
}
|
|
186
182
|
const useSetSignal = (signal2) => {
|
|
187
183
|
return signal2.setState;
|
|
188
184
|
};
|
|
189
|
-
const useSignalValue = (signal2) => {
|
|
190
|
-
return signal2.
|
|
185
|
+
const useSignalValue = (signal2, key) => {
|
|
186
|
+
return useObserve(signal2.subject, { defaultValue: signal2.getValue(), key });
|
|
191
187
|
};
|
|
192
188
|
const useSignal = (signal2) => {
|
|
193
189
|
return [useSignalValue(signal2), useSetSignal(signal2)];
|
|
@@ -287,15 +283,14 @@ const getNormalizedPersistanceValue = (unknownValue) => {
|
|
|
287
283
|
return void 0;
|
|
288
284
|
};
|
|
289
285
|
function withPersistance(_signal, { version = 0 } = {}) {
|
|
290
|
-
|
|
291
|
-
if (!options.key) {
|
|
286
|
+
if (!_signal.options.key) {
|
|
292
287
|
console.error(
|
|
293
288
|
"You need to specify a key to use persistance with this signal"
|
|
294
289
|
);
|
|
295
290
|
}
|
|
296
291
|
const hydrateValue = async ({
|
|
297
292
|
adapter,
|
|
298
|
-
key = options.key
|
|
293
|
+
key = _signal.options.key
|
|
299
294
|
}) => {
|
|
300
295
|
if (!key)
|
|
301
296
|
return;
|
|
@@ -306,15 +301,15 @@ function withPersistance(_signal, { version = 0 } = {}) {
|
|
|
306
301
|
if (normalizedValue.migrationVersion && version > normalizedValue.migrationVersion) {
|
|
307
302
|
return;
|
|
308
303
|
}
|
|
309
|
-
|
|
304
|
+
_signal.setState(value.value);
|
|
310
305
|
};
|
|
311
306
|
const persistValue = async ({
|
|
312
307
|
adapter,
|
|
313
|
-
key = options.key
|
|
308
|
+
key = _signal.options.key
|
|
314
309
|
}) => {
|
|
315
310
|
if (!key)
|
|
316
311
|
return;
|
|
317
|
-
const state =
|
|
312
|
+
const state = _signal.getValue();
|
|
318
313
|
const value = {
|
|
319
314
|
value: state,
|
|
320
315
|
__key: "reactjrx_persistance",
|
|
@@ -323,13 +318,14 @@ function withPersistance(_signal, { version = 0 } = {}) {
|
|
|
323
318
|
await adapter.setItem(key, value);
|
|
324
319
|
};
|
|
325
320
|
return [
|
|
326
|
-
{
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
321
|
+
{
|
|
322
|
+
hydrateValue,
|
|
323
|
+
persistValue,
|
|
324
|
+
setValue: _signal.setState,
|
|
325
|
+
$: _signal.subject,
|
|
326
|
+
options: _signal.options
|
|
327
|
+
},
|
|
328
|
+
_signal
|
|
333
329
|
];
|
|
334
330
|
}
|
|
335
331
|
const normalizeStore = (store) => {
|
package/dist/index.js
CHANGED
|
@@ -145,10 +145,8 @@ function trigger(mapper = identity) {
|
|
|
145
145
|
}
|
|
146
146
|
const SIGNAL_RESET = Symbol("SIGNAL_RESET");
|
|
147
147
|
function signal(options) {
|
|
148
|
-
const { default: defaultValue
|
|
148
|
+
const { default: defaultValue } = options ?? {};
|
|
149
149
|
const subject = new BehaviorSubject(defaultValue);
|
|
150
|
-
const subject$ = subject.asObservable();
|
|
151
|
-
const useValue = () => useObserve(subject$, { defaultValue: subject.getValue(), key });
|
|
152
150
|
const setValue = (arg) => {
|
|
153
151
|
if (arg === subject.getValue())
|
|
154
152
|
return;
|
|
@@ -166,26 +164,24 @@ function signal(options) {
|
|
|
166
164
|
subject.next(arg);
|
|
167
165
|
};
|
|
168
166
|
const getValue = () => subject.getValue();
|
|
169
|
-
return
|
|
170
|
-
|
|
171
|
-
setValue,
|
|
167
|
+
return {
|
|
168
|
+
setState: setValue,
|
|
172
169
|
getValue,
|
|
170
|
+
options,
|
|
173
171
|
/**
|
|
174
172
|
* @important
|
|
175
173
|
* We return the original behavior subject for two reasons:
|
|
176
174
|
* - useObserve may return the default value directly instead of undefined
|
|
177
175
|
* - the scope exist for react binding, this observable is a direct access outside of it
|
|
178
176
|
*/
|
|
179
|
-
subject
|
|
180
|
-
|
|
181
|
-
{ setState: setValue, useState: useValue }
|
|
182
|
-
];
|
|
177
|
+
subject
|
|
178
|
+
};
|
|
183
179
|
}
|
|
184
180
|
const useSetSignal = (signal2) => {
|
|
185
181
|
return signal2.setState;
|
|
186
182
|
};
|
|
187
|
-
const useSignalValue = (signal2) => {
|
|
188
|
-
return signal2.
|
|
183
|
+
const useSignalValue = (signal2, key) => {
|
|
184
|
+
return useObserve(signal2.subject, { defaultValue: signal2.getValue(), key });
|
|
189
185
|
};
|
|
190
186
|
const useSignal = (signal2) => {
|
|
191
187
|
return [useSignalValue(signal2), useSetSignal(signal2)];
|
|
@@ -285,15 +281,14 @@ const getNormalizedPersistanceValue = (unknownValue) => {
|
|
|
285
281
|
return void 0;
|
|
286
282
|
};
|
|
287
283
|
function withPersistance(_signal, { version = 0 } = {}) {
|
|
288
|
-
|
|
289
|
-
if (!options.key) {
|
|
284
|
+
if (!_signal.options.key) {
|
|
290
285
|
console.error(
|
|
291
286
|
"You need to specify a key to use persistance with this signal"
|
|
292
287
|
);
|
|
293
288
|
}
|
|
294
289
|
const hydrateValue = async ({
|
|
295
290
|
adapter,
|
|
296
|
-
key = options.key
|
|
291
|
+
key = _signal.options.key
|
|
297
292
|
}) => {
|
|
298
293
|
if (!key)
|
|
299
294
|
return;
|
|
@@ -304,15 +299,15 @@ function withPersistance(_signal, { version = 0 } = {}) {
|
|
|
304
299
|
if (normalizedValue.migrationVersion && version > normalizedValue.migrationVersion) {
|
|
305
300
|
return;
|
|
306
301
|
}
|
|
307
|
-
|
|
302
|
+
_signal.setState(value.value);
|
|
308
303
|
};
|
|
309
304
|
const persistValue = async ({
|
|
310
305
|
adapter,
|
|
311
|
-
key = options.key
|
|
306
|
+
key = _signal.options.key
|
|
312
307
|
}) => {
|
|
313
308
|
if (!key)
|
|
314
309
|
return;
|
|
315
|
-
const state =
|
|
310
|
+
const state = _signal.getValue();
|
|
316
311
|
const value = {
|
|
317
312
|
value: state,
|
|
318
313
|
__key: "reactjrx_persistance",
|
|
@@ -321,13 +316,14 @@ function withPersistance(_signal, { version = 0 } = {}) {
|
|
|
321
316
|
await adapter.setItem(key, value);
|
|
322
317
|
};
|
|
323
318
|
return [
|
|
324
|
-
{
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
319
|
+
{
|
|
320
|
+
hydrateValue,
|
|
321
|
+
persistValue,
|
|
322
|
+
setValue: _signal.setState,
|
|
323
|
+
$: _signal.subject,
|
|
324
|
+
options: _signal.options
|
|
325
|
+
},
|
|
326
|
+
_signal
|
|
331
327
|
];
|
|
332
328
|
}
|
|
333
329
|
const normalizeStore = (store) => {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { type signal } from "../signal";
|
|
1
|
+
import type { Signal } from "../signal";
|
|
3
2
|
import { type Adapter } from "./types";
|
|
4
3
|
export interface WithPersistanceReturn<T> {
|
|
5
4
|
hydrateValue: (params: {
|
|
@@ -8,12 +7,12 @@ export interface WithPersistanceReturn<T> {
|
|
|
8
7
|
persistValue: (params: {
|
|
9
8
|
adapter: Adapter;
|
|
10
9
|
}) => Promise<void>;
|
|
11
|
-
setValue:
|
|
12
|
-
$:
|
|
10
|
+
setValue: Signal<T, T>['setState'];
|
|
11
|
+
$: Signal<T, T>['subject'];
|
|
13
12
|
options: {
|
|
14
13
|
key?: string;
|
|
15
14
|
};
|
|
16
15
|
}
|
|
17
|
-
export declare function withPersistance<T>(_signal:
|
|
16
|
+
export declare function withPersistance<T>(_signal: Signal<T, T>, { version }?: {
|
|
18
17
|
version?: number;
|
|
19
|
-
}): [WithPersistanceReturn<T>,
|
|
18
|
+
}): [WithPersistanceReturn<T>, Signal<T, T>];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Observable } from "rxjs";
|
|
2
2
|
import { SIGNAL_RESET } from "./constants";
|
|
3
3
|
type Option<R = undefined> = {
|
|
4
4
|
key?: string;
|
|
@@ -10,15 +10,9 @@ type Option<R = undefined> = {
|
|
|
10
10
|
type SetState<S> = (stateOrUpdater: typeof SIGNAL_RESET | S | ((prev: S) => S)) => void;
|
|
11
11
|
export interface Signal<S, R> {
|
|
12
12
|
setState: SetState<S>;
|
|
13
|
-
|
|
13
|
+
getValue: () => R;
|
|
14
|
+
options: Option<S>;
|
|
15
|
+
subject: Observable<S>;
|
|
14
16
|
}
|
|
15
|
-
|
|
16
|
-
() => R,
|
|
17
|
-
SetState<S>,
|
|
18
|
-
() => R,
|
|
19
|
-
Observable<R>,
|
|
20
|
-
Option<S>,
|
|
21
|
-
Signal<S, R>
|
|
22
|
-
];
|
|
23
|
-
export declare function signal<T = undefined>(options: Option<T>): Return<T, T>;
|
|
17
|
+
export declare function signal<T = undefined>(options: Option<T>): Signal<T, T>;
|
|
24
18
|
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { type Signal } from "./signal";
|
|
2
|
-
export declare const useSignal: <S, R>(signal: Signal<S, R>) => readonly [R, (stateOrUpdater: typeof import("./constants").SIGNAL_RESET | S | ((prev: S) => S)) => void];
|
|
2
|
+
export declare const useSignal: <S, R>(signal: Signal<S, R>) => readonly [S | R, (stateOrUpdater: typeof import("./constants").SIGNAL_RESET | S | ((prev: S) => S)) => void];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { type Signal } from "./signal";
|
|
2
|
-
export declare const useSignalValue: <S, R>(signal: Signal<S, R
|
|
2
|
+
export declare const useSignalValue: <S, R>(signal: Signal<S, R>, key?: string) => S | R;
|