@slimlib/store 1.2.0 → 1.3.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/README.md CHANGED
@@ -95,9 +95,9 @@ $storeName
95
95
 
96
96
  The only exported function. It returns createStore factory (see next) which notifies innidiately after creating store if `notifyAfterCreation` is truethy.
97
97
 
98
- #### `createStore<T>(initialState: T): [T, Store<T>]`
98
+ #### `createStore<T>(initialState: T): [T, Store<T>, () => void]`
99
99
 
100
- Store factory function that takes initial state and returns proxy object and store tuple. Proxy object ment to be left for actions implementations and store is for subscription for changes.
100
+ Store factory function that takes initial state and returns proxy object, store and function to notify subscribers. Proxy object ment to be left for actions implementations, store is for subscription for changes and notification only for some edge cases when original object have been changed and listeners have to be notified.
101
101
 
102
102
  #### `unwrapValue(value: T): T`
103
103
 
@@ -118,7 +118,7 @@ Publish/subscribe/read pattern implementation. Ment to be used in components / s
118
118
 
119
119
  ### `react` and `preact` exports
120
120
 
121
- #### `createStore<T>(initialState: T): [T, Store<T>]`
121
+ #### `createStore<T>(initialState: T): [T, Store<T>, () => void]`
122
122
 
123
123
  Store factory created with `notifyAfterCreation` === `false`.
124
124
 
@@ -128,7 +128,7 @@ Function to subscribe to store inside component. Returns current state.
128
128
 
129
129
  ### `svelte` export
130
130
 
131
- #### `createStore<T>(initialState: T): [T, Store<T>]`
131
+ #### `createStore<T>(initialState: T): [T, Store<T>, () => void]`
132
132
 
133
133
  Store factory created with `notifyAfterCreation` === `true`.
134
134
 
package/core/package.json CHANGED
@@ -1,3 +1,5 @@
1
1
  {
2
- "types": "../dist/core.d.ts"
2
+ "type": "module",
3
+ "types": "../dist/core.d.ts",
4
+ "main": "../dist/core.mjs"
3
5
  }
package/dist/core.cjs CHANGED
@@ -1,7 +1,5 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  const unwrap = Symbol();
6
4
  const unwrapValue = (value) => (value != null && value[unwrap]) || value;
7
5
  const createStoreFactory = (notifyAfterCreation) => {
@@ -61,7 +59,8 @@ const createStoreFactory = (notifyAfterCreation) => {
61
59
  cb(object);
62
60
  }
63
61
  return () => storeListeners.delete(cb);
64
- })
62
+ }),
63
+ enqueueNotification
65
64
  ];
66
65
  function createProxy(object) {
67
66
  if (proxiesCache.has(object)) {
package/dist/core.d.ts CHANGED
@@ -5,4 +5,4 @@ export interface Store<T> {
5
5
  (): Readonly<T>;
6
6
  }
7
7
  export declare const unwrapValue: <T>(value: T) => T;
8
- export declare const createStoreFactory: (notifyAfterCreation: boolean) => <T extends object>(object?: T) => [T, Store<T>];
8
+ export declare const createStoreFactory: (notifyAfterCreation: boolean) => <T extends object>(object?: T) => [T, Store<T>, () => void];
package/dist/core.mjs CHANGED
@@ -57,7 +57,8 @@ const createStoreFactory = (notifyAfterCreation) => {
57
57
  cb(object);
58
58
  }
59
59
  return () => storeListeners.delete(cb);
60
- })
60
+ }),
61
+ enqueueNotification
61
62
  ];
62
63
  function createProxy(object) {
63
64
  if (proxiesCache.has(object)) {
package/dist/index.cjs CHANGED
@@ -1,7 +1,5 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var core = require('./core.cjs');
6
4
 
7
5
 
package/dist/index.umd.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("./core")):"function"==typeof define&&define.amd?define(["exports","./core"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).slimlibStore={},e.slimlibStoreCore)}(this,(function(e,t){"use strict";Object.keys(t).forEach((function(n){"default"===n||e.hasOwnProperty(n)||Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})),Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("./core")):"function"==typeof define&&define.amd?define(["exports","./core"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).slimlibStore={},e.slimlibStoreCore)}(this,(function(e,t){"use strict";Object.keys(t).forEach((function(n){"default"===n||e.hasOwnProperty(n)||Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})}))}));
2
2
  //# sourceMappingURL=index.umd.js.map
package/dist/preact.cjs CHANGED
@@ -1,7 +1,5 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var hooks = require('preact/hooks');
6
4
  var core = require('./core.cjs');
7
5
 
