yummies 5.11.0 → 5.11.2

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.
Files changed (135) hide show
  1. package/async.cjs +1 -1
  2. package/async.cjs.map +1 -1
  3. package/async.js +38 -21
  4. package/async.js.map +1 -1
  5. package/common.cjs +1 -1
  6. package/common.cjs.map +1 -1
  7. package/common.js +9 -3
  8. package/common.js.map +1 -1
  9. package/complex.cjs +1 -1
  10. package/complex.cjs.map +1 -1
  11. package/complex.js +56 -33
  12. package/complex.js.map +1 -1
  13. package/cookie.cjs +1 -1
  14. package/cookie.cjs.map +1 -1
  15. package/cookie.js +7 -2
  16. package/cookie.js.map +1 -1
  17. package/css.cjs +1 -1
  18. package/css.cjs.map +1 -1
  19. package/css.js +41 -20
  20. package/css.js.map +1 -1
  21. package/data.cjs +1 -1
  22. package/data.cjs.map +1 -1
  23. package/data.js +35 -25
  24. package/data.js.map +1 -1
  25. package/date-time.cjs +1 -1
  26. package/date-time.cjs.map +1 -1
  27. package/date-time.d.ts.map +1 -1
  28. package/date-time.js +332 -250
  29. package/date-time.js.map +1 -1
  30. package/device.cjs +1 -1
  31. package/device.cjs.map +1 -1
  32. package/device.js +27 -18
  33. package/device.js.map +1 -1
  34. package/encodings.cjs +1 -1
  35. package/encodings.cjs.map +1 -1
  36. package/encodings.js +10 -10
  37. package/encodings.js.map +1 -1
  38. package/errors.cjs +1 -1
  39. package/errors.cjs.map +1 -1
  40. package/errors.d.ts.map +1 -1
  41. package/errors.js +21 -6
  42. package/errors.js.map +1 -1
  43. package/file.cjs +1 -1
  44. package/file.cjs.map +1 -1
  45. package/file.js +26 -17
  46. package/file.js.map +1 -1
  47. package/format/percent.d.ts +2 -2
  48. package/format/percent.d.ts.map +1 -1
  49. package/format.cjs +1 -1
  50. package/format.cjs.map +1 -1
  51. package/format.js +66 -42
  52. package/format.js.map +1 -1
  53. package/html.cjs +1 -1
  54. package/html.cjs.map +1 -1
  55. package/html.d.ts +1 -1
  56. package/html.d.ts.map +1 -1
  57. package/html.js +111 -68
  58. package/html.js.map +1 -1
  59. package/id.cjs +1 -2
  60. package/id.cjs.map +1 -1
  61. package/id.js +23 -13
  62. package/id.js.map +1 -1
  63. package/imports.cjs +1 -1
  64. package/imports.cjs.map +1 -1
  65. package/imports.js +27 -18
  66. package/imports.js.map +1 -1
  67. package/math.cjs +1 -1
  68. package/math.cjs.map +1 -1
  69. package/math.js +10 -8
  70. package/math.js.map +1 -1
  71. package/media.cjs +1 -1
  72. package/media.cjs.map +1 -1
  73. package/media.js +94 -49
  74. package/media.js.map +1 -1
  75. package/mobx/deep-observable-struct.d.ts.map +1 -1
  76. package/mobx.cjs +1 -1
  77. package/mobx.cjs.map +1 -1
  78. package/mobx.js +123 -68
  79. package/mobx.js.map +1 -1
  80. package/ms.cjs +1 -1
  81. package/ms.cjs.map +1 -1
  82. package/ms.js +9 -8
  83. package/ms.js.map +1 -1
  84. package/number.cjs +1 -1
  85. package/number.cjs.map +1 -1
  86. package/number.js +7 -6
  87. package/number.js.map +1 -1
  88. package/package.json +34 -33
  89. package/parser.cjs +1 -1
  90. package/parser.cjs.map +1 -1
  91. package/parser.js +64 -10
  92. package/parser.js.map +1 -1
  93. package/price.cjs +1 -1
  94. package/price.cjs.map +1 -1
  95. package/price.js +14 -7
  96. package/price.js.map +1 -1
  97. package/random.cjs +1 -1
  98. package/random.cjs.map +1 -1
  99. package/random.js +22 -9
  100. package/random.js.map +1 -1
  101. package/react.cjs +1 -1
  102. package/react.cjs.map +1 -1
  103. package/react.js +195 -130
  104. package/react.js.map +1 -1
  105. package/sound.cjs +1 -1
  106. package/sound.cjs.map +1 -1
  107. package/sound.js +8 -4
  108. package/sound.js.map +1 -1
  109. package/text.cjs +1 -1
  110. package/text.cjs.map +1 -1
  111. package/text.js +30 -14
  112. package/text.js.map +1 -1
  113. package/type-guard.cjs +1 -1
  114. package/type-guard.cjs.map +1 -1
  115. package/type-guard.js +93 -2
  116. package/type-guard.js.map +1 -1
  117. package/utility-types.d.ts +4 -0
  118. package/utils/types.d.ts +4 -0
  119. package/utils/types.d.ts.map +1 -1
  120. package/vibrate.cjs +1 -1
  121. package/vibrate.cjs.map +1 -1
  122. package/vibrate.js +5 -3
  123. package/vibrate.js.map +1 -1
  124. package/~constants-CFexlSUS.js +0 -7
  125. package/~constants-CFexlSUS.js.map +0 -1
  126. package/~constants-HmaulHpr.js +0 -2
  127. package/~constants-HmaulHpr.js.map +0 -1
  128. package/~index-C3wKHvHr.js +0 -80
  129. package/~index-C3wKHvHr.js.map +0 -1
  130. package/~index-PKNbSTT-.js +0 -2
  131. package/~index-PKNbSTT-.js.map +0 -1
  132. package/~number-B1MpW9GU.js +0 -2
  133. package/~number-B1MpW9GU.js.map +0 -1
  134. package/~number-EWff2XI6.js +0 -25
  135. package/~number-EWff2XI6.js.map +0 -1
