zcw-shared 1.18.0 → 1.20.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.
Files changed (249) hide show
  1. package/README.md +1291 -65
  2. package/dist/functions/ag-grid/generateLicense.d.ts +5 -1
  3. package/dist/functions/ag-grid/generateLicense.js +3 -3
  4. package/dist/functions/ag-grid/generateLicense.js.map +1 -1
  5. package/dist/functions/android/buildProject.d.ts +9 -8
  6. package/dist/functions/android/buildProject.js +19 -20
  7. package/dist/functions/android/buildProject.js.map +1 -1
  8. package/dist/functions/android/detectAndroidModules.d.ts +7 -1
  9. package/dist/functions/android/detectAndroidModules.js +7 -7
  10. package/dist/functions/android/detectAndroidModules.js.map +1 -1
  11. package/dist/functions/android/modifyGradle.d.ts +10 -1
  12. package/dist/functions/android/modifyGradle.js +7 -7
  13. package/dist/functions/android/modifyGradle.js.map +1 -1
  14. package/dist/functions/android/modifyManifest.d.ts +11 -2
  15. package/dist/functions/android/modifyManifest.js +4 -4
  16. package/dist/functions/android/modifyManifest.js.map +1 -1
  17. package/dist/functions/android/permission.d.ts +15 -5
  18. package/dist/functions/android/permission.js +8 -8
  19. package/dist/functions/android/permission.js.map +1 -1
  20. package/dist/functions/async/createInterruptibleTask.d.ts +37 -0
  21. package/dist/functions/async/createInterruptibleTask.js +180 -0
  22. package/dist/functions/async/createInterruptibleTask.js.map +1 -0
  23. package/dist/functions/color/convertColor.js +1 -1
  24. package/dist/functions/color/convertColor.js.map +1 -1
  25. package/dist/functions/debug/createDebugger.d.ts +14 -3
  26. package/dist/functions/debug/createDebugger.js +10 -35
  27. package/dist/functions/debug/createDebugger.js.map +1 -1
  28. package/dist/functions/dom/demonstrateResourceLoading.d.ts +32 -0
  29. package/dist/functions/dom/demonstrateResourceLoading.js +169 -0
  30. package/dist/functions/dom/demonstrateResourceLoading.js.map +1 -0
  31. package/dist/functions/dom/detectOverflow.d.ts +5 -1
  32. package/dist/functions/dom/detectOverflow.js +2 -2
  33. package/dist/functions/dom/detectOverflow.js.map +1 -1
  34. package/dist/functions/dom/getViewportRect.d.ts +5 -1
  35. package/dist/functions/dom/getViewportRect.js +3 -3
  36. package/dist/functions/dom/getViewportRect.js.map +1 -1
  37. package/dist/functions/image/compressToTargetSize.d.ts +8 -1
  38. package/dist/functions/image/compressToTargetSize.js +11 -8
  39. package/dist/functions/image/compressToTargetSize.js.map +1 -1
  40. package/dist/functions/image/generateMacIcons.d.ts +5 -1
  41. package/dist/functions/image/generateMacIcons.js +4 -4
  42. package/dist/functions/image/generateMacIcons.js.map +1 -1
  43. package/dist/functions/image/generateMacTrayIcon.d.ts +4 -1
  44. package/dist/functions/image/generateMacTrayIcon.js +2 -2
  45. package/dist/functions/image/generateMacTrayIcon.js.map +1 -1
  46. package/dist/functions/image/generatePaddedImage.d.ts +4 -1
  47. package/dist/functions/image/generatePaddedImage.js +3 -3
  48. package/dist/functions/image/generatePaddedImage.js.map +1 -1
  49. package/dist/functions/image/generatePwaIcons.d.ts +5 -1
  50. package/dist/functions/image/generatePwaIcons.js +4 -4
  51. package/dist/functions/image/generatePwaIcons.js.map +1 -1
  52. package/dist/functions/image/generateRoundedImage.d.ts +5 -1
  53. package/dist/functions/image/generateRoundedImage.js +4 -4
  54. package/dist/functions/image/generateRoundedImage.js.map +1 -1
  55. package/dist/functions/image/getImageDimensions.d.ts +5 -1
  56. package/dist/functions/image/getImageDimensions.js +3 -3
  57. package/dist/functions/image/getImageDimensions.js.map +1 -1
  58. package/dist/functions/ipc/dispatchIpcRequest.d.ts +4 -1
  59. package/dist/functions/ipc/dispatchIpcRequest.js +3 -3
  60. package/dist/functions/ipc/dispatchIpcRequest.js.map +1 -1
  61. package/dist/functions/software/findSoftware.d.ts +2 -2
  62. package/dist/functions/software/findSoftware.js +1 -1
  63. package/dist/functions/software/findSoftware.js.map +1 -1
  64. package/dist/functions/string/base64.d.ts +4 -1
  65. package/dist/functions/string/base64.js +2 -2
  66. package/dist/functions/string/base64.js.map +1 -1
  67. package/dist/functions/tencent-cloud/deploy.tcb.d.ts +12 -2
  68. package/dist/functions/tencent-cloud/deploy.tcb.js +7 -8
  69. package/dist/functions/tencent-cloud/deploy.tcb.js.map +1 -1
  70. package/dist/functions/uniapp/app-plus/buildAndroidApp.d.ts +27 -2
  71. package/dist/functions/uniapp/app-plus/buildAndroidApp.js +71 -29
  72. package/dist/functions/uniapp/app-plus/buildAndroidApp.js.map +1 -1
  73. package/dist/functions/uniapp/build.d.ts +9 -8
  74. package/dist/functions/uniapp/build.js +8 -9
  75. package/dist/functions/uniapp/build.js.map +1 -1
  76. package/dist/functions/uniapp/detectAndroidProjectStructure.d.ts +5 -1
  77. package/dist/functions/uniapp/detectAndroidProjectStructure.js +5 -5
  78. package/dist/functions/uniapp/detectAndroidProjectStructure.js.map +1 -1
  79. package/dist/functions/uniapp/detectProjectType.d.ts +8 -4
  80. package/dist/functions/uniapp/detectProjectType.js +20 -20
  81. package/dist/functions/uniapp/detectProjectType.js.map +1 -1
  82. package/dist/functions/uniapp/parseManifest.d.ts +7 -1
  83. package/dist/functions/uniapp/parseManifest.js +7 -4
  84. package/dist/functions/uniapp/parseManifest.js.map +1 -1
  85. package/dist/functions/uniapp/waitForPages.d.ts +6 -2
  86. package/dist/functions/uniapp/waitForPages.js +3 -3
  87. package/dist/functions/uniapp/waitForPages.js.map +1 -1
  88. package/dist/functions/utils/AVLTree.d.ts +19 -0
  89. package/dist/functions/utils/AVLTree.js +197 -0
  90. package/dist/functions/utils/AVLTree.js.map +1 -0
  91. package/dist/functions/utils/BinarySearchTree.d.ts +19 -0
  92. package/dist/functions/utils/BinarySearchTree.js +150 -0
  93. package/dist/functions/utils/BinarySearchTree.js.map +1 -0
  94. package/dist/functions/utils/EventEmitter.d.ts +32 -0
  95. package/dist/functions/utils/EventEmitter.js +108 -0
  96. package/dist/functions/utils/EventEmitter.js.map +1 -0
  97. package/dist/functions/utils/Graph.d.ts +19 -0
  98. package/dist/functions/utils/Graph.js +190 -0
  99. package/dist/functions/utils/Graph.js.map +1 -0
  100. package/dist/functions/utils/HashMap.d.ts +13 -0
  101. package/dist/functions/utils/HashMap.js +128 -0
  102. package/dist/functions/utils/HashMap.js.map +1 -0
  103. package/dist/functions/utils/Heap.d.ts +11 -0
  104. package/dist/functions/utils/Heap.js +91 -0
  105. package/dist/functions/utils/Heap.js.map +1 -0
  106. package/dist/functions/utils/LRUCache.d.ts +41 -0
  107. package/dist/functions/utils/LRUCache.js +182 -0
  108. package/dist/functions/utils/LRUCache.js.map +1 -0
  109. package/dist/functions/utils/LinkedList.d.ts +18 -0
  110. package/dist/functions/utils/LinkedList.js +135 -0
  111. package/dist/functions/utils/LinkedList.js.map +1 -0
  112. package/dist/functions/utils/MyPromise.d.ts +32 -0
  113. package/dist/functions/utils/MyPromise.js +254 -0
  114. package/dist/functions/utils/MyPromise.js.map +1 -0
  115. package/dist/functions/utils/PriorityQueue.d.ts +14 -0
  116. package/dist/functions/utils/PriorityQueue.js +77 -0
  117. package/dist/functions/utils/PriorityQueue.js.map +1 -0
  118. package/dist/functions/utils/Queue.d.ts +10 -0
  119. package/dist/functions/utils/Queue.js +27 -0
  120. package/dist/functions/utils/Queue.js.map +1 -0
  121. package/dist/functions/utils/Stack.d.ts +10 -0
  122. package/dist/functions/utils/Stack.js +27 -0
  123. package/dist/functions/utils/Stack.js.map +1 -0
  124. package/dist/functions/utils/Trie.d.ts +16 -0
  125. package/dist/functions/utils/Trie.js +127 -0
  126. package/dist/functions/utils/Trie.js.map +1 -0
  127. package/dist/functions/utils/UnionFind.d.ts +8 -0
  128. package/dist/functions/utils/UnionFind.js +53 -0
  129. package/dist/functions/utils/UnionFind.js.map +1 -0
  130. package/dist/functions/utils/curryAdvanced.d.ts +8 -0
  131. package/dist/functions/utils/curryAdvanced.js +87 -0
  132. package/dist/functions/utils/curryAdvanced.js.map +1 -0
  133. package/dist/functions/utils/debounce.d.ts +5 -1
  134. package/dist/functions/utils/debounce.js +3 -4
  135. package/dist/functions/utils/debounce.js.map +1 -1
  136. package/dist/functions/utils/deepClone.d.ts +12 -0
  137. package/dist/functions/utils/deepClone.js +131 -0
  138. package/dist/functions/utils/deepClone.js.map +1 -0
  139. package/dist/functions/utils/flatten.d.ts +7 -0
  140. package/dist/functions/utils/flatten.js +60 -0
  141. package/dist/functions/utils/flatten.js.map +1 -0
  142. package/dist/functions/utils/flattenObject.d.ts +5 -0
  143. package/dist/functions/utils/flattenObject.js +102 -0
  144. package/dist/functions/utils/flattenObject.js.map +1 -0
  145. package/dist/functions/utils/functionBind.d.ts +4 -0
  146. package/dist/functions/utils/functionBind.js +33 -0
  147. package/dist/functions/utils/functionBind.js.map +1 -0
  148. package/dist/functions/utils/generateExports.d.ts +16 -6
  149. package/dist/functions/utils/generateExports.js +11 -11
  150. package/dist/functions/utils/generateExports.js.map +1 -1
  151. package/dist/functions/utils/generatorUtils.d.ts +16 -0
  152. package/dist/functions/utils/generatorUtils.js +139 -0
  153. package/dist/functions/utils/generatorUtils.js.map +1 -0
  154. package/dist/functions/utils/myInstanceof.d.ts +5 -0
  155. package/dist/functions/utils/myInstanceof.js +56 -0
  156. package/dist/functions/utils/myInstanceof.js.map +1 -0
  157. package/dist/functions/utils/myNew.d.ts +3 -0
  158. package/dist/functions/utils/myNew.js +19 -0
  159. package/dist/functions/utils/myNew.js.map +1 -0
  160. package/dist/functions/utils/promiseLimit.d.ts +10 -0
  161. package/dist/functions/utils/promiseLimit.js +125 -0
  162. package/dist/functions/utils/promiseLimit.js.map +1 -0
  163. package/dist/functions/utils/retryWithBackoff.d.ts +4 -1
  164. package/dist/functions/utils/retryWithBackoff.js +2 -3
  165. package/dist/functions/utils/retryWithBackoff.js.map +1 -1
  166. package/dist/functions/utils/unique.d.ts +10 -0
  167. package/dist/functions/utils/unique.js +85 -0
  168. package/dist/functions/utils/unique.js.map +1 -0
  169. package/dist/functions/utils/validate.d.ts +4 -1
  170. package/dist/functions/utils/validate.js +2 -3
  171. package/dist/functions/utils/validate.js.map +1 -1
  172. package/dist/functions/utils/walk.d.ts +8 -2
  173. package/dist/functions/utils/walk.js +9 -10
  174. package/dist/functions/utils/walk.js.map +1 -1
  175. package/dist/functions/vue/dynamicMount.d.ts +3 -2
  176. package/dist/functions/vue/dynamicMount.js +6 -6
  177. package/dist/functions/vue/dynamicMount.js.map +1 -1
  178. package/dist/functions/wechat/miniapp/downloadFile.d.ts +5 -1
  179. package/dist/functions/wechat/miniapp/downloadFile.js +3 -3
  180. package/dist/functions/wechat/miniapp/downloadFile.js.map +1 -1
  181. package/dist/functions/xml/modifyXml.d.ts +9 -2
  182. package/dist/functions/xml/modifyXml.js +4 -4
  183. package/dist/functions/xml/modifyXml.js.map +1 -1
  184. package/dist/hooks/createGlobalState.d.ts +2 -0
  185. package/dist/hooks/createGlobalState.js +11 -0
  186. package/dist/hooks/createGlobalState.js.map +1 -0
  187. package/dist/hooks/createInjectionState.d.ts +14 -0
  188. package/dist/hooks/createInjectionState.js +20 -0
  189. package/dist/hooks/createInjectionState.js.map +1 -0
  190. package/dist/hooks/createSharedComposable.d.ts +2 -0
  191. package/dist/hooks/createSharedComposable.js +13 -0
  192. package/dist/hooks/createSharedComposable.js.map +1 -0
  193. package/dist/hooks/injectLocal.d.ts +10 -0
  194. package/dist/hooks/injectLocal.js +12 -0
  195. package/dist/hooks/injectLocal.js.map +1 -0
  196. package/dist/hooks/provideLocal.d.ts +9 -0
  197. package/dist/hooks/provideLocal.js +7 -0
  198. package/dist/hooks/provideLocal.js.map +1 -0
  199. package/dist/hooks/useAltool.d.ts +1 -1
  200. package/dist/hooks/useAltool.js +13 -13
  201. package/dist/hooks/useAltool.js.map +1 -1
  202. package/dist/hooks/useAsyncState.d.ts +30 -0
  203. package/dist/hooks/useAsyncState.js +46 -0
  204. package/dist/hooks/useAsyncState.js.map +1 -0
  205. package/dist/hooks/useDebouncedRefHistory.d.ts +22 -0
  206. package/dist/hooks/useDebouncedRefHistory.js +46 -0
  207. package/dist/hooks/useDebouncedRefHistory.js.map +1 -0
  208. package/dist/hooks/useDraggable.d.ts +14 -11
  209. package/dist/hooks/useDraggable.js +60 -80
  210. package/dist/hooks/useDraggable.js.map +1 -1
  211. package/dist/hooks/useLocalStorage.d.ts +5 -1
  212. package/dist/hooks/useLocalStorage.js +5 -4
  213. package/dist/hooks/useLocalStorage.js.map +1 -1
  214. package/dist/hooks/useManualRefHistory.d.ts +26 -0
  215. package/dist/hooks/useManualRefHistory.js +80 -0
  216. package/dist/hooks/useManualRefHistory.js.map +1 -0
  217. package/dist/hooks/useRefHistory.d.ts +21 -0
  218. package/dist/hooks/useRefHistory.js +41 -0
  219. package/dist/hooks/useRefHistory.js.map +1 -0
  220. package/dist/hooks/useResizable.d.ts +54 -0
  221. package/dist/hooks/useResizable.js +178 -0
  222. package/dist/hooks/useResizable.js.map +1 -0
  223. package/dist/hooks/useSessionStorage.d.ts +5 -1
  224. package/dist/hooks/useSessionStorage.js +5 -4
  225. package/dist/hooks/useSessionStorage.js.map +1 -1
  226. package/dist/hooks/useStorage.d.ts +4 -1
  227. package/dist/hooks/useStorage.js +4 -4
  228. package/dist/hooks/useStorage.js.map +1 -1
  229. package/dist/hooks/useStorageWithIndexedDB.d.ts +5 -1
  230. package/dist/hooks/useStorageWithIndexedDB.js +24 -11
  231. package/dist/hooks/useStorageWithIndexedDB.js.map +1 -1
  232. package/dist/hooks/useWebWorker.d.ts +13 -13
  233. package/dist/hooks/useWebWorker.js +15 -17
  234. package/dist/hooks/useWebWorker.js.map +1 -1
  235. package/dist/hooks/useWorkerFunction.d.ts +15 -11
  236. package/dist/hooks/useWorkerFunction.js +16 -16
  237. package/dist/hooks/useWorkerFunction.js.map +1 -1
  238. package/dist/hooks/useWorkerPool.d.ts +15 -12
  239. package/dist/hooks/useWorkerPool.js +18 -13
  240. package/dist/hooks/useWorkerPool.js.map +1 -1
  241. package/package.json +41 -3
  242. package/references/browser.d.ts +28 -2
  243. package/references/dom.d.ts +47 -0
  244. package/references/indexeddb.d.ts +1 -0
  245. package/references/node.d.ts +42 -7
  246. package/references/vue.d.ts +161 -5
  247. package/types/android-build.d.ts +0 -22
  248. package/types/tencent-cloud.d.ts +1 -9
  249. package/types/uniapp-android-build.d.ts +0 -21