package/dist/preact.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import { Store } from './core';
2
- export declare const createStore: <T extends object>(object?: T) => [T, Store<T>];
2
+ export declare const createStore: <T extends object>(object?: T) => [T, Store<T>, () => void];
3
3
  export declare const useStore: <T>(store: Store<T>) => Readonly<T>;
@@ -1,2 +1,2 @@
1
- !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports,require("preact/hooks"),require("./core")):"function"==typeof define&&define.amd?define(["exports","preact/hooks","./core"],o):o((e="undefined"!=typeof globalThis?globalThis:e||self).slimlibStorePreact={},e.preactHooks,e.slimlibStoreCore)}(this,(function(e,o,t){"use strict";const n=t.createStoreFactory(!1);e.createStore=n,e.useStore=e=>{const[,t]=o.useState();return o.useEffect((()=>e((()=>t({})))),[e]),e()},Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports,require("preact/hooks"),require("./core")):"function"==typeof define&&define.amd?define(["exports","preact/hooks","./core"],o):o((e="undefined"!=typeof globalThis?globalThis:e||self).slimlibStorePreact={},e.preactHooks,e.slimlibStoreCore)}(this,(function(e,o,t){"use strict";const n=t.createStoreFactory(!1);e.createStore=n,e.useStore=e=>{const[,t]=o.useState();return o.useEffect((()=>e((()=>t({})))),[e]),e()}}));
2
2
  //# sourceMappingURL=preact.umd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"preact.umd.js","sources":["../src/preact.ts"],"sourcesContent":["import { useState, useEffect } from 'preact/hooks';\nimport { createStoreFactory, Store } from './core';\n\nexport const createStore = createStoreFactory(false);\n\nexport const useStore = <T>(store: Store<T>) => {\n const [, setState] = useState<object>();\n \n useEffect(() => {\n return store(() => setState({}));\n }, [store]);\n \n return store();\n};\n"],"names":["createStore","createStoreFactory","store","setState","useState","useEffect"],"mappings":"uWAGaA,EAAcC,sBAAmB,8BAElBC,IACxB,OAASC,GAAYC,aAMrB,OAJAC,aAAU,IACCH,GAAM,IAAMC,EAAS,OAC7B,CAACD,IAEGA"}
1
+ {"version":3,"file":"preact.umd.js","sources":["../src/preact.ts"],"sourcesContent":["import { useState, useEffect } from 'preact/hooks';\nimport { createStoreFactory, Store } from './core';\n\nexport const createStore = createStoreFactory(false);\n\nexport const useStore = <T>(store: Store<T>) => {\n const [, setState] = useState<object>();\n \n useEffect(() => {\n return store(() => setState({}));\n }, [store]);\n \n return store();\n};\n"],"names":["createStore","createStoreFactory","store","setState","useState","useEffect"],"mappings":"uWAGaA,EAAcC,EAAkBA,oBAAC,8BAElBC,IACxB,MAAS,CAAAC,GAAYC,EAAAA,WAMrB,OAJAC,EAAAA,WAAU,IACCH,GAAM,IAAMC,EAAS,OAC7B,CAACD,IAEGA"}
package/dist/react.cjs CHANGED
@@ -1,7 +1,5 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var react = require('react');
6
4
  var core = require('./core.cjs');
7
5
 
package/dist/react.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import { Store } from './core';
2
- export declare const createStore: <T extends object>(object?: T) => [T, Store<T>];
2
+ export declare const createStore: <T extends object>(object?: T) => [T, Store<T>, () => void];
3
3
  export declare const useStore: <T>(store: Store<T>) => Readonly<T>;
package/dist/react.umd.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("./core")):"function"==typeof define&&define.amd?define(["exports","react","./core"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).slimlibStoreReact={},e.react,e.slimlibStoreCore)}(this,(function(e,t,o){"use strict";const n=o.createStoreFactory(!1);e.createStore=n,e.useStore=e=>{const[,o]=t.useState();return t.useEffect((()=>e((()=>o({})))),[e]),e()},Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("./core")):"function"==typeof define&&define.amd?define(["exports","react","./core"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).slimlibStoreReact={},e.react,e.slimlibStoreCore)}(this,(function(e,t,o){"use strict";const n=o.createStoreFactory(!1);e.createStore=n,e.useStore=e=>{const[,o]=t.useState();return t.useEffect((()=>e((()=>o({})))),[e]),e()}}));
2
2
  //# sourceMappingURL=react.umd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"react.umd.js","sources":["../src/react.ts"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport { createStoreFactory, Store } from './core';\n\nexport const createStore = createStoreFactory(false);\n\nexport const useStore = <T>(store: Store<T>) => {\n const [, setState] = useState<object>();\n \n useEffect(() => {\n return store(() => setState({}));\n }, [store]);\n \n return store();\n};\n"],"names":["createStore","createStoreFactory","store","setState","useState","useEffect"],"mappings":"kVAGaA,EAAcC,sBAAmB,8BAElBC,IACxB,OAASC,GAAYC,aAMrB,OAJAC,aAAU,IACCH,GAAM,IAAMC,EAAS,OAC7B,CAACD,IAEGA"}
1
+ {"version":3,"file":"react.umd.js","sources":["../src/react.ts"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport { createStoreFactory, Store } from './core';\n\nexport const createStore = createStoreFactory(false);\n\nexport const useStore = <T>(store: Store<T>) => {\n const [, setState] = useState<object>();\n \n useEffect(() => {\n return store(() => setState({}));\n }, [store]);\n \n return store();\n};\n"],"names":["createStore","createStoreFactory","store","setState","useState","useEffect"],"mappings":"kVAGaA,EAAcC,EAAkBA,oBAAC,8BAElBC,IACxB,MAAS,CAAAC,GAAYC,EAAAA,WAMrB,OAJAC,EAAAA,WAAU,IACCH,GAAM,IAAMC,EAAS,OAC7B,CAACD,IAEGA"}
package/dist/svelte.cjs CHANGED
@@ -1,7 +1,5 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var core = require('./core.cjs');
6
4
 
7
5
  const createStore = core.createStoreFactory(true);
package/dist/svelte.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const createStore: <T extends object>(object?: T) => [T, import("./core").Store<T>];
1
+ export declare const createStore: <T extends object>(object?: T) => [T, import("./core").Store<T>, () => void];
@@ -1,2 +1,2 @@
1
- !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports,require("./core")):"function"==typeof define&&define.amd?define(["exports","./core"],o):o((e="undefined"!=typeof globalThis?globalThis:e||self).slimlibStoreSvelte={},e.slimlibStoreCore)}(this,(function(e,o){"use strict";const t=o.createStoreFactory(!0);e.createStore=t,Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports,require("./core")):"function"==typeof define&&define.amd?define(["exports","./core"],o):o((e="undefined"!=typeof globalThis?globalThis:e||self).slimlibStoreSvelte={},e.slimlibStoreCore)}(this,(function(e,o){"use strict";const t=o.createStoreFactory(!0);e.createStore=t}));
2
2
  //# sourceMappingURL=svelte.umd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"svelte.umd.js","sources":["../src/svelte.ts"],"sourcesContent":["import { createStoreFactory } from './core';\n\nexport const createStore = createStoreFactory(true);\n"],"names":["createStore","createStoreFactory"],"mappings":"gTAEaA,EAAcC,sBAAmB"}
1
+ {"version":3,"file":"svelte.umd.js","sources":["../src/svelte.ts"],"sourcesContent":["import { createStoreFactory } from './core';\n\nexport const createStore = createStoreFactory(true);\n"],"names":["createStore","createStoreFactory"],"mappings":"gTAEaA,EAAcC,EAAkBA,oBAAC"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.2.0",
2
+ "version": "1.3.1",
3
3
  "license": "MIT",
4
4
  "name": "@slimlib/store",
5
5
  "author": "Konstantin Shutkin",
@@ -38,9 +38,6 @@
38
38
  "core",
39
39
  "svelte"
40
40
  ],
41
- "engines": {
42
- "node": ">=15"
43
- },
44
41
  "repository": {
45
42
  "type": "git",
46
43
  "url": "git+https://github.com/kshutkin/slimlib.git"
@@ -80,7 +77,7 @@
80
77
  "conventional-changelog-angular": "5.0.13",
81
78
  "eslint": "8.8.0",
82
79
  "jest": "27.5.1",
83
- "pkgbld": "1.2.0",
80
+ "pkgbld": "1.7.1",
84
81
  "preact": ">=10.0.0",
85
82
  "react": ">=17.0.0",
86
83
  "react-dom": ">=17.0.0",
@@ -1,3 +1,5 @@
1
1
  {
2
- "types": "../dist/preact.d.ts"
2
+ "type": "module",
3
+ "types": "../dist/preact.d.ts",
4
+ "main": "../dist/preact.mjs"
3
5
  }
@@ -1,3 +1,5 @@
1
1
  {
2
- "types": "../dist/react.d.ts"
2
+ "type": "module",
3
+ "types": "../dist/react.d.ts",
4
+ "main": "../dist/react.mjs"
3
5
  }
@@ -1,3 +1,5 @@
1
1
  {
2
- "types": "../dist/svelte.d.ts"
2
+ "type": "module",
3
+ "types": "../dist/svelte.d.ts",
4
+ "main": "../dist/svelte.mjs"
3
5
  }