bytekit 1.0.31 → 2.0.6

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 (129) hide show
  1. package/README.md +58 -188
  2. package/bin/bytekit.js +0 -0
  3. package/dist/cli/index.d.ts.map +1 -1
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/cli/swagger-generator.d.ts +1 -1
  6. package/dist/cli/swagger-generator.d.ts.map +1 -1
  7. package/dist/cli/swagger-generator.js +9 -5
  8. package/dist/cli/swagger-generator.js.map +1 -1
  9. package/dist/utils/core/ApiClient.d.ts +13 -12
  10. package/dist/utils/core/ApiClient.d.ts.map +1 -1
  11. package/dist/utils/core/ApiClient.js +24 -13
  12. package/dist/utils/core/ApiClient.js.map +1 -1
  13. package/dist/utils/core/SchemaAdapter.d.ts +35 -0
  14. package/dist/utils/core/SchemaAdapter.d.ts.map +1 -0
  15. package/dist/utils/core/SchemaAdapter.js +36 -0
  16. package/dist/utils/core/SchemaAdapter.js.map +1 -0
  17. package/dist/utils/core/index.d.ts +1 -1
  18. package/dist/utils/core/index.d.ts.map +1 -1
  19. package/dist/utils/core/index.js +1 -1
  20. package/dist/utils/core/index.js.map +1 -1
  21. package/dist/utils/helpers/CryptoUtils.d.ts +30 -3
  22. package/dist/utils/helpers/CryptoUtils.d.ts.map +1 -1
  23. package/dist/utils/helpers/CryptoUtils.js +83 -5
  24. package/dist/utils/helpers/CryptoUtils.js.map +1 -1
  25. package/dist/utils/helpers/QueryStringHelper.d.ts +11 -0
  26. package/dist/utils/helpers/QueryStringHelper.d.ts.map +1 -0
  27. package/dist/utils/helpers/QueryStringHelper.js +84 -0
  28. package/dist/utils/helpers/QueryStringHelper.js.map +1 -0
  29. package/dist/utils/helpers/UrlSlugHelper.d.ts +19 -0
  30. package/dist/utils/helpers/UrlSlugHelper.d.ts.map +1 -0
  31. package/dist/utils/helpers/UrlSlugHelper.js +27 -0
  32. package/dist/utils/helpers/UrlSlugHelper.js.map +1 -0
  33. package/dist/utils/helpers/index.d.ts +2 -13
  34. package/dist/utils/helpers/index.d.ts.map +1 -1
  35. package/dist/utils/helpers/index.js +2 -13
  36. package/dist/utils/helpers/index.js.map +1 -1
  37. package/dist/utils/index.d.ts +2 -8
  38. package/dist/utils/index.d.ts.map +1 -1
  39. package/dist/utils/index.js +2 -8
  40. package/dist/utils/index.js.map +1 -1
  41. package/package.json +192 -249
  42. package/dist/color-utils.d.ts +0 -2
  43. package/dist/color-utils.d.ts.map +0 -1
  44. package/dist/color-utils.js +0 -2
  45. package/dist/color-utils.js.map +0 -1
  46. package/dist/date-utils.d.ts +0 -2
  47. package/dist/date-utils.d.ts.map +0 -1
  48. package/dist/date-utils.js +0 -2
  49. package/dist/date-utils.js.map +0 -1
  50. package/dist/number-utils.d.ts +0 -2
  51. package/dist/number-utils.d.ts.map +0 -1
  52. package/dist/number-utils.js +0 -2
  53. package/dist/number-utils.js.map +0 -1
  54. package/dist/string-utils.d.ts +0 -2
  55. package/dist/string-utils.d.ts.map +0 -1
  56. package/dist/string-utils.js +0 -2
  57. package/dist/string-utils.js.map +0 -1
  58. package/dist/utils/core/BatchRequest.d.ts +0 -79
  59. package/dist/utils/core/BatchRequest.d.ts.map +0 -1
  60. package/dist/utils/core/BatchRequest.js +0 -152
  61. package/dist/utils/core/BatchRequest.js.map +0 -1
  62. package/dist/utils/core/QueryClient.d.ts +0 -145
  63. package/dist/utils/core/QueryClient.d.ts.map +0 -1
  64. package/dist/utils/core/QueryClient.js +0 -453
  65. package/dist/utils/core/QueryClient.js.map +0 -1
  66. package/dist/utils/core/QueryState.d.ts +0 -99
  67. package/dist/utils/core/QueryState.d.ts.map +0 -1
  68. package/dist/utils/core/QueryState.js +0 -65
  69. package/dist/utils/core/QueryState.js.map +0 -1
  70. package/dist/utils/helpers/ArrayUtils.d.ts +0 -134
  71. package/dist/utils/helpers/ArrayUtils.d.ts.map +0 -1
  72. package/dist/utils/helpers/ArrayUtils.js +0 -306
  73. package/dist/utils/helpers/ArrayUtils.js.map +0 -1
  74. package/dist/utils/helpers/ColorUtils.d.ts +0 -235
  75. package/dist/utils/helpers/ColorUtils.d.ts.map +0 -1
  76. package/dist/utils/helpers/ColorUtils.js +0 -598
  77. package/dist/utils/helpers/ColorUtils.js.map +0 -1
  78. package/dist/utils/helpers/DateUtils.d.ts +0 -36
  79. package/dist/utils/helpers/DateUtils.d.ts.map +0 -1
  80. package/dist/utils/helpers/DateUtils.js +0 -131
  81. package/dist/utils/helpers/DateUtils.js.map +0 -1
  82. package/dist/utils/helpers/FormUtils.d.ts +0 -176
  83. package/dist/utils/helpers/FormUtils.d.ts.map +0 -1
  84. package/dist/utils/helpers/FormUtils.js +0 -437
  85. package/dist/utils/helpers/FormUtils.js.map +0 -1
  86. package/dist/utils/helpers/HttpStatusHelper.d.ts +0 -82
  87. package/dist/utils/helpers/HttpStatusHelper.d.ts.map +0 -1
  88. package/dist/utils/helpers/HttpStatusHelper.js +0 -174
  89. package/dist/utils/helpers/HttpStatusHelper.js.map +0 -1
  90. package/dist/utils/helpers/NumberUtils.d.ts +0 -230
  91. package/dist/utils/helpers/NumberUtils.d.ts.map +0 -1
  92. package/dist/utils/helpers/NumberUtils.js +0 -564
  93. package/dist/utils/helpers/NumberUtils.js.map +0 -1
  94. package/dist/utils/helpers/ObjectUtils.d.ts +0 -102
  95. package/dist/utils/helpers/ObjectUtils.d.ts.map +0 -1
  96. package/dist/utils/helpers/ObjectUtils.js +0 -301
  97. package/dist/utils/helpers/ObjectUtils.js.map +0 -1
  98. package/dist/utils/helpers/PaginationHelper.d.ts +0 -127
  99. package/dist/utils/helpers/PaginationHelper.d.ts.map +0 -1
  100. package/dist/utils/helpers/PaginationHelper.js +0 -295
  101. package/dist/utils/helpers/PaginationHelper.js.map +0 -1
  102. package/dist/utils/helpers/Signal.d.ts +0 -92
  103. package/dist/utils/helpers/Signal.d.ts.map +0 -1
  104. package/dist/utils/helpers/Signal.js +0 -243
  105. package/dist/utils/helpers/Signal.js.map +0 -1
  106. package/dist/utils/helpers/StringUtils.d.ts +0 -46
  107. package/dist/utils/helpers/StringUtils.d.ts.map +0 -1
  108. package/dist/utils/helpers/StringUtils.js +0 -228
  109. package/dist/utils/helpers/StringUtils.js.map +0 -1
  110. package/dist/utils/helpers/TimeUtils.d.ts +0 -87
  111. package/dist/utils/helpers/TimeUtils.d.ts.map +0 -1
  112. package/dist/utils/helpers/TimeUtils.js +0 -234
  113. package/dist/utils/helpers/TimeUtils.js.map +0 -1
  114. package/dist/utils/helpers/UrlBuilder.d.ts +0 -79
  115. package/dist/utils/helpers/UrlBuilder.d.ts.map +0 -1
  116. package/dist/utils/helpers/UrlBuilder.js +0 -161
  117. package/dist/utils/helpers/UrlBuilder.js.map +0 -1
  118. package/dist/utils/helpers/Validator.d.ts +0 -31
  119. package/dist/utils/helpers/Validator.d.ts.map +0 -1
  120. package/dist/utils/helpers/Validator.js +0 -175
  121. package/dist/utils/helpers/Validator.js.map +0 -1
  122. package/dist/utils/helpers/useSignal.d.ts +0 -11
  123. package/dist/utils/helpers/useSignal.d.ts.map +0 -1
  124. package/dist/utils/helpers/useSignal.js +0 -11
  125. package/dist/utils/helpers/useSignal.js.map +0 -1
  126. package/dist/validator.d.ts +0 -2
  127. package/dist/validator.d.ts.map +0 -1
  128. package/dist/validator.js +0 -2
  129. package/dist/validator.js.map +0 -1