@@ -0,0 +1,102 @@
1
+ export function flattenObject(obj, prefix = '') {
2
+ const result = {};
3
+ for (const key in obj) {
4
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
5
+ const newKey = prefix ? `${prefix}.${key}` : key;
6
+ const value = obj[key];
7
+ if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
8
+ Object.assign(result, flattenObject(value, newKey));
9
+ }
10
+ else {
11
+ result[newKey] = value;
12
+ }
13
+ }
14
+ }
15
+ return result;
16
+ }
17
+ export function flattenObjectWithArray(obj, prefix = '') {
18
+ const result = {};
19
+ for (const key in obj) {
20
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
21
+ const newKey = prefix ? `${prefix}[${key}]` : key;
22
+ const value = obj[key];
23
+ if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
24
+ Object.assign(result, flattenObjectWithArray(value, newKey));
25
+ }
26
+ else {
27
+ result[newKey] = value;
28
+ }
29
+ }
30
+ }
31
+ return result;
32
+ }
33
+ export function unflattenObject(obj) {
34
+ const result = {};
35
+ for (const key in obj) {
36
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
37
+ const keys = key.split('.');
38
+ let current = result;
39
+ for (let i = 0; i < keys.length - 1; i++) {
40
+ const k = keys[i];
41
+ if (!(k in current)) {
42
+ current[k] = {};
43
+ }
44
+ current = current[k];
45
+ }
46
+ current[keys[keys.length - 1]] = obj[key];
47
+ }
48
+ }
49
+ return result;
50
+ }
51
+ export function flattenObjectKeepArray(obj, prefix = '') {
52
+ const result = {};
53
+ for (const key in obj) {
54
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
55
+ const newKey = prefix ? `${prefix}.${key}` : key;
56
+ const value = obj[key];
57
+ if (Array.isArray(value)) {
58
+ result[newKey] = value;
59
+ }
60
+ else if (value !== null && typeof value === 'object') {
61
+ Object.assign(result, flattenObjectKeepArray(value, newKey));
62
+ }
63
+ else {
64
+ result[newKey] = value;
65
+ }
66
+ }
67
+ }
68
+ return result;
69
+ }
70
+ export function flattenObjectDeep(obj, prefix = '') {
71
+ const result = {};
72
+ if (Array.isArray(obj)) {
73
+ obj.forEach((item, index) => {
74
+ const newKey = prefix ? `${prefix}.${index}` : String(index);
75
+ if (item !== null && typeof item === 'object') {
76
+ Object.assign(result, flattenObjectDeep(item, newKey));
77
+ }
78
+ else {
79
+ result[newKey] = item;
80
+ }
81
+ });
82
+ }
83
+ else if (obj !== null && typeof obj === 'object') {
84
+ for (const key in obj) {
85
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
86
+ const newKey = prefix ? `${prefix}.${key}` : key;
87
+ const value = obj[key];
88
+ if (value !== null && typeof value === 'object') {
89
+ Object.assign(result, flattenObjectDeep(value, newKey));
90
+ }
91
+ else {
92
+ result[newKey] = value;
93
+ }
94
+ }
95
+ }
96
+ }
97
+ else {
98
+ result[prefix] = obj;
99
+ }
100
+ return result;
101
+ }
102
+ //# sourceMappingURL=flattenObject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flattenObject.js","sourceRoot":"","sources":["../../../src/functions/utils/flattenObject.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function myBind<T extends (...args: any[]) => any>(func: T, thisArg: any, ...args: any[]): T;
2
+ export declare function myCall<T extends (...args: any[]) => any>(func: T, thisArg: any, ...args: Parameters<T>): ReturnType<T>;
3
+ export declare function myApply<T extends (...args: any[]) => any>(func: T, thisArg: any, args?: Parameters<T>): ReturnType<T>;
4
+ export declare function myBindSimple<T extends (...args: any[]) => any>(func: T, thisArg: any, ...args: any[]): T;
@@ -0,0 +1,33 @@
1
+ export function myBind(func, thisArg, ...args) {
2
+ const self = func;
3
+ const bound = function (...innerArgs) {
4
+ const context = this instanceof bound ? this : thisArg;
5
+ return self.apply(context, args.concat(innerArgs));
6
+ };
7
+ if (func.prototype) {
8
+ bound.prototype = Object.create(func.prototype);
9
+ }
10
+ return bound;
11
+ }
12
+ export function myCall(func, thisArg, ...args) {
13
+ const context = Object(thisArg);
14
+ const uniqueKey = Symbol('fn');
15
+ context[uniqueKey] = func;
16
+ const result = context[uniqueKey](...args);
17
+ delete context[uniqueKey];
18
+ return result;
19
+ }
20
+ export function myApply(func, thisArg, args) {
21
+ const context = Object(thisArg);
22
+ const uniqueKey = Symbol('fn');
23
+ context[uniqueKey] = func;
24
+ const result = args ? context[uniqueKey](...args) : context[uniqueKey]();
25
+ delete context[uniqueKey];
26
+ return result;
27
+ }
28
+ export function myBindSimple(func, thisArg, ...args) {
29
+ return function (...innerArgs) {
30
+ return func.apply(thisArg, args.concat(innerArgs));
31
+ };
32
+ }
33
+ //# sourceMappingURL=functionBind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functionBind.js","sourceRoot":"","sources":["../../../src/functions/utils/functionBind.ts"],"names":[],"mappings":"AAwBA,MAAM,UAAU,MAAM,CACpB,IAAO,EACP,OAAY,EACZ,GAAG,IAAW;IAGd,MAAM,IAAI,GAAG,IAAI,CAAA;IAGjB,MAAM,KAAK,GAAG,UAAqB,GAAG,SAAgB;QAGpD,MAAM,OAAO,GAAG,IAAI,YAAY,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAA;QAGtD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;IACpD,CAAC,CAAA;IAGD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACjD,CAAC;IAED,OAAO,KAAU,CAAA;AACnB,CAAC;AA+BD,MAAM,UAAU,MAAM,CACpB,IAAO,EACP,OAAY,EACZ,GAAG,IAAmB;IAItB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAG/B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IAG9B,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA;IAGzB,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IAG1C,OAAO,OAAO,CAAC,SAAS,CAAC,CAAA;IAEzB,OAAO,MAAM,CAAA;AACf,CAAC;AAwBD,MAAM,UAAU,OAAO,CACrB,IAAO,EACP,OAAY,EACZ,IAAoB;IAGpB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAG/B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IAG9B,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA;IAGzB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAA;IAGxE,OAAO,OAAO,CAAC,SAAS,CAAC,CAAA;IAEzB,OAAO,MAAM,CAAA;AACf,CAAC;AAKD,MAAM,UAAU,YAAY,CAC1B,IAAO,EACP,OAAY,EACZ,GAAG,IAAW;IAEd,OAAO,UAAqB,GAAG,SAAgB;QAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;IACpD,CAAM,CAAA;AACR,CAAC"}
@@ -1,16 +1,26 @@
1
1
  import type { FileSystem, Path } from '../../../references/node.d.js';