package/async.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=(e=0)=>new Promise(t=>setTimeout(t,e)),a=async(e=1e3)=>new Promise(t=>setTimeout(t,e)),o=(e,t)=>{if(e())return;const r=()=>requestAnimationFrame(()=>o(e,t));t?queueMicrotask(r):r()};function i(e,t,r){let n=null;const l=()=>{n!=null&&(clearTimeout(n),n=null)};r?.addEventListener("abort",l,{once:!0}),n=setTimeout(()=>{r?.removeEventListener("abort",l),e()},t)}function u(e,t,r){let n=null;const l=()=>{n!=null&&(clearInterval(n),n=null)};r?.addEventListener("abort",l,{once:!0}),n=setInterval(e,t)}exports.endlessRAF=o;exports.setAbortableInterval=u;exports.setAbortableTimeout=i;exports.sleep=s;exports.waitAsync=a;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=(t,n)=>{if(t())return;const o=()=>requestAnimationFrame(()=>e(t,n));n?queueMicrotask(o):o()};exports.endlessRAF=e,exports.setAbortableInterval=function(e,t,n){let o=null;n?.addEventListener("abort",()=>{null!=o&&(clearInterval(o),o=null)},{once:!0}),o=setInterval(e,t)},exports.setAbortableTimeout=function(e,t,n){let o=null;const r=()=>{null!=o&&(clearTimeout(o),o=null)};n?.addEventListener("abort",r,{once:!0}),o=setTimeout(()=>{n?.removeEventListener("abort",r),e()},t)},exports.sleep=(e=0)=>new Promise(t=>setTimeout(t,e)),exports.waitAsync=async(e=1e3)=>new Promise(t=>setTimeout(t,e));
2
2
  //# 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":["sleep","time","resolve","waitAsync","ms","endlessRAF","quitFunction","asMicrotask","raf","setAbortableTimeout","callback","delayInMs","signal","internalTimer","handleAbort","setAbortableInterval","timer"],"mappings":"gFAMO,MAAMA,EAAQ,CAACC,EAAe,IACnC,IAAI,QAASC,GAAY,WAAWA,EAASD,CAAI,CAAC,EASvCE,EAAY,MAAOC,EAAK,MACnC,IAAI,QAASF,GAAY,WAAWA,EAASE,CAAE,CAAC,EAWrCC,EAAa,CACxBC,EACAC,IACG,CACH,GAAID,IAAgB,OAEpB,MAAME,EAAM,IACV,sBAAsB,IAAMH,EAAWC,EAAcC,CAAW,CAAC,EAE/DA,EACF,eAAeC,CAAG,EAElBA,EAAA,CAEJ,EAEO,SAASC,EACdC,EACAC,EACAC,EACA,CACA,IAAIC,EAA+B,KAEnC,MAAMC,EAAc,IAAM,CACpBD,GAAiB,OAGrB,aAAaA,CAAa,EAC1BA,EAAgB,KAClB,EAEAD,GAAQ,iBAAiB,QAASE,EAAa,CAAE,KAAM,GAAM,EAE7DD,EAAgB,WAAW,IAAM,CAC/BD,GAAQ,oBAAoB,QAASE,CAAW,EAChDJ,EAAA,CACF,EAAGC,CAAS,CACd,CAEO,SAASI,EACdL,EACAC,EACAC,EACA,CACA,IAAII,EAAuB,KAE3B,MAAMF,EAAc,IAAM,CACpBE,GAAS,OAGb,cAAcA,CAAK,EACnBA,EAAQ,KACV,EAEAJ,GAAQ,iBAAiB,QAASE,EAAa,CAAE,KAAM,GAAM,EAE7DE,EAAQ,YAAYN,EAAUC,CAAS,CACzC"}
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":["endlessRAF","quitFunction","asMicrotask","raf","requestAnimationFrame","queueMicrotask","callback","delayInMs","signal","timer","addEventListener","clearInterval","once","setInterval","internalTimer","handleAbort","clearTimeout","setTimeout","removeEventListener","time","Promise","resolve","async","ms"],"mappings":"gFAMO,MAsBMA,EAAa,CACxBC,EACAC,KAEA,GAAID,IAAgB,OAEpB,MAAME,EAAM,IACVC,sBAAsB,IAAMJ,EAAWC,EAAcC,IAEnDA,EACFG,eAAeF,GAEfA,uDA2BG,SACLG,EACAC,EACAC,GAEA,IAAIC,EAAuB,KAU3BD,GAAQE,iBAAiB,QARL,KACL,MAATD,IAGJE,cAAcF,GACdA,EAAQ,OAGqC,CAAEG,MAAM,IAEvDH,EAAQI,YAAYP,EAAUC,EAChC,8BAzCO,SACLD,EACAC,EACAC,GAEA,IAAIM,EAA+B,KAEnC,MAAMC,EAAc,KACG,MAAjBD,IAGJE,aAAaF,GACbA,EAAgB,OAGlBN,GAAQE,iBAAiB,QAASK,EAAa,CAAEH,MAAM,IAEvDE,EAAgBG,WAAW,KACzBT,GAAQU,oBAAoB,QAASH,GACrCT,KACCC,EACL,gBA3DqB,CAACY,EAAe,IACnC,IAAIC,QAASC,GAAYJ,WAAWI,EAASF,sBAStBG,MAAOC,EAAK,MACnC,IAAIH,QAASC,GAAYJ,WAAWI,EAASE"}
package/async.js CHANGED
@@ -1,29 +1,46 @@
1
- const s = (e = 0) => new Promise((t) => setTimeout(t, e)), i = async (e = 1e3) => new Promise((t) => setTimeout(t, e)), o = (e, t) => {
2
- if (e()) return;
3
- const r = () => requestAnimationFrame(() => o(e, t));
4
- t ? queueMicrotask(r) : r();
1
+ const sleep = (time = 0) => new Promise((resolve) => setTimeout(resolve, time));
2
+ const waitAsync = async (ms = 1e3) => new Promise((resolve) => setTimeout(resolve, ms));
3
+ const endlessRAF = (quitFunction, asMicrotask) => {
4
+ if (quitFunction()) return;
5
+ const raf = () => requestAnimationFrame(() => endlessRAF(quitFunction, asMicrotask));
6
+ if (asMicrotask) {
7
+ queueMicrotask(raf);
8
+ } else {
9
+ raf();
10
+ }
5
11
  };
6
- function u(e, t, r) {
7
- let n = null;
8
- const l = () => {
9
- n != null && (clearTimeout(n), n = null);
12
+ function setAbortableTimeout(callback, delayInMs, signal) {
13
+ let internalTimer = null;
14
+ const handleAbort = () => {
15
+ if (internalTimer == null) {
16
+ return;
17
+ }
18
+ clearTimeout(internalTimer);
19
+ internalTimer = null;
10
20
  };
11
- r?.addEventListener("abort", l, { once: !0 }), n = setTimeout(() => {
12
- r?.removeEventListener("abort", l), e();
13
- }, t);
21
+ signal?.addEventListener("abort", handleAbort, { once: true });
22
+ internalTimer = setTimeout(() => {
23
+ signal?.removeEventListener("abort", handleAbort);
24
+ callback();
25
+ }, delayInMs);
14
26
  }
15
- function a(e, t, r) {
16
- let n = null;
17
- const l = () => {
18
- n != null && (clearInterval(n), n = null);
27
+ function setAbortableInterval(callback, delayInMs, signal) {
28
+ let timer = null;
29
+ const handleAbort = () => {
30
+ if (timer == null) {
31
+ return;
32
+ }
33
+ clearInterval(timer);
34
+ timer = null;
19
35
  };
20
- r?.addEventListener("abort", l, { once: !0 }), n = setInterval(e, t);
36
+ signal?.addEventListener("abort", handleAbort, { once: true });
37
+ timer = setInterval(callback, delayInMs);
21
38
  }
22
39
  export {
23
- o as endlessRAF,
24
- a as setAbortableInterval,
25
- u as setAbortableTimeout,
26
- s as sleep,
27
- i as waitAsync
40
+ endlessRAF,
41
+ setAbortableInterval,
42
+ setAbortableTimeout,
43
+ sleep,
44
+ waitAsync
28
45
  };
29
46
  //# sourceMappingURL=async.js.map
package/async.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"async.js","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":["sleep","time","resolve","waitAsync","ms","endlessRAF","quitFunction","asMicrotask","raf","setAbortableTimeout","callback","delayInMs","signal","internalTimer","handleAbort","setAbortableInterval","timer"],"mappings":"AAMO,MAAMA,IAAQ,CAACC,IAAe,MACnC,IAAI,QAAQ,CAACC,MAAY,WAAWA,GAASD,CAAI,CAAC,GASvCE,IAAY,OAAOC,IAAK,QACnC,IAAI,QAAQ,CAACF,MAAY,WAAWA,GAASE,CAAE,CAAC,GAWrCC,IAAa,CACxBC,GACAC,MACG;AACH,MAAID,IAAgB;AAEpB,QAAME,IAAM,MACV,sBAAsB,MAAMH,EAAWC,GAAcC,CAAW,CAAC;AAEnE,EAAIA,IACF,eAAeC,CAAG,IAElBA,EAAA;AAEJ;AAEO,SAASC,EACdC,GACAC,GACAC,GACA;AACA,MAAIC,IAA+B;AAEnC,QAAMC,IAAc,MAAM;AACxB,IAAID,KAAiB,SAGrB,aAAaA,CAAa,GAC1BA,IAAgB;AAAA,EAClB;AAEA,EAAAD,GAAQ,iBAAiB,SAASE,GAAa,EAAE,MAAM,IAAM,GAE7DD,IAAgB,WAAW,MAAM;AAC/B,IAAAD,GAAQ,oBAAoB,SAASE,CAAW,GAChDJ,EAAA;AAAA,EACF,GAAGC,CAAS;AACd;AAEO,SAASI,EACdL,GACAC,GACAC,GACA;AACA,MAAII,IAAuB;AAE3B,QAAMF,IAAc,MAAM;AACxB,IAAIE,KAAS,SAGb,cAAcA,CAAK,GACnBA,IAAQ;AAAA,EACV;AAEA,EAAAJ,GAAQ,iBAAiB,SAASE,GAAa,EAAE,MAAM,IAAM,GAE7DE,IAAQ,YAAYN,GAAUC,CAAS;AACzC;"}
1
+ {"version":3,"file":"async.js","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/common.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=(e,...n)=>typeof e=="function"?e(...n):e,o=t;exports.callFunction=t;exports.resolveFnValue=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=(e,...t)=>"function"==typeof e?e(...t):e,t=e;exports.callFunction=e,exports.resolveFnValue=t;
2
2
  //# 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/utils/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":["callFunction","fn","args","resolveFnValue"],"mappings":"gFAWO,MAAMA,EAAe,CAC1BC,KACGC,IAEC,OAAOD,GAAO,WACRA,EAAW,GAAGC,CAAI,EAGrBD,EAMIE,EAAiBH"}
1
+ {"version":3,"file":"common.cjs","sources":["../src/common.ts"],"sourcesContent":["import type { MaybeFn } from 'yummies/utils/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":["callFunction","fn","args","resolveFnValue"],"mappings":"gFAWO,MAAMA,EAAe,CAC1BC,KACGC,IAEe,mBAAPD,EACDA,KAAcC,GAGjBD,EAMIE,EAAiBH"}
package/common.js CHANGED
@@ -1,6 +1,12 @@
1
- const n = (t, ...e) => typeof t == "function" ? t(...e) : t, o = n;
1
+ const callFunction = (fn, ...args) => {
2
+ if (typeof fn === "function") {
3
+ return fn(...args);
4
+ }
5
+ return fn;
6
+ };
7
+ const resolveFnValue = callFunction;
2
8
  export {
3
- n as callFunction,
4
- o as resolveFnValue
9
+ callFunction,
10
+ resolveFnValue
5
11
  };
6
12
  //# sourceMappingURL=common.js.map
package/common.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sources":["../src/common.ts"],"sourcesContent":["import type { MaybeFn } from 'yummies/utils/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":["callFunction","fn","args","resolveFnValue"],"mappings":"AAWO,MAAMA,IAAe,CAC1BC,MACGC,MAEC,OAAOD,KAAO,aACRA,EAAW,GAAGC,CAAI,IAGrBD,GAMIE,IAAiBH;"}
1
+ {"version":3,"file":"common.js","sources":["../src/common.ts"],"sourcesContent":["import type { MaybeFn } from 'yummies/utils/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,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=(r,e=0)=>{const t=l=>(n.value=r?.(l)??l,n.value),o=()=>t(++n.counter),c=()=>t(--n.counter),n=o;return n.increment=o,n.decrement=c,n.reset=()=>{n.counter=e,n.value=r?.(e)??e},n.reset(),n},s=r=>{if(r==null){let t;return{get:()=>t,set:o=>(t=o,o)}}const e=globalThis;return{get:()=>e[r],set:t=>(e[r]=t,t)}},a=(r,e)=>{const t=s(e);return t.get()||t.set(r)},g=(r,e)=>{const t=s(e),o=()=>t.get()??t.set(r(null,null));return{get:o,set:t.set,update:c=>{const n=o();Object.assign(n,r(c,n))}}};class i{constructor(e){this.config=e}create(e,...t){return this.config.factory(e,{...this.config.deps,...t[0]})}}exports.ModulesFactory=i;exports.createCounter=u;exports.createGlobalConfig=a;exports.createGlobalDynamicConfig=g;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=e=>{if(null==e){let e;return{get:()=>e,set:t=>(e=t,t)}}const t=globalThis;return{get:()=>t[e],set:r=>(t[e]=r,r)}};exports.ModulesFactory=class{constructor(e){this.config=e}create(e,...t){return this.config.factory(e,{...this.config.deps,...t[0]})}},exports.createCounter=(e,t=0)=>{const r=t=>(o.value=e?.(t)??t,o.value),n=()=>r(++o.counter),o=n;return o.increment=n,o.decrement=()=>r(--o.counter),o.reset=()=>{o.counter=t,o.value=e?.(t)??t},o.reset(),o},exports.createGlobalConfig=(t,r)=>{const n=e(r);return n.get()||n.set(t)},exports.createGlobalDynamicConfig=(t,r)=>{const n=e(r),o=()=>n.get()??n.set(t(null,null));return{get:o,set:n.set,update:e=>{const r=o();Object.assign(r,t(e,r))}}};
2
2
  //# 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/utils/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 {\n AnyObject,\n Class,\n EmptyObject,\n IsPartial,\n} from 'yummies/utils/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"],"names":["createCounter","processValue","initial","update","counter","fn","increment","decrement","createGlobalPoint","accessSymbol","storedValue","value","_globalThis","createGlobalConfig","defaultValue","globalPoint","createGlobalDynamicConfig","processFn","getValue","currentValue","ModulesFactory","config","Constructor","args"],"mappings":"gFAcO,MAAMA,EAAgB,CAC3BC,EACAC,EAAkB,IACE,CACpB,MAAMC,EAAUC,IACdC,EAAG,MAAQJ,IAAeG,CAAO,GAAMA,EAChCC,EAAG,OAGNC,EAAY,IAAMH,EAAO,EAAEE,EAAG,OAAO,EACrCE,EAAY,IAAMJ,EAAO,EAAEE,EAAG,OAAO,EAErCA,EAAsBC,EAE5B,OAAAD,EAAG,UAAYC,EACfD,EAAG,UAAYE,EAEfF,EAAG,MAAQ,IAAM,CACfA,EAAG,QAAUH,EACbG,EAAG,MAAQJ,IAAeC,CAAO,GAAMA,CACzC,EAEAG,EAAG,MAAA,EAEIA,CACT,ECrCMG,EAA6BC,GAA6B,CAC9D,GAAIA,GAAgB,KAAM,CACxB,IAAIC,EACJ,MAAO,CACL,IAAK,IAAcA,EACnB,IAAMC,IACJD,EAAcC,EACPA,EACT,CAEJ,CAEA,MAAMC,EAAc,WAEpB,MAAO,CACL,IAAK,IAAcA,EAAYH,CAAY,EAC3C,IAAME,IACJC,EAAYH,CAAY,EAAIE,EACrBA,EACT,CAEJ,EAKaE,EAAqB,CAChCC,EACAL,IACG,CACH,MAAMM,EAAcP,EAAqBC,CAAY,EACrD,OAAOM,EAAY,IAAA,GAASA,EAAY,IAAID,CAAY,CAC1D,EAEaE,EAA4B,CACvCC,EACAR,IACG,CACH,MAAMM,EAAcP,EAAwCC,CAAY,EAElES,EAAW,IACRH,EAAY,OAASA,EAAY,IAAIE,EAAU,KAAM,IAAI,CAAC,EAGnE,MAAO,CACL,IAAKC,EACL,IAAKH,EAAY,IACjB,OAASJ,GAAsB,CAC7B,MAAMQ,EAAeD,EAAA,EACrB,OAAO,OAAOC,EAAcF,EAAUN,EAAOQ,CAAY,CAAC,CAC5D,CAAA,CAEJ,ECpBO,MAAMC,CAAgE,CAM3E,YAAoBC,EAA6C,CAA7C,KAAA,OAAAA,CAA8C,CAalE,OACEC,KACGC,EAGH,CACA,OAAO,KAAK,OAAO,QAAQD,EAAa,CACtC,GAAG,KAAK,OAAO,KACf,GAAGC,EAAK,CAAC,CAAA,CACH,CACV,CACF"}
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/utils/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 {\n AnyObject,\n Class,\n EmptyObject,\n IsPartial,\n} from 'yummies/utils/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"],"names":["createGlobalPoint","accessSymbol","storedValue","get","set","value","_globalThis","globalThis","constructor","config","this","create","Constructor","args","factory","deps","processValue","initial","update","counter","fn","increment","decrement","reset","defaultValue","globalPoint","processFn","getValue","currentValue","Object","assign"],"mappings":"gFAcO,MCZDA,EAA6BC,IACjC,GAAoB,MAAhBA,EAAsB,CACxB,IAAIC,EACJ,MAAO,CACLC,IAAK,IAAcD,EACnBE,IAAMC,IACJH,EAAcG,EACPA,GAGb,CAEA,MAAMC,EAAcC,WAEpB,MAAO,CACLJ,IAAK,IAAcG,EAAYL,GAC/BG,IAAMC,IACJC,EAAYL,GAAgBI,EACrBA,4BCcN,MAML,WAAAG,CAAoBC,GAAAC,KAAAD,OAAAA,CAA8C,CAalE,MAAAE,CACEC,KACGC,GAIH,OAAOH,KAAKD,OAAOK,QAAQF,EAAa,IACnCF,KAAKD,OAAOM,QACZF,EAAK,IAEZ,yBFjD2B,CAC3BG,EACAC,EAAkB,KAElB,MAAMC,EAAUC,IACdC,EAAGf,MAAQW,IAAeG,IAAaA,EAChCC,EAAGf,OAGNgB,EAAY,IAAMH,IAASE,EAAGD,SAG9BC,EAAsBC,EAY5B,OAVAD,EAAGC,UAAYA,EACfD,EAAGE,UALe,IAAMJ,IAASE,EAAGD,SAOpCC,EAAGG,MAAQ,KACTH,EAAGD,QAAUF,EACbG,EAAGf,MAAQW,IAAeC,IAAaA,GAGzCG,EAAGG,QAEIH,8BCVyB,CAChCI,EACAvB,KAEA,MAAMwB,EAAczB,EAAqBC,GACzC,OAAOwB,EAAYtB,OAASsB,EAAYrB,IAAIoB,sCAGL,CACvCE,EACAzB,KAEA,MAAMwB,EAAczB,EAAwCC,GAEtD0B,EAAW,IACRF,EAAYtB,OAASsB,EAAYrB,IAAIsB,EAAU,KAAM,OAG9D,MAAO,CACLvB,IAAKwB,EACLvB,IAAKqB,EAAYrB,IACjBc,OAASb,IACP,MAAMuB,EAAeD,IACrBE,OAAOC,OAAOF,EAAcF,EAAUrB,EAAOuB"}
package/complex.js CHANGED
@@ -1,43 +1,66 @@
1
- const l = (r, e = 0) => {
2
- const t = (s) => (n.value = r?.(s) ?? s, n.value), o = () => t(++n.counter), c = () => t(--n.counter), n = o;
3
- return n.increment = o, n.decrement = c, n.reset = () => {
4
- n.counter = e, n.value = r?.(e) ?? e;
5
- }, n.reset(), n;
6
- }, u = (r) => {
7
- if (r == null) {
8
- let t;
1
+ const createCounter = (processValue, initial = 0) => {
2
+ const update = (counter) => {
3
+ fn.value = processValue?.(counter) ?? counter;
4
+ return fn.value;
5
+ };
6
+ const increment = () => update(++fn.counter);
7
+ const decrement = () => update(--fn.counter);
8
+ const fn = increment;
9
+ fn.increment = increment;
10
+ fn.decrement = decrement;
11
+ fn.reset = () => {
12
+ fn.counter = initial;
13
+ fn.value = processValue?.(initial) ?? initial;
14
+ };
15
+ fn.reset();
16
+ return fn;
17
+ };
18
+ const createGlobalPoint = (accessSymbol) => {
19
+ if (accessSymbol == null) {
20
+ let storedValue;
9
21
  return {
10
- get: () => t,
11
- set: (o) => (t = o, o)
22
+ get: () => storedValue,
23
+ set: (value) => {
24
+ storedValue = value;
25
+ return value;
26
+ }
12
27
  };
13
28
  }
14
- const e = globalThis;
29
+ const _globalThis = globalThis;
15
30
  return {
16
- get: () => e[r],
17
- set: (t) => (e[r] = t, t)
31
+ get: () => _globalThis[accessSymbol],
32
+ set: (value) => {
33
+ _globalThis[accessSymbol] = value;
34
+ return value;
35
+ }
36
+ };
37
+ };
38
+ const createGlobalConfig = (defaultValue, accessSymbol) => {
39
+ const globalPoint = createGlobalPoint(accessSymbol);
40
+ return globalPoint.get() || globalPoint.set(defaultValue);
41
+ };
42
+ const createGlobalDynamicConfig = (processFn, accessSymbol) => {
43
+ const globalPoint = createGlobalPoint(accessSymbol);
44
+ const getValue = () => {
45
+ return globalPoint.get() ?? globalPoint.set(processFn(null, null));
18
46
  };
19
- }, a = (r, e) => {
20
- const t = u(e);
21
- return t.get() || t.set(r);
22
- }, g = (r, e) => {
23
- const t = u(e), o = () => t.get() ?? t.set(r(null, null));
24
47
  return {
25
- get: o,
26
- set: t.set,
27
- update: (c) => {
28
- const n = o();
29
- Object.assign(n, r(c, n));
48
+ get: getValue,
49
+ set: globalPoint.set,
50
+ update: (value) => {
51
+ const currentValue = getValue();
52
+ Object.assign(currentValue, processFn(value, currentValue));
30
53
  }
31
54
  };
32
55
  };
33
- class i {
56
+ class ModulesFactory {
34
57
  /**
35
58
  * Создает новый экземпляр `ModulesFactory`.
36
59
  *
37
60
  * @param config - Объект конфигурации для фабрики, включающий функцию фабрики и необязательные зависимости.
38
61
  */
39
- constructor(e) {
40
- this.config = e;
62
+ constructor(config) {
63
+ this.config = config;
41
64
  }
42
65
  /**
43
66
  * Создает экземпляр указанного класса, внедряя необходимые зависимости.
@@ -50,17 +73,17 @@ class i {
50
73
  *
51
74
  * @returns Экземпляр указанного класса с внедренными зависимостями.
52
75
  */
53
- create(e, ...t) {
54
- return this.config.factory(e, {
76
+ create(Constructor, ...args) {
77
+ return this.config.factory(Constructor, {
55
78
  ...this.config.deps,
56
- ...t[0]
79
+ ...args[0]
57
80
  });
58
81
  }
59
82
  }
60
83
  export {
61
- i as ModulesFactory,
62
- l as createCounter,
63
- a as createGlobalConfig,
64
- g as createGlobalDynamicConfig
84
+ ModulesFactory,
85
+ createCounter,
86
+ createGlobalConfig,
87
+ createGlobalDynamicConfig
65
88
  };
66
89
  //# 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/utils/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 {\n AnyObject,\n Class,\n EmptyObject,\n IsPartial,\n} from 'yummies/utils/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"],"names":["createCounter","processValue","initial","update","counter","fn","increment","decrement","createGlobalPoint","accessSymbol","storedValue","value","_globalThis","createGlobalConfig","defaultValue","globalPoint","createGlobalDynamicConfig","processFn","getValue","currentValue","ModulesFactory","config","Constructor","args"],"mappings":"AAcO,MAAMA,IAAgB,CAC3BC,GACAC,IAAkB,MACE;AACpB,QAAMC,IAAS,CAACC,OACdC,EAAG,QAAQJ,IAAeG,CAAO,KAAMA,GAChCC,EAAG,QAGNC,IAAY,MAAMH,EAAO,EAAEE,EAAG,OAAO,GACrCE,IAAY,MAAMJ,EAAO,EAAEE,EAAG,OAAO,GAErCA,IAAsBC;AAE5B,SAAAD,EAAG,YAAYC,GACfD,EAAG,YAAYE,GAEfF,EAAG,QAAQ,MAAM;AACf,IAAAA,EAAG,UAAUH,GACbG,EAAG,QAAQJ,IAAeC,CAAO,KAAMA;AAAA,EACzC,GAEAG,EAAG,MAAA,GAEIA;AACT,GCrCMG,IAAoB,CAASC,MAA6B;AAC9D,MAAIA,KAAgB,MAAM;AACxB,QAAIC;AACJ,WAAO;AAAA,MACL,KAAK,MAAcA;AAAA,MACnB,KAAK,CAACC,OACJD,IAAcC,GACPA;AAAA,IACT;AAAA,EAEJ;AAEA,QAAMC,IAAc;AAEpB,SAAO;AAAA,IACL,KAAK,MAAcA,EAAYH,CAAY;AAAA,IAC3C,KAAK,CAACE,OACJC,EAAYH,CAAY,IAAIE,GACrBA;AAAA,EACT;AAEJ,GAKaE,IAAqB,CAChCC,GACAL,MACG;AACH,QAAMM,IAAcP,EAAqBC,CAAY;AACrD,SAAOM,EAAY,IAAA,KAASA,EAAY,IAAID,CAAY;AAC1D,GAEaE,IAA4B,CACvCC,GACAR,MACG;AACH,QAAMM,IAAcP,EAAwCC,CAAY,GAElES,IAAW,MACRH,EAAY,SAASA,EAAY,IAAIE,EAAU,MAAM,IAAI,CAAC;AAGnE,SAAO;AAAA,IACL,KAAKC;AAAA,IACL,KAAKH,EAAY;AAAA,IACjB,QAAQ,CAACJ,MAAsB;AAC7B,YAAMQ,IAAeD,EAAA;AACrB,aAAO,OAAOC,GAAcF,EAAUN,GAAOQ,CAAY,CAAC;AAAA,IAC5D;AAAA,EAAA;AAEJ;ACpBO,MAAMC,EAAgE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM3E,YAAoBC,GAA6C;AAA7C,SAAA,SAAAA;AAAA,EAA8C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAalE,OACEC,MACGC,GAGH;AACA,WAAO,KAAK,OAAO,QAAQD,GAAa;AAAA,MACtC,GAAG,KAAK,OAAO;AAAA,MACf,GAAGC,EAAK,CAAC;AAAA,IAAA,CACH;AAAA,EACV;AACF;"}
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/utils/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 {\n AnyObject,\n Class,\n EmptyObject,\n IsPartial,\n} from 'yummies/utils/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"],"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;ACpBO,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;"}
package/cookie.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=(t=document.cookie)=>t.split(";").map(e=>e.trim().split("=")).reduce((e,o)=>(e[o[0]]=o[1],e),{});exports.parseCookie=r;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.parseCookie=(e=document.cookie)=>e.split(";").map(e=>e.trim().split("=")).reduce((e,t)=>(e[t[0]]=t[1],e),{});
2
2
  //# 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/utils/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":["parseCookie","cookiesString","cookieString","acc","current"],"mappings":"gFAEO,MAAMA,EAAc,CAACC,EAAgB,SAAS,SAC5CA,EACJ,MAAM,GAAG,EACT,IAAKC,GAAiBA,EAAa,KAAA,EAAO,MAAM,GAAG,CAAC,EACpD,OAAkB,CAACC,EAAKC,KACvBD,EAAIC,EAAQ,CAAC,CAAC,EAAIA,EAAQ,CAAC,EACpBD,GACN,CAAA,CAAE"}
1
+ {"version":3,"file":"cookie.cjs","sources":["../src/cookie.ts"],"sourcesContent":["import type { AnyObject } from 'yummies/utils/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":["cookiesString","document","cookie","split","map","cookieString","trim","reduce","acc","current"],"mappings":"oGAE2B,CAACA,EAAgBC,SAASC,SAC5CF,EACJG,MAAM,KACNC,IAAKC,GAAiBA,EAAaC,OAAOH,MAAM,MAChDI,OAAkB,CAACC,EAAKC,KACvBD,EAAIC,EAAQ,IAAMA,EAAQ,GACnBD,GACN,CAAA"}
package/cookie.js CHANGED
@@ -1,5 +1,10 @@
1
- const r = (t = document.cookie) => t.split(";").map((e) => e.trim().split("=")).reduce((e, o) => (e[o[0]] = o[1], e), {});
1
+ const parseCookie = (cookiesString = document.cookie) => {
2
+ return cookiesString.split(";").map((cookieString) => cookieString.trim().split("=")).reduce((acc, current) => {
3
+ acc[current[0]] = current[1];
4
+ return acc;
5
+ }, {});
6
+ };
2
7
  export {
3
- r as parseCookie
8
+ parseCookie
4
9
  };
5
10
  //# sourceMappingURL=cookie.js.map
package/cookie.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cookie.js","sources":["../src/cookie.ts"],"sourcesContent":["import type { AnyObject } from 'yummies/utils/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":["parseCookie","cookiesString","cookieString","acc","current"],"mappings":"AAEO,MAAMA,IAAc,CAACC,IAAgB,SAAS,WAC5CA,EACJ,MAAM,GAAG,EACT,IAAI,CAACC,MAAiBA,EAAa,KAAA,EAAO,MAAM,GAAG,CAAC,EACpD,OAAkB,CAACC,GAAKC,OACvBD,EAAIC,EAAQ,CAAC,CAAC,IAAIA,EAAQ,CAAC,GACpBD,IACN,CAAA,CAAE;"}
1
+ {"version":3,"file":"cookie.js","sources":["../src/cookie.ts"],"sourcesContent":["import type { AnyObject } from 'yummies/utils/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/css.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("class-variance-authority"),v=require("clsx"),s=require("tailwind-merge"),m=(r,t=16)=>`${r/t}rem`,E=(...r)=>s.twMerge(v(...r)),h=(...r)=>{const t=a.cva(...r);return(...n)=>s.twMerge(t(...n))},u=(r,t)=>new Promise((n,c)=>{let e;t?.id&&(e=document.getElementById(t.id),e&&e.remove()),e=document.createElement("link");const o=()=>{n(void 0),e.removeEventListener("load",o),e.removeEventListener("error",i)},i=()=>{c(void 0),e.removeEventListener("load",o),e.removeEventListener("error",i)};e.addEventListener("load",o),e.addEventListener("error",i),e.setAttribute("href",r),t?.rel||e.setAttribute("rel","stylesheet"),Object.entries(t||{}).forEach(([d,l])=>{e.setAttribute(d,l)}),document.head.appendChild(e)});exports.cva=h;exports.cx=E;exports.loadCssFile=u;exports.toRem=m;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("class-variance-authority"),t=require("clsx"),r=require("tailwind-merge");exports.cva=(...t)=>{const o=e.cva(...t);return(...e)=>r.twMerge(o(...e))},exports.cx=(...e)=>r.twMerge(t(...e)),exports.loadCssFile=(e,t)=>new Promise((r,o)=>{let n;t?.id&&(n=document.getElementById(t.id),n&&n.remove()),n=document.createElement("link");const i=()=>{r(void 0),n.removeEventListener("load",i),n.removeEventListener("error",s)},s=()=>{o(void 0),n.removeEventListener("load",i),n.removeEventListener("error",s)};n.addEventListener("load",i),n.addEventListener("error",s),n.setAttribute("href",e),t?.rel||n.setAttribute("rel","stylesheet"),Object.entries(t||{}).forEach(([e,t])=>{n.setAttribute(e,t)}),document.head.appendChild(n)}),exports.toRem=(e,t=16)=>e/t+"rem";
2
2
  //# sourceMappingURL=css.cjs.map
package/css.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"css.cjs","sources":["../src/css.ts"],"sourcesContent":["import { cva as cvaLib } from 'class-variance-authority';\nimport clsx, { type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\nimport type { Maybe } from 'yummies/utils/types';\n\ntype ClassProp = {\n class?: ClassValue;\n className?: ClassValue;\n};\n\ntype StringToBoolean<T> = T extends 'true' | 'false' ? boolean : T;\n\n/**\n * Перевод значения в пикселях в rem строковое\n */\nexport const toRem = (px: number, remValue = 16) => `${px / remValue}rem`;\n\n/**\n * classNames/clsx но с примесями tailwind-merge\n */\nexport const cx = (...args: Parameters<typeof clsx>) => twMerge(clsx(...args));\n\ntype ConfigSchema = Record<string, Record<string, ClassValue>>;\ntype ConfigVariants<T extends ConfigSchema> = {\n [Variant in keyof T]?: StringToBoolean<keyof T[Variant]> | null | undefined;\n};\ntype ConfigVariantsMulti<T extends ConfigSchema> = {\n [Variant in keyof T]?:\n | StringToBoolean<keyof T[Variant]>\n | StringToBoolean<keyof T[Variant]>[]\n | undefined;\n};\ntype Config<T> = T extends ConfigSchema\n ? {\n variants?: T;\n defaultVariants?: ConfigVariants<T>;\n compoundVariants?: (T extends ConfigSchema\n ? (ConfigVariants<T> | ConfigVariantsMulti<T>) & ClassProp\n : ClassProp)[];\n }\n : never;\n\ntype Props<T> = T extends ConfigSchema\n ? ConfigVariants<T> & ClassProp\n : ClassProp;\n\n/**\n * Class Variance Authority но с примесями tailwind-merge\n *\n * https://cva.style/docs\n */\nexport const cva = ((...args: any[]) => {\n const schema = cvaLib(...args);\n return (...inputArgs: any[]) => twMerge(schema(...inputArgs));\n}) as any as <T>(\n base?: ClassValue,\n config?: Config<T>,\n) => (props?: Props<T>) => string;\n\nexport type { VariantProps } from 'class-variance-authority';\nexport type { ClassValue } from 'clsx';\n\n/**\n * Load CSS file by providing `url`.\n *\n * **NOTE:** If `id` is provided, it will remove the existing link element with the same `id` before creating a new one.\n */\nexport const loadCssFile = (url: string, attrubutes?: Record<string, any>) =>\n new Promise((resolve, reject) => {\n let link: Maybe<HTMLLinkElement>;\n\n if (attrubutes?.id) {\n link = document.getElementById(attrubutes.id) as HTMLLinkElement | null;\n\n if (link) {\n link.remove();\n }\n }\n\n link = document.createElement('link');\n\n const handleLoad = () => {\n resolve(undefined);\n link!.removeEventListener('load', handleLoad);\n link!.removeEventListener('error', handleError);\n };\n\n const handleError = () => {\n reject(undefined);\n link!.removeEventListener('load', handleLoad);\n link!.removeEventListener('error', handleError);\n };\n\n link.addEventListener('load', handleLoad);\n link.addEventListener('error', handleError);\n\n link.setAttribute('href', url);\n\n if (!attrubutes?.rel) {\n link.setAttribute('rel', 'stylesheet');\n }\n\n Object.entries(attrubutes || {}).forEach(([key, value]) => {\n link.setAttribute(key, value);\n });\n\n document.head.appendChild(link);\n });\n"],"names":["toRem","px","remValue","cx","args","twMerge","clsx","cva","schema","cvaLib","inputArgs","loadCssFile","url","attrubutes","resolve","reject","link","handleLoad","handleError","key","value"],"mappings":"0KAeaA,EAAQ,CAACC,EAAYC,EAAW,KAAO,GAAGD,EAAKC,CAAQ,MAKvDC,EAAK,IAAIC,IAAkCC,EAAAA,QAAQC,EAAK,GAAGF,CAAI,CAAC,EA+BhEG,EAAO,IAAIH,IAAgB,CACtC,MAAMI,EAASC,MAAO,GAAGL,CAAI,EAC7B,MAAO,IAAIM,IAAqBL,EAAAA,QAAQG,EAAO,GAAGE,CAAS,CAAC,CAC9D,EAaaC,EAAc,CAACC,EAAaC,IACvC,IAAI,QAAQ,CAACC,EAASC,IAAW,CAC/B,IAAIC,EAEAH,GAAY,KACdG,EAAO,SAAS,eAAeH,EAAW,EAAE,EAExCG,GACFA,EAAK,OAAA,GAITA,EAAO,SAAS,cAAc,MAAM,EAEpC,MAAMC,EAAa,IAAM,CACvBH,EAAQ,MAAS,EACjBE,EAAM,oBAAoB,OAAQC,CAAU,EAC5CD,EAAM,oBAAoB,QAASE,CAAW,CAChD,EAEMA,EAAc,IAAM,CACxBH,EAAO,MAAS,EAChBC,EAAM,oBAAoB,OAAQC,CAAU,EAC5CD,EAAM,oBAAoB,QAASE,CAAW,CAChD,EAEAF,EAAK,iBAAiB,OAAQC,CAAU,EACxCD,EAAK,iBAAiB,QAASE,CAAW,EAE1CF,EAAK,aAAa,OAAQJ,CAAG,EAExBC,GAAY,KACfG,EAAK,aAAa,MAAO,YAAY,EAGvC,OAAO,QAAQH,GAAc,CAAA,CAAE,EAAE,QAAQ,CAAC,CAACM,EAAKC,CAAK,IAAM,CACzDJ,EAAK,aAAaG,EAAKC,CAAK,CAC9B,CAAC,EAED,SAAS,KAAK,YAAYJ,CAAI,CAChC,CAAC"}
1
+ {"version":3,"file":"css.cjs","sources":["../src/css.ts"],"sourcesContent":["import { cva as cvaLib } from 'class-variance-authority';\nimport clsx, { type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\nimport type { Maybe } from 'yummies/utils/types';\n\ntype ClassProp = {\n class?: ClassValue;\n className?: ClassValue;\n};\n\ntype StringToBoolean<T> = T extends 'true' | 'false' ? boolean : T;\n\n/**\n * Перевод значения в пикселях в rem строковое\n */\nexport const toRem = (px: number, remValue = 16) => `${px / remValue}rem`;\n\n/**\n * classNames/clsx но с примесями tailwind-merge\n */\nexport const cx = (...args: Parameters<typeof clsx>) => twMerge(clsx(...args));\n\ntype ConfigSchema = Record<string, Record<string, ClassValue>>;\ntype ConfigVariants<T extends ConfigSchema> = {\n [Variant in keyof T]?: StringToBoolean<keyof T[Variant]> | null | undefined;\n};\ntype ConfigVariantsMulti<T extends ConfigSchema> = {\n [Variant in keyof T]?:\n | StringToBoolean<keyof T[Variant]>\n | StringToBoolean<keyof T[Variant]>[]\n | undefined;\n};\ntype Config<T> = T extends ConfigSchema\n ? {\n variants?: T;\n defaultVariants?: ConfigVariants<T>;\n compoundVariants?: (T extends ConfigSchema\n ? (ConfigVariants<T> | ConfigVariantsMulti<T>) & ClassProp\n : ClassProp)[];\n }\n : never;\n\ntype Props<T> = T extends ConfigSchema\n ? ConfigVariants<T> & ClassProp\n : ClassProp;\n\n/**\n * Class Variance Authority но с примесями tailwind-merge\n *\n * https://cva.style/docs\n */\nexport const cva = ((...args: any[]) => {\n const schema = cvaLib(...args);\n return (...inputArgs: any[]) => twMerge(schema(...inputArgs));\n}) as any as <T>(\n base?: ClassValue,\n config?: Config<T>,\n) => (props?: Props<T>) => string;\n\nexport type { VariantProps } from 'class-variance-authority';\nexport type { ClassValue } from 'clsx';\n\n/**\n * Load CSS file by providing `url`.\n *\n * **NOTE:** If `id` is provided, it will remove the existing link element with the same `id` before creating a new one.\n */\nexport const loadCssFile = (url: string, attrubutes?: Record<string, any>) =>\n new Promise((resolve, reject) => {\n let link: Maybe<HTMLLinkElement>;\n\n if (attrubutes?.id) {\n link = document.getElementById(attrubutes.id) as HTMLLinkElement | null;\n\n if (link) {\n link.remove();\n }\n }\n\n link = document.createElement('link');\n\n const handleLoad = () => {\n resolve(undefined);\n link!.removeEventListener('load', handleLoad);\n link!.removeEventListener('error', handleError);\n };\n\n const handleError = () => {\n reject(undefined);\n link!.removeEventListener('load', handleLoad);\n link!.removeEventListener('error', handleError);\n };\n\n link.addEventListener('load', handleLoad);\n link.addEventListener('error', handleError);\n\n link.setAttribute('href', url);\n\n if (!attrubutes?.rel) {\n link.setAttribute('rel', 'stylesheet');\n }\n\n Object.entries(attrubutes || {}).forEach(([key, value]) => {\n link.setAttribute(key, value);\n });\n\n document.head.appendChild(link);\n });\n"],"names":["args","schema","cvaLib","inputArgs","twMerge","clsx","url","attrubutes","Promise","resolve","reject","link","id","document","getElementById","remove","createElement","handleLoad","removeEventListener","handleError","addEventListener","setAttribute","rel","Object","entries","forEach","key","value","head","appendChild","px","remValue"],"mappings":"sLAmDoB,IAAIA,KACtB,MAAMC,EAASC,SAAUF,GACzB,MAAO,IAAIG,IAAqBC,EAAAA,QAAQH,KAAUE,gBAjClC,IAAIH,IAAkCI,EAAAA,QAAQC,KAAQL,wBA+C7C,CAACM,EAAaC,IACvC,IAAIC,QAAQ,CAACC,EAASC,KACpB,IAAIC,EAEAJ,GAAYK,KACdD,EAAOE,SAASC,eAAeP,EAAWK,IAEtCD,GACFA,EAAKI,UAITJ,EAAOE,SAASG,cAAc,QAE9B,MAAMC,EAAa,KACjBR,OAAQ,GACRE,EAAMO,oBAAoB,OAAQD,GAClCN,EAAMO,oBAAoB,QAASC,IAG/BA,EAAc,KAClBT,OAAO,GACPC,EAAMO,oBAAoB,OAAQD,GAClCN,EAAMO,oBAAoB,QAASC,IAGrCR,EAAKS,iBAAiB,OAAQH,GAC9BN,EAAKS,iBAAiB,QAASD,GAE/BR,EAAKU,aAAa,OAAQf,GAErBC,GAAYe,KACfX,EAAKU,aAAa,MAAO,cAG3BE,OAAOC,QAAQjB,GAAc,CAAA,GAAIkB,QAAQ,EAAEC,EAAKC,MAC9ChB,EAAKU,aAAaK,EAAKC,KAGzBd,SAASe,KAAKC,YAAYlB,mBA3FT,CAACmB,EAAYC,EAAW,KAAUD,EAAKC,EAAR"}
package/css.js CHANGED
@@ -1,25 +1,46 @@
1
- import { cva as l } from "class-variance-authority";
2
- import v from "clsx";
3
- import { twMerge as d } from "tailwind-merge";
4
- const h = (t, r = 16) => `${t / r}rem`, L = (...t) => d(v(...t)), p = (...t) => {
5
- const r = l(...t);
6
- return (...o) => d(r(...o));
7
- }, x = (t, r) => new Promise((o, s) => {
8
- let e;
9
- r?.id && (e = document.getElementById(r.id), e && e.remove()), e = document.createElement("link");
10
- const n = () => {
11
- o(void 0), e.removeEventListener("load", n), e.removeEventListener("error", i);
12
- }, i = () => {
13
- s(void 0), e.removeEventListener("load", n), e.removeEventListener("error", i);
1
+ import { cva as cva$1 } from "class-variance-authority";
2
+ import clsx from "clsx";
3
+ import { twMerge } from "tailwind-merge";
4
+ const toRem = (px, remValue = 16) => `${px / remValue}rem`;
5
+ const cx = (...args) => twMerge(clsx(...args));
6
+ const cva = (...args) => {
7
+ const schema = cva$1(...args);
8
+ return (...inputArgs) => twMerge(schema(...inputArgs));
9
+ };
10
+ const loadCssFile = (url, attrubutes) => new Promise((resolve, reject) => {
11
+ let link;
12
+ if (attrubutes?.id) {
13
+ link = document.getElementById(attrubutes.id);
14
+ if (link) {
15
+ link.remove();
16
+ }
17
+ }
18
+ link = document.createElement("link");
19
+ const handleLoad = () => {
20
+ resolve(void 0);
21
+ link.removeEventListener("load", handleLoad);
22
+ link.removeEventListener("error", handleError);
23
+ };
24
+ const handleError = () => {
25
+ reject(void 0);
26
+ link.removeEventListener("load", handleLoad);
27
+ link.removeEventListener("error", handleError);
14
28
  };
15
- e.addEventListener("load", n), e.addEventListener("error", i), e.setAttribute("href", t), r?.rel || e.setAttribute("rel", "stylesheet"), Object.entries(r || {}).forEach(([m, c]) => {
16
- e.setAttribute(m, c);
17
- }), document.head.appendChild(e);
29
+ link.addEventListener("load", handleLoad);
30
+ link.addEventListener("error", handleError);
31
+ link.setAttribute("href", url);
32
+ if (!attrubutes?.rel) {
33
+ link.setAttribute("rel", "stylesheet");
34
+ }
35
+ Object.entries(attrubutes || {}).forEach(([key, value]) => {
36
+ link.setAttribute(key, value);
37
+ });
38
+ document.head.appendChild(link);
18
39
  });
19
40
  export {
20
- p as cva,
21
- L as cx,
22
- x as loadCssFile,
23
- h as toRem
41
+ cva,
42
+ cx,
43
+ loadCssFile,
44
+ toRem
24
45
  };
25
46
  //# sourceMappingURL=css.js.map
package/css.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"css.js","sources":["../src/css.ts"],"sourcesContent":["import { cva as cvaLib } from 'class-variance-authority';\nimport clsx, { type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\nimport type { Maybe } from 'yummies/utils/types';\n\ntype ClassProp = {\n class?: ClassValue;\n className?: ClassValue;\n};\n\ntype StringToBoolean<T> = T extends 'true' | 'false' ? boolean : T;\n\n/**\n * Перевод значения в пикселях в rem строковое\n */\nexport const toRem = (px: number, remValue = 16) => `${px / remValue}rem`;\n\n/**\n * classNames/clsx но с примесями tailwind-merge\n */\nexport const cx = (...args: Parameters<typeof clsx>) => twMerge(clsx(...args));\n\ntype ConfigSchema = Record<string, Record<string, ClassValue>>;\ntype ConfigVariants<T extends ConfigSchema> = {\n [Variant in keyof T]?: StringToBoolean<keyof T[Variant]> | null | undefined;\n};\ntype ConfigVariantsMulti<T extends ConfigSchema> = {\n [Variant in keyof T]?:\n | StringToBoolean<keyof T[Variant]>\n | StringToBoolean<keyof T[Variant]>[]\n | undefined;\n};\ntype Config<T> = T extends ConfigSchema\n ? {\n variants?: T;\n defaultVariants?: ConfigVariants<T>;\n compoundVariants?: (T extends ConfigSchema\n ? (ConfigVariants<T> | ConfigVariantsMulti<T>) & ClassProp\n : ClassProp)[];\n }\n : never;\n\ntype Props<T> = T extends ConfigSchema\n ? ConfigVariants<T> & ClassProp\n : ClassProp;\n\n/**\n * Class Variance Authority но с примесями tailwind-merge\n *\n * https://cva.style/docs\n */\nexport const cva = ((...args: any[]) => {\n const schema = cvaLib(...args);\n return (...inputArgs: any[]) => twMerge(schema(...inputArgs));\n}) as any as <T>(\n base?: ClassValue,\n config?: Config<T>,\n) => (props?: Props<T>) => string;\n\nexport type { VariantProps } from 'class-variance-authority';\nexport type { ClassValue } from 'clsx';\n\n/**\n * Load CSS file by providing `url`.\n *\n * **NOTE:** If `id` is provided, it will remove the existing link element with the same `id` before creating a new one.\n */\nexport const loadCssFile = (url: string, attrubutes?: Record<string, any>) =>\n new Promise((resolve, reject) => {\n let link: Maybe<HTMLLinkElement>;\n\n if (attrubutes?.id) {\n link = document.getElementById(attrubutes.id) as HTMLLinkElement | null;\n\n if (link) {\n link.remove();\n }\n }\n\n link = document.createElement('link');\n\n const handleLoad = () => {\n resolve(undefined);\n link!.removeEventListener('load', handleLoad);\n link!.removeEventListener('error', handleError);\n };\n\n const handleError = () => {\n reject(undefined);\n link!.removeEventListener('load', handleLoad);\n link!.removeEventListener('error', handleError);\n };\n\n link.addEventListener('load', handleLoad);\n link.addEventListener('error', handleError);\n\n link.setAttribute('href', url);\n\n if (!attrubutes?.rel) {\n link.setAttribute('rel', 'stylesheet');\n }\n\n Object.entries(attrubutes || {}).forEach(([key, value]) => {\n link.setAttribute(key, value);\n });\n\n document.head.appendChild(link);\n });\n"],"names":["toRem","px","remValue","cx","args","twMerge","clsx","cva","schema","cvaLib","inputArgs","loadCssFile","url","attrubutes","resolve","reject","link","handleLoad","handleError","key","value"],"mappings":";;;AAeO,MAAMA,IAAQ,CAACC,GAAYC,IAAW,OAAO,GAAGD,IAAKC,CAAQ,OAKvDC,IAAK,IAAIC,MAAkCC,EAAQC,EAAK,GAAGF,CAAI,CAAC,GA+BhEG,IAAO,IAAIH,MAAgB;AACtC,QAAMI,IAASC,EAAO,GAAGL,CAAI;AAC7B,SAAO,IAAIM,MAAqBL,EAAQG,EAAO,GAAGE,CAAS,CAAC;AAC9D,GAaaC,IAAc,CAACC,GAAaC,MACvC,IAAI,QAAQ,CAACC,GAASC,MAAW;AAC/B,MAAIC;AAEJ,EAAIH,GAAY,OACdG,IAAO,SAAS,eAAeH,EAAW,EAAE,GAExCG,KACFA,EAAK,OAAA,IAITA,IAAO,SAAS,cAAc,MAAM;AAEpC,QAAMC,IAAa,MAAM;AACvB,IAAAH,EAAQ,MAAS,GACjBE,EAAM,oBAAoB,QAAQC,CAAU,GAC5CD,EAAM,oBAAoB,SAASE,CAAW;AAAA,EAChD,GAEMA,IAAc,MAAM;AACxB,IAAAH,EAAO,MAAS,GAChBC,EAAM,oBAAoB,QAAQC,CAAU,GAC5CD,EAAM,oBAAoB,SAASE,CAAW;AAAA,EAChD;AAEA,EAAAF,EAAK,iBAAiB,QAAQC,CAAU,GACxCD,EAAK,iBAAiB,SAASE,CAAW,GAE1CF,EAAK,aAAa,QAAQJ,CAAG,GAExBC,GAAY,OACfG,EAAK,aAAa,OAAO,YAAY,GAGvC,OAAO,QAAQH,KAAc,CAAA,CAAE,EAAE,QAAQ,CAAC,CAACM,GAAKC,CAAK,MAAM;AACzD,IAAAJ,EAAK,aAAaG,GAAKC,CAAK;AAAA,EAC9B,CAAC,GAED,SAAS,KAAK,YAAYJ,CAAI;AAChC,CAAC;"}
1
+ {"version":3,"file":"css.js","sources":["../src/css.ts"],"sourcesContent":["import { cva as cvaLib } from 'class-variance-authority';\nimport clsx, { type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\nimport type { Maybe } from 'yummies/utils/types';\n\ntype ClassProp = {\n class?: ClassValue;\n className?: ClassValue;\n};\n\ntype StringToBoolean<T> = T extends 'true' | 'false' ? boolean : T;\n\n/**\n * Перевод значения в пикселях в rem строковое\n */\nexport const toRem = (px: number, remValue = 16) => `${px / remValue}rem`;\n\n/**\n * classNames/clsx но с примесями tailwind-merge\n */\nexport const cx = (...args: Parameters<typeof clsx>) => twMerge(clsx(...args));\n\ntype ConfigSchema = Record<string, Record<string, ClassValue>>;\ntype ConfigVariants<T extends ConfigSchema> = {\n [Variant in keyof T]?: StringToBoolean<keyof T[Variant]> | null | undefined;\n};\ntype ConfigVariantsMulti<T extends ConfigSchema> = {\n [Variant in keyof T]?:\n | StringToBoolean<keyof T[Variant]>\n | StringToBoolean<keyof T[Variant]>[]\n | undefined;\n};\ntype Config<T> = T extends ConfigSchema\n ? {\n variants?: T;\n defaultVariants?: ConfigVariants<T>;\n compoundVariants?: (T extends ConfigSchema\n ? (ConfigVariants<T> | ConfigVariantsMulti<T>) & ClassProp\n : ClassProp)[];\n }\n : never;\n\ntype Props<T> = T extends ConfigSchema\n ? ConfigVariants<T> & ClassProp\n : ClassProp;\n\n/**\n * Class Variance Authority но с примесями tailwind-merge\n *\n * https://cva.style/docs\n */\nexport const cva = ((...args: any[]) => {\n const schema = cvaLib(...args);\n return (...inputArgs: any[]) => twMerge(schema(...inputArgs));\n}) as any as <T>(\n base?: ClassValue,\n config?: Config<T>,\n) => (props?: Props<T>) => string;\n\nexport type { VariantProps } from 'class-variance-authority';\nexport type { ClassValue } from 'clsx';\n\n/**\n * Load CSS file by providing `url`.\n *\n * **NOTE:** If `id` is provided, it will remove the existing link element with the same `id` before creating a new one.\n */\nexport const loadCssFile = (url: string, attrubutes?: Record<string, any>) =>\n new Promise((resolve, reject) => {\n let link: Maybe<HTMLLinkElement>;\n\n if (attrubutes?.id) {\n link = document.getElementById(attrubutes.id) as HTMLLinkElement | null;\n\n if (link) {\n link.remove();\n }\n }\n\n link = document.createElement('link');\n\n const handleLoad = () => {\n resolve(undefined);\n link!.removeEventListener('load', handleLoad);\n link!.removeEventListener('error', handleError);\n };\n\n const handleError = () => {\n reject(undefined);\n link!.removeEventListener('load', handleLoad);\n link!.removeEventListener('error', handleError);\n };\n\n link.addEventListener('load', handleLoad);\n link.addEventListener('error', handleError);\n\n link.setAttribute('href', url);\n\n if (!attrubutes?.rel) {\n link.setAttribute('rel', 'stylesheet');\n }\n\n Object.entries(attrubutes || {}).forEach(([key, value]) => {\n link.setAttribute(key, value);\n });\n\n document.head.appendChild(link);\n });\n"],"names":["cvaLib"],"mappings":";;;AAeO,MAAM,QAAQ,CAAC,IAAY,WAAW,OAAO,GAAG,KAAK,QAAQ;AAK7D,MAAM,KAAK,IAAI,SAAkC,QAAQ,KAAK,GAAG,IAAI,CAAC;AA+BtE,MAAM,MAAO,IAAI,SAAgB;AACtC,QAAM,SAASA,MAAO,GAAG,IAAI;AAC7B,SAAO,IAAI,cAAqB,QAAQ,OAAO,GAAG,SAAS,CAAC;AAC9D;AAaO,MAAM,cAAc,CAAC,KAAa,eACvC,IAAI,QAAQ,CAAC,SAAS,WAAW;AAC/B,MAAI;AAEJ,MAAI,YAAY,IAAI;AAClB,WAAO,SAAS,eAAe,WAAW,EAAE;AAE5C,QAAI,MAAM;AACR,WAAK,OAAA;AAAA,IACP;AAAA,EACF;AAEA,SAAO,SAAS,cAAc,MAAM;AAEpC,QAAM,aAAa,MAAM;AACvB,YAAQ,MAAS;AACjB,SAAM,oBAAoB,QAAQ,UAAU;AAC5C,SAAM,oBAAoB,SAAS,WAAW;AAAA,EAChD;AAEA,QAAM,cAAc,MAAM;AACxB,WAAO,MAAS;AAChB,SAAM,oBAAoB,QAAQ,UAAU;AAC5C,SAAM,oBAAoB,SAAS,WAAW;AAAA,EAChD;AAEA,OAAK,iBAAiB,QAAQ,UAAU;AACxC,OAAK,iBAAiB,SAAS,WAAW;AAE1C,OAAK,aAAa,QAAQ,GAAG;AAE7B,MAAI,CAAC,YAAY,KAAK;AACpB,SAAK,aAAa,OAAO,YAAY;AAAA,EACvC;AAEA,SAAO,QAAQ,cAAc,CAAA,CAAE,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AACzD,SAAK,aAAa,KAAK,KAAK;AAAA,EAC9B,CAAC;AAED,WAAS,KAAK,YAAY,IAAI;AAChC,CAAC;"}
package/data.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=(e,t)=>{if(e===t)return!0;if(typeof e!="object"||typeof t!="object"||e===null||t===null||e.constructor!==t.constructor)return!1;const n=Array.isArray(e);if(n!==Array.isArray(t))return!1;if(n){const r=e,f=t;if(r.length!==f.length)return!1;for(const[u,c]of r.entries())if(c!==f[u])return!1;return!0}if(e instanceof Date)return e.getTime()===t.getTime();if(e instanceof RegExp)return e.toString()===t.toString();const s=Object.keys(e),i=Object.keys(t);if(s.length!==i.length)return!1;const o=t;for(const r of s)if(!Object.hasOwn(o,r)||e[r]!==o[r])return!1;return!0},l=(e,t)=>Array.isArray(e)?e.flatMap(n=>l(n,t)):[t(e,0,[e])],y=e=>{try{return JSON.parse(e)}catch{return null}};exports.flatMapDeep=l;exports.isShallowEqual=a;exports.safeJsonParse=y;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=(t,e)=>Array.isArray(t)?t.flatMap(t=>r(t,e)):[e(t,0,[t])];exports.flatMapDeep=r,exports.isShallowEqual=(r,t)=>{if(r===t)return!0;if("object"!=typeof r||"object"!=typeof t||null===r||null===t)return!1;if(r.constructor!==t.constructor)return!1;const e=Array.isArray(r);if(e!==Array.isArray(t))return!1;if(e){const e=r,n=t;if(e.length!==n.length)return!1;for(const[r,t]of e.entries())if(t!==n[r])return!1;return!0}if(r instanceof Date)return r.getTime()===t.getTime();if(r instanceof RegExp)return r.toString()===t.toString();const n=Object.keys(r),o=Object.keys(t);if(n.length!==o.length)return!1;const s=t;for(const i of n)if(!Object.hasOwn(s,i)||r[i]!==s[i])return!1;return!0},exports.safeJsonParse=r=>{try{return JSON.parse(r)}catch{return null}};
2
2
  //# sourceMappingURL=data.cjs.map
package/data.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"data.cjs","sources":["../src/data.ts"],"sourcesContent":["import type { AnyObject } from 'yummies/utils/types';\n\nexport const isShallowEqual = (a: unknown, b: unknown): boolean => {\n if (a === b) return true;\n\n if (\n typeof a !== 'object' ||\n typeof b !== 'object' ||\n a === null ||\n b === null\n ) {\n return false;\n }\n\n if (a.constructor !== b.constructor) return false;\n\n const isArrayA = Array.isArray(a);\n\n if (isArrayA !== Array.isArray(b)) return false;\n\n if (isArrayA) {\n const arrA = a as unknown[];\n const arrB = b as unknown[];\n if (arrA.length !== arrB.length) return false;\n\n for (const [i, element] of arrA.entries()) {\n if (element !== arrB[i]) return false;\n }\n return true;\n }\n\n if (a instanceof Date) return a.getTime() === (b as Date).getTime();\n\n if (a instanceof RegExp) return a.toString() === (b as RegExp).toString();\n\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n\n if (aKeys.length !== bKeys.length) return false;\n\n const bObj = b as AnyObject;\n for (const key of aKeys) {\n if (!Object.hasOwn(bObj, key) || (a as AnyObject)[key] !== bObj[key]) {\n return false;\n }\n }\n\n return true;\n};\n\nexport const flatMapDeep = <TSource, TNewValue>(\n arr: TSource | TSource[],\n fn: (value: TSource, i: number, arr: TSource[]) => TNewValue,\n): TNewValue[] =>\n Array.isArray(arr)\n ? arr.flatMap((c: TSource): TNewValue[] => flatMapDeep(c, fn))\n : [fn(arr, 0, [arr])];\n\nexport const safeJsonParse = (json: string) => {\n try {\n return JSON.parse(json);\n } catch {\n return null;\n }\n};\n"],"names":["isShallowEqual","a","b","isArrayA","arrA","arrB","i","element","aKeys","bKeys","bObj","key","flatMapDeep","arr","fn","c","safeJsonParse","json"],"mappings":"gFAEO,MAAMA,EAAiB,CAACC,EAAYC,IAAwB,CACjE,GAAID,IAAMC,EAAG,MAAO,GAWpB,GARE,OAAOD,GAAM,UACb,OAAOC,GAAM,UACbD,IAAM,MACNC,IAAM,MAKJD,EAAE,cAAgBC,EAAE,YAAa,MAAO,GAE5C,MAAMC,EAAW,MAAM,QAAQF,CAAC,EAEhC,GAAIE,IAAa,MAAM,QAAQD,CAAC,EAAG,MAAO,GAE1C,GAAIC,EAAU,CACZ,MAAMC,EAAOH,EACPI,EAAOH,EACb,GAAIE,EAAK,SAAWC,EAAK,OAAQ,MAAO,GAExC,SAAW,CAACC,EAAGC,CAAO,IAAKH,EAAK,UAC9B,GAAIG,IAAYF,EAAKC,CAAC,EAAG,MAAO,GAElC,MAAO,EACT,CAEA,GAAIL,aAAa,KAAM,OAAOA,EAAE,QAAA,IAAeC,EAAW,QAAA,EAE1D,GAAID,aAAa,OAAQ,OAAOA,EAAE,SAAA,IAAgBC,EAAa,SAAA,EAE/D,MAAMM,EAAQ,OAAO,KAAKP,CAAC,EACrBQ,EAAQ,OAAO,KAAKP,CAAC,EAE3B,GAAIM,EAAM,SAAWC,EAAM,OAAQ,MAAO,GAE1C,MAAMC,EAAOR,EACb,UAAWS,KAAOH,EAChB,GAAI,CAAC,OAAO,OAAOE,EAAMC,CAAG,GAAMV,EAAgBU,CAAG,IAAMD,EAAKC,CAAG,EACjE,MAAO,GAIX,MAAO,EACT,EAEaC,EAAc,CACzBC,EACAC,IAEA,MAAM,QAAQD,CAAG,EACbA,EAAI,QAASE,GAA4BH,EAAYG,EAAGD,CAAE,CAAC,EAC3D,CAACA,EAAGD,EAAK,EAAG,CAACA,CAAG,CAAC,CAAC,EAEXG,EAAiBC,GAAiB,CAC7C,GAAI,CACF,OAAO,KAAK,MAAMA,CAAI,CACxB,MAAQ,CACN,OAAO,IACT,CACF"}
1
+ {"version":3,"file":"data.cjs","sources":["../src/data.ts"],"sourcesContent":["import type { AnyObject } from 'yummies/utils/types';\n\nexport const isShallowEqual = (a: unknown, b: unknown): boolean => {\n if (a === b) return true;\n\n if (\n typeof a !== 'object' ||\n typeof b !== 'object' ||\n a === null ||\n b === null\n ) {\n return false;\n }\n\n if (a.constructor !== b.constructor) return false;\n\n const isArrayA = Array.isArray(a);\n\n if (isArrayA !== Array.isArray(b)) return false;\n\n if (isArrayA) {\n const arrA = a as unknown[];\n const arrB = b as unknown[];\n if (arrA.length !== arrB.length) return false;\n\n for (const [i, element] of arrA.entries()) {\n if (element !== arrB[i]) return false;\n }\n return true;\n }\n\n if (a instanceof Date) return a.getTime() === (b as Date).getTime();\n\n if (a instanceof RegExp) return a.toString() === (b as RegExp).toString();\n\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n\n if (aKeys.length !== bKeys.length) return false;\n\n const bObj = b as AnyObject;\n for (const key of aKeys) {\n if (!Object.hasOwn(bObj, key) || (a as AnyObject)[key] !== bObj[key]) {\n return false;\n }\n }\n\n return true;\n};\n\nexport const flatMapDeep = <TSource, TNewValue>(\n arr: TSource | TSource[],\n fn: (value: TSource, i: number, arr: TSource[]) => TNewValue,\n): TNewValue[] =>\n Array.isArray(arr)\n ? arr.flatMap((c: TSource): TNewValue[] => flatMapDeep(c, fn))\n : [fn(arr, 0, [arr])];\n\nexport const safeJsonParse = (json: string) => {\n try {\n return JSON.parse(json);\n } catch {\n return null;\n }\n};\n"],"names":["flatMapDeep","arr","fn","Array","isArray","flatMap","c","a","b","constructor","isArrayA","arrA","arrB","length","i","element","entries","Date","getTime","RegExp","toString","aKeys","Object","keys","bKeys","bObj","key","hasOwn","json","JSON","parse"],"mappings":"gFAEO,MAgDMA,EAAc,CACzBC,EACAC,IAEAC,MAAMC,QAAQH,GACVA,EAAII,QAASC,GAA4BN,EAAYM,EAAGJ,IACxD,CAACA,EAAGD,EAAK,EAAG,CAACA,kDAtDW,CAACM,EAAYC,KACzC,GAAID,IAAMC,EAAG,OAAO,EAEpB,GACe,iBAAND,GACM,iBAANC,GACD,OAAND,GACM,OAANC,EAEA,OAAO,EAGT,GAAID,EAAEE,cAAgBD,EAAEC,YAAa,OAAO,EAE5C,MAAMC,EAAWP,MAAMC,QAAQG,GAE/B,GAAIG,IAAaP,MAAMC,QAAQI,GAAI,OAAO,EAE1C,GAAIE,EAAU,CACZ,MAAMC,EAAOJ,EACPK,EAAOJ,EACb,GAAIG,EAAKE,SAAWD,EAAKC,OAAQ,OAAO,EAExC,IAAA,MAAYC,EAAGC,KAAYJ,EAAKK,UAC9B,GAAID,IAAYH,EAAKE,GAAI,OAAO,EAElC,OAAO,CACT,CAEA,GAAIP,aAAaU,KAAM,OAAOV,EAAEW,YAAeV,EAAWU,UAE1D,GAAIX,aAAaY,OAAQ,OAAOZ,EAAEa,aAAgBZ,EAAaY,WAE/D,MAAMC,EAAQC,OAAOC,KAAKhB,GACpBiB,EAAQF,OAAOC,KAAKf,GAE1B,GAAIa,EAAMR,SAAWW,EAAMX,OAAQ,OAAO,EAE1C,MAAMY,EAAOjB,EACb,IAAA,MAAWkB,KAAOL,EAChB,IAAKC,OAAOK,OAAOF,EAAMC,IAASnB,EAAgBmB,KAASD,EAAKC,GAC9D,OAAO,EAIX,OAAO,yBAWqBE,IAC5B,IACE,OAAOC,KAAKC,MAAMF,EACpB,CAAA,MACE,OAAO,IACT"}