@@ -1,46 +0,0 @@
1
- export interface SlugifyOptions {
2
- separator?: string;
3
- lowercase?: boolean;
4
- }
5
- export interface TruncateOptions {
6
- ellipsis?: string;
7
- respectWordBoundaries?: boolean;
8
- }
9
- export interface MaskOptions {
10
- maskChar?: string;
11
- visibleStart?: number;
12
- visibleEnd?: number;
13
- }
14
- export interface InterpolateOptions {
15
- strict?: boolean;
16
- fallback?: string;
17
- transform?: (value: unknown, key: string) => string;
18
- }
19
- export interface InitialsOptions {
20
- limit?: number;
21
- uppercase?: boolean;
22
- }
23
- export interface QueryStringOptions {
24
- arrayFormat?: "repeat" | "bracket" | "comma";
25
- skipNull?: boolean;
26
- skipEmptyString?: boolean;
27
- encode?: boolean;
28
- sortKeys?: boolean;
29
- }
30
- export declare const StringUtils: {
31
- removeDiacritics: (value: string | null | undefined) => string;
32
- slugify: (value: string | null | undefined, { separator, lowercase }?: SlugifyOptions) => string;
33
- compactWhitespace: (value: string | null | undefined) => string;
34
- capitalize: (value: string | null | undefined, locale?: string) => string;
35
- capitalizeWords: (value: string | null | undefined, locale?: string) => string;
36
- truncate: (value: string | null | undefined, maxLength: number, { ellipsis, respectWordBoundaries }?: TruncateOptions) => string;
37
- mask: (value: string | null | undefined, { maskChar, visibleStart, visibleEnd }?: MaskOptions) => string;
38
- interpolate: (template: string, params: Record<string, unknown>, { strict, fallback, transform }?: InterpolateOptions) => string;
39
- initials: (value: string | null | undefined, { limit, uppercase }?: InitialsOptions) => string;
40
- toQueryString: (params: Record<string, unknown> | null | undefined, customOptions?: QueryStringOptions) => string;
41
- camelCase: (value: string | null | undefined) => string;
42
- pascalCase: (value: string | null | undefined) => string;
43
- kebabCase: (value: string | null | undefined) => string;
44
- snakeCase: (value: string | null | undefined) => string;
45
- };
46
- //# sourceMappingURL=StringUtils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StringUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/helpers/StringUtils.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,cAAc;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CACvD;AAED,MAAM,WAAW,eAAe;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IAC/B,WAAW,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAqGD,eAAO,MAAM,WAAW;8BACM,MAAM,GAAG,IAAI,GAAG,SAAS;qBAIxC,MAAM,GAAG,IAAI,GAAG,SAAS,6BACO,cAAc;+BAc9B,MAAM,GAAG,IAAI,GAAG,SAAS;wBAGhC,MAAM,GAAG,IAAI,GAAG,SAAS;6BAUpB,MAAM,GAAG,IAAI,GAAG,SAAS;sBAMvC,MAAM,GAAG,IAAI,GAAG,SAAS,aACrB,MAAM,wCACiC,eAAe;kBAiB1D,MAAM,GAAG,IAAI,GAAG,SAAS,2CACsB,WAAW;4BAcvD,MAAM,UACR,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,oCACe,kBAAkB;sBAqBzD,MAAM,GAAG,IAAI,GAAG,SAAS,yBACC,eAAe;4BAUxC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,kBACnC,kBAAkB;uBAqBlB,MAAM,GAAG,IAAI,GAAG,SAAS;wBAyBxB,MAAM,GAAG,IAAI,GAAG,SAAS;uBAoB1B,MAAM,GAAG,IAAI,GAAG,SAAS;uBAWzB,MAAM,GAAG,IAAI,GAAG,SAAS;CAU/C,CAAC"}
@@ -1,228 +0,0 @@
1
- const DIACRITICS_REGEX = /[\u0300-\u036f]/g;
2
- const NON_ALPHANUMERIC_REGEX = /[^a-z0-9]+/gi;
3
- const PLACEHOLDER_REGEX = /\{\{\s*([\w.[\]-]+)\s*\}\}/g;
4
- const escapeRegExp = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
5
- const safeString = (value) => value === null || value === undefined ? "" : String(value);
6
- const removeDiacritics = (value) => value.normalize("NFD").replace(DIACRITICS_REGEX, "");
7
- const isPlainObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
8
- const splitWords = (value) => safeString(value).trim().split(/\s+/).filter(Boolean);
9
- const getPathValue = (record, path) => path
10
- .replace(/\[(\d+)\]/g, ".$1")
11
- .split(".")
12
- .filter(Boolean)
13
- .reduce((acc, key) => {
14
- if (acc === null || acc === undefined)
15
- return undefined;
16
- if (typeof acc !== "object")
17
- return undefined;
18
- return acc[key];
19
- }, record);
20
- const serializeValue = (value) => {
21
- if (value instanceof Date)
22
- return value.toISOString();
23
- if (typeof value === "boolean")
24
- return value ? "true" : "false";
25
- if (typeof value === "number" ||
26
- typeof value === "bigint" ||
27
- typeof value === "string")
28
- return String(value);
29
- return safeString(value);
30
- };
31
- const DEFAULT_QUERY_OPTIONS = {
32
- arrayFormat: "repeat",
33
- skipNull: true,
34
- skipEmptyString: false,
35
- encode: true,
36
- sortKeys: true,
37
- };
38
- const encodePair = (value, encode) => encode ? encodeURIComponent(value) : value;
39
- const buildQueryPairs = (key, value, options, pairs) => {
40
- if (value === undefined)
41
- return;
42
- if (value === null) {
43
- if (!options.skipNull)
44
- pairs.push([key, ""]);
45
- return;
46
- }
47
- if (Array.isArray(value)) {
48
- if (value.length === 0)
49
- return;
50
- if (options.arrayFormat === "comma") {
51
- const serialized = value
52
- .map((entry) => serializeValue(entry))
53
- .filter((entry) => !(options.skipEmptyString && entry === ""))
54
- .join(",");
55
- if (serialized || !options.skipEmptyString)
56
- pairs.push([key, serialized]);
57
- return;
58
- }
59
- for (const item of value) {
60
- const nextKey = options.arrayFormat === "bracket" ? `${key}[]` : key;
61
- buildQueryPairs(nextKey, item, options, pairs);
62
- }
63
- return;
64
- }
65
- if (isPlainObject(value)) {
66
- const entries = Object.entries(value);
67
- if (options.sortKeys)
68
- entries.sort(([a], [b]) => a.localeCompare(b));
69
- for (const [childKey, childValue] of entries) {
70
- const nextKey = key ? `${key}[${childKey}]` : childKey;
71
- buildQueryPairs(nextKey, childValue, options, pairs);
72
- }
73
- return;
74
- }
75
- const serialized = serializeValue(value);
76
- if (options.skipEmptyString && serialized === "")
77
- return;
78
- pairs.push([key, serialized]);
79
- };
80
- export const StringUtils = {
81
- removeDiacritics: (value) => removeDiacritics(safeString(value)),
82
- slugify: (value, { separator = "-", lowercase = true } = {}) => {
83
- const normalized = removeDiacritics(safeString(value));
84
- const base = lowercase ? normalized.toLowerCase() : normalized;
85
- const escapedSeparator = escapeRegExp(separator);
86
- return base
87
- .replace(NON_ALPHANUMERIC_REGEX, separator)
88
- .replace(new RegExp(`${escapedSeparator}+`, "g"), separator)
89
- .replace(new RegExp(`^${escapedSeparator}|${escapedSeparator}$`, "g"), "");
90
- },
91
- compactWhitespace: (value) => safeString(value).trim().replace(/\s+/g, " "),
92
- capitalize: (value, locale = "es-AR") => {
93
- const input = safeString(value).trim();
94
- if (!input)
95
- return "";
96
- const [first, ...rest] = input;
97
- return (first.toLocaleUpperCase(locale) +
98
- rest.join("").toLocaleLowerCase(locale));
99
- },
100
- capitalizeWords: (value, locale = "es-AR") => splitWords(value)
101
- .map((word) => StringUtils.capitalize(word, locale))
102
- .join(" "),
103
- truncate: (value, maxLength, { ellipsis = "…", respectWordBoundaries = true } = {}) => {
104
- const input = safeString(value);
105
- if (input.length <= maxLength)
106
- return input;
107
- const sliceLength = Math.max(maxLength - ellipsis.length, 0);
108
- let truncated = input.slice(0, sliceLength);
109
- if (respectWordBoundaries) {
110
- const lastSpace = truncated.lastIndexOf(" ");
111
- if (lastSpace > 0)
112
- truncated = truncated.slice(0, lastSpace);
113
- }
114
- return `${truncated}${ellipsis}`;
115
- },
116
- mask: (value, { maskChar = "•", visibleStart = 0, visibleEnd = 4 } = {}) => {
117
- const input = safeString(value);
118
- if (!input)
119
- return "";
120
- if (visibleStart + visibleEnd >= input.length)
121
- return input;
122
- const start = input.slice(0, visibleStart);
123
- const end = visibleEnd > 0 ? input.slice(input.length - visibleEnd) : "";
124
- const maskedLength = input.length - start.length - end.length;
125
- return `${start}${maskChar.repeat(Math.max(maskedLength, 0))}${end}`;
126
- },
127
- interpolate: (template, params, { strict = false, fallback = "", transform } = {}) => {
128
- if (!template)
129
- return "";
130
- return template.replace(PLACEHOLDER_REGEX, (_, rawKey) => {
131
- const value = getPathValue(params, rawKey);
132
- if (value === undefined || value === null) {
133
- if (strict)
134
- throw new Error(`Missing value for key "${rawKey}"`);
135
- return fallback;
136
- }
137
- const resolved = transform
138
- ? transform(value, rawKey)
139
- : safeString(value);
140
- return resolved;
141
- });
142
- },
143
- initials: (value, { limit = 2, uppercase = true } = {}) => {
144
- const letters = splitWords(value)
145
- .slice(0, limit)
146
- .map((word) => word.charAt(0));
147
- const result = letters.join("");
148
- return uppercase ? result.toUpperCase() : result;
149
- },
150
- toQueryString: (params, customOptions = {}) => {
151
- if (!params)
152
- return "";
153
- const options = { ...DEFAULT_QUERY_OPTIONS, ...customOptions };
154
- const pairs = [];
155
- const entries = Object.entries(params);
156
- if (options.sortKeys)
157
- entries.sort(([a], [b]) => a.localeCompare(b));
158
- for (const [key, value] of entries) {
159
- buildQueryPairs(key, value, options, pairs);
160
- }
161
- return pairs
162
- .map(([key, value]) => {
163
- const encodedKey = encodePair(key, options.encode);
164
- const encodedValue = encodePair(value, options.encode);
165
- return `${encodedKey}=${encodedValue}`;
166
- })
167
- .join("&");
168
- },
169
- camelCase: (value) => {
170
- const input = safeString(value).trim();
171
- if (!input)
172
- return "";
173
- // Insert separators at word boundaries (camelCase/PascalCase)
174
- const withSeparators = input
175
- .replace(/([a-z])([A-Z])/g, "$1-$2")
176
- .replace(/([A-Z])([A-Z][a-z])/g, "$1-$2");
177
- // Split by non-alphanumeric chars and capitalize
178
- const words = withSeparators
179
- .toLowerCase()
180
- .split(/[^a-zA-Z0-9]+/)
181
- .filter(Boolean);
182
- if (words.length === 0)
183
- return "";
184
- return (words[0] +
185
- words
186
- .slice(1)
187
- .map((w) => w.charAt(0).toUpperCase() + w.slice(1))
188
- .join(""));
189
- },
190
- pascalCase: (value) => {
191
- const input = safeString(value).trim();
192
- if (!input)
193
- return "";
194
- // Insert separators at word boundaries (camelCase/PascalCase)
195
- const withSeparators = input
196
- .replaceAll(/([a-z])([A-Z])/g, "$1-$2")
197
- .replaceAll(/([A-Z])([A-Z][a-z])/g, "$1-$2");
198
- // Split by non-alphanumeric chars and capitalize all
199
- const words = withSeparators
200
- .toLowerCase()
201
- .split(/[^a-zA-Z0-9]+/)
202
- .filter(Boolean);
203
- return words
204
- .map((w) => w.charAt(0).toUpperCase() + w.slice(1))
205
- .join("");
206
- },
207
- kebabCase: (value) => {
208
- const input = safeString(value).trim();
209
- if (!input)
210
- return "";
211
- return input
212
- .replaceAll(/([a-z])([A-Z])/g, "$1-$2")
213
- .replaceAll(/(\d)([A-Z])/g, "$1-$2")
214
- .replaceAll(/[\s_]+/g, "-")
215
- .toLowerCase();
216
- },
217
- snakeCase: (value) => {
218
- const input = safeString(value).trim();
219
- if (!input)
220
- return "";
221
- return input
222
- .replaceAll(/([a-z])([A-Z])/g, "$1_$2")
223
- .replaceAll(/(\d)([A-Z])/g, "$1_$2")
224
- .replaceAll(/[\s-]+/g, "_")
225
- .toLowerCase();
226
- },
227
- };
228
- //# sourceMappingURL=StringUtils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StringUtils.js","sourceRoot":"","sources":["../../../src/utils/helpers/StringUtils.ts"],"names":[],"mappings":"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"}
@@ -1,87 +0,0 @@
1
- /**
2
- * Time and timing utilities for debounce, throttle, delays, etc.
3
- */
4
- export type DebounceOptions = {
5
- leading?: boolean;
6
- trailing?: boolean;
7
- maxWait?: number;
8
- };
9
- export type ThrottleOptions = {
10
- leading?: boolean;
11
- trailing?: boolean;
12
- };
13
- export declare class TimeUtils {
14
- /**
15
- * Create a debounced function
16
- * Delays execution until after wait ms have elapsed since last call
17
- */
18
- static debounce<T extends (...args: unknown[]) => unknown>(fn: T, wait: number, options?: DebounceOptions): (...args: Parameters<T>) => void;
19
- /**
20
- * Create a throttled function
21
- * Executes at most once every wait ms
22
- */
23
- static throttle<T extends (...args: unknown[]) => unknown>(fn: T, wait: number, options?: ThrottleOptions): (...args: Parameters<T>) => void;
24
- /**
25
- * Sleep for specified milliseconds
26
- */
27
- static sleep(ms: number): Promise<void>;
28
- /**
29
- * Delay execution of a function
30
- */
31
- static delay<T>(fn: () => T, ms: number): Promise<T>;
32
- /**
33
- * Execute function with timeout
34
- */
35
- static timeout<T>(promise: Promise<T>, ms: number, message?: string): Promise<T>;
36
- /**
37
- * Retry async function with exponential backoff
38
- */
39
- static retryAsync<T>(fn: () => Promise<T>, options?: {
40
- maxAttempts?: number;
41
- initialDelayMs?: number;
42
- maxDelayMs?: number;
43
- backoffMultiplier?: number;
44
- }): Promise<T>;
45
- /**
46
- * Race multiple promises
47
- */
48
- static race<T>(promises: Promise<T>[]): Promise<T>;
49
- /**
50
- * Wait for all promises
51
- */
52
- static all<T>(promises: Promise<T>[]): Promise<T[]>;
53
- /**
54
- * Wait for any promise to settle
55
- */
56
- static allSettled<T>(promises: Promise<T>[]): Promise<PromiseSettledResult<T>[]>;
57
- /**
58
- * Create a queue for async operations
59
- */
60
- static createQueue(concurrency?: number): {
61
- add: <T>(fn: () => Promise<T>) => Promise<T>;
62
- size: () => number;
63
- };
64
- /**
65
- * Measure execution time of a function
66
- */
67
- static measureAsync<T>(fn: () => Promise<T>): Promise<{
68
- result: T;
69
- durationMs: number;
70
- }>;
71
- /**
72
- * Measure execution time of a sync function
73
- */
74
- static measureSync<T>(fn: () => T): {
75
- result: T;
76
- durationMs: number;
77
- };
78
- /**
79
- * Format milliseconds to human readable string
80
- */
81
- static formatDuration(ms: number): string;
82
- /**
83
- * Parse duration string to milliseconds
84
- */
85
- static parseDuration(duration: string): number;
86
- }
87
- //# sourceMappingURL=TimeUtils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TimeUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/helpers/TimeUtils.ts"],"names":[],"mappings":"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"}
@@ -1,234 +0,0 @@
1
- /**
2
- * Time and timing utilities for debounce, throttle, delays, etc.
3
- */
4
- export class TimeUtils {
5
- /**
6
- * Create a debounced function
7
- * Delays execution until after wait ms have elapsed since last call
8
- */
9
- static debounce(fn, wait, options = {}) {
10
- const { leading = false, trailing = true, maxWait } = options;
11
- let timeout = null;
12
- let lastCall = 0;
13
- let lastInvoke = 0;
14
- return function debounced(...args) {
15
- const now = Date.now();
16
- if (lastCall === 0 && !leading) {
17
- lastInvoke = now;
18
- }
19
- lastCall = now;
20
- if (timeout)
21
- clearTimeout(timeout);
22
- const timeSinceLastInvoke = now - lastInvoke;
23
- const shouldInvoke = trailing && timeSinceLastInvoke >= wait;
24
- if (maxWait && timeSinceLastInvoke >= maxWait) {
25
- fn(...args);
26
- lastInvoke = now;
27
- if (timeout)
28
- clearTimeout(timeout);
29
- return;
30
- }
31
- if (shouldInvoke) {
32
- fn(...args);
33
- lastInvoke = now;
34
- }
35
- else {
36
- timeout = setTimeout(() => {
37
- if (trailing) {
38
- fn(...args);
39
- lastInvoke = Date.now();
40
- }
41
- timeout = null;
42
- }, wait - timeSinceLastInvoke);
43
- }
44
- };
45
- }
46
- /**
47
- * Create a throttled function
48
- * Executes at most once every wait ms
49
- */
50
- static throttle(fn, wait, options = {}) {
51
- const { leading = true, trailing = true } = options;
52
- let timeout = null;
53
- let lastCall = 0;
54
- return function throttled(...args) {
55
- const now = Date.now();
56
- const timeSinceLastCall = now - lastCall;
57
- if (lastCall === 0 && !leading) {
58
- lastCall = now;
59
- return;
60
- }
61
- if (timeSinceLastCall >= wait) {
62
- fn(...args);
63
- lastCall = now;
64
- if (timeout)
65
- clearTimeout(timeout);
66
- }
67
- else if (trailing && !timeout) {
68
- timeout = setTimeout(() => {
69
- fn(...args);
70
- lastCall = Date.now();
71
- timeout = null;
72
- }, wait - timeSinceLastCall);
73
- }
74
- };
75
- }
76
- /**
77
- * Sleep for specified milliseconds
78
- */
79
- static sleep(ms) {
80
- return new Promise((resolve) => setTimeout(resolve, ms));
81
- }
82
- /**
83
- * Delay execution of a function
84
- */
85
- static delay(fn, ms) {
86
- return new Promise((resolve) => {
87
- setTimeout(() => {
88
- resolve(fn());
89
- }, ms);
90
- });
91
- }
92
- /**
93
- * Execute function with timeout
94
- */
95
- static async timeout(promise, ms, message = "Operation timed out") {
96
- return Promise.race([
97
- promise,
98
- new Promise((_, reject) => setTimeout(() => reject(new Error(message)), ms)),
99
- ]);
100
- }
101
- /**
102
- * Retry async function with exponential backoff
103
- */
104
- static async retryAsync(fn, options = {}) {
105
- const { maxAttempts = 3, initialDelayMs = 100, maxDelayMs = 10000, backoffMultiplier = 2, } = options;
106
- let lastError;
107
- for (let attempt = 1; attempt <= maxAttempts; attempt++) {
108
- try {
109
- return await fn();
110
- }
111
- catch (error) {
112
- lastError =
113
- error instanceof Error ? error : new Error(String(error));
114
- if (attempt === maxAttempts) {
115
- throw lastError;
116
- }
117
- const delayMs = Math.min(initialDelayMs * Math.pow(backoffMultiplier, attempt - 1), maxDelayMs);
118
- await this.sleep(delayMs);
119
- }
120
- }
121
- throw lastError;
122
- }
123
- /**
124
- * Race multiple promises
125
- */
126
- static race(promises) {
127
- return Promise.race(promises);
128
- }
129
- /**
130
- * Wait for all promises
131
- */
132
- static all(promises) {
133
- return Promise.all(promises);
134
- }
135
- /**
136
- * Wait for any promise to settle
137
- */
138
- static allSettled(promises) {
139
- return Promise.allSettled(promises);
140
- }
141
- /**
142
- * Create a queue for async operations
143
- */
144
- static createQueue(concurrency = 1) {
145
- let running = 0;
146
- const queue = [];
147
- const process = async () => {
148
- if (running >= concurrency || queue.length === 0)
149
- return;
150
- running++;
151
- const task = queue.shift();
152
- if (task) {
153
- try {
154
- await task();
155
- }
156
- finally {
157
- running--;
158
- process();
159
- }
160
- }
161
- };
162
- return {
163
- add: (fn) => {
164
- return new Promise((resolve, reject) => {
165
- queue.push(async () => {
166
- try {
167
- resolve(await fn());
168
- }
169
- catch (error) {
170
- reject(error);
171
- }
172
- });
173
- process();
174
- });
175
- },
176
- size: () => queue.length + running,
177
- };
178
- }
179
- /**
180
- * Measure execution time of a function
181
- */
182
- static async measureAsync(fn) {
183
- const start = performance.now();
184
- const result = await fn();
185
- const durationMs = performance.now() - start;
186
- return { result, durationMs };
187
- }
188
- /**
189
- * Measure execution time of a sync function
190
- */
191
- static measureSync(fn) {
192
- const start = performance.now();
193
- const result = fn();
194
- const durationMs = performance.now() - start;
195
- return { result, durationMs };
196
- }
197
- /**
198
- * Format milliseconds to human readable string
199
- */
200
- static formatDuration(ms) {
201
- if (ms < 1000)
202
- return `${Math.round(ms)}ms`;
203
- if (ms < 60000)
204
- return `${(ms / 1000).toFixed(2)}s`;
205
- if (ms < 3600000)
206
- return `${(ms / 60000).toFixed(2)}m`;
207
- return `${(ms / 3600000).toFixed(2)}h`;
208
- }
209
- /**
210
- * Parse duration string to milliseconds
211
- */
212
- static parseDuration(duration) {
213
- const match = duration.match(/^(\d+(?:\.\d+)?)\s*(ms|s|m|h|d)$/i);
214
- if (!match)
215
- throw new Error(`Invalid duration format: ${duration}`);
216
- const [, value, unit] = match;
217
- const num = parseFloat(value);
218
- switch (unit.toLowerCase()) {
219
- case "ms":
220
- return num;
221
- case "s":
222
- return num * 1000;
223
- case "m":
224
- return num * 60 * 1000;
225
- case "h":
226
- return num * 60 * 60 * 1000;
227
- case "d":
228
- return num * 24 * 60 * 60 * 1000;
229
- default:
230
- throw new Error(`Unknown time unit: ${unit}`);
231
- }
232
- }
233
- }
234
- //# sourceMappingURL=TimeUtils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TimeUtils.js","sourceRoot":"","sources":["../../../src/utils/helpers/TimeUtils.ts"],"names":[],"mappings":"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"}