2
+ export interface GenerateExportsDeps {
3
+ existsSync: FileSystem['existsSync'];
4
+ readdirSync: FileSystem['readdirSync'];
5
+ statSync: FileSystem['statSync'];
6
+ lstatSync: FileSystem['lstatSync'];
7
+ realpathSync: FileSystem['realpathSync'];
8
+ join: Path['join'];
9
+ sep: Path['sep'];
10
+ posix: Path['posix'];
11
+ }
2
12
  export declare function generateExports(options: {
3
13
  srcDir: string;
4
14
  distDir: string;
5
15
  typesDir?: string;
6
- fs: FileSystem;
7
- path: Path;
8
- }): Record<string, string>;
16
+ }, deps: GenerateExportsDeps): Record<string, string>;
17
+ export interface UpdatePackageExportsDeps extends GenerateExportsDeps {
18
+ readFileSync: FileSystem['readFileSync'];
19
+ writeFileSync: FileSystem['writeFileSync'];
20
+ }
9
21
  export declare function updatePackageExports(options: {
10
22
  packageJsonPath: string;
11
23
  srcDir: string;
12
24
  distDir: string;
13
25
  typesDir?: string;
14
- fs: FileSystem;
15
- path: Path;
16
- }): void;
26
+ }, deps: UpdatePackageExportsDeps): void;
@@ -1,8 +1,8 @@
1
1
  import { walk } from './walk.js';
