yummies 5.15.1 → 6.1.0
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 +10 -4
- package/async.cjs +45 -1
- package/async.cjs.map +1 -1
- package/async.d.ts +7 -6
- package/common.cjs +11 -1
- package/common.cjs.map +1 -1
- package/common.d.ts +8 -5
- package/common.js.map +1 -1
- package/complex.cjs +130 -1
- package/complex.cjs.map +1 -1
- package/complex.d.ts +113 -0
- package/complex.js +43 -1
- package/complex.js.map +1 -1
- package/cookie.cjs +9 -1
- package/cookie.cjs.map +1 -1
- package/cookie.d.ts +5 -3
- package/cookie.js.map +1 -1
- package/css.cjs +45 -1
- package/css.cjs.map +1 -1
- package/css.d.ts +11 -8
- package/css.js.map +1 -1
- package/data.cjs +43 -1
- package/data.cjs.map +1 -1
- package/data.d.ts +5 -4
- package/data.js.map +1 -1
- package/date-time.cjs +395 -1
- package/date-time.cjs.map +1 -1
- package/date-time.d.ts +12 -10
- package/date-time.js.map +1 -1
- package/device.cjs +32 -1
- package/device.cjs.map +1 -1
- package/device.d.ts +9 -8
- package/encodings.cjs +270 -1
- package/encodings.cjs.map +1 -1
- package/encodings.d.ts +3 -2
- package/encodings.js.map +1 -1
- package/errors.cjs +23 -1
- package/errors.cjs.map +1 -1
- package/errors.d.ts +5 -4
- package/errors.js.map +1 -1
- package/file.cjs +28 -1
- package/file.cjs.map +1 -1
- package/file.d.ts +4 -3
- package/format.cjs +75 -1
- package/format.cjs.map +1 -1
- package/format.d.ts +74 -0
- package/format.js.map +1 -1
- package/html.cjs +167 -1
- package/html.cjs.map +1 -1
- package/html.d.ts +19 -17
- package/html.js.map +1 -1
- package/id.cjs +25 -1
- package/id.cjs.map +1 -1
- package/id.d.ts +9 -8
- package/imports.cjs +33 -1
- package/imports.cjs.map +1 -1
- package/imports.d.ts +6 -4
- package/math.cjs +14 -1
- package/math.cjs.map +1 -1
- package/math.d.ts +7 -5
- package/math.js.map +1 -1
- package/media.cjs +105 -1
- package/media.cjs.map +1 -1
- package/media.d.ts +11 -11
- package/mobx.cjs +184 -1
- package/mobx.cjs.map +1 -1
- package/mobx.d.ts +66 -0
- package/mobx.js.map +1 -1
- package/ms.cjs +13 -1
- package/ms.cjs.map +1 -1
- package/ms.d.ts +4 -3
- package/number.cjs +10 -1
- package/number.cjs.map +1 -1
- package/number.d.ts +3 -2
- package/package.json +97 -141
- package/parser.cjs +68 -1
- package/parser.cjs.map +1 -1
- package/parser.d.ts +41 -0
- package/parser.js.map +1 -1
- package/price.cjs +20 -1
- package/price.cjs.map +1 -1
- package/price.d.ts +5 -3
- package/random.cjs +24 -1
- package/random.cjs.map +1 -1
- package/random.d.ts +10 -9
- package/react.cjs +216 -1
- package/react.cjs.map +1 -1
- package/react.d.ts +113 -0
- package/react.js.map +1 -1
- package/sound.cjs +11 -1
- package/sound.cjs.map +1 -1
- package/sound.d.ts +3 -2
- package/text.cjs +37 -1
- package/text.cjs.map +1 -1
- package/text.d.ts +4 -3
- package/type-guard.cjs +75 -1
- package/type-guard.cjs.map +1 -1
- package/type-guard.d.ts +121 -0
- package/type-guard.js.map +1 -1
- package/{utils/types.d.ts → types.d.ts} +54 -53
- package/types.global.cjs +2 -0
- package/types.global.cjs.map +1 -0
- package/{utility-types.d.ts → types.global.d.ts} +1 -1
- package/types.global.js +2 -0
- package/types.global.js.map +1 -0
- package/vibrate.cjs +8 -1
- package/vibrate.cjs.map +1 -1
- package/vibrate.d.ts +3 -2
- package/async.d.ts.map +0 -1
- package/common.d.ts.map +0 -1
- package/complex/counter.d.ts +0 -15
- package/complex/counter.d.ts.map +0 -1
- package/complex/global-config.d.ts +0 -11
- package/complex/global-config.d.ts.map +0 -1
- package/complex/index.d.ts +0 -4
- package/complex/index.d.ts.map +0 -1
- package/complex/modules-factory.d.ts +0 -49
- package/complex/modules-factory.d.ts.map +0 -1
- package/cookie.d.ts.map +0 -1
- package/css.d.ts.map +0 -1
- package/data.d.ts.map +0 -1
- package/date-time.d.ts.map +0 -1
- package/device.d.ts.map +0 -1
- package/encodings.d.ts.map +0 -1
- package/errors.d.ts.map +0 -1
- package/file.d.ts.map +0 -1
- package/format/_exports.d.ts +0 -5
- package/format/_exports.d.ts.map +0 -1
- package/format/constants.d.ts +0 -4
- package/format/constants.d.ts.map +0 -1
- package/format/index.d.ts +0 -3
- package/format/index.d.ts.map +0 -1
- package/format/number.d.ts +0 -36
- package/format/number.d.ts.map +0 -1
- package/format/percent.d.ts +0 -15
- package/format/percent.d.ts.map +0 -1
- package/format/skip-spaces.d.ts +0 -5
- package/format/skip-spaces.d.ts.map +0 -1
- package/html.d.ts.map +0 -1
- package/id.d.ts.map +0 -1
- package/imports.d.ts.map +0 -1
- package/math.d.ts.map +0 -1
- package/media.d.ts.map +0 -1
- package/mobx/apply-observable.d.ts +0 -4
- package/mobx/apply-observable.d.ts.map +0 -1
- package/mobx/create-enhanced-atom.d.ts +0 -11
- package/mobx/create-enhanced-atom.d.ts.map +0 -1
- package/mobx/create-ref.d.ts +0 -28
- package/mobx/create-ref.d.ts.map +0 -1
- package/mobx/deep-observable-struct.d.ts +0 -7
- package/mobx/deep-observable-struct.d.ts.map +0 -1
- package/mobx/get-mobx-administration.d.ts +0 -6
- package/mobx/get-mobx-administration.d.ts.map +0 -1
- package/mobx/index.d.ts +0 -7
- package/mobx/index.d.ts.map +0 -1
- package/mobx/lazy-observe.d.ts +0 -14
- package/mobx/lazy-observe.d.ts.map +0 -1
- package/ms.d.ts.map +0 -1
- package/number.d.ts.map +0 -1
- package/parser/_exports.d.ts +0 -4
- package/parser/_exports.d.ts.map +0 -1
- package/parser/index.d.ts +0 -3
- package/parser/index.d.ts.map +0 -1
- package/parser/number.d.ts +0 -21
- package/parser/number.d.ts.map +0 -1
- package/parser/percent.d.ts +0 -4
- package/parser/percent.d.ts.map +0 -1
- package/parser/string.d.ts +0 -7
- package/parser/string.d.ts.map +0 -1
- package/price.d.ts.map +0 -1
- package/random.d.ts.map +0 -1
- package/react/hooks/index.d.ts +0 -22
- package/react/hooks/index.d.ts.map +0 -1
- package/react/hooks/use-abort-controller.d.ts +0 -2
- package/react/hooks/use-abort-controller.d.ts.map +0 -1
- package/react/hooks/use-abort-signal.d.ts +0 -2
- package/react/hooks/use-abort-signal.d.ts.map +0 -1
- package/react/hooks/use-click-outside.d.ts +0 -9
- package/react/hooks/use-click-outside.d.ts.map +0 -1
- package/react/hooks/use-constant.d.ts +0 -9
- package/react/hooks/use-constant.d.ts.map +0 -1
- package/react/hooks/use-define-ref.d.ts +0 -10
- package/react/hooks/use-define-ref.d.ts.map +0 -1
- package/react/hooks/use-element-ref.d.ts +0 -2
- package/react/hooks/use-element-ref.d.ts.map +0 -1
- package/react/hooks/use-event-listener.d.ts +0 -8
- package/react/hooks/use-event-listener.d.ts.map +0 -1
- package/react/hooks/use-event.d.ts +0 -3
- package/react/hooks/use-event.d.ts.map +0 -1
- package/react/hooks/use-flag.d.ts +0 -8
- package/react/hooks/use-flag.d.ts.map +0 -1
- package/react/hooks/use-force-update.d.ts +0 -2
- package/react/hooks/use-force-update.d.ts.map +0 -1
- package/react/hooks/use-initial-height.d.ts +0 -5
- package/react/hooks/use-initial-height.d.ts.map +0 -1
- package/react/hooks/use-instance.d.ts +0 -27
- package/react/hooks/use-instance.d.ts.map +0 -1
- package/react/hooks/use-intersection-observer.d.ts +0 -2
- package/react/hooks/use-intersection-observer.d.ts.map +0 -1
- package/react/hooks/use-last-defined-value.d.ts +0 -2
- package/react/hooks/use-last-defined-value.d.ts.map +0 -1
- package/react/hooks/use-last-value-ref.d.ts +0 -2
- package/react/hooks/use-last-value-ref.d.ts.map +0 -1
- package/react/hooks/use-life-cycle.d.ts +0 -5
- package/react/hooks/use-life-cycle.d.ts.map +0 -1
- package/react/hooks/use-resize-observer.d.ts +0 -2
- package/react/hooks/use-resize-observer.d.ts.map +0 -1
- package/react/hooks/use-sync-ref.d.ts +0 -2
- package/react/hooks/use-sync-ref.d.ts.map +0 -1
- package/react/hooks/use-toggle.d.ts +0 -2
- package/react/hooks/use-toggle.d.ts.map +0 -1
- package/react/hooks/use-value.d.ts +0 -5
- package/react/hooks/use-value.d.ts.map +0 -1
- package/react/hooks/use-visibility-state.d.ts +0 -2
- package/react/hooks/use-visibility-state.d.ts.map +0 -1
- package/react/index.d.ts +0 -2
- package/react/index.d.ts.map +0 -1
- package/sound.d.ts.map +0 -1
- package/storage.d.ts +0 -39
- package/storage.d.ts.map +0 -1
- package/text.d.ts.map +0 -1
- package/type-guard/_exports.d.ts +0 -86
- package/type-guard/_exports.d.ts.map +0 -1
- package/type-guard/index.d.ts +0 -3
- package/type-guard/index.d.ts.map +0 -1
- package/utility-types.cjs +0 -2
- package/utility-types.cjs.map +0 -1
- package/utility-types.d.ts.map +0 -1
- package/utility-types.js +0 -2
- package/utility-types.js.map +0 -1
- package/utils/types.d.ts.map +0 -1
- package/vibrate.d.ts.map +0 -1
- /package/{utils/types.cjs → types.cjs} +0 -0
- /package/{utils/types.cjs.map → types.cjs.map} +0 -0
- /package/{utils/types.js → types.js} +0 -0
- /package/{utils/types.js.map → types.js.map} +0 -0
package/README.md
CHANGED
|
@@ -71,18 +71,19 @@ Utility for type checks
|
|
|
71
71
|
## [yummies/vibrate](src/vibrate.ts)
|
|
72
72
|
Utilities for working with vibrate api
|
|
73
73
|
|
|
74
|
-
## [yummies/
|
|
74
|
+
## [yummies/types.global](src/types.ts)
|
|
75
|
+
## [yummies/types](src/types.ts)
|
|
75
76
|
TypeScript utility types that simplify writing TypeScript code.
|
|
76
77
|
They can be imported globally using the `d.ts` file, embedding it in the environment
|
|
77
78
|
```ts
|
|
78
|
-
import 'yummies/
|
|
79
|
+
import 'yummies/types.global';
|
|
79
80
|
```
|
|
80
81
|
Or specified in `tsconfig.json` in the `"types"` field
|
|
81
82
|
```json
|
|
82
83
|
{
|
|
83
84
|
"compilerOptions": {
|
|
84
85
|
"types": [
|
|
85
|
-
"yummies/
|
|
86
|
+
"yummies/types.global"
|
|
86
87
|
],
|
|
87
88
|
"target": "...blabla",
|
|
88
89
|
...
|
|
@@ -91,7 +92,7 @@ Or specified in `tsconfig.json` in the `"types"` field
|
|
|
91
92
|
}
|
|
92
93
|
```
|
|
93
94
|
Alternatively, you can use the "library" approach, where you need exported types.
|
|
94
|
-
For this, you can use the `yummies` or `yummies/
|
|
95
|
+
For this, you can use the `yummies` or `yummies/types` import.
|
|
95
96
|
|
|
96
97
|
```ts
|
|
97
98
|
import { AnyObject } from 'yummies';
|
|
@@ -103,6 +104,11 @@ import { AnyObject } from 'yummies';
|
|
|
103
104
|
Additional set of complex utilities
|
|
104
105
|
|
|
105
106
|
|
|
107
|
+
## Migration from 5.x to 6.x
|
|
108
|
+
|
|
109
|
+
1. Replace all imports `yummies/utility-types` to `yummies/types.global`
|
|
110
|
+
2. Replace all imports `yummies/utils/types` to `yummies/types`
|
|
111
|
+
|
|
106
112
|
## Contribution Guide
|
|
107
113
|
|
|
108
114
|
Want to contribute ? [Follow this guide](https://github.com/js2me/yummies/blob/master/CONTRIBUTING.md)
|
package/async.cjs
CHANGED
|
@@ -1,2 +1,46 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const sleep = (time = 0) => new Promise((resolve) => setTimeout(resolve, time));
|
|
4
|
+
const waitAsync = async (ms = 1e3) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
5
|
+
const endlessRAF = (quitFunction, asMicrotask) => {
|
|
6
|
+
if (quitFunction()) return;
|
|
7
|
+
const raf = () => requestAnimationFrame(() => endlessRAF(quitFunction, asMicrotask));
|
|
8
|
+
if (asMicrotask) {
|
|
9
|
+
queueMicrotask(raf);
|
|
10
|
+
} else {
|
|
11
|
+
raf();
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
function setAbortableTimeout(callback, delayInMs, signal) {
|
|
15
|
+
let internalTimer = null;
|
|
16
|
+
const handleAbort = () => {
|
|
17
|
+
if (internalTimer == null) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
clearTimeout(internalTimer);
|
|
21
|
+
internalTimer = null;
|
|
22
|
+
};
|
|
23
|
+
signal?.addEventListener("abort", handleAbort, { once: true });
|
|
24
|
+
internalTimer = setTimeout(() => {
|
|
25
|
+
signal?.removeEventListener("abort", handleAbort);
|
|
26
|
+
callback();
|
|
27
|
+
}, delayInMs);
|
|
28
|
+
}
|
|
29
|
+
function setAbortableInterval(callback, delayInMs, signal) {
|
|
30
|
+
let timer = null;
|
|
31
|
+
const handleAbort = () => {
|
|
32
|
+
if (timer == null) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
clearInterval(timer);
|
|
36
|
+
timer = null;
|
|
37
|
+
};
|
|
38
|
+
signal?.addEventListener("abort", handleAbort, { once: true });
|
|
39
|
+
timer = setInterval(callback, delayInMs);
|
|
40
|
+
}
|
|
41
|
+
exports.endlessRAF = endlessRAF;
|
|
42
|
+
exports.setAbortableInterval = setAbortableInterval;
|
|
43
|
+
exports.setAbortableTimeout = setAbortableTimeout;
|
|
44
|
+
exports.sleep = sleep;
|
|
45
|
+
exports.waitAsync = waitAsync;
|
|
2
46
|
//# sourceMappingURL=async.cjs.map
|
package/async.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async.cjs","sources":["../src/async.ts"],"sourcesContent":["/**\n * Создает промис, который будет ждать указанное количество ms, чтобы выполниться\n *\n * @param ms значение в миллисекундах\n * @returns Promise\n */\nexport const sleep = (time: number = 0) =>\n new Promise((resolve) => setTimeout(resolve, time));\n\n/**\n * Создает промис, который будет ждать указанное количество ms, чтобы выполниться\n *\n * @deprecated используй {sleep}\n * @param ms значение в миллисекундах\n * @returns Promise\n */\nexport const waitAsync = async (ms = 1000) =>\n new Promise((resolve) => setTimeout(resolve, ms));\n\n/**\n * Создает вызов requestAnimationFrame, посылая туда фукнцию {quitFn}, если она возвращает true,\n * тогда повторно не будет создан вызов requestAnimationFrame, иначе будут создаваться повторно\n * вызовы requestAnimationFrame до тем пор, пока эта функция не вернёт true\n *\n * @param quitFn - сама фукнция которая исполнится в requestAnimationFrame\n * @param asMicrotask - дополнительно оборачивает RAF в queueMicrotask\n * @returns void\n */\nexport const endlessRAF = (\n quitFunction: () => boolean | void,\n asMicrotask?: boolean,\n) => {\n if (quitFunction()) return;\n\n const raf = () =>\n requestAnimationFrame(() => endlessRAF(quitFunction, asMicrotask));\n\n if (asMicrotask) {\n queueMicrotask(raf);\n } else {\n raf();\n }\n};\n\nexport function setAbortableTimeout(\n callback: VoidFunction,\n delayInMs?: number,\n signal?: AbortSignal,\n) {\n let internalTimer: number | null = null;\n\n const handleAbort = () => {\n if (internalTimer == null) {\n return;\n }\n clearTimeout(internalTimer);\n internalTimer = null;\n };\n\n signal?.addEventListener('abort', handleAbort, { once: true });\n\n internalTimer = setTimeout(() => {\n signal?.removeEventListener('abort', handleAbort);\n callback();\n }, delayInMs);\n}\n\nexport function setAbortableInterval(\n callback: VoidFunction,\n delayInMs?: number,\n signal?: AbortSignal,\n) {\n let timer: number | null = null;\n\n const handleAbort = () => {\n if (timer == null) {\n return;\n }\n clearInterval(timer);\n timer = null;\n };\n\n signal?.addEventListener('abort', handleAbort, { once: true });\n\n timer = setInterval(callback, delayInMs);\n}\n"],"names":[
|
|
1
|
+
{"version":3,"file":"async.cjs","sources":["../src/async.ts"],"sourcesContent":["/**\n * Создает промис, который будет ждать указанное количество ms, чтобы выполниться\n *\n * @param ms значение в миллисекундах\n * @returns Promise\n */\nexport const sleep = (time: number = 0) =>\n new Promise((resolve) => setTimeout(resolve, time));\n\n/**\n * Создает промис, который будет ждать указанное количество ms, чтобы выполниться\n *\n * @deprecated используй {sleep}\n * @param ms значение в миллисекундах\n * @returns Promise\n */\nexport const waitAsync = async (ms = 1000) =>\n new Promise((resolve) => setTimeout(resolve, ms));\n\n/**\n * Создает вызов requestAnimationFrame, посылая туда фукнцию {quitFn}, если она возвращает true,\n * тогда повторно не будет создан вызов requestAnimationFrame, иначе будут создаваться повторно\n * вызовы requestAnimationFrame до тем пор, пока эта функция не вернёт true\n *\n * @param quitFn - сама фукнция которая исполнится в requestAnimationFrame\n * @param asMicrotask - дополнительно оборачивает RAF в queueMicrotask\n * @returns void\n */\nexport const endlessRAF = (\n quitFunction: () => boolean | void,\n asMicrotask?: boolean,\n) => {\n if (quitFunction()) return;\n\n const raf = () =>\n requestAnimationFrame(() => endlessRAF(quitFunction, asMicrotask));\n\n if (asMicrotask) {\n queueMicrotask(raf);\n } else {\n raf();\n }\n};\n\nexport function setAbortableTimeout(\n callback: VoidFunction,\n delayInMs?: number,\n signal?: AbortSignal,\n) {\n let internalTimer: number | null = null;\n\n const handleAbort = () => {\n if (internalTimer == null) {\n return;\n }\n clearTimeout(internalTimer);\n internalTimer = null;\n };\n\n signal?.addEventListener('abort', handleAbort, { once: true });\n\n internalTimer = setTimeout(() => {\n signal?.removeEventListener('abort', handleAbort);\n callback();\n }, delayInMs);\n}\n\nexport function setAbortableInterval(\n callback: VoidFunction,\n delayInMs?: number,\n signal?: AbortSignal,\n) {\n let timer: number | null = null;\n\n const handleAbort = () => {\n if (timer == null) {\n return;\n }\n clearInterval(timer);\n timer = null;\n };\n\n signal?.addEventListener('abort', handleAbort, { once: true });\n\n timer = setInterval(callback, delayInMs);\n}\n"],"names":[],"mappings":";;AAMO,MAAM,QAAQ,CAAC,OAAe,MACnC,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,IAAI,CAAC;AAS7C,MAAM,YAAY,OAAO,KAAK,QACnC,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,EAAE,CAAC;AAW3C,MAAM,aAAa,CACxB,cACA,gBACG;AACH,MAAI,eAAgB;AAEpB,QAAM,MAAM,MACV,sBAAsB,MAAM,WAAW,cAAc,WAAW,CAAC;AAEnE,MAAI,aAAa;AACf,mBAAe,GAAG;AAAA,EACpB,OAAO;AACL,QAAA;AAAA,EACF;AACF;AAEO,SAAS,oBACd,UACA,WACA,QACA;AACA,MAAI,gBAA+B;AAEnC,QAAM,cAAc,MAAM;AACxB,QAAI,iBAAiB,MAAM;AACzB;AAAA,IACF;AACA,iBAAa,aAAa;AAC1B,oBAAgB;AAAA,EAClB;AAEA,UAAQ,iBAAiB,SAAS,aAAa,EAAE,MAAM,MAAM;AAE7D,kBAAgB,WAAW,MAAM;AAC/B,YAAQ,oBAAoB,SAAS,WAAW;AAChD,aAAA;AAAA,EACF,GAAG,SAAS;AACd;AAEO,SAAS,qBACd,UACA,WACA,QACA;AACA,MAAI,QAAuB;AAE3B,QAAM,cAAc,MAAM;AACxB,QAAI,SAAS,MAAM;AACjB;AAAA,IACF;AACA,kBAAc,KAAK;AACnB,YAAQ;AAAA,EACV;AAEA,UAAQ,iBAAiB,SAAS,aAAa,EAAE,MAAM,MAAM;AAE7D,UAAQ,YAAY,UAAU,SAAS;AACzC;;;;;;"}
|
package/async.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @param ms значение в миллисекундах
|
|
5
5
|
* @returns Promise
|
|
6
6
|
*/
|
|
7
|
-
|
|
7
|
+
declare const sleep: (time?: number) => Promise<unknown>;
|
|
8
8
|
/**
|
|
9
9
|
* Создает промис, который будет ждать указанное количество ms, чтобы выполниться
|
|
10
10
|
*
|
|
@@ -12,7 +12,7 @@ export declare const sleep: (time?: number) => Promise<unknown>;
|
|
|
12
12
|
* @param ms значение в миллисекундах
|
|
13
13
|
* @returns Promise
|
|
14
14
|
*/
|
|
15
|
-
|
|
15
|
+
declare const waitAsync: (ms?: number) => Promise<unknown>;
|
|
16
16
|
/**
|
|
17
17
|
* Создает вызов requestAnimationFrame, посылая туда фукнцию {quitFn}, если она возвращает true,
|
|
18
18
|
* тогда повторно не будет создан вызов requestAnimationFrame, иначе будут создаваться повторно
|
|
@@ -22,7 +22,8 @@ export declare const waitAsync: (ms?: number) => Promise<unknown>;
|
|
|
22
22
|
* @param asMicrotask - дополнительно оборачивает RAF в queueMicrotask
|
|
23
23
|
* @returns void
|
|
24
24
|
*/
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
declare const endlessRAF: (quitFunction: () => boolean | void, asMicrotask?: boolean) => void;
|
|
26
|
+
declare function setAbortableTimeout(callback: VoidFunction, delayInMs?: number, signal?: AbortSignal): void;
|
|
27
|
+
declare function setAbortableInterval(callback: VoidFunction, delayInMs?: number, signal?: AbortSignal): void;
|
|
28
|
+
|
|
29
|
+
export { endlessRAF, setAbortableInterval, setAbortableTimeout, sleep, waitAsync };
|
package/common.cjs
CHANGED
|
@@ -1,2 +1,12 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const callFunction = (fn, ...args) => {
|
|
4
|
+
if (typeof fn === "function") {
|
|
5
|
+
return fn(...args);
|
|
6
|
+
}
|
|
7
|
+
return fn;
|
|
8
|
+
};
|
|
9
|
+
const resolveFnValue = callFunction;
|
|
10
|
+
exports.callFunction = callFunction;
|
|
11
|
+
exports.resolveFnValue = resolveFnValue;
|
|
2
12
|
//# sourceMappingURL=common.cjs.map
|
package/common.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.cjs","sources":["../src/common.ts"],"sourcesContent":["import type { MaybeFn } from 'yummies/
|
|
1
|
+
{"version":3,"file":"common.cjs","sources":["../src/common.ts"],"sourcesContent":["import type { MaybeFn } from 'yummies/types';\n\n/**\n * @deprecated use {MaybeFn} type\n */\nexport type FnValue<TValue, TArgs extends any[] = []> = MaybeFn<TValue, TArgs>;\n\n/**\n * Calls the provided function with the given arguments if it is a function;\n * otherwise, returns the value directly.\n */\nexport const callFunction = <TValue, TArgs extends any[] = []>(\n fn: MaybeFn<TValue, TArgs>,\n ...args: TArgs\n) => {\n if (typeof fn === 'function') {\n return (fn as any)(...args) as TValue;\n }\n\n return fn;\n};\n\n/**\n * @deprecated use {callFunction}\n */\nexport const resolveFnValue = callFunction;\n"],"names":[],"mappings":";;AAWO,MAAM,eAAe,CAC1B,OACG,SACA;AACH,MAAI,OAAO,OAAO,YAAY;AAC5B,WAAQ,GAAW,GAAG,IAAI;AAAA,EAC5B;AAEA,SAAO;AACT;AAKO,MAAM,iBAAiB;;;"}
|
package/common.d.ts
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import { MaybeFn } from '
|
|
1
|
+
import { MaybeFn } from 'yummies/types';
|
|
2
|
+
|
|
2
3
|
/**
|
|
3
4
|
* @deprecated use {MaybeFn} type
|
|
4
5
|
*/
|
|
5
|
-
|
|
6
|
+
type FnValue<TValue, TArgs extends any[] = []> = MaybeFn<TValue, TArgs>;
|
|
6
7
|
/**
|
|
7
8
|
* Calls the provided function with the given arguments if it is a function;
|
|
8
9
|
* otherwise, returns the value directly.
|
|
9
10
|
*/
|
|
10
|
-
|
|
11
|
+
declare const callFunction: <TValue, TArgs extends any[] = []>(fn: MaybeFn<TValue, TArgs>, ...args: TArgs) => TValue;
|
|
11
12
|
/**
|
|
12
13
|
* @deprecated use {callFunction}
|
|
13
14
|
*/
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
declare const resolveFnValue: <TValue, TArgs extends any[] = []>(fn: MaybeFn<TValue, TArgs>, ...args: TArgs) => TValue;
|
|
16
|
+
|
|
17
|
+
export { callFunction, resolveFnValue };
|
|
18
|
+
export type { FnValue };
|
package/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sources":["../src/common.ts"],"sourcesContent":["import type { MaybeFn } from 'yummies/
|
|
1
|
+
{"version":3,"file":"common.js","sources":["../src/common.ts"],"sourcesContent":["import type { MaybeFn } from 'yummies/types';\n\n/**\n * @deprecated use {MaybeFn} type\n */\nexport type FnValue<TValue, TArgs extends any[] = []> = MaybeFn<TValue, TArgs>;\n\n/**\n * Calls the provided function with the given arguments if it is a function;\n * otherwise, returns the value directly.\n */\nexport const callFunction = <TValue, TArgs extends any[] = []>(\n fn: MaybeFn<TValue, TArgs>,\n ...args: TArgs\n) => {\n if (typeof fn === 'function') {\n return (fn as any)(...args) as TValue;\n }\n\n return fn;\n};\n\n/**\n * @deprecated use {callFunction}\n */\nexport const resolveFnValue = callFunction;\n"],"names":[],"mappings":"AAWO,MAAM,eAAe,CAC1B,OACG,SACA;AACH,MAAI,OAAO,OAAO,YAAY;AAC5B,WAAQ,GAAW,GAAG,IAAI;AAAA,EAC5B;AAEA,SAAO;AACT;AAKO,MAAM,iBAAiB;"}
|
package/complex.cjs
CHANGED
|
@@ -1,2 +1,131 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const createCounter = (processValue, initial = 0) => {
|
|
4
|
+
const update = (counter) => {
|
|
5
|
+
fn.value = processValue?.(counter) ?? counter;
|
|
6
|
+
return fn.value;
|
|
7
|
+
};
|
|
8
|
+
const increment = () => update(++fn.counter);
|
|
9
|
+
const decrement = () => update(--fn.counter);
|
|
10
|
+
const fn = increment;
|
|
11
|
+
fn.increment = increment;
|
|
12
|
+
fn.decrement = decrement;
|
|
13
|
+
fn.reset = () => {
|
|
14
|
+
fn.counter = initial;
|
|
15
|
+
fn.value = processValue?.(initial) ?? initial;
|
|
16
|
+
};
|
|
17
|
+
fn.reset();
|
|
18
|
+
return fn;
|
|
19
|
+
};
|
|
20
|
+
const createGlobalPoint = (accessSymbol) => {
|
|
21
|
+
if (accessSymbol == null) {
|
|
22
|
+
let storedValue;
|
|
23
|
+
return {
|
|
24
|
+
get: () => storedValue,
|
|
25
|
+
set: (value) => {
|
|
26
|
+
storedValue = value;
|
|
27
|
+
return value;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
const _globalThis = globalThis;
|
|
32
|
+
return {
|
|
33
|
+
get: () => _globalThis[accessSymbol],
|
|
34
|
+
set: (value) => {
|
|
35
|
+
_globalThis[accessSymbol] = value;
|
|
36
|
+
return value;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
const createGlobalConfig = (defaultValue, accessSymbol) => {
|
|
41
|
+
const globalPoint = createGlobalPoint(accessSymbol);
|
|
42
|
+
return globalPoint.get() || globalPoint.set(defaultValue);
|
|
43
|
+
};
|
|
44
|
+
const createGlobalDynamicConfig = (processFn, accessSymbol) => {
|
|
45
|
+
const globalPoint = createGlobalPoint(accessSymbol);
|
|
46
|
+
const getValue = () => {
|
|
47
|
+
return globalPoint.get() ?? globalPoint.set(processFn(null, null));
|
|
48
|
+
};
|
|
49
|
+
return {
|
|
50
|
+
get: getValue,
|
|
51
|
+
set: globalPoint.set,
|
|
52
|
+
update: (value) => {
|
|
53
|
+
const currentValue = getValue();
|
|
54
|
+
Object.assign(currentValue, processFn(value, currentValue));
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
class ModulesFactory {
|
|
59
|
+
/**
|
|
60
|
+
* Создает новый экземпляр `ModulesFactory`.
|
|
61
|
+
*
|
|
62
|
+
* @param config - Объект конфигурации для фабрики, включающий функцию фабрики и необязательные зависимости.
|
|
63
|
+
*/
|
|
64
|
+
constructor(config) {
|
|
65
|
+
this.config = config;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Создает экземпляр указанного класса, внедряя необходимые зависимости.
|
|
69
|
+
*
|
|
70
|
+
* @template TInstance - Тип создаваемого экземпляра.
|
|
71
|
+
* @template TDeps - Тип зависимостей, необходимых для экземпляра.
|
|
72
|
+
*
|
|
73
|
+
* @param Constructor - Конструктор класса для создаваемого экземпляра.
|
|
74
|
+
* @param args - Необязательные дополнительные зависимости для объединения с предопределенными зависимостями.
|
|
75
|
+
*
|
|
76
|
+
* @returns Экземпляр указанного класса с внедренными зависимостями.
|
|
77
|
+
*/
|
|
78
|
+
create(Constructor, ...args) {
|
|
79
|
+
return this.config.factory(Constructor, {
|
|
80
|
+
...this.config.deps,
|
|
81
|
+
...args[0]
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
class PubSub {
|
|
86
|
+
/**
|
|
87
|
+
* The last published data. This value can be null if no publication has occurred yet.
|
|
88
|
+
* It allows subscribers to receive the last published data when they subscribe.
|
|
89
|
+
*/
|
|
90
|
+
data = null;
|
|
91
|
+
/**
|
|
92
|
+
* An array of subscriber functions (sub) that will be called
|
|
93
|
+
* when an event is published. Each subscriber must match the type SubFn,
|
|
94
|
+
* taking the arguments that will be passed to it when the publisher calls pub.
|
|
95
|
+
*/
|
|
96
|
+
subs = [];
|
|
97
|
+
/**
|
|
98
|
+
* A function that is used to publish an event. When this function is called,
|
|
99
|
+
* all subscribers in the `subs` array will be called with the passed arguments.
|
|
100
|
+
*/
|
|
101
|
+
pub(...args) {
|
|
102
|
+
this.data = args;
|
|
103
|
+
this.subs.forEach((sub) => {
|
|
104
|
+
sub(...args);
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* A function to unsubscribe from events. When a subscriber function (sub) is passed,
|
|
109
|
+
* it will be removed from the `subs` array, and will no longer receive notifications.
|
|
110
|
+
*/
|
|
111
|
+
unsub(sub) {
|
|
112
|
+
this.subs = this.subs.filter((it) => it !== sub);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* A function to subscribe to events. When a subscriber function (sub) is passed,
|
|
116
|
+
* it will be added to the `subs` array, and will receive notifications when the publisher calls pub.
|
|
117
|
+
* Returns a function that can be used to unsubscribe from events.
|
|
118
|
+
*/
|
|
119
|
+
sub(sub) {
|
|
120
|
+
this.subs.push(sub);
|
|
121
|
+
return () => this.unsub(sub);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
const createPubSub = () => new PubSub();
|
|
125
|
+
exports.ModulesFactory = ModulesFactory;
|
|
126
|
+
exports.PubSub = PubSub;
|
|
127
|
+
exports.createCounter = createCounter;
|
|
128
|
+
exports.createGlobalConfig = createGlobalConfig;
|
|
129
|
+
exports.createGlobalDynamicConfig = createGlobalDynamicConfig;
|
|
130
|
+
exports.createPubSub = createPubSub;
|
|
2
131
|
//# sourceMappingURL=complex.cjs.map
|
package/complex.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"complex.cjs","sources":["../src/complex/counter.ts","../src/complex/global-config.ts","../src/complex/modules-factory.ts"],"sourcesContent":["export interface Counter<TValue = number> {\n (): TValue;\n counter: number;\n value: TValue;\n increment(): TValue;\n decrement(): TValue;\n reset(): void;\n}\n\n/**\n * @deprecated use {`Counter`}. Will be removed in next major release\n */\nexport interface CounterFn<TValue = number> extends Counter<TValue> {}\n\nexport const createCounter = <TValue = number>(\n processValue?: (value: number) => TValue,\n initial: number = 0,\n): Counter<TValue> => {\n const update = (counter: number) => {\n fn.value = processValue?.(counter) ?? (counter as TValue);\n return fn.value;\n };\n\n const increment = () => update(++fn.counter);\n const decrement = () => update(--fn.counter);\n\n const fn: Counter<TValue> = increment as any;\n\n fn.increment = increment;\n fn.decrement = decrement;\n\n fn.reset = () => {\n fn.counter = initial;\n fn.value = processValue?.(initial) ?? (initial as TValue);\n };\n\n fn.reset();\n\n return fn as Counter<TValue>;\n};\n","import type { AnyObject, Maybe } from 'yummies/
|
|
1
|
+
{"version":3,"file":"complex.cjs","sources":["../src/complex/counter.ts","../src/complex/global-config.ts","../src/complex/modules-factory.ts","../src/complex/pub-sub.ts"],"sourcesContent":["export interface Counter<TValue = number> {\n (): TValue;\n counter: number;\n value: TValue;\n increment(): TValue;\n decrement(): TValue;\n reset(): void;\n}\n\n/**\n * @deprecated use {`Counter`}. Will be removed in next major release\n */\nexport interface CounterFn<TValue = number> extends Counter<TValue> {}\n\nexport const createCounter = <TValue = number>(\n processValue?: (value: number) => TValue,\n initial: number = 0,\n): Counter<TValue> => {\n const update = (counter: number) => {\n fn.value = processValue?.(counter) ?? (counter as TValue);\n return fn.value;\n };\n\n const increment = () => update(++fn.counter);\n const decrement = () => update(--fn.counter);\n\n const fn: Counter<TValue> = increment as any;\n\n fn.increment = increment;\n fn.decrement = decrement;\n\n fn.reset = () => {\n fn.counter = initial;\n fn.value = processValue?.(initial) ?? (initial as TValue);\n };\n\n fn.reset();\n\n return fn as Counter<TValue>;\n};\n","import type { AnyObject, Maybe } from 'yummies/types';\n\nconst createGlobalPoint = <TValue>(accessSymbol?: keyof any) => {\n if (accessSymbol == null) {\n let storedValue: TValue | undefined;\n return {\n get: (): TValue => storedValue!,\n set: (value: TValue): TValue => {\n storedValue = value;\n return value;\n },\n };\n }\n\n const _globalThis = globalThis as AnyObject;\n\n return {\n get: (): TValue => _globalThis[accessSymbol],\n set: (value: TValue): TValue => {\n _globalThis[accessSymbol] = value;\n return value;\n },\n };\n};\n\n/**\n * Создает глобальный конфиг, который может быть доступен в любой точке в коде\n */\nexport const createGlobalConfig = <T extends AnyObject>(\n defaultValue: T,\n accessSymbol?: keyof any,\n) => {\n const globalPoint = createGlobalPoint<T>(accessSymbol);\n return globalPoint.get() || globalPoint.set(defaultValue);\n};\n\nexport const createGlobalDynamicConfig = <T extends AnyObject>(\n processFn: (change: Maybe<Partial<T>>, current: Maybe<T>) => T,\n accessSymbol?: keyof any,\n) => {\n const globalPoint = createGlobalPoint<T | null | undefined>(accessSymbol);\n\n const getValue = () => {\n return globalPoint.get() ?? globalPoint.set(processFn(null, null))!;\n };\n\n return {\n get: getValue,\n set: globalPoint.set,\n update: (value: Partial<T>) => {\n const currentValue = getValue();\n Object.assign(currentValue, processFn(value, currentValue));\n },\n };\n};\n","import type { AnyObject, Class, EmptyObject, IsPartial } from 'yummies/types';\n\ntype ModuleLoaderConfig<TPredefinedDeps extends AnyObject = EmptyObject> = {\n factory<TInstance, TDeps extends TPredefinedDeps>(\n moduleClass: Class<TInstance, [TDeps]>,\n deps: TDeps,\n ): TInstance;\n} & (TPredefinedDeps extends EmptyObject\n ? { deps?: TPredefinedDeps }\n : { deps: TPredefinedDeps });\n\n/**\n * Класс `ModulesFactory` является универсальной фабрикой для создания экземпляров указанного класса с зависимостями.\n * Он использует объект конфигурации для определения того, как эти экземпляры создаются.\n *\n * Важное примечание - эта сущность работает только с классами конструктор которых имеет один параметр\n *\n * @template TPredefinedDeps - Тип, расширяющий `AnyObject`, представляющий предопределенные зависимости, которые использует фабрика.\n *\n * @example\n * ```\n * const factory = new ModulesFactory({\n * factory: (MyClass, deps) => new MyClass(deps),\n * deps: { someDependency: new Dependency() }\n * });\n *\n * const instance = factory.create(MyClass, { extraDependency: new ExtraDependency() });\n * ```\n */\nexport class ModulesFactory<TPredefinedDeps extends AnyObject = EmptyObject> {\n /**\n * Создает новый экземпляр `ModulesFactory`.\n *\n * @param config - Объект конфигурации для фабрики, включающий функцию фабрики и необязательные зависимости.\n */\n constructor(private config: ModuleLoaderConfig<TPredefinedDeps>) {}\n\n /**\n * Создает экземпляр указанного класса, внедряя необходимые зависимости.\n *\n * @template TInstance - Тип создаваемого экземпляра.\n * @template TDeps - Тип зависимостей, необходимых для экземпляра.\n *\n * @param Constructor - Конструктор класса для создаваемого экземпляра.\n * @param args - Необязательные дополнительные зависимости для объединения с предопределенными зависимостями.\n *\n * @returns Экземпляр указанного класса с внедренными зависимостями.\n */\n create<TInstance, TDeps extends TPredefinedDeps = TPredefinedDeps>(\n Constructor: Class<TInstance, [TDeps]>,\n ...args: IsPartial<Omit<TDeps, keyof TPredefinedDeps>> extends true\n ? [extraDeps?: Omit<TDeps, keyof TPredefinedDeps>]\n : [extraDeps: Omit<TDeps, keyof TPredefinedDeps>]\n ) {\n return this.config.factory(Constructor, {\n ...this.config.deps!,\n ...args[0],\n } as any);\n }\n}\n","export type SubFn<PubArgs extends any[] = any[]> = (...args: PubArgs) => void;\n\n/**\n * The Publish-Subscribe pattern, which allows objects to interact with each other\n * through an event system. Subscribers can subscribe to events and receive notifications\n * when these events occur. The last published data can be accessed through the `data` property.\n */\nexport class PubSub<PubArgs extends any[] = any[]> {\n /**\n * The last published data. This value can be null if no publication has occurred yet.\n * It allows subscribers to receive the last published data when they subscribe.\n */\n data: PubArgs | null = null;\n\n /**\n * An array of subscriber functions (sub) that will be called\n * when an event is published. Each subscriber must match the type SubFn,\n * taking the arguments that will be passed to it when the publisher calls pub.\n */\n subs: SubFn<PubArgs>[] = [];\n\n /**\n * A function that is used to publish an event. When this function is called,\n * all subscribers in the `subs` array will be called with the passed arguments.\n */\n pub(...args: PubArgs) {\n this.data = args;\n this.subs.forEach((sub) => {\n sub(...args);\n });\n }\n\n /**\n * A function to unsubscribe from events. When a subscriber function (sub) is passed,\n * it will be removed from the `subs` array, and will no longer receive notifications.\n */\n unsub(sub: SubFn<PubArgs>) {\n this.subs = this.subs.filter((it) => it !== sub);\n }\n\n /**\n * A function to subscribe to events. When a subscriber function (sub) is passed,\n * it will be added to the `subs` array, and will receive notifications when the publisher calls pub.\n * Returns a function that can be used to unsubscribe from events.\n */\n sub(sub: SubFn<PubArgs>) {\n this.subs.push(sub);\n return () => this.unsub(sub);\n }\n}\n\nexport const createPubSub = <PubArgs extends any[] = any[]>() =>\n new PubSub<PubArgs>();\n"],"names":[],"mappings":";;AAcO,MAAM,gBAAgB,CAC3B,cACA,UAAkB,MACE;AACpB,QAAM,SAAS,CAAC,YAAoB;AAClC,OAAG,QAAQ,eAAe,OAAO,KAAM;AACvC,WAAO,GAAG;AAAA,EACZ;AAEA,QAAM,YAAY,MAAM,OAAO,EAAE,GAAG,OAAO;AAC3C,QAAM,YAAY,MAAM,OAAO,EAAE,GAAG,OAAO;AAE3C,QAAM,KAAsB;AAE5B,KAAG,YAAY;AACf,KAAG,YAAY;AAEf,KAAG,QAAQ,MAAM;AACf,OAAG,UAAU;AACb,OAAG,QAAQ,eAAe,OAAO,KAAM;AAAA,EACzC;AAEA,KAAG,MAAA;AAEH,SAAO;AACT;ACrCA,MAAM,oBAAoB,CAAS,iBAA6B;AAC9D,MAAI,gBAAgB,MAAM;AACxB,QAAI;AACJ,WAAO;AAAA,MACL,KAAK,MAAc;AAAA,MACnB,KAAK,CAAC,UAA0B;AAC9B,sBAAc;AACd,eAAO;AAAA,MACT;AAAA,IAAA;AAAA,EAEJ;AAEA,QAAM,cAAc;AAEpB,SAAO;AAAA,IACL,KAAK,MAAc,YAAY,YAAY;AAAA,IAC3C,KAAK,CAAC,UAA0B;AAC9B,kBAAY,YAAY,IAAI;AAC5B,aAAO;AAAA,IACT;AAAA,EAAA;AAEJ;AAKO,MAAM,qBAAqB,CAChC,cACA,iBACG;AACH,QAAM,cAAc,kBAAqB,YAAY;AACrD,SAAO,YAAY,IAAA,KAAS,YAAY,IAAI,YAAY;AAC1D;AAEO,MAAM,4BAA4B,CACvC,WACA,iBACG;AACH,QAAM,cAAc,kBAAwC,YAAY;AAExE,QAAM,WAAW,MAAM;AACrB,WAAO,YAAY,SAAS,YAAY,IAAI,UAAU,MAAM,IAAI,CAAC;AAAA,EACnE;AAEA,SAAO;AAAA,IACL,KAAK;AAAA,IACL,KAAK,YAAY;AAAA,IACjB,QAAQ,CAAC,UAAsB;AAC7B,YAAM,eAAe,SAAA;AACrB,aAAO,OAAO,cAAc,UAAU,OAAO,YAAY,CAAC;AAAA,IAC5D;AAAA,EAAA;AAEJ;ACzBO,MAAM,eAAgE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM3E,YAAoB,QAA6C;AAA7C,SAAA,SAAA;AAAA,EAA8C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAalE,OACE,gBACG,MAGH;AACA,WAAO,KAAK,OAAO,QAAQ,aAAa;AAAA,MACtC,GAAG,KAAK,OAAO;AAAA,MACf,GAAG,KAAK,CAAC;AAAA,IAAA,CACH;AAAA,EACV;AACF;ACpDO,MAAM,OAAsC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKjD,OAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOvB,OAAyB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMzB,OAAO,MAAe;AACpB,SAAK,OAAO;AACZ,SAAK,KAAK,QAAQ,CAAC,QAAQ;AACzB,UAAI,GAAG,IAAI;AAAA,IACb,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,KAAqB;AACzB,SAAK,OAAO,KAAK,KAAK,OAAO,CAAC,OAAO,OAAO,GAAG;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,IAAI,KAAqB;AACvB,SAAK,KAAK,KAAK,GAAG;AAClB,WAAO,MAAM,KAAK,MAAM,GAAG;AAAA,EAC7B;AACF;AAEO,MAAM,eAAe,MAC1B,IAAI,OAAA;;;;;;;"}
|
package/complex.d.ts
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { AnyObject, Maybe, EmptyObject, Class, IsPartial } from 'yummies/types';
|
|
2
|
+
|
|
3
|
+
interface Counter<TValue = number> {
|
|
4
|
+
(): TValue;
|
|
5
|
+
counter: number;
|
|
6
|
+
value: TValue;
|
|
7
|
+
increment(): TValue;
|
|
8
|
+
decrement(): TValue;
|
|
9
|
+
reset(): void;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* @deprecated use {`Counter`}. Will be removed in next major release
|
|
13
|
+
*/
|
|
14
|
+
interface CounterFn<TValue = number> extends Counter<TValue> {
|
|
15
|
+
}
|
|
16
|
+
declare const createCounter: <TValue = number>(processValue?: (value: number) => TValue, initial?: number) => Counter<TValue>;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Создает глобальный конфиг, который может быть доступен в любой точке в коде
|
|
20
|
+
*/
|
|
21
|
+
declare const createGlobalConfig: <T extends AnyObject>(defaultValue: T, accessSymbol?: keyof any) => T;
|
|
22
|
+
declare const createGlobalDynamicConfig: <T extends AnyObject>(processFn: (change: Maybe<Partial<T>>, current: Maybe<T>) => T, accessSymbol?: keyof any) => {
|
|
23
|
+
get: () => T;
|
|
24
|
+
set: (value: T | null | undefined) => T | null | undefined;
|
|
25
|
+
update: (value: Partial<T>) => void;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
type ModuleLoaderConfig<TPredefinedDeps extends AnyObject = EmptyObject> = {
|
|
29
|
+
factory<TInstance, TDeps extends TPredefinedDeps>(moduleClass: Class<TInstance, [TDeps]>, deps: TDeps): TInstance;
|
|
30
|
+
} & (TPredefinedDeps extends EmptyObject ? {
|
|
31
|
+
deps?: TPredefinedDeps;
|
|
32
|
+
} : {
|
|
33
|
+
deps: TPredefinedDeps;
|
|
34
|
+
});
|
|
35
|
+
/**
|
|
36
|
+
* Класс `ModulesFactory` является универсальной фабрикой для создания экземпляров указанного класса с зависимостями.
|
|
37
|
+
* Он использует объект конфигурации для определения того, как эти экземпляры создаются.
|
|
38
|
+
*
|
|
39
|
+
* Важное примечание - эта сущность работает только с классами конструктор которых имеет один параметр
|
|
40
|
+
*
|
|
41
|
+
* @template TPredefinedDeps - Тип, расширяющий `AnyObject`, представляющий предопределенные зависимости, которые использует фабрика.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```
|
|
45
|
+
* const factory = new ModulesFactory({
|
|
46
|
+
* factory: (MyClass, deps) => new MyClass(deps),
|
|
47
|
+
* deps: { someDependency: new Dependency() }
|
|
48
|
+
* });
|
|
49
|
+
*
|
|
50
|
+
* const instance = factory.create(MyClass, { extraDependency: new ExtraDependency() });
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
declare class ModulesFactory<TPredefinedDeps extends AnyObject = EmptyObject> {
|
|
54
|
+
private config;
|
|
55
|
+
/**
|
|
56
|
+
* Создает новый экземпляр `ModulesFactory`.
|
|
57
|
+
*
|
|
58
|
+
* @param config - Объект конфигурации для фабрики, включающий функцию фабрики и необязательные зависимости.
|
|
59
|
+
*/
|
|
60
|
+
constructor(config: ModuleLoaderConfig<TPredefinedDeps>);
|
|
61
|
+
/**
|
|
62
|
+
* Создает экземпляр указанного класса, внедряя необходимые зависимости.
|
|
63
|
+
*
|
|
64
|
+
* @template TInstance - Тип создаваемого экземпляра.
|
|
65
|
+
* @template TDeps - Тип зависимостей, необходимых для экземпляра.
|
|
66
|
+
*
|
|
67
|
+
* @param Constructor - Конструктор класса для создаваемого экземпляра.
|
|
68
|
+
* @param args - Необязательные дополнительные зависимости для объединения с предопределенными зависимостями.
|
|
69
|
+
*
|
|
70
|
+
* @returns Экземпляр указанного класса с внедренными зависимостями.
|
|
71
|
+
*/
|
|
72
|
+
create<TInstance, TDeps extends TPredefinedDeps = TPredefinedDeps>(Constructor: Class<TInstance, [TDeps]>, ...args: IsPartial<Omit<TDeps, keyof TPredefinedDeps>> extends true ? [extraDeps?: Omit<TDeps, keyof TPredefinedDeps>] : [extraDeps: Omit<TDeps, keyof TPredefinedDeps>]): TInstance;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
type SubFn<PubArgs extends any[] = any[]> = (...args: PubArgs) => void;
|
|
76
|
+
/**
|
|
77
|
+
* The Publish-Subscribe pattern, which allows objects to interact with each other
|
|
78
|
+
* through an event system. Subscribers can subscribe to events and receive notifications
|
|
79
|
+
* when these events occur. The last published data can be accessed through the `data` property.
|
|
80
|
+
*/
|
|
81
|
+
declare class PubSub<PubArgs extends any[] = any[]> {
|
|
82
|
+
/**
|
|
83
|
+
* The last published data. This value can be null if no publication has occurred yet.
|
|
84
|
+
* It allows subscribers to receive the last published data when they subscribe.
|
|
85
|
+
*/
|
|
86
|
+
data: PubArgs | null;
|
|
87
|
+
/**
|
|
88
|
+
* An array of subscriber functions (sub) that will be called
|
|
89
|
+
* when an event is published. Each subscriber must match the type SubFn,
|
|
90
|
+
* taking the arguments that will be passed to it when the publisher calls pub.
|
|
91
|
+
*/
|
|
92
|
+
subs: SubFn<PubArgs>[];
|
|
93
|
+
/**
|
|
94
|
+
* A function that is used to publish an event. When this function is called,
|
|
95
|
+
* all subscribers in the `subs` array will be called with the passed arguments.
|
|
96
|
+
*/
|
|
97
|
+
pub(...args: PubArgs): void;
|
|
98
|
+
/**
|
|
99
|
+
* A function to unsubscribe from events. When a subscriber function (sub) is passed,
|
|
100
|
+
* it will be removed from the `subs` array, and will no longer receive notifications.
|
|
101
|
+
*/
|
|
102
|
+
unsub(sub: SubFn<PubArgs>): void;
|
|
103
|
+
/**
|
|
104
|
+
* A function to subscribe to events. When a subscriber function (sub) is passed,
|
|
105
|
+
* it will be added to the `subs` array, and will receive notifications when the publisher calls pub.
|
|
106
|
+
* Returns a function that can be used to unsubscribe from events.
|
|
107
|
+
*/
|
|
108
|
+
sub(sub: SubFn<PubArgs>): () => void;
|
|
109
|
+
}
|
|
110
|
+
declare const createPubSub: <PubArgs extends any[] = any[]>() => PubSub<PubArgs>;
|
|
111
|
+
|
|
112
|
+
export { ModulesFactory, PubSub, createCounter, createGlobalConfig, createGlobalDynamicConfig, createPubSub };
|
|
113
|
+
export type { Counter, CounterFn, SubFn };
|
package/complex.js
CHANGED
|
@@ -80,10 +80,52 @@ class ModulesFactory {
|
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
|
+
class PubSub {
|
|
84
|
+
/**
|
|
85
|
+
* The last published data. This value can be null if no publication has occurred yet.
|
|
86
|
+
* It allows subscribers to receive the last published data when they subscribe.
|
|
87
|
+
*/
|
|
88
|
+
data = null;
|
|
89
|
+
/**
|
|
90
|
+
* An array of subscriber functions (sub) that will be called
|
|
91
|
+
* when an event is published. Each subscriber must match the type SubFn,
|
|
92
|
+
* taking the arguments that will be passed to it when the publisher calls pub.
|
|
93
|
+
*/
|
|
94
|
+
subs = [];
|
|
95
|
+
/**
|
|
96
|
+
* A function that is used to publish an event. When this function is called,
|
|
97
|
+
* all subscribers in the `subs` array will be called with the passed arguments.
|
|
98
|
+
*/
|
|
99
|
+
pub(...args) {
|
|
100
|
+
this.data = args;
|
|
101
|
+
this.subs.forEach((sub) => {
|
|
102
|
+
sub(...args);
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* A function to unsubscribe from events. When a subscriber function (sub) is passed,
|
|
107
|
+
* it will be removed from the `subs` array, and will no longer receive notifications.
|
|
108
|
+
*/
|
|
109
|
+
unsub(sub) {
|
|
110
|
+
this.subs = this.subs.filter((it) => it !== sub);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* A function to subscribe to events. When a subscriber function (sub) is passed,
|
|
114
|
+
* it will be added to the `subs` array, and will receive notifications when the publisher calls pub.
|
|
115
|
+
* Returns a function that can be used to unsubscribe from events.
|
|
116
|
+
*/
|
|
117
|
+
sub(sub) {
|
|
118
|
+
this.subs.push(sub);
|
|
119
|
+
return () => this.unsub(sub);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
const createPubSub = () => new PubSub();
|
|
83
123
|
export {
|
|
84
124
|
ModulesFactory,
|
|
125
|
+
PubSub,
|
|
85
126
|
createCounter,
|
|
86
127
|
createGlobalConfig,
|
|
87
|
-
createGlobalDynamicConfig
|
|
128
|
+
createGlobalDynamicConfig,
|
|
129
|
+
createPubSub
|
|
88
130
|
};
|
|
89
131
|
//# sourceMappingURL=complex.js.map
|
package/complex.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"complex.js","sources":["../src/complex/counter.ts","../src/complex/global-config.ts","../src/complex/modules-factory.ts"],"sourcesContent":["export interface Counter<TValue = number> {\n (): TValue;\n counter: number;\n value: TValue;\n increment(): TValue;\n decrement(): TValue;\n reset(): void;\n}\n\n/**\n * @deprecated use {`Counter`}. Will be removed in next major release\n */\nexport interface CounterFn<TValue = number> extends Counter<TValue> {}\n\nexport const createCounter = <TValue = number>(\n processValue?: (value: number) => TValue,\n initial: number = 0,\n): Counter<TValue> => {\n const update = (counter: number) => {\n fn.value = processValue?.(counter) ?? (counter as TValue);\n return fn.value;\n };\n\n const increment = () => update(++fn.counter);\n const decrement = () => update(--fn.counter);\n\n const fn: Counter<TValue> = increment as any;\n\n fn.increment = increment;\n fn.decrement = decrement;\n\n fn.reset = () => {\n fn.counter = initial;\n fn.value = processValue?.(initial) ?? (initial as TValue);\n };\n\n fn.reset();\n\n return fn as Counter<TValue>;\n};\n","import type { AnyObject, Maybe } from 'yummies/
|
|
1
|
+
{"version":3,"file":"complex.js","sources":["../src/complex/counter.ts","../src/complex/global-config.ts","../src/complex/modules-factory.ts","../src/complex/pub-sub.ts"],"sourcesContent":["export interface Counter<TValue = number> {\n (): TValue;\n counter: number;\n value: TValue;\n increment(): TValue;\n decrement(): TValue;\n reset(): void;\n}\n\n/**\n * @deprecated use {`Counter`}. Will be removed in next major release\n */\nexport interface CounterFn<TValue = number> extends Counter<TValue> {}\n\nexport const createCounter = <TValue = number>(\n processValue?: (value: number) => TValue,\n initial: number = 0,\n): Counter<TValue> => {\n const update = (counter: number) => {\n fn.value = processValue?.(counter) ?? (counter as TValue);\n return fn.value;\n };\n\n const increment = () => update(++fn.counter);\n const decrement = () => update(--fn.counter);\n\n const fn: Counter<TValue> = increment as any;\n\n fn.increment = increment;\n fn.decrement = decrement;\n\n fn.reset = () => {\n fn.counter = initial;\n fn.value = processValue?.(initial) ?? (initial as TValue);\n };\n\n fn.reset();\n\n return fn as Counter<TValue>;\n};\n","import type { AnyObject, Maybe } from 'yummies/types';\n\nconst createGlobalPoint = <TValue>(accessSymbol?: keyof any) => {\n if (accessSymbol == null) {\n let storedValue: TValue | undefined;\n return {\n get: (): TValue => storedValue!,\n set: (value: TValue): TValue => {\n storedValue = value;\n return value;\n },\n };\n }\n\n const _globalThis = globalThis as AnyObject;\n\n return {\n get: (): TValue => _globalThis[accessSymbol],\n set: (value: TValue): TValue => {\n _globalThis[accessSymbol] = value;\n return value;\n },\n };\n};\n\n/**\n * Создает глобальный конфиг, который может быть доступен в любой точке в коде\n */\nexport const createGlobalConfig = <T extends AnyObject>(\n defaultValue: T,\n accessSymbol?: keyof any,\n) => {\n const globalPoint = createGlobalPoint<T>(accessSymbol);\n return globalPoint.get() || globalPoint.set(defaultValue);\n};\n\nexport const createGlobalDynamicConfig = <T extends AnyObject>(\n processFn: (change: Maybe<Partial<T>>, current: Maybe<T>) => T,\n accessSymbol?: keyof any,\n) => {\n const globalPoint = createGlobalPoint<T | null | undefined>(accessSymbol);\n\n const getValue = () => {\n return globalPoint.get() ?? globalPoint.set(processFn(null, null))!;\n };\n\n return {\n get: getValue,\n set: globalPoint.set,\n update: (value: Partial<T>) => {\n const currentValue = getValue();\n Object.assign(currentValue, processFn(value, currentValue));\n },\n };\n};\n","import type { AnyObject, Class, EmptyObject, IsPartial } from 'yummies/types';\n\ntype ModuleLoaderConfig<TPredefinedDeps extends AnyObject = EmptyObject> = {\n factory<TInstance, TDeps extends TPredefinedDeps>(\n moduleClass: Class<TInstance, [TDeps]>,\n deps: TDeps,\n ): TInstance;\n} & (TPredefinedDeps extends EmptyObject\n ? { deps?: TPredefinedDeps }\n : { deps: TPredefinedDeps });\n\n/**\n * Класс `ModulesFactory` является универсальной фабрикой для создания экземпляров указанного класса с зависимостями.\n * Он использует объект конфигурации для определения того, как эти экземпляры создаются.\n *\n * Важное примечание - эта сущность работает только с классами конструктор которых имеет один параметр\n *\n * @template TPredefinedDeps - Тип, расширяющий `AnyObject`, представляющий предопределенные зависимости, которые использует фабрика.\n *\n * @example\n * ```\n * const factory = new ModulesFactory({\n * factory: (MyClass, deps) => new MyClass(deps),\n * deps: { someDependency: new Dependency() }\n * });\n *\n * const instance = factory.create(MyClass, { extraDependency: new ExtraDependency() });\n * ```\n */\nexport class ModulesFactory<TPredefinedDeps extends AnyObject = EmptyObject> {\n /**\n * Создает новый экземпляр `ModulesFactory`.\n *\n * @param config - Объект конфигурации для фабрики, включающий функцию фабрики и необязательные зависимости.\n */\n constructor(private config: ModuleLoaderConfig<TPredefinedDeps>) {}\n\n /**\n * Создает экземпляр указанного класса, внедряя необходимые зависимости.\n *\n * @template TInstance - Тип создаваемого экземпляра.\n * @template TDeps - Тип зависимостей, необходимых для экземпляра.\n *\n * @param Constructor - Конструктор класса для создаваемого экземпляра.\n * @param args - Необязательные дополнительные зависимости для объединения с предопределенными зависимостями.\n *\n * @returns Экземпляр указанного класса с внедренными зависимостями.\n */\n create<TInstance, TDeps extends TPredefinedDeps = TPredefinedDeps>(\n Constructor: Class<TInstance, [TDeps]>,\n ...args: IsPartial<Omit<TDeps, keyof TPredefinedDeps>> extends true\n ? [extraDeps?: Omit<TDeps, keyof TPredefinedDeps>]\n : [extraDeps: Omit<TDeps, keyof TPredefinedDeps>]\n ) {\n return this.config.factory(Constructor, {\n ...this.config.deps!,\n ...args[0],\n } as any);\n }\n}\n","export type SubFn<PubArgs extends any[] = any[]> = (...args: PubArgs) => void;\n\n/**\n * The Publish-Subscribe pattern, which allows objects to interact with each other\n * through an event system. Subscribers can subscribe to events and receive notifications\n * when these events occur. The last published data can be accessed through the `data` property.\n */\nexport class PubSub<PubArgs extends any[] = any[]> {\n /**\n * The last published data. This value can be null if no publication has occurred yet.\n * It allows subscribers to receive the last published data when they subscribe.\n */\n data: PubArgs | null = null;\n\n /**\n * An array of subscriber functions (sub) that will be called\n * when an event is published. Each subscriber must match the type SubFn,\n * taking the arguments that will be passed to it when the publisher calls pub.\n */\n subs: SubFn<PubArgs>[] = [];\n\n /**\n * A function that is used to publish an event. When this function is called,\n * all subscribers in the `subs` array will be called with the passed arguments.\n */\n pub(...args: PubArgs) {\n this.data = args;\n this.subs.forEach((sub) => {\n sub(...args);\n });\n }\n\n /**\n * A function to unsubscribe from events. When a subscriber function (sub) is passed,\n * it will be removed from the `subs` array, and will no longer receive notifications.\n */\n unsub(sub: SubFn<PubArgs>) {\n this.subs = this.subs.filter((it) => it !== sub);\n }\n\n /**\n * A function to subscribe to events. When a subscriber function (sub) is passed,\n * it will be added to the `subs` array, and will receive notifications when the publisher calls pub.\n * Returns a function that can be used to unsubscribe from events.\n */\n sub(sub: SubFn<PubArgs>) {\n this.subs.push(sub);\n return () => this.unsub(sub);\n }\n}\n\nexport const createPubSub = <PubArgs extends any[] = any[]>() =>\n new PubSub<PubArgs>();\n"],"names":[],"mappings":"AAcO,MAAM,gBAAgB,CAC3B,cACA,UAAkB,MACE;AACpB,QAAM,SAAS,CAAC,YAAoB;AAClC,OAAG,QAAQ,eAAe,OAAO,KAAM;AACvC,WAAO,GAAG;AAAA,EACZ;AAEA,QAAM,YAAY,MAAM,OAAO,EAAE,GAAG,OAAO;AAC3C,QAAM,YAAY,MAAM,OAAO,EAAE,GAAG,OAAO;AAE3C,QAAM,KAAsB;AAE5B,KAAG,YAAY;AACf,KAAG,YAAY;AAEf,KAAG,QAAQ,MAAM;AACf,OAAG,UAAU;AACb,OAAG,QAAQ,eAAe,OAAO,KAAM;AAAA,EACzC;AAEA,KAAG,MAAA;AAEH,SAAO;AACT;ACrCA,MAAM,oBAAoB,CAAS,iBAA6B;AAC9D,MAAI,gBAAgB,MAAM;AACxB,QAAI;AACJ,WAAO;AAAA,MACL,KAAK,MAAc;AAAA,MACnB,KAAK,CAAC,UAA0B;AAC9B,sBAAc;AACd,eAAO;AAAA,MACT;AAAA,IAAA;AAAA,EAEJ;AAEA,QAAM,cAAc;AAEpB,SAAO;AAAA,IACL,KAAK,MAAc,YAAY,YAAY;AAAA,IAC3C,KAAK,CAAC,UAA0B;AAC9B,kBAAY,YAAY,IAAI;AAC5B,aAAO;AAAA,IACT;AAAA,EAAA;AAEJ;AAKO,MAAM,qBAAqB,CAChC,cACA,iBACG;AACH,QAAM,cAAc,kBAAqB,YAAY;AACrD,SAAO,YAAY,IAAA,KAAS,YAAY,IAAI,YAAY;AAC1D;AAEO,MAAM,4BAA4B,CACvC,WACA,iBACG;AACH,QAAM,cAAc,kBAAwC,YAAY;AAExE,QAAM,WAAW,MAAM;AACrB,WAAO,YAAY,SAAS,YAAY,IAAI,UAAU,MAAM,IAAI,CAAC;AAAA,EACnE;AAEA,SAAO;AAAA,IACL,KAAK;AAAA,IACL,KAAK,YAAY;AAAA,IACjB,QAAQ,CAAC,UAAsB;AAC7B,YAAM,eAAe,SAAA;AACrB,aAAO,OAAO,cAAc,UAAU,OAAO,YAAY,CAAC;AAAA,IAC5D;AAAA,EAAA;AAEJ;ACzBO,MAAM,eAAgE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM3E,YAAoB,QAA6C;AAA7C,SAAA,SAAA;AAAA,EAA8C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAalE,OACE,gBACG,MAGH;AACA,WAAO,KAAK,OAAO,QAAQ,aAAa;AAAA,MACtC,GAAG,KAAK,OAAO;AAAA,MACf,GAAG,KAAK,CAAC;AAAA,IAAA,CACH;AAAA,EACV;AACF;ACpDO,MAAM,OAAsC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKjD,OAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOvB,OAAyB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMzB,OAAO,MAAe;AACpB,SAAK,OAAO;AACZ,SAAK,KAAK,QAAQ,CAAC,QAAQ;AACzB,UAAI,GAAG,IAAI;AAAA,IACb,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,KAAqB;AACzB,SAAK,OAAO,KAAK,KAAK,OAAO,CAAC,OAAO,OAAO,GAAG;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,IAAI,KAAqB;AACvB,SAAK,KAAK,KAAK,GAAG;AAClB,WAAO,MAAM,KAAK,MAAM,GAAG;AAAA,EAC7B;AACF;AAEO,MAAM,eAAe,MAC1B,IAAI,OAAA;"}
|
package/cookie.cjs
CHANGED
|
@@ -1,2 +1,10 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const parseCookie = (cookiesString = document.cookie) => {
|
|
4
|
+
return cookiesString.split(";").map((cookieString) => cookieString.trim().split("=")).reduce((acc, current) => {
|
|
5
|
+
acc[current[0]] = current[1];
|
|
6
|
+
return acc;
|
|
7
|
+
}, {});
|
|
8
|
+
};
|
|
9
|
+
exports.parseCookie = parseCookie;
|
|
2
10
|
//# sourceMappingURL=cookie.cjs.map
|
package/cookie.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookie.cjs","sources":["../src/cookie.ts"],"sourcesContent":["import type { AnyObject } from 'yummies/
|
|
1
|
+
{"version":3,"file":"cookie.cjs","sources":["../src/cookie.ts"],"sourcesContent":["import type { AnyObject } from 'yummies/types';\n\nexport const parseCookie = (cookiesString = document.cookie) => {\n return cookiesString\n .split(';')\n .map((cookieString) => cookieString.trim().split('='))\n .reduce<AnyObject>((acc, current) => {\n acc[current[0]] = current[1];\n return acc;\n }, {});\n};\n"],"names":[],"mappings":";;AAEO,MAAM,cAAc,CAAC,gBAAgB,SAAS,WAAW;AAC9D,SAAO,cACJ,MAAM,GAAG,EACT,IAAI,CAAC,iBAAiB,aAAa,KAAA,EAAO,MAAM,GAAG,CAAC,EACpD,OAAkB,CAAC,KAAK,YAAY;AACnC,QAAI,QAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC;AAC3B,WAAO;AAAA,EACT,GAAG,CAAA,CAAE;AACT;;"}
|
package/cookie.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import { AnyObject } from '
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { AnyObject } from 'yummies/types';
|
|
2
|
+
|
|
3
|
+
declare const parseCookie: (cookiesString?: string) => AnyObject;
|
|
4
|
+
|
|
5
|
+
export { parseCookie };
|