react-app-store-manager 2.1.1 → 2.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,8 +1,8 @@
1
1
  import { ReactNode } from 'react';
2
- import { StoreInterface } from "./Store";
2
+ import { Store } from "./Store";
3
3
  interface Props<V, E> {
4
4
  children?: ReactNode;
5
- store: StoreInterface<V, E>;
5
+ store: Store<V, E>;
6
6
  }
7
7
  export declare function Provider<V, E>({ store, children }: Props<V, E>): JSX.Element;
8
8
  export {};
package/dist/Provider.js CHANGED
@@ -27,7 +27,7 @@ exports.Provider = void 0;
27
27
  var react_1 = __importStar(require("react"));
28
28
  function Provider(_a) {
29
29
  var store = _a.store, children = _a.children;
30
- var Provider = store.context;
30
+ var Provider = store.__store.__context;
31
31
  var _b = (0, react_1.useReducer)(function (x) { return !x; }, true), updater = _b[0], forceUpdate = _b[1];
32
32
  var value = (0, react_1.useMemo)(function () { return store.value; }, [store.value, updater]);
33
33
  (0, react_1.useEffect)(function () {
@@ -36,8 +36,8 @@ function Provider(_a) {
36
36
  forceUpdate();
37
37
  }
38
38
  };
39
- store.subscribe(listener);
40
- return function () { return store.unsubscribe(listener); };
39
+ store.__store.__subscribe(listener);
40
+ return function () { return store.__store.__unsubscribe(listener); };
41
41
  }, [store]);
42
42
  return (react_1["default"].createElement(Provider.Provider, { value: value }, children));
43
43
  }
package/dist/Store.d.ts CHANGED
@@ -2,6 +2,7 @@ import React, { Context } from "react";
2
2
  interface ListenerInterface {
3
3
  onUpdate(): void;
4
4
  }
5
+ declare type update<Value> = (store: Value) => Value;
5
6
  export interface StoreInterface<Value, Actions> {
6
7
  value: Value;
7
8
  actions: Actions;
@@ -11,15 +12,24 @@ export interface StoreInterface<Value, Actions> {
11
12
  subscribe(listener: ListenerInterface): void;
12
13
  unsubscribe(listener: ListenerInterface): void;
13
14
  }
14
- export declare class Store<Value, Actions> implements StoreInterface<Value, Actions> {
15
- context: React.Context<Value>;
15
+ export declare class Store<Value, Actions> {
16
+ private __value;
17
+ private readonly __actions?;
18
+ private readonly __context;
19
+ private __listeners;
20
+ constructor(__value: Value, __actions?: Actions | undefined, __context?: Context<Value>, __listeners?: ListenerInterface[]);
16
21
  value: Value;
17
- readonly actions: Actions;
18
- private listeners;
19
- constructor(value: Value, actions: Actions);
20
- update(callback: any): void;
21
- action(callback: any): any;
22
- subscribe(listener: ListenerInterface): void;
23
- unsubscribe(listener: ListenerInterface): void;
22
+ actions: Actions | undefined;
23
+ update(store: update<Value>): boolean;
24
+ private __subscribe;
25
+ private __unsubscribe;
26
+ __store: {
27
+ __context: React.Context<Value>;
28
+ __value: Value;
29
+ __actions: Actions | undefined;
30
+ __listeners: ListenerInterface[];
31
+ __subscribe: (listener: ListenerInterface) => void;
32
+ __unsubscribe: (listener: ListenerInterface) => void;
33
+ };
24
34
  }
25
35
  export {};
package/dist/Store.js CHANGED
@@ -7,27 +7,38 @@ exports.Store = void 0;
7
7
  var react_1 = __importDefault(require("react"));
8
8
  var isEqual_1 = require("./isEqual");
9
9
  var Store = /** @class */ (function () {
10
- function Store(value, actions) {
11
- this.listeners = [];
12
- this.context = react_1["default"].createContext(value);
13
- this.value = value;
14
- this.actions = actions;
10
+ function Store(__value, __actions, __context, __listeners) {
11
+ if (__context === void 0) { __context = react_1["default"].createContext(__value); }
12
+ if (__listeners === void 0) { __listeners = []; }
13
+ this.__value = __value;
14
+ this.__actions = __actions;
15
+ this.__context = __context;
16
+ this.__listeners = __listeners;
17
+ this.value = this.__value;
18
+ this.actions = this.__actions;
19
+ this.__store = {
20
+ __context: this.__context,
21
+ __value: this.__value,
22
+ __actions: this.__actions,
23
+ __listeners: this.__listeners,
24
+ __subscribe: this.__subscribe,
25
+ __unsubscribe: this.__unsubscribe
26
+ };
15
27
  }
16
- Store.prototype.update = function (callback) {
17
- var newValue = callback(this.value);
28
+ Store.prototype.update = function (store) {
29
+ var newValue = store(this.value);
18
30
  if (!(0, isEqual_1.isEqual)(newValue, this.value)) {
19
31
  this.value = newValue;
20
- this.listeners.map(function (listener) { return listener.onUpdate(); });
32
+ this.__listeners.map(function (listener) { return listener.onUpdate(); });
33
+ return true;
21
34
  }
35
+ return false;
22
36
  };
23
- Store.prototype.action = function (callback) {
24
- return callback.bind(this, this.actions);
37
+ Store.prototype.__subscribe = function (listener) {
38
+ this.__listeners.push(listener);
25
39
  };
26
- Store.prototype.subscribe = function (listener) {
27
- this.listeners.push(listener);
28
- };
29
- Store.prototype.unsubscribe = function (listener) {
30
- this.listeners = this.listeners.filter(function (l) { return l !== listener; });
40
+ Store.prototype.__unsubscribe = function (listener) {
41
+ this.__listeners = this.__listeners.filter(function (l) { return l !== listener; });
31
42
  };
32
43
  return Store;
33
44
  }());
@@ -1,2 +1,2 @@
1
- import { StoreInterface } from "./Store";
2
- export declare function createStore<V, A extends object | undefined = undefined>(value: any, actions: A): StoreInterface<V, A>;
1
+ import { Store } from "./Store";
2
+ export declare function createStore<V, A extends object | undefined = undefined>(value: any, actions?: A): Store<V, A>;
@@ -1,2 +1,2 @@
1
- import { StoreInterface } from "./Store";
2
- export declare function useStore<T, A = undefined>(store: StoreInterface<T, A>): T;
1
+ import { Store } from "./Store";
2
+ export declare function useStore<T, A = undefined>(store: Store<T, A>): T;
package/dist/useStore.js CHANGED
@@ -3,6 +3,6 @@ exports.__esModule = true;
3
3
  exports.useStore = void 0;
4
4
  var react_1 = require("react");
5
5
  function useStore(store) {
6
- return (0, react_1.useContext)(store.context);
6
+ return (0, react_1.useContext)(store.__store.__context);
7
7
  }
8
8
  exports.useStore = useStore;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-app-store-manager",
3
- "version": "2.1.1",
3
+ "version": "2.1.2",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "build": "tsc --declaration"