reactish-state 0.5.2 → 0.5.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/dist/cjs/index.js CHANGED
@@ -29,6 +29,7 @@ var state = function state(initialValue, actionCreator) {
29
29
  actions: actionCreator && actionCreator(set, get)
30
30
  };
31
31
  };
32
+
32
33
  var isEqual = function isEqual(args1, args2) {
33
34
  for (var i = 0; i < args1.length; i++) {
34
35
  if (!Object.is(args1[i], args2[i])) return false;
@@ -70,8 +71,7 @@ var selector = function selector() {
70
71
  };
71
72
 
72
73
  var useSnapshot = function useSnapshot(state) {
73
- var value = shim.useSyncExternalStore(state.subscribe, state.get, state.get);
74
- return value;
74
+ return shim.useSyncExternalStore(state.subscribe, state.get, state.get);
75
75
  };
76
76
 
77
77
  exports.selector = selector;
package/dist/es/index.js CHANGED
@@ -1,2 +1,3 @@
1
- export { selector, state } from './vanilla.js';
2
- export { useSnapshot } from './react.js';
1
+ export { state } from './vanilla/state.js';
2
+ export { selector } from './vanilla/selector.js';
3
+ export { useSnapshot } from './react/useSnapshot.js';
@@ -1,8 +1,7 @@
1
1
  import { useSyncExternalStore } from 'use-sync-external-store/shim';
2
2
 
3
3
  var useSnapshot = function useSnapshot(state) {
4
- var value = useSyncExternalStore(state.subscribe, state.get, state.get);
5
- return value;
4
+ return useSyncExternalStore(state.subscribe, state.get, state.get);
6
5
  };
7
6
 
8
7
  export { useSnapshot };
@@ -1,30 +1,3 @@
1
- var state = function state(initialValue, actionCreator) {
2
- var value = initialValue;
3
- var listeners = new Set();
4
- function get() {
5
- return value;
6
- }
7
- function set(newValue) {
8
- var nextValue = typeof newValue === 'function' ? newValue(value) : newValue;
9
- if (!Object.is(value, nextValue)) {
10
- value = nextValue;
11
- listeners.forEach(function (listener) {
12
- listener();
13
- });
14
- }
15
- }
16
- return {
17
- get: get,
18
- set: set,
19
- subscribe: function subscribe(listener) {
20
- listeners.add(listener);
21
- return function () {
22
- listeners["delete"](listener);
23
- };
24
- },
25
- actions: actionCreator && actionCreator(set, get)
26
- };
27
- };
28
1
  var isEqual = function isEqual(args1, args2) {
29
2
  for (var i = 0; i < args1.length; i++) {
30
3
  if (!Object.is(args1[i], args2[i])) return false;
@@ -65,4 +38,4 @@ var selector = function selector() {
65
38
  };
66
39
  };
67
40
 
68
- export { selector, state };
41
+ export { selector };
@@ -0,0 +1,29 @@
1
+ var state = function state(initialValue, actionCreator) {
2
+ var value = initialValue;
3
+ var listeners = new Set();
4
+ function get() {
5
+ return value;
6
+ }
7
+ function set(newValue) {
8
+ var nextValue = typeof newValue === 'function' ? newValue(value) : newValue;
9
+ if (!Object.is(value, nextValue)) {
10
+ value = nextValue;
11
+ listeners.forEach(function (listener) {
12
+ listener();
13
+ });
14
+ }
15
+ }
16
+ return {
17
+ get: get,
18
+ set: set,
19
+ subscribe: function subscribe(listener) {
20
+ listeners.add(listener);
21
+ return function () {
22
+ listeners["delete"](listener);
23
+ };
24
+ },
25
+ actions: actionCreator && actionCreator(set, get)
26
+ };
27
+ };
28
+
29
+ export { state };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reactish-state",
3
- "version": "0.5.2",
3
+ "version": "0.5.3",
4
4
  "description": "",
5
5
  "author": "Zheng Song",
6
6
  "license": "MIT",
package/types/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- export { state, selector } from './vanilla';
2
- export { useSnapshot } from './react';
1
+ export { state } from './vanilla/state';
2
+ export { selector } from './vanilla/selector';
3
+ export { useSnapshot } from './react/useSnapshot';
@@ -1,3 +1,3 @@
1
- import { Reactish } from './vanilla';
1
+ import type { Reactish } from '../vanilla/common';
2
2
  declare const useSnapshot: <T>(state: Reactish<T>) => T;
3
3
  export { useSnapshot };
@@ -0,0 +1,5 @@
1
+ export declare type Listener = () => void;
2
+ export interface Reactish<T> {
3
+ get: () => T;
4
+ subscribe: (listener: Listener) => () => void;
5
+ }
@@ -0,0 +1,11 @@
1
+ import type { Reactish, Listener } from './common';
2
+ declare type ReactishArray = Reactish<unknown>[];
3
+ declare type ReactishValueArray<R extends ReactishArray> = {
4
+ [index in keyof R]: ReturnType<R[index]['get']>;
5
+ };
6
+ declare type SelectorFunc<R extends ReactishArray, T> = (...args: ReactishValueArray<R>) => T;
7
+ declare const selector: <R extends ReactishArray, T>(...items: [...R, SelectorFunc<R, T>]) => {
8
+ get: () => T;
9
+ subscribe: (listener: Listener) => () => void;
10
+ };
11
+ export { selector };
@@ -0,0 +1,9 @@
1
+ import type { Reactish } from './common';
2
+ declare type Setter<T> = (newValue: T | ((value: T) => T)) => void;
3
+ declare type ActionCreator<T, A> = ((set: Setter<T>, get: () => T) => A) | undefined;
4
+ interface State<T, A = unknown, C extends ActionCreator<T, A> = undefined> extends Reactish<T> {
5
+ set: Setter<T>;
6
+ actions: C extends undefined ? never : A;
7
+ }
8
+ declare const state: <T, A>(initialValue: T, actionCreator?: ActionCreator<T, A>) => State<T, A, ActionCreator<T, A>>;
9
+ export { state };
@@ -1,22 +0,0 @@
1
- declare type Listener = () => void;
2
- declare type Setter<T> = (newValue: T | ((value: T) => T)) => void;
3
- declare type ActionCreator<T, A> = ((set: Setter<T>, get: () => T) => A) | undefined;
4
- interface Reactish<T> {
5
- get: () => T;
6
- subscribe: (listener: Listener) => () => void;
7
- }
8
- interface State<T, A = unknown, C extends ActionCreator<T, A> = undefined> extends Reactish<T> {
9
- set: Setter<T>;
10
- actions: C extends undefined ? never : A;
11
- }
12
- declare const state: <T, A>(initialValue: T, actionCreator?: ActionCreator<T, A>) => State<T, A, ActionCreator<T, A>>;
13
- declare type ReactishArray = Reactish<unknown>[];
14
- declare type ReactishValueArray<R extends ReactishArray> = {
15
- [index in keyof R]: ReturnType<R[index]['get']>;
16
- };
17
- declare type SelectorFunc<R extends ReactishArray, T> = (...args: ReactishValueArray<R>) => T;
18
- declare const selector: <R extends ReactishArray, T>(...items: [...R, SelectorFunc<R, T>]) => {
19
- get: () => T;
20
- subscribe: (listener: Listener) => () => void;
21
- };
22
- export { Reactish, state, selector };