@alextheman/utility 1.25.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +53 -74
- package/dist/index.d.cts +11 -17
- package/dist/index.d.ts +11 -17
- package/dist/index.js +51 -72
- package/package.json +5 -5
package/dist/index.cjs
CHANGED
|
@@ -41,26 +41,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
41
41
|
));
|
|
42
42
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
43
43
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
44
|
-
var __async = (__this, __arguments, generator) => {
|
|
45
|
-
return new Promise((resolve, reject) => {
|
|
46
|
-
var fulfilled = (value) => {
|
|
47
|
-
try {
|
|
48
|
-
step(generator.next(value));
|
|
49
|
-
} catch (e) {
|
|
50
|
-
reject(e);
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
var rejected = (value) => {
|
|
54
|
-
try {
|
|
55
|
-
step(generator.throw(value));
|
|
56
|
-
} catch (e) {
|
|
57
|
-
reject(e);
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
61
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
62
|
-
});
|
|
63
|
-
};
|
|
64
44
|
|
|
65
45
|
// src/index.ts
|
|
66
46
|
var index_exports = {};
|
|
@@ -70,7 +50,6 @@ __export(index_exports, {
|
|
|
70
50
|
appendSemicolon: () => appendSemicolon_default,
|
|
71
51
|
convertFileToBase64: () => convertFileToBase64_default,
|
|
72
52
|
fillArray: () => fillArray_default,
|
|
73
|
-
fillArrayAsync: () => fillArrayAsync_default,
|
|
74
53
|
formatDateAndTime: () => formatDateAndTime_default,
|
|
75
54
|
getRandomNumber: () => getRandomNumber_default,
|
|
76
55
|
httpErrorCodeLookup: () => httpErrorCodeLookup,
|
|
@@ -81,11 +60,12 @@ __export(index_exports, {
|
|
|
81
60
|
omitProperties: () => omitProperties_default,
|
|
82
61
|
parseEmail: () => Email_default,
|
|
83
62
|
parseEnv: () => Env_default,
|
|
63
|
+
parseIntStrict: () => parseIntStrict_default,
|
|
84
64
|
parseUUID: () => UUID_default,
|
|
85
65
|
randomiseArray: () => randomiseArray_default,
|
|
86
66
|
range: () => range_default,
|
|
67
|
+
stringToBoolean: () => stringToBoolean_default,
|
|
87
68
|
truncate: () => truncate_default,
|
|
88
|
-
validateUUID: () => validateUUID_default,
|
|
89
69
|
wait: () => wait_default
|
|
90
70
|
});
|
|
91
71
|
module.exports = __toCommonJS(index_exports);
|
|
@@ -145,18 +125,6 @@ function fillArray(callback, length = 1) {
|
|
|
145
125
|
}
|
|
146
126
|
var fillArray_default = fillArray;
|
|
147
127
|
|
|
148
|
-
// src/functions/fillArrayAsync.ts
|
|
149
|
-
function fillArrayAsync(callback, length = 1) {
|
|
150
|
-
return __async(this, null, function* () {
|
|
151
|
-
return Promise.all(
|
|
152
|
-
new Array(length).fill(null).map((_, index) => __async(null, null, function* () {
|
|
153
|
-
return yield callback(index);
|
|
154
|
-
}))
|
|
155
|
-
);
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
var fillArrayAsync_default = fillArrayAsync;
|
|
159
|
-
|
|
160
128
|
// src/functions/isSameDate.ts
|
|
161
129
|
function isSameDate(firstDate, secondDate) {
|
|
162
130
|
return firstDate.getDate() === secondDate.getDate() && firstDate.getMonth() === secondDate.getMonth() && firstDate.getFullYear() === secondDate.getFullYear();
|
|
@@ -184,7 +152,7 @@ var formatDateAndTime_default = formatDateAndTime;
|
|
|
184
152
|
// src/functions/getRandomNumber.ts
|
|
185
153
|
function getRandomNumber(lowerBound, upperBound) {
|
|
186
154
|
if (lowerBound % 1 !== 0 || upperBound % 1 !== 0) {
|
|
187
|
-
throw new
|
|
155
|
+
throw new TypeError("NON_INTEGER_INPUTS");
|
|
188
156
|
}
|
|
189
157
|
return Math.floor(Math.random() * (upperBound - lowerBound + 1) + lowerBound);
|
|
190
158
|
}
|
|
@@ -193,7 +161,7 @@ var getRandomNumber_default = getRandomNumber;
|
|
|
193
161
|
// src/functions/isLeapYear.ts
|
|
194
162
|
function isLeapYear(year) {
|
|
195
163
|
if (year % 1 !== 0) {
|
|
196
|
-
throw new
|
|
164
|
+
throw new TypeError("NON_INTEGER_INPUT");
|
|
197
165
|
}
|
|
198
166
|
return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
|
|
199
167
|
}
|
|
@@ -247,6 +215,21 @@ function omitProperties(object, keysToOmit) {
|
|
|
247
215
|
}
|
|
248
216
|
var omitProperties_default = omitProperties;
|
|
249
217
|
|
|
218
|
+
// src/functions/parseIntStrict.ts
|
|
219
|
+
function parseIntStrict(string, radix) {
|
|
220
|
+
const trimmedString = string.trim();
|
|
221
|
+
const pattern = radix && radix > 10 && radix <= 36 ? (
|
|
222
|
+
// String.fromCharCode() gets the maximum possible alphabetical character for a base above 10
|
|
223
|
+
new RegExp(`^[+-]?[0-9a-${String.fromCharCode(87 + radix - 1)}]+$`, "i")
|
|
224
|
+
) : /^[+-]?\d+$/;
|
|
225
|
+
const parseIntResult = parseInt(trimmedString, radix);
|
|
226
|
+
if (isNaN(parseIntResult) || !pattern.test(trimmedString)) {
|
|
227
|
+
throw new TypeError("INTEGER_PARSING_ERROR");
|
|
228
|
+
}
|
|
229
|
+
return parseIntResult;
|
|
230
|
+
}
|
|
231
|
+
var parseIntStrict_default = parseIntStrict;
|
|
232
|
+
|
|
250
233
|
// src/functions/randomiseArray.ts
|
|
251
234
|
function randomiseArray(array) {
|
|
252
235
|
const mutableArray = [...array];
|
|
@@ -283,14 +266,44 @@ function range(start, stop, step = 1) {
|
|
|
283
266
|
}
|
|
284
267
|
var range_default = range;
|
|
285
268
|
|
|
269
|
+
// src/functions/stringToBoolean.ts
|
|
270
|
+
function stringToBoolean(inputString) {
|
|
271
|
+
const normalisedString = inputString.toLowerCase();
|
|
272
|
+
if (normalisedString !== "true" && normalisedString !== "false") {
|
|
273
|
+
throw new TypeError("INVALID_BOOLEAN_STRING");
|
|
274
|
+
}
|
|
275
|
+
return normalisedString === "true";
|
|
276
|
+
}
|
|
277
|
+
var stringToBoolean_default = stringToBoolean;
|
|
278
|
+
|
|
286
279
|
// src/functions/truncate.ts
|
|
287
280
|
function truncate(stringToTruncate, maxLength = 5) {
|
|
288
281
|
return stringToTruncate.length > maxLength ? `${stringToTruncate.slice(0, maxLength)}...` : stringToTruncate;
|
|
289
282
|
}
|
|
290
283
|
var truncate_default = truncate;
|
|
291
284
|
|
|
292
|
-
// src/functions/
|
|
293
|
-
|
|
285
|
+
// src/functions/wait.ts
|
|
286
|
+
function wait(seconds) {
|
|
287
|
+
return new Promise((resolve, _) => {
|
|
288
|
+
setTimeout(() => {
|
|
289
|
+
resolve();
|
|
290
|
+
}, seconds * 1e3);
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
var wait_default = wait;
|
|
294
|
+
|
|
295
|
+
// src/functions/taggedTemplate/interpolateObjects.ts
|
|
296
|
+
function interpolateObjects(strings, ...values) {
|
|
297
|
+
let result = "";
|
|
298
|
+
for (let i = 0; i < strings.length; i++) {
|
|
299
|
+
result += strings[i];
|
|
300
|
+
if (i !== strings.length - 1) {
|
|
301
|
+
result += values[i] && typeof values[i] === "object" ? JSON.stringify(values[i]) : values[i];
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
return result;
|
|
305
|
+
}
|
|
306
|
+
var interpolateObjects_default = interpolateObjects;
|
|
294
307
|
|
|
295
308
|
// src/types/APIError.ts
|
|
296
309
|
var httpErrorCodeLookup = {
|
|
@@ -347,40 +360,6 @@ function parseUUID(UUID) {
|
|
|
347
360
|
return uuidSchema.parse(UUID);
|
|
348
361
|
}
|
|
349
362
|
var UUID_default = parseUUID;
|
|
350
|
-
|
|
351
|
-
// src/functions/validateUUID.ts
|
|
352
|
-
function validateUUID(UUID, error = new APIError_default(400, "INVALID_UUID")) {
|
|
353
|
-
const uuidSchema2 = import_zod4.default.uuid();
|
|
354
|
-
const parsedUUID = uuidSchema2.safeParse(UUID);
|
|
355
|
-
if (!parsedUUID.success) {
|
|
356
|
-
throw error;
|
|
357
|
-
}
|
|
358
|
-
return parsedUUID.data;
|
|
359
|
-
}
|
|
360
|
-
var validateUUID_default = validateUUID;
|
|
361
|
-
|
|
362
|
-
// src/functions/wait.ts
|
|
363
|
-
function wait(seconds) {
|
|
364
|
-
return new Promise((resolve, _) => {
|
|
365
|
-
setTimeout(() => {
|
|
366
|
-
resolve();
|
|
367
|
-
}, seconds * 1e3);
|
|
368
|
-
});
|
|
369
|
-
}
|
|
370
|
-
var wait_default = wait;
|
|
371
|
-
|
|
372
|
-
// src/functions/taggedTemplate/interpolateObjects.ts
|
|
373
|
-
function interpolateObjects(strings, ...values) {
|
|
374
|
-
let result = "";
|
|
375
|
-
for (let i = 0; i < strings.length; i++) {
|
|
376
|
-
result += strings[i];
|
|
377
|
-
if (i !== strings.length - 1) {
|
|
378
|
-
result += values[i] && typeof values[i] === "object" ? JSON.stringify(values[i]) : values[i];
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
return result;
|
|
382
|
-
}
|
|
383
|
-
var interpolateObjects_default = interpolateObjects;
|
|
384
363
|
// Annotate the CommonJS export names for ESM import in node:
|
|
385
364
|
0 && (module.exports = {
|
|
386
365
|
APIError,
|
|
@@ -388,7 +367,6 @@ var interpolateObjects_default = interpolateObjects;
|
|
|
388
367
|
appendSemicolon,
|
|
389
368
|
convertFileToBase64,
|
|
390
369
|
fillArray,
|
|
391
|
-
fillArrayAsync,
|
|
392
370
|
formatDateAndTime,
|
|
393
371
|
getRandomNumber,
|
|
394
372
|
httpErrorCodeLookup,
|
|
@@ -399,10 +377,11 @@ var interpolateObjects_default = interpolateObjects;
|
|
|
399
377
|
omitProperties,
|
|
400
378
|
parseEmail,
|
|
401
379
|
parseEnv,
|
|
380
|
+
parseIntStrict,
|
|
402
381
|
parseUUID,
|
|
403
382
|
randomiseArray,
|
|
404
383
|
range,
|
|
384
|
+
stringToBoolean,
|
|
405
385
|
truncate,
|
|
406
|
-
validateUUID,
|
|
407
386
|
wait
|
|
408
387
|
});
|
package/dist/index.d.cts
CHANGED
|
@@ -8,11 +8,6 @@ declare function convertFileToBase64(file: File): Promise<string>;
|
|
|
8
8
|
|
|
9
9
|
declare function fillArray<T>(callback: (index: number) => T | Promise<T>, length?: number): T[] | Promise<T[]>;
|
|
10
10
|
|
|
11
|
-
/**
|
|
12
|
-
* @deprecated The functionality of fillArrayAsync has been combined with fillArray, so fillArray should now be used instead.
|
|
13
|
-
*/
|
|
14
|
-
declare function fillArrayAsync<T>(callback: (index: number) => Promise<T>, length?: number): Promise<T[]>;
|
|
15
|
-
|
|
16
11
|
declare function formatDateAndTime(inputDate: Date): string;
|
|
17
12
|
|
|
18
13
|
declare function getRandomNumber(lowerBound: number, upperBound: number): number;
|
|
@@ -25,12 +20,20 @@ declare function isSameDate(firstDate: Date, secondDate: Date): boolean;
|
|
|
25
20
|
|
|
26
21
|
declare function omitProperties<T extends Record<string, unknown>, K extends keyof T>(object: T, keysToOmit: K | readonly K[]): Omit<T, K>;
|
|
27
22
|
|
|
23
|
+
declare function parseIntStrict(string: string, radix?: number): number;
|
|
24
|
+
|
|
28
25
|
declare function randomiseArray<T>(array: T[]): T[];
|
|
29
26
|
|
|
30
27
|
declare function range(start: number, stop: number, step?: number): number[];
|
|
31
28
|
|
|
29
|
+
declare function stringToBoolean(inputString: string): boolean;
|
|
30
|
+
|
|
32
31
|
declare function truncate(stringToTruncate: string, maxLength?: number): string;
|
|
33
32
|
|
|
33
|
+
declare function wait(seconds: number): Promise<void>;
|
|
34
|
+
|
|
35
|
+
declare function interpolateObjects(strings: TemplateStringsArray, ...values: unknown[]): string;
|
|
36
|
+
|
|
34
37
|
type HTTPErrorCodes = 400 | 401 | 403 | 404 | 418 | 500;
|
|
35
38
|
declare const httpErrorCodeLookup: Record<HTTPErrorCodes, string>;
|
|
36
39
|
declare class APIError extends Error {
|
|
@@ -55,17 +58,8 @@ declare const uuidSchema: z.core.$ZodBranded<z.ZodUUID, "UUID">;
|
|
|
55
58
|
type UUID = z.infer<typeof uuidSchema>;
|
|
56
59
|
declare function parseUUID(UUID: unknown): UUID;
|
|
57
60
|
|
|
58
|
-
type
|
|
59
|
-
|
|
60
|
-
type PreventUndefined<T> = undefined extends T ? ["Error: Generic type cannot include undefined"] : T;
|
|
61
|
+
type DisallowUndefined<T> = undefined extends T ? ["Error: Generic type cannot include undefined"] : T;
|
|
61
62
|
|
|
62
|
-
|
|
63
|
-
* @deprecated validateUUID() is deprecated in favour of parseUUID()
|
|
64
|
-
*/
|
|
65
|
-
declare function validateUUID(UUID: string, error?: Error | APIError): string;
|
|
66
|
-
|
|
67
|
-
declare function wait(seconds: number): Promise<void>;
|
|
68
|
-
|
|
69
|
-
declare function interpolateObjects(strings: TemplateStringsArray, ...values: unknown[]): string;
|
|
63
|
+
type NonUndefined<T> = T extends undefined ? never : T;
|
|
70
64
|
|
|
71
|
-
export { APIError, type
|
|
65
|
+
export { APIError, type DisallowUndefined, type Email, type Env, type HTTPErrorCodes, type NonUndefined, type UUID, addDaysToDate, appendSemicolon, convertFileToBase64, fillArray, formatDateAndTime, getRandomNumber, httpErrorCodeLookup, interpolateObjects, isLeapYear, isMonthlyMultiple, isSameDate, omitProperties, parseEmail, parseEnv, parseIntStrict, parseUUID, randomiseArray, range, stringToBoolean, truncate, wait };
|
package/dist/index.d.ts
CHANGED
|
@@ -8,11 +8,6 @@ declare function convertFileToBase64(file: File): Promise<string>;
|
|
|
8
8
|
|
|
9
9
|
declare function fillArray<T>(callback: (index: number) => T | Promise<T>, length?: number): T[] | Promise<T[]>;
|
|
10
10
|
|
|
11
|
-
/**
|
|
12
|
-
* @deprecated The functionality of fillArrayAsync has been combined with fillArray, so fillArray should now be used instead.
|
|
13
|
-
*/
|
|
14
|
-
declare function fillArrayAsync<T>(callback: (index: number) => Promise<T>, length?: number): Promise<T[]>;
|
|
15
|
-
|
|
16
11
|
declare function formatDateAndTime(inputDate: Date): string;
|
|
17
12
|
|
|
18
13
|
declare function getRandomNumber(lowerBound: number, upperBound: number): number;
|
|
@@ -25,12 +20,20 @@ declare function isSameDate(firstDate: Date, secondDate: Date): boolean;
|
|
|
25
20
|
|
|
26
21
|
declare function omitProperties<T extends Record<string, unknown>, K extends keyof T>(object: T, keysToOmit: K | readonly K[]): Omit<T, K>;
|
|
27
22
|
|
|
23
|
+
declare function parseIntStrict(string: string, radix?: number): number;
|
|
24
|
+
|
|
28
25
|
declare function randomiseArray<T>(array: T[]): T[];
|
|
29
26
|
|
|
30
27
|
declare function range(start: number, stop: number, step?: number): number[];
|
|
31
28
|
|
|
29
|
+
declare function stringToBoolean(inputString: string): boolean;
|
|
30
|
+
|
|
32
31
|
declare function truncate(stringToTruncate: string, maxLength?: number): string;
|
|
33
32
|
|
|
33
|
+
declare function wait(seconds: number): Promise<void>;
|
|
34
|
+
|
|
35
|
+
declare function interpolateObjects(strings: TemplateStringsArray, ...values: unknown[]): string;
|
|
36
|
+
|
|
34
37
|
type HTTPErrorCodes = 400 | 401 | 403 | 404 | 418 | 500;
|
|
35
38
|
declare const httpErrorCodeLookup: Record<HTTPErrorCodes, string>;
|
|
36
39
|
declare class APIError extends Error {
|
|
@@ -55,17 +58,8 @@ declare const uuidSchema: z.core.$ZodBranded<z.ZodUUID, "UUID">;
|
|
|
55
58
|
type UUID = z.infer<typeof uuidSchema>;
|
|
56
59
|
declare function parseUUID(UUID: unknown): UUID;
|
|
57
60
|
|
|
58
|
-
type
|
|
59
|
-
|
|
60
|
-
type PreventUndefined<T> = undefined extends T ? ["Error: Generic type cannot include undefined"] : T;
|
|
61
|
+
type DisallowUndefined<T> = undefined extends T ? ["Error: Generic type cannot include undefined"] : T;
|
|
61
62
|
|
|
62
|
-
|
|
63
|
-
* @deprecated validateUUID() is deprecated in favour of parseUUID()
|
|
64
|
-
*/
|
|
65
|
-
declare function validateUUID(UUID: string, error?: Error | APIError): string;
|
|
66
|
-
|
|
67
|
-
declare function wait(seconds: number): Promise<void>;
|
|
68
|
-
|
|
69
|
-
declare function interpolateObjects(strings: TemplateStringsArray, ...values: unknown[]): string;
|
|
63
|
+
type NonUndefined<T> = T extends undefined ? never : T;
|
|
70
64
|
|
|
71
|
-
export { APIError, type
|
|
65
|
+
export { APIError, type DisallowUndefined, type Email, type Env, type HTTPErrorCodes, type NonUndefined, type UUID, addDaysToDate, appendSemicolon, convertFileToBase64, fillArray, formatDateAndTime, getRandomNumber, httpErrorCodeLookup, interpolateObjects, isLeapYear, isMonthlyMultiple, isSameDate, omitProperties, parseEmail, parseEnv, parseIntStrict, parseUUID, randomiseArray, range, stringToBoolean, truncate, wait };
|
package/dist/index.js
CHANGED
|
@@ -15,26 +15,6 @@ var __spreadValues = (a, b) => {
|
|
|
15
15
|
return a;
|
|
16
16
|
};
|
|
17
17
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
18
|
-
var __async = (__this, __arguments, generator) => {
|
|
19
|
-
return new Promise((resolve, reject) => {
|
|
20
|
-
var fulfilled = (value) => {
|
|
21
|
-
try {
|
|
22
|
-
step(generator.next(value));
|
|
23
|
-
} catch (e) {
|
|
24
|
-
reject(e);
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
var rejected = (value) => {
|
|
28
|
-
try {
|
|
29
|
-
step(generator.throw(value));
|
|
30
|
-
} catch (e) {
|
|
31
|
-
reject(e);
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
35
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
36
|
-
});
|
|
37
|
-
};
|
|
38
18
|
|
|
39
19
|
// src/functions/addDaysToDate.ts
|
|
40
20
|
function addDaysToDate(currentDate = /* @__PURE__ */ new Date(), dayIncrement = 1) {
|
|
@@ -91,18 +71,6 @@ function fillArray(callback, length = 1) {
|
|
|
91
71
|
}
|
|
92
72
|
var fillArray_default = fillArray;
|
|
93
73
|
|
|
94
|
-
// src/functions/fillArrayAsync.ts
|
|
95
|
-
function fillArrayAsync(callback, length = 1) {
|
|
96
|
-
return __async(this, null, function* () {
|
|
97
|
-
return Promise.all(
|
|
98
|
-
new Array(length).fill(null).map((_, index) => __async(null, null, function* () {
|
|
99
|
-
return yield callback(index);
|
|
100
|
-
}))
|
|
101
|
-
);
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
var fillArrayAsync_default = fillArrayAsync;
|
|
105
|
-
|
|
106
74
|
// src/functions/isSameDate.ts
|
|
107
75
|
function isSameDate(firstDate, secondDate) {
|
|
108
76
|
return firstDate.getDate() === secondDate.getDate() && firstDate.getMonth() === secondDate.getMonth() && firstDate.getFullYear() === secondDate.getFullYear();
|
|
@@ -130,7 +98,7 @@ var formatDateAndTime_default = formatDateAndTime;
|
|
|
130
98
|
// src/functions/getRandomNumber.ts
|
|
131
99
|
function getRandomNumber(lowerBound, upperBound) {
|
|
132
100
|
if (lowerBound % 1 !== 0 || upperBound % 1 !== 0) {
|
|
133
|
-
throw new
|
|
101
|
+
throw new TypeError("NON_INTEGER_INPUTS");
|
|
134
102
|
}
|
|
135
103
|
return Math.floor(Math.random() * (upperBound - lowerBound + 1) + lowerBound);
|
|
136
104
|
}
|
|
@@ -139,7 +107,7 @@ var getRandomNumber_default = getRandomNumber;
|
|
|
139
107
|
// src/functions/isLeapYear.ts
|
|
140
108
|
function isLeapYear(year) {
|
|
141
109
|
if (year % 1 !== 0) {
|
|
142
|
-
throw new
|
|
110
|
+
throw new TypeError("NON_INTEGER_INPUT");
|
|
143
111
|
}
|
|
144
112
|
return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
|
|
145
113
|
}
|
|
@@ -193,6 +161,21 @@ function omitProperties(object, keysToOmit) {
|
|
|
193
161
|
}
|
|
194
162
|
var omitProperties_default = omitProperties;
|
|
195
163
|
|
|
164
|
+
// src/functions/parseIntStrict.ts
|
|
165
|
+
function parseIntStrict(string, radix) {
|
|
166
|
+
const trimmedString = string.trim();
|
|
167
|
+
const pattern = radix && radix > 10 && radix <= 36 ? (
|
|
168
|
+
// String.fromCharCode() gets the maximum possible alphabetical character for a base above 10
|
|
169
|
+
new RegExp(`^[+-]?[0-9a-${String.fromCharCode(87 + radix - 1)}]+$`, "i")
|
|
170
|
+
) : /^[+-]?\d+$/;
|
|
171
|
+
const parseIntResult = parseInt(trimmedString, radix);
|
|
172
|
+
if (isNaN(parseIntResult) || !pattern.test(trimmedString)) {
|
|
173
|
+
throw new TypeError("INTEGER_PARSING_ERROR");
|
|
174
|
+
}
|
|
175
|
+
return parseIntResult;
|
|
176
|
+
}
|
|
177
|
+
var parseIntStrict_default = parseIntStrict;
|
|
178
|
+
|
|
196
179
|
// src/functions/randomiseArray.ts
|
|
197
180
|
function randomiseArray(array) {
|
|
198
181
|
const mutableArray = [...array];
|
|
@@ -229,14 +212,44 @@ function range(start, stop, step = 1) {
|
|
|
229
212
|
}
|
|
230
213
|
var range_default = range;
|
|
231
214
|
|
|
215
|
+
// src/functions/stringToBoolean.ts
|
|
216
|
+
function stringToBoolean(inputString) {
|
|
217
|
+
const normalisedString = inputString.toLowerCase();
|
|
218
|
+
if (normalisedString !== "true" && normalisedString !== "false") {
|
|
219
|
+
throw new TypeError("INVALID_BOOLEAN_STRING");
|
|
220
|
+
}
|
|
221
|
+
return normalisedString === "true";
|
|
222
|
+
}
|
|
223
|
+
var stringToBoolean_default = stringToBoolean;
|
|
224
|
+
|
|
232
225
|
// src/functions/truncate.ts
|
|
233
226
|
function truncate(stringToTruncate, maxLength = 5) {
|
|
234
227
|
return stringToTruncate.length > maxLength ? `${stringToTruncate.slice(0, maxLength)}...` : stringToTruncate;
|
|
235
228
|
}
|
|
236
229
|
var truncate_default = truncate;
|
|
237
230
|
|
|
238
|
-
// src/functions/
|
|
239
|
-
|
|
231
|
+
// src/functions/wait.ts
|
|
232
|
+
function wait(seconds) {
|
|
233
|
+
return new Promise((resolve, _) => {
|
|
234
|
+
setTimeout(() => {
|
|
235
|
+
resolve();
|
|
236
|
+
}, seconds * 1e3);
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
var wait_default = wait;
|
|
240
|
+
|
|
241
|
+
// src/functions/taggedTemplate/interpolateObjects.ts
|
|
242
|
+
function interpolateObjects(strings, ...values) {
|
|
243
|
+
let result = "";
|
|
244
|
+
for (let i = 0; i < strings.length; i++) {
|
|
245
|
+
result += strings[i];
|
|
246
|
+
if (i !== strings.length - 1) {
|
|
247
|
+
result += values[i] && typeof values[i] === "object" ? JSON.stringify(values[i]) : values[i];
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
return result;
|
|
251
|
+
}
|
|
252
|
+
var interpolateObjects_default = interpolateObjects;
|
|
240
253
|
|
|
241
254
|
// src/types/APIError.ts
|
|
242
255
|
var httpErrorCodeLookup = {
|
|
@@ -293,47 +306,12 @@ function parseUUID(UUID) {
|
|
|
293
306
|
return uuidSchema.parse(UUID);
|
|
294
307
|
}
|
|
295
308
|
var UUID_default = parseUUID;
|
|
296
|
-
|
|
297
|
-
// src/functions/validateUUID.ts
|
|
298
|
-
function validateUUID(UUID, error = new APIError_default(400, "INVALID_UUID")) {
|
|
299
|
-
const uuidSchema2 = z4.uuid();
|
|
300
|
-
const parsedUUID = uuidSchema2.safeParse(UUID);
|
|
301
|
-
if (!parsedUUID.success) {
|
|
302
|
-
throw error;
|
|
303
|
-
}
|
|
304
|
-
return parsedUUID.data;
|
|
305
|
-
}
|
|
306
|
-
var validateUUID_default = validateUUID;
|
|
307
|
-
|
|
308
|
-
// src/functions/wait.ts
|
|
309
|
-
function wait(seconds) {
|
|
310
|
-
return new Promise((resolve, _) => {
|
|
311
|
-
setTimeout(() => {
|
|
312
|
-
resolve();
|
|
313
|
-
}, seconds * 1e3);
|
|
314
|
-
});
|
|
315
|
-
}
|
|
316
|
-
var wait_default = wait;
|
|
317
|
-
|
|
318
|
-
// src/functions/taggedTemplate/interpolateObjects.ts
|
|
319
|
-
function interpolateObjects(strings, ...values) {
|
|
320
|
-
let result = "";
|
|
321
|
-
for (let i = 0; i < strings.length; i++) {
|
|
322
|
-
result += strings[i];
|
|
323
|
-
if (i !== strings.length - 1) {
|
|
324
|
-
result += values[i] && typeof values[i] === "object" ? JSON.stringify(values[i]) : values[i];
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
return result;
|
|
328
|
-
}
|
|
329
|
-
var interpolateObjects_default = interpolateObjects;
|
|
330
309
|
export {
|
|
331
310
|
APIError_default as APIError,
|
|
332
311
|
addDaysToDate_default as addDaysToDate,
|
|
333
312
|
appendSemicolon_default as appendSemicolon,
|
|
334
313
|
convertFileToBase64_default as convertFileToBase64,
|
|
335
314
|
fillArray_default as fillArray,
|
|
336
|
-
fillArrayAsync_default as fillArrayAsync,
|
|
337
315
|
formatDateAndTime_default as formatDateAndTime,
|
|
338
316
|
getRandomNumber_default as getRandomNumber,
|
|
339
317
|
httpErrorCodeLookup,
|
|
@@ -344,10 +322,11 @@ export {
|
|
|
344
322
|
omitProperties_default as omitProperties,
|
|
345
323
|
Email_default as parseEmail,
|
|
346
324
|
Env_default as parseEnv,
|
|
325
|
+
parseIntStrict_default as parseIntStrict,
|
|
347
326
|
UUID_default as parseUUID,
|
|
348
327
|
randomiseArray_default as randomiseArray,
|
|
349
328
|
range_default as range,
|
|
329
|
+
stringToBoolean_default as stringToBoolean,
|
|
350
330
|
truncate_default as truncate,
|
|
351
|
-
validateUUID_default as validateUUID,
|
|
352
331
|
wait_default as wait
|
|
353
332
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alextheman/utility",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "Helpful utility functions",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "alextheman",
|
|
@@ -37,9 +37,9 @@
|
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@alextheman/eslint-plugin": "^1.14.2",
|
|
40
|
-
"@eslint/js": "^9.
|
|
41
|
-
"@types/node": "^24.
|
|
42
|
-
"eslint": "^9.
|
|
40
|
+
"@eslint/js": "^9.38.0",
|
|
41
|
+
"@types/node": "^24.8.1",
|
|
42
|
+
"eslint": "^9.38.0",
|
|
43
43
|
"eslint-import-resolver-typescript": "^4.4.4",
|
|
44
44
|
"eslint-plugin-import": "^2.32.0",
|
|
45
45
|
"globals": "^16.4.0",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"prettier": "^3.6.2",
|
|
49
49
|
"tsup": "^8.5.0",
|
|
50
50
|
"typescript": "^5.9.3",
|
|
51
|
-
"typescript-eslint": "^8.46.
|
|
51
|
+
"typescript-eslint": "^8.46.1",
|
|
52
52
|
"vite-tsconfig-paths": "^5.1.4",
|
|
53
53
|
"vitest": "^3.2.4"
|
|
54
54
|
}
|