2
- export function generateExports(options) {
3
- const { srcDir, distDir, typesDir, fs, path } = options;
2
+ export function generateExports(options, deps) {
3
+ const { srcDir, distDir, typesDir } = options;
4
4
  const exports = {};
5
- const hasIndex = fs.existsSync(path.join(srcDir, 'index.ts'));
5
+ const hasIndex = deps.existsSync(deps.join(srcDir, 'index.ts'));
6
6
  if (hasIndex) {
7
7
  exports["."] = `${distDir}/index.js`;
8
8
  }
@@ -10,12 +10,12 @@ export function generateExports(options) {
10
10
  extensions: ['.ts'],
11
11
  excludeExtensions: ['.d.ts'],
12
12
  excludeNames: ['index']
13
- }, { fs, path });
13
+ }, deps);
14
14
  files.forEach((f) => {
15
15
  exports[`./${f}`] = `${distDir}/${f}.js`;
16
16
  });
17
- if (typesDir && fs.existsSync(typesDir)) {
18
- fs.readdirSync(typesDir).forEach((file) => {
17
+ if (typesDir && deps.existsSync(typesDir)) {
18
+ deps.readdirSync(typesDir).forEach((file) => {
19
19
  if (file.endsWith('.d.ts')) {
20
20
  const name = file.replace(/\.d\.ts$/, '');
21
21
  exports[`./types/${name}`] = `./types/${file}`;
@@ -24,11 +24,11 @@ export function generateExports(options) {
24
24
  }
25
25
  return exports;
26
26
  }
27
- export function updatePackageExports(options) {
28
- const { packageJsonPath, fs } = options;
29
- const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
30
- const newExports = generateExports(options);
27
+ export function updatePackageExports(options, deps) {
28
+ const { packageJsonPath } = options;
29
+ const pkg = JSON.parse(deps.readFileSync(packageJsonPath, 'utf-8'));
30
+ const newExports = generateExports(options, deps);
31
31
  pkg.exports = newExports;
32
- fs.writeFileSync(packageJsonPath, JSON.stringify(pkg, null, 2));
32
+ deps.writeFileSync(packageJsonPath, JSON.stringify(pkg, null, 2));
33
33
  }
34
34
  //# sourceMappingURL=generateExports.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generateExports.js","sourceRoot":"","sources":["../../../src/functions/utils/generateExports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAajC,MAAM,UAAU,eAAe,CAAC,OAM/B;IACC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAExD,MAAM,OAAO,GAA2B,EAAE,CAAC;IAG3C,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAC9D,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,OAAO,WAAW,CAAC;IACvC,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;QACzB,UAAU,EAAE,CAAC,KAAK,CAAC;QACnB,iBAAiB,EAAE,CAAC,OAAO,CAAC;QAC5B,YAAY,EAAE,CAAC,OAAO,CAAC;KACxB,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAEjB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE;QAC1B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,GAAG,OAAO,IAAI,CAAC,KAAK,CAAC;IAC3C,CAAC,CAAC,CAAC;IAGH,IAAI,QAAQ,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;YAChD,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBAC1C,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,GAAG,WAAW,IAAI,EAAE,CAAC;YACjD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAYD,MAAM,UAAU,oBAAoB,CAAC,OAOpC;IACC,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;IAGxC,MAAM,GAAG,GAAwB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;IAGvF,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAG5C,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC;IAGzB,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"generateExports.js","sourceRoot":"","sources":["../../../src/functions/utils/generateExports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AA+BjC,MAAM,UAAU,eAAe,CAAC,OAI/B,EAAE,IAAyB;IAC1B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE9C,MAAM,OAAO,GAA2B,EAAE,CAAC;IAG3C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAChE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,OAAO,WAAW,CAAC;IACvC,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;QACzB,UAAU,EAAE,CAAC,KAAK,CAAC;QACnB,iBAAiB,EAAE,CAAC,OAAO,CAAC;QAC5B,YAAY,EAAE,CAAC,OAAO,CAAC;KACxB,EAAE,IAAI,CAAC,CAAC;IAET,KAAK,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE;QAC1B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,GAAG,OAAO,IAAI,CAAC,KAAK,CAAC;IAC3C,CAAC,CAAC,CAAC;IAGH,IAAI,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;YAClD,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBAC1C,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,GAAG,WAAW,IAAI,EAAE,CAAC;YACjD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAkBD,MAAM,UAAU,oBAAoB,CAAC,OAKpC,EAAE,IAA8B;IAC/B,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IAGpC,MAAM,GAAG,GAAwB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;IAGzF,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAGlD,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC;IAGzB,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC"}
@@ -0,0 +1,16 @@
1
+ export declare function createIterator<T>(array: T[]): Iterator<T>;
2
+ export declare function createIterable<T>(array: T[]): Iterable<T>;
3
+ export declare function range(start: number, end: number, step?: number): Generator<number>;
4
+ export declare function infiniteSequence(start?: number, step?: number): Generator<number>;
5
+ export declare function fibonacci(): Generator<number>;
6
+ export declare function take<T>(generator: Generator<T>, count: number): T[];
7
+ export declare function asyncBatchLoader(batchSize: number, totalCount: number, delay?: number): AsyncGenerator<number[]>;
8
+ export declare function runGenerator<T>(generatorFn: () => Generator<Promise<any>, T>): Promise<T>;
9
+ export declare function generatorMap<T, R>(generator: Generator<T>, fn: (value: T) => R): Generator<R>;
10
+ export declare function generatorFilter<T>(generator: Generator<T>, predicate: (value: T) => boolean): Generator<T>;
11
+ export declare function generatorReduce<T, R>(generator: Generator<T>, fn: (acc: R, value: T) => R, initialValue: R): R;
12
+ export declare function chunk<T>(array: T[], size: number): Generator<T[]>;
13
+ export declare function combineGenerators<T>(...generators: Generator<T>[]): Generator<T>;
14
+ export declare function alternateGenerators<T>(...generators: Generator<T>[]): Generator<T>;
15
+ export declare function repeat<T>(value: T, count: number): Generator<T>;
16
+ export declare function cycle<T>(array: T[]): Generator<T>;
@@ -0,0 +1,139 @@
1
+ export function createIterator(array) {
2
+ let index = 0;
3
+ return {
4
+ next() {
5
+ if (index < array.length) {
6
+ return {
7
+ value: array[index++],
8
+ done: false
9
+ };
10
+ }
11
+ return {
12
+ value: undefined,
13
+ done: true
14
+ };
15
+ }
16
+ };
17
+ }
18
+ export function createIterable(array) {
19
+ return {
20
+ [Symbol.iterator]() {
21
+ return createIterator(array);
22
+ }
23
+ };
24
+ }
25
+ export function* range(start, end, step = 1) {
26
+ for (let i = start; i < end; i += step) {
27
+ yield i;
28
+ }
29
+ }
30
+ export function* infiniteSequence(start = 0, step = 1) {
31
+ let current = start;
32
+ while (true) {
33
+ yield current;
34
+ current += step;
35
+ }
36
+ }
37
+ export function* fibonacci() {
38
+ let [prev, curr] = [0, 1];
39
+ while (true) {
40
+ yield prev;
41
+ [prev, curr] = [curr, prev + curr];
42
+ }
43
+ }
44
+ export function take(generator, count) {
45
+ const result = [];
46
+ for (let i = 0; i < count; i++) {
47
+ const { value, done } = generator.next();
48
+ if (done)
49
+ break;
50
+ result.push(value);
51
+ }
52
+ return result;
53
+ }
54
+ export async function* asyncBatchLoader(batchSize, totalCount, delay = 0) {
55
+ for (let i = 0; i < totalCount; i += batchSize) {
56
+ if (delay > 0) {
57
+ await new Promise(resolve => globalThis.setTimeout(resolve, delay));
58
+ }
59
+ const batch = [];
60
+ for (let j = i; j < Math.min(i + batchSize, totalCount); j++) {
61
+ batch.push(j);
62
+ }
63
+ yield batch;
64
+ }
65
+ }
66
+ export function runGenerator(generatorFn) {
67
+ const generator = generatorFn();
68
+ function handle(result) {
69
+ if (result.done) {
70
+ return Promise.resolve(result.value);
71
+ }
72
+ return Promise.resolve(result.value).then(value => handle(generator.next(value)), error => handle(generator.throw(error)));
73
+ }
74
+ try {
75
+ return handle(generator.next());
76
+ }
77
+ catch (error) {
78
+ return Promise.reject(error);
79
+ }
80
+ }
81
+ export function* generatorMap(generator, fn) {
82
+ for (const value of generator) {
83
+ yield fn(value);
84
+ }
85
+ }
86
+ export function* generatorFilter(generator, predicate) {
87
+ for (const value of generator) {
88
+ if (predicate(value)) {
89
+ yield value;
90
+ }
91
+ }
92
+ }
93
+ export function generatorReduce(generator, fn, initialValue) {
94
+ let accumulator = initialValue;
95
+ for (const value of generator) {
96
+ accumulator = fn(accumulator, value);
97
+ }
98
+ return accumulator;
99
+ }
100
+ export function* chunk(array, size) {
101
+ for (let i = 0; i < array.length; i += size) {
102
+ yield array.slice(i, i + size);
103
+ }
104
+ }
105
+ export function* combineGenerators(...generators) {
106
+ for (const generator of generators) {
107
+ yield* generator;
108
+ }
109
+ }
110
+ export function* alternateGenerators(...generators) {
111
+ const iterators = generators.map(g => g);
112
+ while (true) {
113
+ let allDone = true;
114
+ for (const iterator of iterators) {
115
+ const { value, done } = iterator.next();
116
+ if (!done) {
117
+ allDone = false;
118
+ yield value;
119
+ }
120
+ }
121
+ if (allDone)
122
+ break;
123
+ }
124
+ }
125
+ export function* repeat(value, count) {
126
+ for (let i = 0; i < count; i++) {
127
+ yield value;
128
+ }
129
+ }
130
+ export function* cycle(array) {
131
+ if (array.length === 0)
132
+ return;
133
+ while (true) {
134
+ for (const item of array) {
135
+ yield item;
136
+ }
137
+ }
138
+ }
139
+ //# sourceMappingURL=generatorUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generatorUtils.js","sourceRoot":"","sources":["../../../src/functions/utils/generatorUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function myInstanceof(obj: any, constructor: any): boolean;
2
+ export declare function myInstanceofLegacy(obj: any, constructor: any): boolean;
3
+ export declare function myInstanceofSymbol(obj: any, constructor: any): boolean;
4
+ export declare function getPrototypeChain(obj: any): any[];
5
+ export declare function isDirectInstanceof(obj: any, constructor: any): boolean;
@@ -0,0 +1,56 @@
1
+ export function myInstanceof(obj, constructor) {
2
+ if (obj === null || obj === undefined) {
3
+ return false;
4
+ }
5
+ if (typeof constructor !== 'function') {
6
+ throw new TypeError('Right-hand side of instanceof is not callable');
7
+ }
8
+ const prototype = constructor.prototype;
9
+ let proto = Object.getPrototypeOf(obj);
10
+ while (proto !== null) {
11
+ if (proto === prototype) {
12
+ return true;
13
+ }
14
+ proto = Object.getPrototypeOf(proto);
15
+ }
16
+ return false;
17
+ }
18
+ export function myInstanceofLegacy(obj, constructor) {
19
+ if (obj === null || obj === undefined) {
20
+ return false;
21
+ }
22
+ if (typeof constructor !== 'function') {
23
+ throw new TypeError('Right-hand side of instanceof is not callable');
24
+ }
25
+ const prototype = constructor.prototype;
26
+ let proto = obj.__proto__;
27
+ while (proto) {
28
+ if (proto === prototype) {
29
+ return true;
30
+ }
31
+ proto = proto.__proto__;
32
+ }
33
+ return false;
34
+ }
35
+ export function myInstanceofSymbol(obj, constructor) {
36
+ if (constructor[Symbol.hasInstance]) {
37
+ return constructor[Symbol.hasInstance](obj);
38
+ }
39
+ return myInstanceof(obj, constructor);
40
+ }
41
+ export function getPrototypeChain(obj) {
42
+ const chain = [];
43
+ let proto = Object.getPrototypeOf(obj);
44
+ while (proto !== null) {
45
+ chain.push(proto);
46
+ proto = Object.getPrototypeOf(proto);
47
+ }
48
+ return chain;
49
+ }
50
+ export function isDirectInstanceof(obj, constructor) {
51
+ if (obj === null || obj === undefined) {
52
+ return false;
53
+ }
54
+ return Object.getPrototypeOf(obj) === constructor.prototype;
55
+ }
56
+ //# sourceMappingURL=myInstanceof.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"myInstanceof.js","sourceRoot":"","sources":["../../../src/functions/utils/myInstanceof.ts"],"names":[],"mappings":"AA0BA,MAAM,UAAU,YAAY,CAAC,GAAQ,EAAE,WAAgB;IAErD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,KAAK,CAAA;IACd,CAAC;IAGD,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE,CAAC;QACtC,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAA;IACtE,CAAC;IAGD,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAA;IAGvC,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;IAGtC,OAAO,KAAK,KAAK,IAAI,EAAE,CAAC;QACtB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAKD,MAAM,UAAU,kBAAkB,CAAC,GAAQ,EAAE,WAAgB;IAC3D,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE,CAAC;QACtC,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAA;IACtE,CAAC;IAED,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAA;IACvC,IAAI,KAAK,GAAI,GAAW,CAAC,SAAS,CAAA;IAElC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,KAAK,GAAG,KAAK,CAAC,SAAS,CAAA;IACzB,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAKD,MAAM,UAAU,kBAAkB,CAAC,GAAQ,EAAE,WAAgB;IAE3D,IAAI,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QACpC,OAAO,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAA;IAC7C,CAAC;IAGD,OAAO,YAAY,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;AACvC,CAAC;AAKD,MAAM,UAAU,iBAAiB,CAAC,GAAQ;IACxC,MAAM,KAAK,GAAU,EAAE,CAAA;IACvB,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;IAEtC,OAAO,KAAK,KAAK,IAAI,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACjB,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAKD,MAAM,UAAU,kBAAkB,CAAC,GAAQ,EAAE,WAAgB;IAC3D,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,SAAS,CAAA;AAC7D,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function myNew<T>(constructor: new (...args: any[]) => T, ...args: any[]): T;
2
+ export declare function myNewDetailed<T>(constructor: new (...args: any[]) => T, ...args: any[]): T;
3
+ export declare function myNewReflect<T>(constructor: new (...args: any[]) => T, ...args: any[]): T;
@@ -0,0 +1,19 @@
1
+ export function myNew(constructor, ...args) {
2
+ const obj = Object.create(constructor.prototype);
3
+ const result = constructor.apply(obj, args);
4
+ return (result !== null && typeof result === 'object') ? result : obj;
5
+ }
6
+ export function myNewDetailed(constructor, ...args) {
7
+ const obj = {};
8
+ Object.setPrototypeOf(obj, constructor.prototype);
9
+ const result = constructor.apply(obj, args);
10
+ const isObject = result !== null && typeof result === 'object';
11
+ const isFunction = typeof result === 'function';
12
+ return (isObject || isFunction) ? result : obj;
13
+ }
14
+ export function myNewReflect(constructor, ...args) {
15
+ const obj = Object.create(constructor.prototype);
16
+ const result = Reflect.apply(constructor, obj, args);
17
+ return (result !== null && typeof result === 'object') ? result : obj;
18
+ }
19
+ //# sourceMappingURL=myNew.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"myNew.js","sourceRoot":"","sources":["../../../src/functions/utils/myNew.ts"],"names":[],"mappings":"AA6BA,MAAM,UAAU,KAAK,CACnB,WAAsC,EACtC,GAAG,IAAW;IAGd,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;IAGhD,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAG3C,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAA;AACvE,CAAC;AAKD,MAAM,UAAU,aAAa,CAC3B,WAAsC,EACtC,GAAG,IAAW;IAGd,MAAM,GAAG,GAAQ,EAAE,CAAA;IAInB,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;IAKjD,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAK3C,MAAM,QAAQ,GAAG,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAA;IAC9D,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,UAAU,CAAA;IAE/C,OAAO,CAAC,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAA;AAChD,CAAC;AAKD,MAAM,UAAU,YAAY,CAC1B,WAAsC,EACtC,GAAG,IAAW;IAEd,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;IAChD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IACpD,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAA;AACvE,CAAC"}
@@ -0,0 +1,10 @@
1
+ export type PromiseTask<T> = () => Promise<T>;
2
+ export interface PromiseLimitResult<T> {
3
+ results: PromiseSettledResult<T>[];
4
+ successCount: number;
5
+ failureCount: number;
6
+ totalTime: number;
7
+ }
8
+ export declare function promiseLimit<T>(tasks: PromiseTask<T>[], limit: number): Promise<PromiseLimitResult<T>>;
9
+ export declare function promiseLimitBatch<T>(tasks: PromiseTask<T>[], limit: number): Promise<PromiseLimitResult<T>>;
10
+ export declare function promiseLimitSemaphore<T>(tasks: PromiseTask<T>[], limit: number): Promise<PromiseLimitResult<T>>;
@@ -0,0 +1,125 @@
1
+ export async function promiseLimit(tasks, limit) {
2
+ const startTime = Date.now();
3
+ const results = [];
4
+ let currentIndex = 0;
5
+ let successCount = 0;
6
+ let failureCount = 0;
7
+ const executeTask = async (index) => {
8
+ if (index >= tasks.length) {
9
+ return;
10
+ }
11
+ const task = tasks[index];
12
+ try {
13
+ const result = await task();
14
+ results[index] = {
15
+ status: 'fulfilled',
16
+ value: result
17
+ };
18
+ successCount++;
19
+ }
20
+ catch (error) {
21
+ results[index] = {
22
+ status: 'rejected',
23
+ reason: error
24
+ };
25
+ failureCount++;
26
+ }
27
+ const nextIndex = currentIndex++;
28
+ if (nextIndex < tasks.length) {
29
+ await executeTask(nextIndex);
30
+ }
31
+ };
32
+ const initialTasks = [];
33
+ for (let i = 0; i < Math.min(limit, tasks.length); i++) {
34
+ initialTasks.push(executeTask(currentIndex++));
35
+ }
36
+ await Promise.all(initialTasks);
37
+ const totalTime = Date.now() - startTime;
38
+ return {
39
+ results,
40
+ successCount,
41
+ failureCount,
42
+ totalTime
43
+ };
44
+ }
45
+ export async function promiseLimitBatch(tasks, limit) {
46
+ const startTime = Date.now();
47
+ const results = [];
48
+ let successCount = 0;
49
+ let failureCount = 0;
50
+ for (let i = 0; i < tasks.length; i += limit) {
51
+ const batch = tasks.slice(i, i + limit);
52
+ const batchResults = await Promise.allSettled(batch.map(task => task()));
53
+ batchResults.forEach(result => {
54
+ results.push(result);
55
+ if (result.status === 'fulfilled') {
56
+ successCount++;
57
+ }
58
+ else {
59
+ failureCount++;
60
+ }
61
+ });
62
+ }
63
+ const totalTime = Date.now() - startTime;
64
+ return {
65
+ results,
66
+ successCount,
67
+ failureCount,
68
+ totalTime
69
+ };
70
+ }
71
+ export async function promiseLimitSemaphore(tasks, limit) {
72
+ const startTime = Date.now();
73
+ let activeCount = 0;
74
+ const results = [];
75
+ let successCount = 0;
76
+ let failureCount = 0;
77
+ const waitQueue = [];
78
+ const acquire = () => {
79
+ if (activeCount < limit) {
80
+ activeCount++;
81
+ return Promise.resolve();
82
+ }
83
+ return new Promise(resolve => {
84
+ waitQueue.push(resolve);
85
+ });
86
+ };
87
+ const release = () => {
88
+ activeCount--;
89
+ if (waitQueue.length > 0) {
90
+ const resolve = waitQueue.shift();
91
+ activeCount++;
92
+ resolve();
93
+ }
94
+ };
95
+ const promises = tasks.map(async (task, index) => {
96
+ await acquire();
97
+ try {
98
+ const result = await task();
99
+ results[index] = {
100
+ status: 'fulfilled',
101
+ value: result
102
+ };
103
+ successCount++;
104
+ }
105
+ catch (error) {
106
+ results[index] = {
107
+ status: 'rejected',
108
+ reason: error
109
+ };
110
+ failureCount++;
111
+ }
112
+ finally {
113
+ release();
114
+ }
115
+ });
116
+ await Promise.all(promises);
117
+ const totalTime = Date.now() - startTime;
118
+ return {
119
+ results,
120
+ successCount,
121
+ failureCount,
122
+ totalTime
123
+ };
124
+ }
125
+ //# sourceMappingURL=promiseLimit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promiseLimit.js","sourceRoot":"","sources":["../../../src/functions/utils/promiseLimit.ts"],"names":[],"mappings":"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"}