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, key } = options ?? {};
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
- useValue,
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
- options,
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.useState();
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
- const [hook, setValue, getState, $, options, ...rest] = _signal;
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
- setValue(value.value);
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 = getState();
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
- { hydrateValue, persistValue, setValue, $, options },
327
- hook,
328
- setValue,
329
- getState,
330
- $,
331
- options,
332
- ...rest
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, key } = options ?? {};
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
- useValue,
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
- options,
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.useState();
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
- const [hook, setValue, getState, $, options, ...rest] = _signal;
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
- setValue(value.value);
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 = getState();
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
- { hydrateValue, persistValue, setValue, $, options },
325
- hook,
326
- setValue,
327
- getState,
328
- $,
329
- options,
330
- ...rest
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 { type Observable } from "rxjs";
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: ReturnType<typeof signal<T>>[1];
12
- $: Observable<T>;
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: ReturnType<typeof signal<T>>, { version }?: {
16
+ export declare function withPersistance<T>(_signal: Signal<T, T>, { version }?: {
18
17
  version?: number;
19
- }): [WithPersistanceReturn<T>, ...ReturnType<typeof signal<T>>];
18
+ }): [WithPersistanceReturn<T>, Signal<T, T>];
@@ -1,4 +1,4 @@
1
- import { type Observable } from "rxjs";
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
- useState: () => R;
13
+ getValue: () => R;
14
+ options: Option<S>;
15
+ subject: Observable<S>;
14
16
  }
15
- type Return<S, R> = [
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>) => R;
2
+ export declare const useSignalValue: <S, R>(signal: Signal<S, R>, key?: string) => S | R;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "reactjrx",
3
3
  "private": false,
4
- "version": "1.30.0",
4
+ "version": "1.31.1",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist"