@artisan-commerce/state 0.3.0-canary.10 → 0.3.0-canary.12

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.
@@ -18,30 +18,35 @@ var __spreadValues = (a, b) => {
18
18
  }
19
19
  return a;
20
20
  };
21
- let state = null;
22
- const initState = (initialState) => {
23
- Object.freeze(initialState);
24
- state = __spreadValues({}, initialState);
25
- Object.seal(state);
26
- };
27
- const setState = (overrides) => {
28
- const tempState = state ? __spreadValues({}, state) : {};
29
- state = null;
30
- state = __spreadValues(__spreadValues({}, tempState), overrides);
31
- Object.seal(state);
32
- };
33
- const getState = () => {
34
- if (state === null) {
35
- throw new Error("The state has not been initialized, make sure to call initState beforehand");
21
+ const _State = class {
22
+ constructor(state) {
23
+ this._state = state;
24
+ this._initialState = state;
25
+ }
26
+ static getInstance(initialState) {
27
+ if (!_State._instance) {
28
+ _State._instance = new _State(initialState);
29
+ }
30
+ return _State._instance;
31
+ }
32
+ setState(overrides) {
33
+ this._state = __spreadValues(__spreadValues({}, this._state), overrides);
34
+ }
35
+ get state() {
36
+ if (this._state === null) {
37
+ throw new Error("The state has not been initialized, make sure to call State.init beforehand");
38
+ }
39
+ return this._state;
40
+ }
41
+ checkInit() {
42
+ return !!this._state;
43
+ }
44
+ reset() {
45
+ this._state = this._initialState;
36
46
  }
37
- return __spreadValues({}, state);
38
- };
39
- const checkInit = () => {
40
- return !!state;
41
47
  };
48
+ let State = _State;
49
+ State._instance = null;
42
50
 
43
- exports.checkInit = checkInit;
44
- exports.getState = getState;
45
- exports.initState = initState;
46
- exports.setState = setState;
51
+ exports.State = State;
47
52
  //# sourceMappingURL=bundle.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.cjs.js","sources":["../src/lib/state.ts"],"sourcesContent":["// Common functions and data\n\n/**\n * @since 0.1.0\n * @typedef State\n */\ntype State = Record<string, any>;\n\n/**\n * Global state.\n * @since 0.1.0\n */\nlet state: State | null = null;\n\n/**\n * Initializes the global state.\n *\n * @since 0.1.0\n * @param {T} initialState Initial global state\n */\nexport const initState = <T extends State>(initialState: T) => {\n Object.freeze(initialState);\n state = { ...initialState } as T;\n Object.seal(state);\n};\n\n/**\n * Updates the global state.\n *\n * @since 0.1.0\n * @param {T} overrides Global state overrides\n */\nexport const setState = <T extends State>(overrides: Partial<T>) => {\n const tempState = state ? { ...state } : {};\n state = null;\n state = { ...tempState, ...overrides } as T;\n Object.seal(state);\n};\n\n/**\n * Returns the global state.\n *\n * @since 0.1.0\n * @returns {T} The global state\n */\nexport const getState = <T extends State>() => {\n if (state === null) {\n throw new Error(\n \"The state has not been initialized, make sure to call initState beforehand\"\n );\n }\n return { ...state } as T;\n};\n\n/**\n * Returns whether the state has been initialized.\n *\n * @since 0.1.0\n * @returns {boolean} Whether the state has been initialized\n */\nexport const checkInit = () => {\n return !!state;\n};\n"],"names":[],"mappings":";;;;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF,IAAI,KAAK,GAAG,IAAI,CAAC;AACL,MAAC,SAAS,GAAG,CAAC,YAAY,KAAK;AAC3C,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAC9B,EAAE,KAAK,GAAG,cAAc,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;AAC3C,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrB,EAAE;AACU,MAAC,QAAQ,GAAG,CAAC,SAAS,KAAK;AACvC,EAAE,MAAM,SAAS,GAAG,KAAK,GAAG,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;AAC3D,EAAE,KAAK,GAAG,IAAI,CAAC;AACf,EAAE,KAAK,GAAG,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;AACnE,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrB,EAAE;AACU,MAAC,QAAQ,GAAG,MAAM;AAC9B,EAAE,IAAI,KAAK,KAAK,IAAI,EAAE;AACtB,IAAI,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;AAClG,GAAG;AACH,EAAE,OAAO,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AACnC,EAAE;AACU,MAAC,SAAS,GAAG,MAAM;AAC/B,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC;AACjB;;;;;;;"}
1
+ {"version":3,"file":"bundle.cjs.js","sources":["../src/lib/state.ts"],"sourcesContent":["// Common functions and data\n\n/**\n * @since 0.1.0\n * @typedef State\n */\nexport type GlobalState = Record<string, any>;\n\n/**\n *\n * Create a global state.\n *\n * @example\n * interface Animal {\n * walk: () => void;\n * name: string;\n * }\n *\n * function getDogState(): State<Animal> {\n * return State.getInstance({ name: \"Rancho\", walk: () => {} });\n * }\n *\n * const dogState = getDogState();\n */\nexport class State<T extends GlobalState> {\n static _instance: State<any> | null = null;\n private _initialState: T;\n private _state: T;\n\n private constructor(state: T) {\n this._state = state;\n this._initialState = state;\n }\n\n public static getInstance<T extends GlobalState>(initialState: T): State<T> {\n if (!State._instance) {\n State._instance = new State<T>(initialState);\n }\n return State._instance as State<T>;\n }\n\n /**\n * Updates the global state.\n *\n * @since 0.1.0\n * @param {T} overrides Global state overrides\n */\n public setState(overrides: Partial<T>) {\n this._state = { ...this._state, ...overrides };\n }\n\n /**\n * Returns the global state.\n *\n * @since 0.1.0\n * @returns {T} The global state\n */\n public get state(): T {\n if (this._state === null) {\n throw new Error(\n \"The state has not been initialized, make sure to call State.init beforehand\"\n );\n }\n return this._state;\n }\n\n /**\n * Returns whether the state has been initialized.\n *\n * @since 0.1.0\n * @returns {boolean} Whether the state has been initialized\n */\n public checkInit(): boolean {\n return !!this._state;\n }\n\n /**\n * Reset state to the given initial state.\n *\n * @since 0.1.0\n */\n public reset() {\n this._state = this._initialState;\n }\n}\n"],"names":[],"mappings":";;;;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF,MAAM,MAAM,GAAG,MAAM;AACrB,EAAE,WAAW,CAAC,KAAK,EAAE;AACrB,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,IAAI,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC/B,GAAG;AACH,EAAE,OAAO,WAAW,CAAC,YAAY,EAAE;AACnC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;AAC3B,MAAM,MAAM,CAAC,SAAS,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;AAClD,KAAK;AACL,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC;AAC5B,GAAG;AACH,EAAE,QAAQ,CAAC,SAAS,EAAE;AACtB,IAAI,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;AAC7E,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;AAC9B,MAAM,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;AACrG,KAAK;AACL,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC;AACvB,GAAG;AACH,EAAE,SAAS,GAAG;AACd,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;AACzB,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;AACrC,GAAG;AACH,CAAC,CAAC;AACQ,IAAC,KAAK,GAAG,OAAO;AAC1B,KAAK,CAAC,SAAS,GAAG,IAAI;;;;"}
package/dist/bundle.d.ts CHANGED
@@ -2,34 +2,56 @@
2
2
  * @since 0.1.0
3
3
  * @typedef State
4
4
  */
5
- declare type State = Record<string, any>;
5
+ declare type GlobalState = Record<string, any>;
6
6
  /**
7
- * Initializes the global state.
8
7
  *
9
- * @since 0.1.0
10
- * @param {T} initialState Initial global state
11
- */
12
- declare const initState: <T extends State>(initialState: T) => void;
13
- /**
14
- * Updates the global state.
8
+ * Create a global state.
15
9
  *
16
- * @since 0.1.0
17
- * @param {T} overrides Global state overrides
18
- */
19
- declare const setState: <T extends State>(overrides: Partial<T>) => void;
20
- /**
21
- * Returns the global state.
10
+ * @example
11
+ * interface Animal {
12
+ * walk: () => void;
13
+ * name: string;
14
+ * }
22
15
  *
23
- * @since 0.1.0
24
- * @returns {T} The global state
25
- */
26
- declare const getState: <T extends State>() => T;
27
- /**
28
- * Returns whether the state has been initialized.
16
+ * function getDogState(): State<Animal> {
17
+ * return State.getInstance({ name: "Rancho", walk: () => {} });
18
+ * }
29
19
  *
30
- * @since 0.1.0
31
- * @returns {boolean} Whether the state has been initialized
20
+ * const dogState = getDogState();
32
21
  */
33
- declare const checkInit: () => boolean;
22
+ declare class State<T extends GlobalState> {
23
+ static _instance: State<any> | null;
24
+ private _initialState;
25
+ private _state;
26
+ private constructor();
27
+ static getInstance<T extends GlobalState>(initialState: T): State<T>;
28
+ /**
29
+ * Updates the global state.
30
+ *
31
+ * @since 0.1.0
32
+ * @param {T} overrides Global state overrides
33
+ */
34
+ setState(overrides: Partial<T>): void;
35
+ /**
36
+ * Returns the global state.
37
+ *
38
+ * @since 0.1.0
39
+ * @returns {T} The global state
40
+ */
41
+ get state(): T;
42
+ /**
43
+ * Returns whether the state has been initialized.
44
+ *
45
+ * @since 0.1.0
46
+ * @returns {boolean} Whether the state has been initialized
47
+ */
48
+ checkInit(): boolean;
49
+ /**
50
+ * Reset state to the given initial state.
51
+ *
52
+ * @since 0.1.0
53
+ */
54
+ reset(): void;
55
+ }
34
56
 
35
- export { checkInit, getState, initState, setState };
57
+ export { State };
@@ -14,27 +14,35 @@ var __spreadValues = (a, b) => {
14
14
  }
15
15
  return a;
16
16
  };
17
- let state = null;
18
- const initState = (initialState) => {
19
- Object.freeze(initialState);
20
- state = __spreadValues({}, initialState);
21
- Object.seal(state);
22
- };
23
- const setState = (overrides) => {
24
- const tempState = state ? __spreadValues({}, state) : {};
25
- state = null;
26
- state = __spreadValues(__spreadValues({}, tempState), overrides);
27
- Object.seal(state);
28
- };
29
- const getState = () => {
30
- if (state === null) {
31
- throw new Error("The state has not been initialized, make sure to call initState beforehand");
17
+ const _State = class {
18
+ constructor(state) {
19
+ this._state = state;
20
+ this._initialState = state;
21
+ }
22
+ static getInstance(initialState) {
23
+ if (!_State._instance) {
24
+ _State._instance = new _State(initialState);
25
+ }
26
+ return _State._instance;
27
+ }
28
+ setState(overrides) {
29
+ this._state = __spreadValues(__spreadValues({}, this._state), overrides);
30
+ }
31
+ get state() {
32
+ if (this._state === null) {
33
+ throw new Error("The state has not been initialized, make sure to call State.init beforehand");
34
+ }
35
+ return this._state;
36
+ }
37
+ checkInit() {
38
+ return !!this._state;
39
+ }
40
+ reset() {
41
+ this._state = this._initialState;
32
42
  }
33
- return __spreadValues({}, state);
34
- };
35
- const checkInit = () => {
36
- return !!state;
37
43
  };
44
+ let State = _State;
45
+ State._instance = null;
38
46
 
39
- export { checkInit, getState, initState, setState };
47
+ export { State };
40
48
  //# sourceMappingURL=bundle.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.esm.js","sources":["../src/lib/state.ts"],"sourcesContent":["// Common functions and data\n\n/**\n * @since 0.1.0\n * @typedef State\n */\ntype State = Record<string, any>;\n\n/**\n * Global state.\n * @since 0.1.0\n */\nlet state: State | null = null;\n\n/**\n * Initializes the global state.\n *\n * @since 0.1.0\n * @param {T} initialState Initial global state\n */\nexport const initState = <T extends State>(initialState: T) => {\n Object.freeze(initialState);\n state = { ...initialState } as T;\n Object.seal(state);\n};\n\n/**\n * Updates the global state.\n *\n * @since 0.1.0\n * @param {T} overrides Global state overrides\n */\nexport const setState = <T extends State>(overrides: Partial<T>) => {\n const tempState = state ? { ...state } : {};\n state = null;\n state = { ...tempState, ...overrides } as T;\n Object.seal(state);\n};\n\n/**\n * Returns the global state.\n *\n * @since 0.1.0\n * @returns {T} The global state\n */\nexport const getState = <T extends State>() => {\n if (state === null) {\n throw new Error(\n \"The state has not been initialized, make sure to call initState beforehand\"\n );\n }\n return { ...state } as T;\n};\n\n/**\n * Returns whether the state has been initialized.\n *\n * @since 0.1.0\n * @returns {boolean} Whether the state has been initialized\n */\nexport const checkInit = () => {\n return !!state;\n};\n"],"names":[],"mappings":"AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF,IAAI,KAAK,GAAG,IAAI,CAAC;AACL,MAAC,SAAS,GAAG,CAAC,YAAY,KAAK;AAC3C,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAC9B,EAAE,KAAK,GAAG,cAAc,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;AAC3C,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrB,EAAE;AACU,MAAC,QAAQ,GAAG,CAAC,SAAS,KAAK;AACvC,EAAE,MAAM,SAAS,GAAG,KAAK,GAAG,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;AAC3D,EAAE,KAAK,GAAG,IAAI,CAAC;AACf,EAAE,KAAK,GAAG,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;AACnE,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrB,EAAE;AACU,MAAC,QAAQ,GAAG,MAAM;AAC9B,EAAE,IAAI,KAAK,KAAK,IAAI,EAAE;AACtB,IAAI,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;AAClG,GAAG;AACH,EAAE,OAAO,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AACnC,EAAE;AACU,MAAC,SAAS,GAAG,MAAM;AAC/B,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC;AACjB;;;;"}
1
+ {"version":3,"file":"bundle.esm.js","sources":["../src/lib/state.ts"],"sourcesContent":["// Common functions and data\n\n/**\n * @since 0.1.0\n * @typedef State\n */\nexport type GlobalState = Record<string, any>;\n\n/**\n *\n * Create a global state.\n *\n * @example\n * interface Animal {\n * walk: () => void;\n * name: string;\n * }\n *\n * function getDogState(): State<Animal> {\n * return State.getInstance({ name: \"Rancho\", walk: () => {} });\n * }\n *\n * const dogState = getDogState();\n */\nexport class State<T extends GlobalState> {\n static _instance: State<any> | null = null;\n private _initialState: T;\n private _state: T;\n\n private constructor(state: T) {\n this._state = state;\n this._initialState = state;\n }\n\n public static getInstance<T extends GlobalState>(initialState: T): State<T> {\n if (!State._instance) {\n State._instance = new State<T>(initialState);\n }\n return State._instance as State<T>;\n }\n\n /**\n * Updates the global state.\n *\n * @since 0.1.0\n * @param {T} overrides Global state overrides\n */\n public setState(overrides: Partial<T>) {\n this._state = { ...this._state, ...overrides };\n }\n\n /**\n * Returns the global state.\n *\n * @since 0.1.0\n * @returns {T} The global state\n */\n public get state(): T {\n if (this._state === null) {\n throw new Error(\n \"The state has not been initialized, make sure to call State.init beforehand\"\n );\n }\n return this._state;\n }\n\n /**\n * Returns whether the state has been initialized.\n *\n * @since 0.1.0\n * @returns {boolean} Whether the state has been initialized\n */\n public checkInit(): boolean {\n return !!this._state;\n }\n\n /**\n * Reset state to the given initial state.\n *\n * @since 0.1.0\n */\n public reset() {\n this._state = this._initialState;\n }\n}\n"],"names":[],"mappings":"AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF,MAAM,MAAM,GAAG,MAAM;AACrB,EAAE,WAAW,CAAC,KAAK,EAAE;AACrB,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,IAAI,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC/B,GAAG;AACH,EAAE,OAAO,WAAW,CAAC,YAAY,EAAE;AACnC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;AAC3B,MAAM,MAAM,CAAC,SAAS,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;AAClD,KAAK;AACL,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC;AAC5B,GAAG;AACH,EAAE,QAAQ,CAAC,SAAS,EAAE;AACtB,IAAI,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;AAC7E,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;AAC9B,MAAM,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;AACrG,KAAK;AACL,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC;AACvB,GAAG;AACH,EAAE,SAAS,GAAG;AACd,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;AACzB,GAAG;AACH,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;AACrC,GAAG;AACH,CAAC,CAAC;AACQ,IAAC,KAAK,GAAG,OAAO;AAC1B,KAAK,CAAC,SAAS,GAAG,IAAI;;;;"}
@@ -20,32 +20,37 @@
20
20
  }
21
21
  return a;
22
22
  };
23
- let state = null;
24
- const initState = (initialState) => {
25
- Object.freeze(initialState);
26
- state = __spreadValues({}, initialState);
27
- Object.seal(state);
28
- };
29
- const setState = (overrides) => {
30
- const tempState = state ? __spreadValues({}, state) : {};
31
- state = null;
32
- state = __spreadValues(__spreadValues({}, tempState), overrides);
33
- Object.seal(state);
34
- };
35
- const getState = () => {
36
- if (state === null) {
37
- throw new Error("The state has not been initialized, make sure to call initState beforehand");
23
+ const _State = class {
24
+ constructor(state) {
25
+ this._state = state;
26
+ this._initialState = state;
27
+ }
28
+ static getInstance(initialState) {
29
+ if (!_State._instance) {
30
+ _State._instance = new _State(initialState);
31
+ }
32
+ return _State._instance;
33
+ }
34
+ setState(overrides) {
35
+ this._state = __spreadValues(__spreadValues({}, this._state), overrides);
36
+ }
37
+ get state() {
38
+ if (this._state === null) {
39
+ throw new Error("The state has not been initialized, make sure to call State.init beforehand");
40
+ }
41
+ return this._state;
42
+ }
43
+ checkInit() {
44
+ return !!this._state;
45
+ }
46
+ reset() {
47
+ this._state = this._initialState;
38
48
  }
39
- return __spreadValues({}, state);
40
- };
41
- const checkInit = () => {
42
- return !!state;
43
49
  };
50
+ let State = _State;
51
+ State._instance = null;
44
52
 
45
- exports.checkInit = checkInit;
46
- exports.getState = getState;
47
- exports.initState = initState;
48
- exports.setState = setState;
53
+ exports.State = State;
49
54
 
50
55
  Object.defineProperty(exports, '__esModule', { value: true });
51
56
 
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.umd.js","sources":["../src/lib/state.ts"],"sourcesContent":["// Common functions and data\n\n/**\n * @since 0.1.0\n * @typedef State\n */\ntype State = Record<string, any>;\n\n/**\n * Global state.\n * @since 0.1.0\n */\nlet state: State | null = null;\n\n/**\n * Initializes the global state.\n *\n * @since 0.1.0\n * @param {T} initialState Initial global state\n */\nexport const initState = <T extends State>(initialState: T) => {\n Object.freeze(initialState);\n state = { ...initialState } as T;\n Object.seal(state);\n};\n\n/**\n * Updates the global state.\n *\n * @since 0.1.0\n * @param {T} overrides Global state overrides\n */\nexport const setState = <T extends State>(overrides: Partial<T>) => {\n const tempState = state ? { ...state } : {};\n state = null;\n state = { ...tempState, ...overrides } as T;\n Object.seal(state);\n};\n\n/**\n * Returns the global state.\n *\n * @since 0.1.0\n * @returns {T} The global state\n */\nexport const getState = <T extends State>() => {\n if (state === null) {\n throw new Error(\n \"The state has not been initialized, make sure to call initState beforehand\"\n );\n }\n return { ...state } as T;\n};\n\n/**\n * Returns whether the state has been initialized.\n *\n * @since 0.1.0\n * @returns {boolean} Whether the state has been initialized\n */\nexport const checkInit = () => {\n return !!state;\n};\n"],"names":[],"mappings":";;;;;;EAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;EACtC,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;EACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;EACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;EACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;EAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;EAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;EAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;EAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;EACxC,EAAE,IAAI,mBAAmB;EACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;EAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;EACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;EAC1C,KAAK;EACL,EAAE,OAAO,CAAC,CAAC;EACX,CAAC,CAAC;EACF,IAAI,KAAK,GAAG,IAAI,CAAC;AACL,QAAC,SAAS,GAAG,CAAC,YAAY,KAAK;EAC3C,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;EAC9B,EAAE,KAAK,GAAG,cAAc,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;EAC3C,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EACrB,EAAE;AACU,QAAC,QAAQ,GAAG,CAAC,SAAS,KAAK;EACvC,EAAE,MAAM,SAAS,GAAG,KAAK,GAAG,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;EAC3D,EAAE,KAAK,GAAG,IAAI,CAAC;EACf,EAAE,KAAK,GAAG,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;EACnE,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EACrB,EAAE;AACU,QAAC,QAAQ,GAAG,MAAM;EAC9B,EAAE,IAAI,KAAK,KAAK,IAAI,EAAE;EACtB,IAAI,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;EAClG,GAAG;EACH,EAAE,OAAO,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;EACnC,EAAE;AACU,QAAC,SAAS,GAAG,MAAM;EAC/B,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC;EACjB;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"bundle.umd.js","sources":["../src/lib/state.ts"],"sourcesContent":["// Common functions and data\n\n/**\n * @since 0.1.0\n * @typedef State\n */\nexport type GlobalState = Record<string, any>;\n\n/**\n *\n * Create a global state.\n *\n * @example\n * interface Animal {\n * walk: () => void;\n * name: string;\n * }\n *\n * function getDogState(): State<Animal> {\n * return State.getInstance({ name: \"Rancho\", walk: () => {} });\n * }\n *\n * const dogState = getDogState();\n */\nexport class State<T extends GlobalState> {\n static _instance: State<any> | null = null;\n private _initialState: T;\n private _state: T;\n\n private constructor(state: T) {\n this._state = state;\n this._initialState = state;\n }\n\n public static getInstance<T extends GlobalState>(initialState: T): State<T> {\n if (!State._instance) {\n State._instance = new State<T>(initialState);\n }\n return State._instance as State<T>;\n }\n\n /**\n * Updates the global state.\n *\n * @since 0.1.0\n * @param {T} overrides Global state overrides\n */\n public setState(overrides: Partial<T>) {\n this._state = { ...this._state, ...overrides };\n }\n\n /**\n * Returns the global state.\n *\n * @since 0.1.0\n * @returns {T} The global state\n */\n public get state(): T {\n if (this._state === null) {\n throw new Error(\n \"The state has not been initialized, make sure to call State.init beforehand\"\n );\n }\n return this._state;\n }\n\n /**\n * Returns whether the state has been initialized.\n *\n * @since 0.1.0\n * @returns {boolean} Whether the state has been initialized\n */\n public checkInit(): boolean {\n return !!this._state;\n }\n\n /**\n * Reset state to the given initial state.\n *\n * @since 0.1.0\n */\n public reset() {\n this._state = this._initialState;\n }\n}\n"],"names":[],"mappings":";;;;;;EAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;EACtC,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;EACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;EACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;EACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;EAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;EAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;EAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;EAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;EACxC,EAAE,IAAI,mBAAmB;EACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;EAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;EACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;EAC1C,KAAK;EACL,EAAE,OAAO,CAAC,CAAC;EACX,CAAC,CAAC;EACF,MAAM,MAAM,GAAG,MAAM;EACrB,EAAE,WAAW,CAAC,KAAK,EAAE;EACrB,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;EACxB,IAAI,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;EAC/B,GAAG;EACH,EAAE,OAAO,WAAW,CAAC,YAAY,EAAE;EACnC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;EAC3B,MAAM,MAAM,CAAC,SAAS,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;EAClD,KAAK;EACL,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC;EAC5B,GAAG;EACH,EAAE,QAAQ,CAAC,SAAS,EAAE;EACtB,IAAI,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;EAC7E,GAAG;EACH,EAAE,IAAI,KAAK,GAAG;EACd,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;EAC9B,MAAM,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;EACrG,KAAK;EACL,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC;EACvB,GAAG;EACH,EAAE,SAAS,GAAG;EACd,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;EACzB,GAAG;EACH,EAAE,KAAK,GAAG;EACV,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;EACrC,GAAG;EACH,CAAC,CAAC;AACQ,MAAC,KAAK,GAAG,OAAO;EAC1B,KAAK,CAAC,SAAS,GAAG,IAAI;;;;;;;;;;"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@artisan-commerce/state",
3
3
  "description": "Library used to share state functionality",
4
- "version": "0.3.0-canary.10",
4
+ "version": "0.3.0-canary.12",
5
5
  "main": "./dist/bundle.cjs.js",
6
6
  "module": "./dist/bundle.esm.js",
7
7
  "types": "./dist/bundle.d.ts",
@@ -10,7 +10,7 @@
10
10
  ],
11
11
  "sideEffects": false,
12
12
  "scripts": {
13
- "compile": "rollup -c",
13
+ "compile": "rollup -c && npx agadoo",
14
14
  "dev": "yarn compile -w",
15
15
  "clean": "rimraf dist",
16
16
  "prebuild": "yarn clean",
@@ -50,7 +50,7 @@
50
50
  }
51
51
  },
52
52
  "devDependencies": {
53
- "@artisan-commerce/types": "0.14.0-canary.39"
53
+ "@artisan-commerce/types": "0.14.0-canary.40"
54
54
  },
55
- "gitHead": "0181e85a77db03d68cd7be1c1c85cc1488f14da7"
55
+ "gitHead": "a976f2c6c65192490f4bc2389f70250cc1b74cb9"
56
56
  }