bytekit 1.0.31 → 2.0.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 (118) hide show
  1. package/README.md +58 -188
  2. package/dist/utils/core/ApiClient.d.ts +11 -10
  3. package/dist/utils/core/ApiClient.d.ts.map +1 -1
  4. package/dist/utils/core/ApiClient.js +17 -9
  5. package/dist/utils/core/ApiClient.js.map +1 -1
  6. package/dist/utils/core/SchemaAdapter.d.ts +35 -0
  7. package/dist/utils/core/SchemaAdapter.d.ts.map +1 -0
  8. package/dist/utils/core/SchemaAdapter.js +36 -0
  9. package/dist/utils/core/SchemaAdapter.js.map +1 -0
  10. package/dist/utils/core/index.d.ts +1 -1
  11. package/dist/utils/core/index.d.ts.map +1 -1
  12. package/dist/utils/core/index.js +1 -1
  13. package/dist/utils/core/index.js.map +1 -1
  14. package/dist/utils/helpers/QueryStringHelper.d.ts +11 -0
  15. package/dist/utils/helpers/QueryStringHelper.d.ts.map +1 -0
  16. package/dist/utils/helpers/QueryStringHelper.js +84 -0
  17. package/dist/utils/helpers/QueryStringHelper.js.map +1 -0
  18. package/dist/utils/helpers/UrlSlugHelper.d.ts +19 -0
  19. package/dist/utils/helpers/UrlSlugHelper.d.ts.map +1 -0
  20. package/dist/utils/helpers/UrlSlugHelper.js +27 -0
  21. package/dist/utils/helpers/UrlSlugHelper.js.map +1 -0
  22. package/dist/utils/helpers/index.d.ts +2 -13
  23. package/dist/utils/helpers/index.d.ts.map +1 -1
  24. package/dist/utils/helpers/index.js +2 -13
  25. package/dist/utils/helpers/index.js.map +1 -1
  26. package/dist/utils/index.d.ts +2 -8
  27. package/dist/utils/index.d.ts.map +1 -1
  28. package/dist/utils/index.js +2 -8
  29. package/dist/utils/index.js.map +1 -1
  30. package/package.json +13 -71
  31. package/dist/color-utils.d.ts +0 -2
  32. package/dist/color-utils.d.ts.map +0 -1
  33. package/dist/color-utils.js +0 -2
  34. package/dist/color-utils.js.map +0 -1
  35. package/dist/date-utils.d.ts +0 -2
  36. package/dist/date-utils.d.ts.map +0 -1
  37. package/dist/date-utils.js +0 -2
  38. package/dist/date-utils.js.map +0 -1
  39. package/dist/number-utils.d.ts +0 -2
  40. package/dist/number-utils.d.ts.map +0 -1
  41. package/dist/number-utils.js +0 -2
  42. package/dist/number-utils.js.map +0 -1
  43. package/dist/string-utils.d.ts +0 -2
  44. package/dist/string-utils.d.ts.map +0 -1
  45. package/dist/string-utils.js +0 -2
  46. package/dist/string-utils.js.map +0 -1
  47. package/dist/utils/core/BatchRequest.d.ts +0 -79
  48. package/dist/utils/core/BatchRequest.d.ts.map +0 -1
  49. package/dist/utils/core/BatchRequest.js +0 -152
  50. package/dist/utils/core/BatchRequest.js.map +0 -1
  51. package/dist/utils/core/QueryClient.d.ts +0 -145
  52. package/dist/utils/core/QueryClient.d.ts.map +0 -1
  53. package/dist/utils/core/QueryClient.js +0 -453
  54. package/dist/utils/core/QueryClient.js.map +0 -1
  55. package/dist/utils/core/QueryState.d.ts +0 -99
  56. package/dist/utils/core/QueryState.d.ts.map +0 -1
  57. package/dist/utils/core/QueryState.js +0 -65
  58. package/dist/utils/core/QueryState.js.map +0 -1
  59. package/dist/utils/helpers/ArrayUtils.d.ts +0 -134
  60. package/dist/utils/helpers/ArrayUtils.d.ts.map +0 -1
  61. package/dist/utils/helpers/ArrayUtils.js +0 -306
  62. package/dist/utils/helpers/ArrayUtils.js.map +0 -1
  63. package/dist/utils/helpers/ColorUtils.d.ts +0 -235
  64. package/dist/utils/helpers/ColorUtils.d.ts.map +0 -1
  65. package/dist/utils/helpers/ColorUtils.js +0 -598
  66. package/dist/utils/helpers/ColorUtils.js.map +0 -1
  67. package/dist/utils/helpers/DateUtils.d.ts +0 -36
  68. package/dist/utils/helpers/DateUtils.d.ts.map +0 -1
  69. package/dist/utils/helpers/DateUtils.js +0 -131
  70. package/dist/utils/helpers/DateUtils.js.map +0 -1
  71. package/dist/utils/helpers/FormUtils.d.ts +0 -176
  72. package/dist/utils/helpers/FormUtils.d.ts.map +0 -1
  73. package/dist/utils/helpers/FormUtils.js +0 -437
  74. package/dist/utils/helpers/FormUtils.js.map +0 -1
  75. package/dist/utils/helpers/HttpStatusHelper.d.ts +0 -82
  76. package/dist/utils/helpers/HttpStatusHelper.d.ts.map +0 -1
  77. package/dist/utils/helpers/HttpStatusHelper.js +0 -174
  78. package/dist/utils/helpers/HttpStatusHelper.js.map +0 -1
  79. package/dist/utils/helpers/NumberUtils.d.ts +0 -230
  80. package/dist/utils/helpers/NumberUtils.d.ts.map +0 -1
  81. package/dist/utils/helpers/NumberUtils.js +0 -564
  82. package/dist/utils/helpers/NumberUtils.js.map +0 -1
  83. package/dist/utils/helpers/ObjectUtils.d.ts +0 -102
  84. package/dist/utils/helpers/ObjectUtils.d.ts.map +0 -1
  85. package/dist/utils/helpers/ObjectUtils.js +0 -301
  86. package/dist/utils/helpers/ObjectUtils.js.map +0 -1
  87. package/dist/utils/helpers/PaginationHelper.d.ts +0 -127
  88. package/dist/utils/helpers/PaginationHelper.d.ts.map +0 -1
  89. package/dist/utils/helpers/PaginationHelper.js +0 -295
  90. package/dist/utils/helpers/PaginationHelper.js.map +0 -1
  91. package/dist/utils/helpers/Signal.d.ts +0 -92
  92. package/dist/utils/helpers/Signal.d.ts.map +0 -1
  93. package/dist/utils/helpers/Signal.js +0 -243
  94. package/dist/utils/helpers/Signal.js.map +0 -1
  95. package/dist/utils/helpers/StringUtils.d.ts +0 -46
  96. package/dist/utils/helpers/StringUtils.d.ts.map +0 -1
  97. package/dist/utils/helpers/StringUtils.js +0 -228
  98. package/dist/utils/helpers/StringUtils.js.map +0 -1
  99. package/dist/utils/helpers/TimeUtils.d.ts +0 -87
  100. package/dist/utils/helpers/TimeUtils.d.ts.map +0 -1
  101. package/dist/utils/helpers/TimeUtils.js +0 -234
  102. package/dist/utils/helpers/TimeUtils.js.map +0 -1
  103. package/dist/utils/helpers/UrlBuilder.d.ts +0 -79
  104. package/dist/utils/helpers/UrlBuilder.d.ts.map +0 -1
  105. package/dist/utils/helpers/UrlBuilder.js +0 -161
  106. package/dist/utils/helpers/UrlBuilder.js.map +0 -1
  107. package/dist/utils/helpers/Validator.d.ts +0 -31
  108. package/dist/utils/helpers/Validator.d.ts.map +0 -1
  109. package/dist/utils/helpers/Validator.js +0 -175
  110. package/dist/utils/helpers/Validator.js.map +0 -1
  111. package/dist/utils/helpers/useSignal.d.ts +0 -11
  112. package/dist/utils/helpers/useSignal.d.ts.map +0 -1
  113. package/dist/utils/helpers/useSignal.js +0 -11
  114. package/dist/utils/helpers/useSignal.js.map +0 -1
  115. package/dist/validator.d.ts +0 -2
  116. package/dist/validator.d.ts.map +0 -1
  117. package/dist/validator.js +0 -2
  118. 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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"}