@openmrs/esm-state 5.1.0 → 5.1.1-pre.1001
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/.turbo/turbo-build.log +6 -6
- package/dist/openmrs-esm-state.js +1 -1
- package/dist/openmrs-esm-state.js.map +1 -1
- package/package.json +5 -2
- package/src/public.ts +0 -1
- package/src/state.ts +9 -14
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
[
|
|
2
|
-
[
|
|
3
|
-
[
|
|
4
|
-
[
|
|
5
|
-
[
|
|
6
|
-
[
|
|
1
|
+
[33m@openmrs/esm-state:build[0m: cache hit, replaying output [2mfe3d5c3c8a10f832[0m
|
|
2
|
+
[33m@openmrs/esm-state:build: [0masset [1m[32mopenmrs-esm-state.js[39m[22m 1.63 KiB [1m[32m[emitted][39m[22m [1m[32m[minimized][39m[22m (name: main) 1 related asset
|
|
3
|
+
[33m@openmrs/esm-state:build: [0mruntime modules 670 bytes 3 modules
|
|
4
|
+
[33m@openmrs/esm-state:build: [0morphan modules 3.76 KiB [1m[33m[orphan][39m[22m 2 modules
|
|
5
|
+
[33m@openmrs/esm-state:build: [0m[1m./src/index.ts + 2 modules[39m[22m 3.78 KiB [1m[33m[built][39m[22m [1m[33m[code generated][39m[22m
|
|
6
|
+
[33m@openmrs/esm-state:build: [0mwebpack 5.88.0 compiled [1m[32msuccessfully[39m[22m in 14549 ms
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
System.register([],(function(e,t){return{execute:function(){e((()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{
|
|
1
|
+
System.register([],(function(e,t){return{execute:function(){e((()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{createGlobalStore:()=>a,getGlobalStore:()=>u,subscribeTo:()=>i});const r=e=>{let t;const r=new Set,n=(e,n)=>{const o="function"==typeof e?e(t):e;if(!Object.is(o,t)){const e=t;t=(null!=n?n:"object"!=typeof o)?o:Object.assign({},t,o),r.forEach((r=>r(t,e)))}},o=()=>t,a={setState:n,getState:o,subscribe:e=>(r.add(e),()=>r.delete(e)),destroy:()=>{console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),r.clear()}};return t=e(n,o,a),a},n=e=>e?r(e):r;var o={};function a(e,t){var r=o[e];if(r)return r.active?console.error("Cannot override an existing store. Make sure that stores are only created once."):r.value.setState(t,!0),r.active=!0,r.value;var a=n()((function(){return t}));return o[e]={value:a,active:!0},a}function u(e,t){var r=o[e];if(!r){var a=n()((function(){return null!=t?t:{}}));return o[e]={value:a,active:!1},a}return r.value}function i(e,t,r){var n=t(e.getState());return e.subscribe((function(e){var o=t(e);o!==n&&(n=o,r(o))}))}return setTimeout((function(){"development"===window.spaEnv&&(window.stores=o)}),1e3),t})())}}}));
|
|
2
2
|
//# sourceMappingURL=openmrs-esm-state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openmrs-esm-state.js","mappings":"iFACA,IAAIA,EAAsB,CCA1BA,EAAwB,CAACC,EAASC,KACjC,IAAI,IAAIC,KAAOD,EACXF,EAAoBI,EAAEF,EAAYC,KAASH,EAAoBI,EAAEH,EAASE,IAC5EE,OAAOC,eAAeL,EAASE,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,ECNDH,EAAwB,CAACS,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,GCClFV,EAAyBC,IACH,oBAAXa,QAA0BA,OAAOC,aAC1CV,OAAOC,eAAeL,EAASa,OAAOC,YAAa,CAAEC,MAAO,WAE7DX,OAAOC,eAAeL,EAAS,aAAc,CAAEe,OAAO,GAAO,G,
|
|
1
|
+
{"version":3,"file":"openmrs-esm-state.js","mappings":"iFACA,IAAIA,EAAsB,CCA1BA,EAAwB,CAACC,EAASC,KACjC,IAAI,IAAIC,KAAOD,EACXF,EAAoBI,EAAEF,EAAYC,KAASH,EAAoBI,EAAEH,EAASE,IAC5EE,OAAOC,eAAeL,EAASE,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,ECNDH,EAAwB,CAACS,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,GCClFV,EAAyBC,IACH,oBAAXa,QAA0BA,OAAOC,aAC1CV,OAAOC,eAAeL,EAASa,OAAOC,YAAa,CAAEC,MAAO,WAE7DX,OAAOC,eAAeL,EAAS,aAAc,CAAEe,OAAO,GAAO,G,oFCL9D,MAAMC,EAAmBC,IACvB,IAAIC,EACJ,MAAMC,EAA4B,IAAIC,IAChCC,EAAW,CAACC,EAASC,KACzB,MAAMC,EAA+B,mBAAZF,EAAyBA,EAAQJ,GAASI,EACnE,IAAKlB,OAAOqB,GAAGD,EAAWN,GAAQ,CAChC,MAAMQ,EAAgBR,EACtBA,GAAoB,MAAXK,EAAkBA,EAA+B,iBAAdC,GAA0BA,EAAYpB,OAAOuB,OAAO,CAAC,EAAGT,EAAOM,GAC3GL,EAAUS,SAASC,GAAaA,EAASX,EAAOQ,IAClD,GAEII,EAAW,IAAMZ,EAajBa,EAAM,CAAEV,WAAUS,WAAUE,UAZfH,IACjBV,EAAUc,IAAIJ,GACP,IAAMV,EAAUe,OAAOL,IAUaM,QAR7B,KAEZC,QAAQC,KACN,0MAGJlB,EAAUmB,OAAO,GAInB,OADApB,EAAQD,EAAYI,EAAUS,EAAUC,GACjCA,CAAG,EAENQ,EAAetB,GAAgBA,EAAcD,EAAgBC,GAAeD,EAClF,ICpBMwB,EAA+C,CAAC,EAkB/C,SAASC,EACdC,EACAC,GAEA,IAAMC,EAAYJ,EAAgBE,GAElC,GAAIE,EAUF,OATIA,EAAUC,OACZT,QAAQU,MACN,mFAGFF,EAAU7B,MAAMM,SAASsB,GAAc,GAGzCC,EAAUC,QAAS,EACZD,EAAU7B,MAEjB,IAAMgC,EAAQR,KAAiB,W,OAAMI,C,IAOrC,OALAH,EAAgBE,GAAQ,CACtB3B,MAAOgC,EACPF,QAAQ,GAGHE,CAEX,CAUO,SAASC,EACdN,EACAO,GAEA,IAAML,EAAYJ,EAAgBE,GAElC,IAAKE,EAAW,CACd,IAAMG,EAAQR,KAAiB,W,OAAMU,QAAAA,EAAkB,CAAC,C,IAKxD,OAJAT,EAAgBE,GAAQ,CACtB3B,MAAOgC,EACPF,QAAQ,GAEHE,CACT,CAEA,OAAOH,EAAU7B,KACnB,CAIO,SAASmC,EACdH,EACAI,EACAC,GAEA,IAAIC,EAAWF,EAAOJ,EAAMjB,YAE5B,OAAOiB,EAAMf,WAAU,SAACd,GACtB,IAAMoC,EAAUH,EAAOjC,GAEnBoC,IAAYD,IACdA,EAAWC,EACXF,EAAOE,GAEX,GACF,C,OAtFAC,YAAW,WACa,gBAAlBC,OAAOC,SACTD,OAAe,OAAIhB,EAEvB,GAAG,K","sources":["webpack://@openmrs/esm-state/webpack/bootstrap","webpack://@openmrs/esm-state/webpack/runtime/define property getters","webpack://@openmrs/esm-state/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-state/webpack/runtime/make namespace object","webpack://@openmrs/esm-state/../../../node_modules/zustand/esm/vanilla.mjs","webpack://@openmrs/esm-state/./src/state.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\") ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const destroy = () => {\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n console.warn(\n \"[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected.\"\n );\n }\n listeners.clear();\n };\n const api = { setState, getState, subscribe, destroy };\n state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\nvar vanilla = (createState) => {\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n console.warn(\n \"[DEPRECATED] Default export is deprecated. Instead use import { createStore } from 'zustand/vanilla'.\"\n );\n }\n return createStore(createState);\n};\n\nexport { createStore, vanilla as default };\n","/** @module @category Store */\nimport { createStore, StoreApi } from \"zustand/vanilla\";\nimport type {} from \"@openmrs/esm-globals\";\n\ninterface StoreEntity {\n value: StoreApi<unknown>;\n active: boolean;\n}\n\nconst availableStores: Record<string, StoreEntity> = {};\n\n// spaEnv isn't available immediately. Wait a bit before making stores available\n// on window in development mode.\nsetTimeout(() => {\n if (window.spaEnv === \"development\") {\n window[\"stores\"] = availableStores;\n }\n}, 1000);\n\n/**\n * Creates a Zustand store.\n *\n * @param name A name by which the store can be looked up later.\n * Must be unique across the entire application.\n * @param initialState An object which will be the initial state of the store.\n * @returns The newly created store.\n */\nexport function createGlobalStore<T>(\n name: string,\n initialState: T\n): StoreApi<T> {\n const available = availableStores[name];\n\n if (available) {\n if (available.active) {\n console.error(\n \"Cannot override an existing store. Make sure that stores are only created once.\"\n );\n } else {\n available.value.setState(initialState, true);\n }\n\n available.active = true;\n return available.value as StoreApi<T>;\n } else {\n const store = createStore<T>()(() => initialState);\n\n availableStores[name] = {\n value: store,\n active: true,\n };\n\n return store;\n }\n}\n\n/**\n * Returns the existing store named `name`,\n * or creates a new store named `name` if none exists.\n *\n * @param name The name of the store to look up.\n * @param fallbackState The initial value of the new store if no store named `name` exists.\n * @returns The found or newly created store.\n */\nexport function getGlobalStore<T>(\n name: string,\n fallbackState?: T\n): StoreApi<T> {\n const available = availableStores[name];\n\n if (!available) {\n const store = createStore<T>()(() => fallbackState ?? ({} as unknown as T));\n availableStores[name] = {\n value: store,\n active: false,\n };\n return store;\n }\n\n return available.value as StoreApi<T>;\n}\n\nexport interface AppState {}\n\nexport function subscribeTo<T, U>(\n store: StoreApi<T>,\n select: (state: T) => U,\n handle: (subState: U) => void\n) {\n let previous = select(store.getState());\n\n return store.subscribe((state) => {\n const current = select(state);\n\n if (current !== previous) {\n previous = current;\n handle(current);\n }\n });\n}\n"],"names":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","createStoreImpl","createState","state","listeners","Set","setState","partial","replace","nextState","is","previousState","assign","forEach","listener","getState","api","subscribe","add","delete","destroy","console","warn","clear","createStore","availableStores","createGlobalStore","name","initialState","available","active","error","store","getGlobalStore","fallbackState","subscribeTo","select","handle","previous","current","setTimeout","window","spaEnv"],"sourceRoot":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openmrs/esm-state",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.1-pre.1001",
|
|
4
4
|
"license": "MPL-2.0",
|
|
5
5
|
"description": "Frontend stores & state management for OpenMRS",
|
|
6
6
|
"browser": "dist/openmrs-esm-state.js",
|
|
@@ -39,5 +39,8 @@
|
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"zustand": "^4.3.6"
|
|
41
41
|
},
|
|
42
|
-
"
|
|
42
|
+
"peerDependencies": {
|
|
43
|
+
"@openmrs/esm-globals": "5.x"
|
|
44
|
+
},
|
|
45
|
+
"gitHead": "72fcc253e861b297cb796cfad0c9c44150c4de4c"
|
|
43
46
|
}
|
package/src/public.ts
CHANGED
package/src/state.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/** @module @category Store */
|
|
2
2
|
import { createStore, StoreApi } from "zustand/vanilla";
|
|
3
|
+
import type {} from "@openmrs/esm-globals";
|
|
3
4
|
|
|
4
5
|
interface StoreEntity {
|
|
5
6
|
value: StoreApi<unknown>;
|
|
@@ -8,6 +9,14 @@ interface StoreEntity {
|
|
|
8
9
|
|
|
9
10
|
const availableStores: Record<string, StoreEntity> = {};
|
|
10
11
|
|
|
12
|
+
// spaEnv isn't available immediately. Wait a bit before making stores available
|
|
13
|
+
// on window in development mode.
|
|
14
|
+
setTimeout(() => {
|
|
15
|
+
if (window.spaEnv === "development") {
|
|
16
|
+
window["stores"] = availableStores;
|
|
17
|
+
}
|
|
18
|
+
}, 1000);
|
|
19
|
+
|
|
11
20
|
/**
|
|
12
21
|
* Creates a Zustand store.
|
|
13
22
|
*
|
|
@@ -73,20 +82,6 @@ export function getGlobalStore<T>(
|
|
|
73
82
|
|
|
74
83
|
export interface AppState {}
|
|
75
84
|
|
|
76
|
-
/**
|
|
77
|
-
* @internal
|
|
78
|
-
*/
|
|
79
|
-
export function createAppState(initialState: AppState) {
|
|
80
|
-
return createGlobalStore("app", initialState);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* @returns The [store](https://github.com/developit/unistore#store) named `app`.
|
|
85
|
-
*/
|
|
86
|
-
export function getAppState() {
|
|
87
|
-
return getGlobalStore<AppState>("app", {});
|
|
88
|
-
}
|
|
89
|
-
|
|
90
85
|
export function subscribeTo<T, U>(
|
|
91
86
|
store: StoreApi<T>,
|
|
92
87
|
select: (state: T) => U,
|