@alextheman/utility 3.0.0 → 3.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 CHANGED
@@ -30,15 +30,6 @@ path = __toESM(path);
30
30
  let zod = require("zod");
31
31
  zod = __toESM(zod);
32
32
 
33
- //#region src/functions/addDaysToDate.ts
34
- function addDaysToDate(currentDate = /* @__PURE__ */ new Date(), dayIncrement = 1) {
35
- const newDate = currentDate;
36
- newDate.setDate(newDate.getDate() + dayIncrement);
37
- return newDate;
38
- }
39
- var addDaysToDate_default = addDaysToDate;
40
-
41
- //#endregion
42
33
  //#region src/functions/appendSemicolon.ts
43
34
  function appendSemicolon(stringToAppendTo) {
44
35
  if (stringToAppendTo.includes("\n")) throw new Error("MULTIPLE_LINE_ERROR");
@@ -48,6 +39,81 @@ function appendSemicolon(stringToAppendTo) {
48
39
  }
49
40
  var appendSemicolon_default = appendSemicolon;
50
41
 
42
+ //#endregion
43
+ //#region src/functions/arrayHelpers/fillArray.ts
44
+ function fillArray(callback, length = 1) {
45
+ const outputArray = new Array(length).fill(null).map((_, index) => {
46
+ return callback(index);
47
+ });
48
+ if (outputArray.some((item) => {
49
+ return item instanceof Promise;
50
+ })) return Promise.all(outputArray);
51
+ return outputArray;
52
+ }
53
+ var fillArray_default = fillArray;
54
+
55
+ //#endregion
56
+ //#region src/functions/arrayHelpers/paralleliseArrays.ts
57
+ function paralleliseArrays(firstArray, secondArray) {
58
+ const outputArray = [];
59
+ for (let i = 0; i < firstArray.length; i++) outputArray.push([firstArray[i], secondArray[i]]);
60
+ return outputArray;
61
+ }
62
+ var paralleliseArrays_default = paralleliseArrays;
63
+
64
+ //#endregion
65
+ //#region src/functions/parsers/parseIntStrict.ts
66
+ const IntegerParsingError = /* @__PURE__ */ new TypeError("INTEGER_PARSING_ERROR");
67
+ function parseIntStrict(...[string, radix]) {
68
+ const trimmedString = string.trim();
69
+ if (!(radix && radix > 10 && radix <= 36 ? new RegExp(`^[+-]?[0-9a-${String.fromCharCode(87 + radix - 1)}]+$`, "i") : /^[+-]?\d+$/).test(trimmedString)) throw IntegerParsingError;
70
+ if (radix && radix < 10 && [...trimmedString].some((character) => {
71
+ return parseInt(character) >= radix;
72
+ })) throw IntegerParsingError;
73
+ const parseIntResult = parseInt(trimmedString, radix);
74
+ if (isNaN(parseIntResult)) throw IntegerParsingError;
75
+ return parseIntResult;
76
+ }
77
+ var parseIntStrict_default = parseIntStrict;
78
+
79
+ //#endregion
80
+ //#region src/functions/getRandomNumber.ts
81
+ function getRandomNumber(lowerBound, upperBound) {
82
+ const parsedLowerBound = parseIntStrict_default(`${lowerBound}`);
83
+ const parsedUpperBound = parseIntStrict_default(`${upperBound}`);
84
+ return Math.floor(Math.random() * (parsedUpperBound - parsedLowerBound + 1) + parsedLowerBound);
85
+ }
86
+ var getRandomNumber_default = getRandomNumber;
87
+
88
+ //#endregion
89
+ //#region src/functions/arrayHelpers/randomiseArray.ts
90
+ function randomiseArray(array) {
91
+ const mutableArray = [...array];
92
+ const outputArray = [];
93
+ do {
94
+ const indexToRemove = getRandomNumber_default(0, mutableArray.length - 1);
95
+ outputArray.push(mutableArray.splice(indexToRemove, 1)[0]);
96
+ } while (mutableArray.length > 0);
97
+ return outputArray;
98
+ }
99
+ var randomiseArray_default = randomiseArray;
100
+
101
+ //#endregion
102
+ //#region src/functions/arrayHelpers/range.ts
103
+ function range(start, stop, step = 1) {
104
+ const numbers = [];
105
+ if (step === 0) throw new Error("ZERO_STEP_SIZE_NOT_ALLOWED");
106
+ else if (step > 0) {
107
+ if (start > stop) throw new Error("INVALID_BOUNDARIES");
108
+ for (let i = start; i < stop; i += step) numbers.push(i);
109
+ } else if (step < 0) {
110
+ if (start < stop) throw new Error("INVALID_BOUNDARIES");
111
+ for (let i = start; i > stop; i += step) numbers.push(i);
112
+ }
113
+ return numbers;
114
+ }
115
+ var range_default = range;
116
+
51
117
  //#endregion
52
118
  //#region src/functions/camelToKebab.ts
53
119
  function camelToKebab(string) {
@@ -141,27 +207,23 @@ function createTemplateStringsArray(strings) {
141
207
  var createTemplateStringsArray_default = createTemplateStringsArray;
142
208
 
143
209
  //#endregion
144
- //#region src/functions/fillArray.ts
145
- function fillArray(callback, length = 1) {
146
- const outputArray = new Array(length).fill(null).map((_, index) => {
147
- return callback(index);
148
- });
149
- if (outputArray.some((item) => {
150
- return item instanceof Promise;
151
- })) return Promise.all(outputArray);
152
- return outputArray;
210
+ //#region src/functions/date/addDaysToDate.ts
211
+ function addDaysToDate(currentDate = /* @__PURE__ */ new Date(), dayIncrement = 1) {
212
+ const newDate = currentDate;
213
+ newDate.setDate(newDate.getDate() + dayIncrement);
214
+ return newDate;
153
215
  }
154
- var fillArray_default = fillArray;
216
+ var addDaysToDate_default = addDaysToDate;
155
217
 
156
218
  //#endregion
157
- //#region src/functions/isSameDate.ts
219
+ //#region src/functions/date/isSameDate.ts
158
220
  function isSameDate(firstDate, secondDate) {
159
221
  return firstDate.getDate() === secondDate.getDate() && firstDate.getMonth() === secondDate.getMonth() && firstDate.getFullYear() === secondDate.getFullYear();
160
222
  }
161
223
  var isSameDate_default = isSameDate;
162
224
 
163
225
  //#endregion
164
- //#region src/functions/formatDateAndTime.ts
226
+ //#region src/functions/date/formatDateAndTime.ts
165
227
  function formatDateAndTime(inputDate) {
166
228
  const yesterday = addDaysToDate_default(/* @__PURE__ */ new Date(), -1);
167
229
  const today = /* @__PURE__ */ new Date();
@@ -173,38 +235,7 @@ function formatDateAndTime(inputDate) {
173
235
  var formatDateAndTime_default = formatDateAndTime;
174
236
 
175
237
  //#endregion
176
- //#region src/functions/parseIntStrict.ts
177
- const IntegerParsingError = /* @__PURE__ */ new TypeError("INTEGER_PARSING_ERROR");
178
- function parseIntStrict(...[string, radix]) {
179
- const trimmedString = string.trim();
180
- if (!(radix && radix > 10 && radix <= 36 ? new RegExp(`^[+-]?[0-9a-${String.fromCharCode(87 + radix - 1)}]+$`, "i") : /^[+-]?\d+$/).test(trimmedString)) throw IntegerParsingError;
181
- if (radix && radix < 10 && [...trimmedString].some((character) => {
182
- return parseInt(character) >= radix;
183
- })) throw IntegerParsingError;
184
- const parseIntResult = parseInt(trimmedString, radix);
185
- if (isNaN(parseIntResult)) throw IntegerParsingError;
186
- return parseIntResult;
187
- }
188
- var parseIntStrict_default = parseIntStrict;
189
-
190
- //#endregion
191
- //#region src/functions/getRandomNumber.ts
192
- function getRandomNumber(lowerBound, upperBound) {
193
- const parsedLowerBound = parseIntStrict_default(`${lowerBound}`);
194
- const parsedUpperBound = parseIntStrict_default(`${upperBound}`);
195
- return Math.floor(Math.random() * (parsedUpperBound - parsedLowerBound + 1) + parsedLowerBound);
196
- }
197
- var getRandomNumber_default = getRandomNumber;
198
-
199
- //#endregion
200
- //#region src/functions/getRecordKeys.ts
201
- function getRecordKeys(record) {
202
- return Object.keys(record);
203
- }
204
- var getRecordKeys_default = getRecordKeys;
205
-
206
- //#endregion
207
- //#region src/functions/isLeapYear.ts
238
+ //#region src/functions/date/isLeapYear.ts
208
239
  function isLeapYear(year) {
209
240
  const parsedYear = parseIntStrict_default(`${year}`);
210
241
  return parsedYear % 4 === 0 && parsedYear % 100 !== 0 || parsedYear % 400 === 0;
@@ -212,7 +243,19 @@ function isLeapYear(year) {
212
243
  var isLeapYear_default = isLeapYear;
213
244
 
214
245
  //#endregion
215
- //#region src/functions/isMonthlyMultiple.ts
246
+ //#region src/functions/date/isAnniversary.ts
247
+ function checkLeapYear(firstDate, secondDate) {
248
+ if (isLeapYear_default(firstDate.getFullYear()) && firstDate.getMonth() === 1 && secondDate.getMonth() === 1) return firstDate.getDate() === 29 && secondDate.getDate() === 28;
249
+ return false;
250
+ }
251
+ function isAnniversary(firstDate, secondDate) {
252
+ if (checkLeapYear(firstDate, secondDate) || checkLeapYear(secondDate, firstDate)) return true;
253
+ return firstDate.getDate() === secondDate.getDate() && firstDate.getMonth() === secondDate.getMonth();
254
+ }
255
+ var isAnniversary_default = isAnniversary;
256
+
257
+ //#endregion
258
+ //#region src/functions/date/isMonthlyMultiple.ts
216
259
  function endOfMonthChecksButNotFebruary(firstDate, secondDate) {
217
260
  if ([
218
261
  3,
@@ -251,6 +294,13 @@ function isMonthlyMultiple(firstDate, secondDate) {
251
294
  }
252
295
  var isMonthlyMultiple_default = isMonthlyMultiple;
253
296
 
297
+ //#endregion
298
+ //#region src/functions/getRecordKeys.ts
299
+ function getRecordKeys(record) {
300
+ return Object.keys(record);
301
+ }
302
+ var getRecordKeys_default = getRecordKeys;
303
+
254
304
  //#endregion
255
305
  //#region src/functions/isOrdered.ts
256
306
  function isOrdered(array) {
@@ -313,13 +363,27 @@ function omitProperties(object, keysToOmit) {
313
363
  var omitProperties_default = omitProperties;
314
364
 
315
365
  //#endregion
316
- //#region src/functions/paralleliseArrays.ts
317
- function paralleliseArrays(firstArray, secondArray) {
318
- const outputArray = [];
319
- for (let i = 0; i < firstArray.length; i++) outputArray.push([firstArray[i], secondArray[i]]);
320
- return outputArray;
366
+ //#region src/functions/parsers/parseBoolean.ts
367
+ function parseBoolean(inputString) {
368
+ const normalisedString = inputString.toLowerCase();
369
+ if (normalisedString !== "true" && normalisedString !== "false") throw new TypeError("INVALID_BOOLEAN_STRING");
370
+ return normalisedString === "true";
321
371
  }
322
- var paralleliseArrays_default = paralleliseArrays;
372
+ /** @deprecated This function has been renamed to parseBoolean. */
373
+ const stringToBoolean = parseBoolean;
374
+ var parseBoolean_default = parseBoolean;
375
+
376
+ //#endregion
377
+ //#region src/functions/parsers/parseFormData.ts
378
+ function parseFormData(formData, dataParser) {
379
+ const object = {};
380
+ formData.forEach((value, key) => {
381
+ object[key] = value;
382
+ });
383
+ if (dataParser) return dataParser(object);
384
+ return object;
385
+ }
386
+ var parseFormData_default = parseFormData;
323
387
 
324
388
  //#endregion
325
389
  //#region src/types/APIError.ts
@@ -402,7 +466,7 @@ function parseUUID(UUID) {
402
466
  var UUID_default = parseUUID;
403
467
 
404
468
  //#endregion
405
- //#region src/functions/parseZodSchema.ts
469
+ //#region src/functions/parsers/parseZodSchema.ts
406
470
  function parseZodSchema(schema, data) {
407
471
  const parsedResult = schema.safeParse(data);
408
472
  if (!parsedResult.success) throw new DataError_default(data);
@@ -410,35 +474,6 @@ function parseZodSchema(schema, data) {
410
474
  }
411
475
  var parseZodSchema_default = parseZodSchema;
412
476
 
413
- //#endregion
414
- //#region src/functions/randomiseArray.ts
415
- function randomiseArray(array) {
416
- const mutableArray = [...array];
417
- const outputArray = [];
418
- do {
419
- const indexToRemove = getRandomNumber_default(0, mutableArray.length - 1);
420
- outputArray.push(mutableArray.splice(indexToRemove, 1)[0]);
421
- } while (mutableArray.length > 0);
422
- return outputArray;
423
- }
424
- var randomiseArray_default = randomiseArray;
425
-
426
- //#endregion
427
- //#region src/functions/range.ts
428
- function range(start, stop, step = 1) {
429
- const numbers = [];
430
- if (step === 0) throw new Error("ZERO_STEP_SIZE_NOT_ALLOWED");
431
- else if (step > 0) {
432
- if (start > stop) throw new Error("INVALID_BOUNDARIES");
433
- for (let i = start; i < stop; i += step) numbers.push(i);
434
- } else if (step < 0) {
435
- if (start < stop) throw new Error("INVALID_BOUNDARIES");
436
- for (let i = start; i > stop; i += step) numbers.push(i);
437
- }
438
- return numbers;
439
- }
440
- var range_default = range;
441
-
442
477
  //#endregion
443
478
  //#region src/functions/removeDuplicates.ts
444
479
  function removeDuplicates(array) {
@@ -459,33 +494,6 @@ function stringListToArray(stringList, { separator = ",", trimWhitespace = true
459
494
  }
460
495
  var stringListToArray_default = stringListToArray;
461
496
 
462
- //#endregion
463
- //#region src/functions/stringToBoolean.ts
464
- function stringToBoolean(inputString) {
465
- const normalisedString = inputString.toLowerCase();
466
- if (normalisedString !== "true" && normalisedString !== "false") throw new TypeError("INVALID_BOOLEAN_STRING");
467
- return normalisedString === "true";
468
- }
469
- var stringToBoolean_default = stringToBoolean;
470
-
471
- //#endregion
472
- //#region src/functions/truncate.ts
473
- function truncate(stringToTruncate, maxLength = 5) {
474
- return stringToTruncate.length > maxLength ? `${stringToTruncate.slice(0, maxLength)}...` : stringToTruncate;
475
- }
476
- var truncate_default = truncate;
477
-
478
- //#endregion
479
- //#region src/functions/wait.ts
480
- function wait(seconds) {
481
- return new Promise((resolve, _) => {
482
- setTimeout(() => {
483
- resolve();
484
- }, seconds * 1e3);
485
- });
486
- }
487
- var wait_default = wait;
488
-
489
497
  //#endregion
490
498
  //#region src/functions/taggedTemplate/interpolate.ts
491
499
  function interpolate(strings, ...interpolations) {
@@ -546,6 +554,24 @@ function removeIndents(first, ...args) {
546
554
  }
547
555
  var removeIndents_default = removeIndents;
548
556
 
557
+ //#endregion
558
+ //#region src/functions/truncate.ts
559
+ function truncate(stringToTruncate, maxLength = 5) {
560
+ return stringToTruncate.length > maxLength ? `${stringToTruncate.slice(0, maxLength)}...` : stringToTruncate;
561
+ }
562
+ var truncate_default = truncate;
563
+
564
+ //#endregion
565
+ //#region src/functions/wait.ts
566
+ function wait(seconds) {
567
+ return new Promise((resolve, _) => {
568
+ setTimeout(() => {
569
+ resolve();
570
+ }, seconds * 1e3);
571
+ });
572
+ }
573
+ var wait_default = wait;
574
+
549
575
  //#endregion
550
576
  exports.APIError = APIError_default;
551
577
  exports.DataError = DataError_default;
@@ -562,6 +588,7 @@ exports.getRecordKeys = getRecordKeys_default;
562
588
  exports.httpErrorCodeLookup = httpErrorCodeLookup;
563
589
  exports.interpolate = interpolate_default;
564
590
  exports.interpolateObjects = interpolateObjects_default;
591
+ exports.isAnniversary = isAnniversary_default;
565
592
  exports.isLeapYear = isLeapYear_default;
566
593
  exports.isMonthlyMultiple = isMonthlyMultiple_default;
567
594
  exports.isOrdered = isOrdered_default;
@@ -571,8 +598,10 @@ exports.normaliseImportPath = normaliseImportPath;
571
598
  exports.normalizeImportPath = normalizeImportPath_default;
572
599
  exports.omitProperties = omitProperties_default;
573
600
  exports.paralleliseArrays = paralleliseArrays_default;
601
+ exports.parseBoolean = parseBoolean_default;
574
602
  exports.parseEmail = Email_default;
575
603
  exports.parseEnv = Env_default;
604
+ exports.parseFormData = parseFormData_default;
576
605
  exports.parseIntStrict = parseIntStrict_default;
577
606
  exports.parseUUID = UUID_default;
578
607
  exports.parseZodSchema = parseZodSchema_default;
@@ -581,6 +610,6 @@ exports.range = range_default;
581
610
  exports.removeDuplicates = removeDuplicates_default;
582
611
  exports.removeIndents = removeIndents_default;
583
612
  exports.stringListToArray = stringListToArray_default;
584
- exports.stringToBoolean = stringToBoolean_default;
613
+ exports.stringToBoolean = stringToBoolean;
585
614
  exports.truncate = truncate_default;
586
615
  exports.wait = wait_default;
package/dist/index.d.cts CHANGED
@@ -1,11 +1,22 @@
1
1
  import z, { ZodType, core, z as z$1 } from "zod";
2
2
 
3
- //#region src/functions/addDaysToDate.d.ts
4
- declare function addDaysToDate(currentDate?: Date, dayIncrement?: number): Date;
5
- //#endregion
6
3
  //#region src/functions/appendSemicolon.d.ts
7
4
  declare function appendSemicolon(stringToAppendTo: string): string;
8
5
  //#endregion
6
+ //#region src/functions/arrayHelpers/fillArray.d.ts
7
+ declare function fillArray<T>(callback: (index: number) => Promise<T>, length?: number): Promise<T[]>;
8
+ declare function fillArray<T>(callback: (index: number) => T, length?: number): T[];
9
+ //#endregion
10
+ //#region src/functions/arrayHelpers/paralleliseArrays.d.ts
11
+ type ParallelTuple<A, B> = [A, B | undefined];
12
+ declare function paralleliseArrays<FirstArrayItem, SecondArrayItem>(firstArray: FirstArrayItem[] | readonly FirstArrayItem[], secondArray: SecondArrayItem[] | readonly SecondArrayItem[]): ParallelTuple<FirstArrayItem, SecondArrayItem>[];
13
+ //#endregion
14
+ //#region src/functions/arrayHelpers/randomiseArray.d.ts
15
+ declare function randomiseArray<T>(array: T[]): T[];
16
+ //#endregion
17
+ //#region src/functions/arrayHelpers/range.d.ts
18
+ declare function range(start: number, stop: number, step?: number): number[];
19
+ //#endregion
9
20
  //#region src/functions/camelToKebab.d.ts
10
21
  declare function camelToKebab(string: string): string;
11
22
  //#endregion
@@ -89,31 +100,33 @@ declare function createFormData<T extends Record<RecordKey, unknown>>(data: T, o
89
100
  //#region src/functions/createTemplateStringsArray.d.ts
90
101
  declare function createTemplateStringsArray(strings: readonly string[]): TemplateStringsArray;
91
102
  //#endregion
92
- //#region src/functions/fillArray.d.ts
93
- declare function fillArray<T>(callback: (index: number) => Promise<T>, length?: number): Promise<T[]>;
94
- declare function fillArray<T>(callback: (index: number) => T, length?: number): T[];
103
+ //#region src/functions/date/addDaysToDate.d.ts
104
+ declare function addDaysToDate(currentDate?: Date, dayIncrement?: number): Date;
95
105
  //#endregion
96
- //#region src/functions/formatDateAndTime.d.ts
106
+ //#region src/functions/date/formatDateAndTime.d.ts
97
107
  declare function formatDateAndTime(inputDate: Date): string;
98
108
  //#endregion
109
+ //#region src/functions/date/isAnniversary.d.ts
110
+ declare function isAnniversary(firstDate: Date, secondDate: Date): boolean;
111
+ //#endregion
112
+ //#region src/functions/date/isLeapYear.d.ts
113
+ declare function isLeapYear(year: number): boolean;
114
+ //#endregion
115
+ //#region src/functions/date/isMonthlyMultiple.d.ts
116
+ declare function isMonthlyMultiple(firstDate: Date, secondDate: Date): boolean;
117
+ //#endregion
118
+ //#region src/functions/date/isSameDate.d.ts
119
+ declare function isSameDate(firstDate: Date, secondDate: Date): boolean;
120
+ //#endregion
99
121
  //#region src/functions/getRandomNumber.d.ts
100
122
  declare function getRandomNumber(lowerBound: number, upperBound: number): number;
101
123
  //#endregion
102
124
  //#region src/functions/getRecordKeys.d.ts
103
125
  declare function getRecordKeys<T extends Record<RecordKey, unknown>>(record: T & object): (keyof T)[];
104
126
  //#endregion
105
- //#region src/functions/isLeapYear.d.ts
106
- declare function isLeapYear(year: number): boolean;
107
- //#endregion
108
- //#region src/functions/isMonthlyMultiple.d.ts
109
- declare function isMonthlyMultiple(firstDate: Date, secondDate: Date): boolean;
110
- //#endregion
111
127
  //#region src/functions/isOrdered.d.ts
112
128
  declare function isOrdered(array: readonly number[] | number[]): boolean;
113
129
  //#endregion
114
- //#region src/functions/isSameDate.d.ts
115
- declare function isSameDate(firstDate: Date, secondDate: Date): boolean;
116
- //#endregion
117
130
  //#region src/functions/kebabToCamel.d.ts
118
131
  interface KebabToCamelOptions {
119
132
  startWithUpper?: boolean;
@@ -127,22 +140,21 @@ declare const normaliseImportPath: typeof normalizeImportPath;
127
140
  //#region src/functions/omitProperties.d.ts
128
141
  declare function omitProperties<T extends Record<string, unknown> | Readonly<Record<string, unknown>>, K extends keyof T>(object: T, keysToOmit: K | readonly K[]): Omit<T, K>;
129
142
  //#endregion
130
- //#region src/functions/paralleliseArrays.d.ts
131
- type ParallelTuple<A, B> = [A, B | undefined];
132
- declare function paralleliseArrays<FirstArrayItem, SecondArrayItem>(firstArray: FirstArrayItem[] | readonly FirstArrayItem[], secondArray: SecondArrayItem[] | readonly SecondArrayItem[]): ParallelTuple<FirstArrayItem, SecondArrayItem>[];
143
+ //#region src/functions/parsers/parseBoolean.d.ts
144
+ declare function parseBoolean(inputString: string): boolean;
145
+ /** @deprecated This function has been renamed to parseBoolean. */
146
+ declare const stringToBoolean: typeof parseBoolean;
133
147
  //#endregion
134
- //#region src/functions/parseIntStrict.d.ts
148
+ //#region src/functions/parsers/parseFormData.d.ts
149
+ declare function parseFormData<T>(formData: FormData, dataParser: (data: Record<string, string | Blob>) => T): T;
150
+ declare function parseFormData(formData: FormData): Record<string, string | Blob>;
151
+ //#endregion
152
+ //#region src/functions/parsers/parseIntStrict.d.ts
135
153
  declare function parseIntStrict(...[string, radix]: Parameters<typeof parseInt>): number;
136
154
  //#endregion
137
- //#region src/functions/parseZodSchema.d.ts
155
+ //#region src/functions/parsers/parseZodSchema.d.ts
138
156
  declare function parseZodSchema<Output, Input, Internals extends core.$ZodTypeInternals<Output, Input>>(schema: ZodType<Output, Input, Internals>, data: unknown): core.output<ZodType<Output, Input, Internals>>;
139
157
  //#endregion
140
- //#region src/functions/randomiseArray.d.ts
141
- declare function randomiseArray<T>(array: T[]): T[];
142
- //#endregion
143
- //#region src/functions/range.d.ts
144
- declare function range(start: number, stop: number, step?: number): number[];
145
- //#endregion
146
158
  //#region src/functions/removeDuplicates.d.ts
147
159
  declare function removeDuplicates<T>(array: T[] | readonly T[]): T[];
148
160
  //#endregion
@@ -156,15 +168,6 @@ declare function stringListToArray(stringList: string, {
156
168
  trimWhitespace
157
169
  }?: StringListToArrayOptions): string[];
158
170
  //#endregion
159
- //#region src/functions/stringToBoolean.d.ts
160
- declare function stringToBoolean(inputString: string): boolean;
161
- //#endregion
162
- //#region src/functions/truncate.d.ts
163
- declare function truncate(stringToTruncate: string, maxLength?: number): string;
164
- //#endregion
165
- //#region src/functions/wait.d.ts
166
- declare function wait(seconds: number): Promise<void>;
167
- //#endregion
168
171
  //#region src/functions/taggedTemplate/interpolate.d.ts
169
172
  declare function interpolate(strings: TemplateStringsArray, ...interpolations: unknown[]): string;
170
173
  //#endregion
@@ -179,4 +182,10 @@ type RemoveIndentsFunction = (strings: TemplateStringsArray, ...interpolations:
179
182
  declare function removeIndents(options: RemoveIndentsOptions): RemoveIndentsFunction;
180
183
  declare function removeIndents(strings: TemplateStringsArray, ...interpolations: unknown[]): string;
181
184
  //#endregion
182
- export { APIError, CreateFormDataOptions, CreateFormDataOptionsNullableResolution, CreateFormDataOptionsUndefinedOrNullResolution, DataError, DisallowUndefined, Email, Env, FormDataNullableResolutionStrategy as FormDataResolutionStrategy, HTTPErrorCode, IgnoreCase, KebabToCamelOptions, NonUndefined, OptionalOnCondition, RecordKey, RemoveIndentsFunction, RemoveIndentsOptions, StringListToArrayOptions, UUID, addDaysToDate, appendSemicolon, camelToKebab, convertFileToBase64, createFormData, createTemplateStringsArray, fillArray, formatDateAndTime, getRandomNumber, getRecordKeys, httpErrorCodeLookup, interpolate, interpolateObjects, isLeapYear, isMonthlyMultiple, isOrdered, isSameDate, kebabToCamel, normaliseImportPath, normalizeImportPath, omitProperties, paralleliseArrays, parseEmail, parseEnv, parseIntStrict, parseUUID, parseZodSchema, randomiseArray, range, removeDuplicates, removeIndents, stringListToArray, stringToBoolean, truncate, wait };
185
+ //#region src/functions/truncate.d.ts
186
+ declare function truncate(stringToTruncate: string, maxLength?: number): string;
187
+ //#endregion
188
+ //#region src/functions/wait.d.ts
189
+ declare function wait(seconds: number): Promise<void>;
190
+ //#endregion
191
+ export { APIError, CreateFormDataOptions, CreateFormDataOptionsNullableResolution, CreateFormDataOptionsUndefinedOrNullResolution, DataError, DisallowUndefined, Email, Env, FormDataNullableResolutionStrategy as FormDataResolutionStrategy, HTTPErrorCode, IgnoreCase, KebabToCamelOptions, NonUndefined, OptionalOnCondition, RecordKey, RemoveIndentsFunction, RemoveIndentsOptions, StringListToArrayOptions, UUID, addDaysToDate, appendSemicolon, camelToKebab, convertFileToBase64, createFormData, createTemplateStringsArray, fillArray, formatDateAndTime, getRandomNumber, getRecordKeys, httpErrorCodeLookup, interpolate, interpolateObjects, isAnniversary, isLeapYear, isMonthlyMultiple, isOrdered, isSameDate, kebabToCamel, normaliseImportPath, normalizeImportPath, omitProperties, paralleliseArrays, parseBoolean, parseEmail, parseEnv, parseFormData, parseIntStrict, parseUUID, parseZodSchema, randomiseArray, range, removeDuplicates, removeIndents, stringListToArray, stringToBoolean, truncate, wait };
package/dist/index.d.ts CHANGED
@@ -1,11 +1,22 @@
1
1
  import z, { ZodType, core, z as z$1 } from "zod";
2
2
 
3
- //#region src/functions/addDaysToDate.d.ts
4
- declare function addDaysToDate(currentDate?: Date, dayIncrement?: number): Date;
5
- //#endregion
6
3
  //#region src/functions/appendSemicolon.d.ts
7
4
  declare function appendSemicolon(stringToAppendTo: string): string;
8
5
  //#endregion
6
+ //#region src/functions/arrayHelpers/fillArray.d.ts
7
+ declare function fillArray<T>(callback: (index: number) => Promise<T>, length?: number): Promise<T[]>;
8
+ declare function fillArray<T>(callback: (index: number) => T, length?: number): T[];
9
+ //#endregion
10
+ //#region src/functions/arrayHelpers/paralleliseArrays.d.ts
11
+ type ParallelTuple<A, B> = [A, B | undefined];
12
+ declare function paralleliseArrays<FirstArrayItem, SecondArrayItem>(firstArray: FirstArrayItem[] | readonly FirstArrayItem[], secondArray: SecondArrayItem[] | readonly SecondArrayItem[]): ParallelTuple<FirstArrayItem, SecondArrayItem>[];
13
+ //#endregion
14
+ //#region src/functions/arrayHelpers/randomiseArray.d.ts
15
+ declare function randomiseArray<T>(array: T[]): T[];
16
+ //#endregion
17
+ //#region src/functions/arrayHelpers/range.d.ts
18
+ declare function range(start: number, stop: number, step?: number): number[];
19
+ //#endregion
9
20
  //#region src/functions/camelToKebab.d.ts
10
21
  declare function camelToKebab(string: string): string;
11
22
  //#endregion
@@ -89,31 +100,33 @@ declare function createFormData<T extends Record<RecordKey, unknown>>(data: T, o
89
100
  //#region src/functions/createTemplateStringsArray.d.ts
90
101
  declare function createTemplateStringsArray(strings: readonly string[]): TemplateStringsArray;
91
102
  //#endregion
92
- //#region src/functions/fillArray.d.ts
93
- declare function fillArray<T>(callback: (index: number) => Promise<T>, length?: number): Promise<T[]>;
94
- declare function fillArray<T>(callback: (index: number) => T, length?: number): T[];
103
+ //#region src/functions/date/addDaysToDate.d.ts
104
+ declare function addDaysToDate(currentDate?: Date, dayIncrement?: number): Date;
95
105
  //#endregion
96
- //#region src/functions/formatDateAndTime.d.ts
106
+ //#region src/functions/date/formatDateAndTime.d.ts
97
107
  declare function formatDateAndTime(inputDate: Date): string;
98
108
  //#endregion
109
+ //#region src/functions/date/isAnniversary.d.ts
110
+ declare function isAnniversary(firstDate: Date, secondDate: Date): boolean;
111
+ //#endregion
112
+ //#region src/functions/date/isLeapYear.d.ts
113
+ declare function isLeapYear(year: number): boolean;
114
+ //#endregion
115
+ //#region src/functions/date/isMonthlyMultiple.d.ts
116
+ declare function isMonthlyMultiple(firstDate: Date, secondDate: Date): boolean;
117
+ //#endregion
118
+ //#region src/functions/date/isSameDate.d.ts
119
+ declare function isSameDate(firstDate: Date, secondDate: Date): boolean;
120
+ //#endregion
99
121
  //#region src/functions/getRandomNumber.d.ts
100
122
  declare function getRandomNumber(lowerBound: number, upperBound: number): number;
101
123
  //#endregion
102
124
  //#region src/functions/getRecordKeys.d.ts
103
125
  declare function getRecordKeys<T extends Record<RecordKey, unknown>>(record: T & object): (keyof T)[];
104
126
  //#endregion
105
- //#region src/functions/isLeapYear.d.ts
106
- declare function isLeapYear(year: number): boolean;
107
- //#endregion
108
- //#region src/functions/isMonthlyMultiple.d.ts
109
- declare function isMonthlyMultiple(firstDate: Date, secondDate: Date): boolean;
110
- //#endregion
111
127
  //#region src/functions/isOrdered.d.ts
112
128
  declare function isOrdered(array: readonly number[] | number[]): boolean;
113
129
  //#endregion
114
- //#region src/functions/isSameDate.d.ts
115
- declare function isSameDate(firstDate: Date, secondDate: Date): boolean;
116
- //#endregion
117
130
  //#region src/functions/kebabToCamel.d.ts
118
131
  interface KebabToCamelOptions {
119
132
  startWithUpper?: boolean;
@@ -127,22 +140,21 @@ declare const normaliseImportPath: typeof normalizeImportPath;
127
140
  //#region src/functions/omitProperties.d.ts
128
141
  declare function omitProperties<T extends Record<string, unknown> | Readonly<Record<string, unknown>>, K extends keyof T>(object: T, keysToOmit: K | readonly K[]): Omit<T, K>;
129
142
  //#endregion
130
- //#region src/functions/paralleliseArrays.d.ts
131
- type ParallelTuple<A, B> = [A, B | undefined];
132
- declare function paralleliseArrays<FirstArrayItem, SecondArrayItem>(firstArray: FirstArrayItem[] | readonly FirstArrayItem[], secondArray: SecondArrayItem[] | readonly SecondArrayItem[]): ParallelTuple<FirstArrayItem, SecondArrayItem>[];
143
+ //#region src/functions/parsers/parseBoolean.d.ts
144
+ declare function parseBoolean(inputString: string): boolean;
145
+ /** @deprecated This function has been renamed to parseBoolean. */
146
+ declare const stringToBoolean: typeof parseBoolean;
133
147
  //#endregion
134
- //#region src/functions/parseIntStrict.d.ts
148
+ //#region src/functions/parsers/parseFormData.d.ts
149
+ declare function parseFormData<T>(formData: FormData, dataParser: (data: Record<string, string | Blob>) => T): T;
150
+ declare function parseFormData(formData: FormData): Record<string, string | Blob>;
151
+ //#endregion
152
+ //#region src/functions/parsers/parseIntStrict.d.ts
135
153
  declare function parseIntStrict(...[string, radix]: Parameters<typeof parseInt>): number;
136
154
  //#endregion
137
- //#region src/functions/parseZodSchema.d.ts
155
+ //#region src/functions/parsers/parseZodSchema.d.ts
138
156
  declare function parseZodSchema<Output, Input, Internals extends core.$ZodTypeInternals<Output, Input>>(schema: ZodType<Output, Input, Internals>, data: unknown): core.output<ZodType<Output, Input, Internals>>;
139
157
  //#endregion
140
- //#region src/functions/randomiseArray.d.ts
141
- declare function randomiseArray<T>(array: T[]): T[];
142
- //#endregion
143
- //#region src/functions/range.d.ts
144
- declare function range(start: number, stop: number, step?: number): number[];
145
- //#endregion
146
158
  //#region src/functions/removeDuplicates.d.ts
147
159
  declare function removeDuplicates<T>(array: T[] | readonly T[]): T[];
148
160
  //#endregion
@@ -156,15 +168,6 @@ declare function stringListToArray(stringList: string, {
156
168
  trimWhitespace
157
169
  }?: StringListToArrayOptions): string[];
158
170
  //#endregion
159
- //#region src/functions/stringToBoolean.d.ts
160
- declare function stringToBoolean(inputString: string): boolean;
161
- //#endregion
162
- //#region src/functions/truncate.d.ts
163
- declare function truncate(stringToTruncate: string, maxLength?: number): string;
164
- //#endregion
165
- //#region src/functions/wait.d.ts
166
- declare function wait(seconds: number): Promise<void>;
167
- //#endregion
168
171
  //#region src/functions/taggedTemplate/interpolate.d.ts
169
172
  declare function interpolate(strings: TemplateStringsArray, ...interpolations: unknown[]): string;
170
173
  //#endregion
@@ -179,4 +182,10 @@ type RemoveIndentsFunction = (strings: TemplateStringsArray, ...interpolations:
179
182
  declare function removeIndents(options: RemoveIndentsOptions): RemoveIndentsFunction;
180
183
  declare function removeIndents(strings: TemplateStringsArray, ...interpolations: unknown[]): string;
181
184
  //#endregion
182
- export { APIError, type CreateFormDataOptions, type CreateFormDataOptionsNullableResolution, type CreateFormDataOptionsUndefinedOrNullResolution, DataError, type DisallowUndefined, type Email, type Env, type FormDataNullableResolutionStrategy as FormDataResolutionStrategy, type HTTPErrorCode, type IgnoreCase, type KebabToCamelOptions, type NonUndefined, type OptionalOnCondition, type RecordKey, RemoveIndentsFunction, RemoveIndentsOptions, type StringListToArrayOptions, type UUID, addDaysToDate, appendSemicolon, camelToKebab, convertFileToBase64, createFormData, createTemplateStringsArray, fillArray, formatDateAndTime, getRandomNumber, getRecordKeys, httpErrorCodeLookup, interpolate, interpolateObjects, isLeapYear, isMonthlyMultiple, isOrdered, isSameDate, kebabToCamel, normaliseImportPath, normalizeImportPath, omitProperties, paralleliseArrays, parseEmail, parseEnv, parseIntStrict, parseUUID, parseZodSchema, randomiseArray, range, removeDuplicates, removeIndents, stringListToArray, stringToBoolean, truncate, wait };
185
+ //#region src/functions/truncate.d.ts
186
+ declare function truncate(stringToTruncate: string, maxLength?: number): string;
187
+ //#endregion
188
+ //#region src/functions/wait.d.ts
189
+ declare function wait(seconds: number): Promise<void>;
190
+ //#endregion
191
+ export { APIError, type CreateFormDataOptions, type CreateFormDataOptionsNullableResolution, type CreateFormDataOptionsUndefinedOrNullResolution, DataError, type DisallowUndefined, type Email, type Env, type FormDataNullableResolutionStrategy as FormDataResolutionStrategy, type HTTPErrorCode, type IgnoreCase, type KebabToCamelOptions, type NonUndefined, type OptionalOnCondition, type RecordKey, RemoveIndentsFunction, RemoveIndentsOptions, type StringListToArrayOptions, type UUID, addDaysToDate, appendSemicolon, camelToKebab, convertFileToBase64, createFormData, createTemplateStringsArray, fillArray, formatDateAndTime, getRandomNumber, getRecordKeys, httpErrorCodeLookup, interpolate, interpolateObjects, isAnniversary, isLeapYear, isMonthlyMultiple, isOrdered, isSameDate, kebabToCamel, normaliseImportPath, normalizeImportPath, omitProperties, paralleliseArrays, parseBoolean, parseEmail, parseEnv, parseFormData, parseIntStrict, parseUUID, parseZodSchema, randomiseArray, range, removeDuplicates, removeIndents, stringListToArray, stringToBoolean, truncate, wait };
package/dist/index.js CHANGED
@@ -1,15 +1,6 @@
1
1
  import path from "path";
2
2
  import z, { z as z$1 } from "zod";
3
3
 
4
- //#region src/functions/addDaysToDate.ts
5
- function addDaysToDate(currentDate = /* @__PURE__ */ new Date(), dayIncrement = 1) {
6
- const newDate = currentDate;
7
- newDate.setDate(newDate.getDate() + dayIncrement);
8
- return newDate;
9
- }
10
- var addDaysToDate_default = addDaysToDate;
11
-
12
- //#endregion
13
4
  //#region src/functions/appendSemicolon.ts
14
5
  function appendSemicolon(stringToAppendTo) {
15
6
  if (stringToAppendTo.includes("\n")) throw new Error("MULTIPLE_LINE_ERROR");
@@ -19,6 +10,81 @@ function appendSemicolon(stringToAppendTo) {
19
10
  }
20
11
  var appendSemicolon_default = appendSemicolon;
21
12
 
13
+ //#endregion
14
+ //#region src/functions/arrayHelpers/fillArray.ts
15
+ function fillArray(callback, length = 1) {
16
+ const outputArray = new Array(length).fill(null).map((_, index) => {
17
+ return callback(index);
18
+ });
19
+ if (outputArray.some((item) => {
20
+ return item instanceof Promise;
21
+ })) return Promise.all(outputArray);
22
+ return outputArray;
23
+ }
24
+ var fillArray_default = fillArray;
25
+
26
+ //#endregion
27
+ //#region src/functions/arrayHelpers/paralleliseArrays.ts
28
+ function paralleliseArrays(firstArray, secondArray) {
29
+ const outputArray = [];
30
+ for (let i = 0; i < firstArray.length; i++) outputArray.push([firstArray[i], secondArray[i]]);
31
+ return outputArray;
32
+ }
33
+ var paralleliseArrays_default = paralleliseArrays;
34
+
35
+ //#endregion
36
+ //#region src/functions/parsers/parseIntStrict.ts
37
+ const IntegerParsingError = /* @__PURE__ */ new TypeError("INTEGER_PARSING_ERROR");
38
+ function parseIntStrict(...[string, radix]) {
39
+ const trimmedString = string.trim();
40
+ if (!(radix && radix > 10 && radix <= 36 ? new RegExp(`^[+-]?[0-9a-${String.fromCharCode(87 + radix - 1)}]+$`, "i") : /^[+-]?\d+$/).test(trimmedString)) throw IntegerParsingError;
41
+ if (radix && radix < 10 && [...trimmedString].some((character) => {
42
+ return parseInt(character) >= radix;
43
+ })) throw IntegerParsingError;
44
+ const parseIntResult = parseInt(trimmedString, radix);
45
+ if (isNaN(parseIntResult)) throw IntegerParsingError;
46
+ return parseIntResult;
47
+ }
48
+ var parseIntStrict_default = parseIntStrict;
49
+
50
+ //#endregion
51
+ //#region src/functions/getRandomNumber.ts
52
+ function getRandomNumber(lowerBound, upperBound) {
53
+ const parsedLowerBound = parseIntStrict_default(`${lowerBound}`);
54
+ const parsedUpperBound = parseIntStrict_default(`${upperBound}`);
55
+ return Math.floor(Math.random() * (parsedUpperBound - parsedLowerBound + 1) + parsedLowerBound);
56
+ }
57
+ var getRandomNumber_default = getRandomNumber;
58
+
59
+ //#endregion
60
+ //#region src/functions/arrayHelpers/randomiseArray.ts
61
+ function randomiseArray(array) {
62
+ const mutableArray = [...array];
63
+ const outputArray = [];
64
+ do {
65
+ const indexToRemove = getRandomNumber_default(0, mutableArray.length - 1);
66
+ outputArray.push(mutableArray.splice(indexToRemove, 1)[0]);
67
+ } while (mutableArray.length > 0);
68
+ return outputArray;
69
+ }
70
+ var randomiseArray_default = randomiseArray;
71
+
72
+ //#endregion
73
+ //#region src/functions/arrayHelpers/range.ts
74
+ function range(start, stop, step = 1) {
75
+ const numbers = [];
76
+ if (step === 0) throw new Error("ZERO_STEP_SIZE_NOT_ALLOWED");
77
+ else if (step > 0) {
78
+ if (start > stop) throw new Error("INVALID_BOUNDARIES");
79
+ for (let i = start; i < stop; i += step) numbers.push(i);
80
+ } else if (step < 0) {
81
+ if (start < stop) throw new Error("INVALID_BOUNDARIES");
82
+ for (let i = start; i > stop; i += step) numbers.push(i);
83
+ }
84
+ return numbers;
85
+ }
86
+ var range_default = range;
87
+
22
88
  //#endregion
23
89
  //#region src/functions/camelToKebab.ts
24
90
  function camelToKebab(string) {
@@ -112,27 +178,23 @@ function createTemplateStringsArray(strings) {
112
178
  var createTemplateStringsArray_default = createTemplateStringsArray;
113
179
 
114
180
  //#endregion
115
- //#region src/functions/fillArray.ts
116
- function fillArray(callback, length = 1) {
117
- const outputArray = new Array(length).fill(null).map((_, index) => {
118
- return callback(index);
119
- });
120
- if (outputArray.some((item) => {
121
- return item instanceof Promise;
122
- })) return Promise.all(outputArray);
123
- return outputArray;
181
+ //#region src/functions/date/addDaysToDate.ts
182
+ function addDaysToDate(currentDate = /* @__PURE__ */ new Date(), dayIncrement = 1) {
183
+ const newDate = currentDate;
184
+ newDate.setDate(newDate.getDate() + dayIncrement);
185
+ return newDate;
124
186
  }
125
- var fillArray_default = fillArray;
187
+ var addDaysToDate_default = addDaysToDate;
126
188
 
127
189
  //#endregion
128
- //#region src/functions/isSameDate.ts
190
+ //#region src/functions/date/isSameDate.ts
129
191
  function isSameDate(firstDate, secondDate) {
130
192
  return firstDate.getDate() === secondDate.getDate() && firstDate.getMonth() === secondDate.getMonth() && firstDate.getFullYear() === secondDate.getFullYear();
131
193
  }
132
194
  var isSameDate_default = isSameDate;
133
195
 
134
196
  //#endregion
135
- //#region src/functions/formatDateAndTime.ts
197
+ //#region src/functions/date/formatDateAndTime.ts
136
198
  function formatDateAndTime(inputDate) {
137
199
  const yesterday = addDaysToDate_default(/* @__PURE__ */ new Date(), -1);
138
200
  const today = /* @__PURE__ */ new Date();
@@ -144,38 +206,7 @@ function formatDateAndTime(inputDate) {
144
206
  var formatDateAndTime_default = formatDateAndTime;
145
207
 
146
208
  //#endregion
147
- //#region src/functions/parseIntStrict.ts
148
- const IntegerParsingError = /* @__PURE__ */ new TypeError("INTEGER_PARSING_ERROR");
149
- function parseIntStrict(...[string, radix]) {
150
- const trimmedString = string.trim();
151
- if (!(radix && radix > 10 && radix <= 36 ? new RegExp(`^[+-]?[0-9a-${String.fromCharCode(87 + radix - 1)}]+$`, "i") : /^[+-]?\d+$/).test(trimmedString)) throw IntegerParsingError;
152
- if (radix && radix < 10 && [...trimmedString].some((character) => {
153
- return parseInt(character) >= radix;
154
- })) throw IntegerParsingError;
155
- const parseIntResult = parseInt(trimmedString, radix);
156
- if (isNaN(parseIntResult)) throw IntegerParsingError;
157
- return parseIntResult;
158
- }
159
- var parseIntStrict_default = parseIntStrict;
160
-
161
- //#endregion
162
- //#region src/functions/getRandomNumber.ts
163
- function getRandomNumber(lowerBound, upperBound) {
164
- const parsedLowerBound = parseIntStrict_default(`${lowerBound}`);
165
- const parsedUpperBound = parseIntStrict_default(`${upperBound}`);
166
- return Math.floor(Math.random() * (parsedUpperBound - parsedLowerBound + 1) + parsedLowerBound);
167
- }
168
- var getRandomNumber_default = getRandomNumber;
169
-
170
- //#endregion
171
- //#region src/functions/getRecordKeys.ts
172
- function getRecordKeys(record) {
173
- return Object.keys(record);
174
- }
175
- var getRecordKeys_default = getRecordKeys;
176
-
177
- //#endregion
178
- //#region src/functions/isLeapYear.ts
209
+ //#region src/functions/date/isLeapYear.ts
179
210
  function isLeapYear(year) {
180
211
  const parsedYear = parseIntStrict_default(`${year}`);
181
212
  return parsedYear % 4 === 0 && parsedYear % 100 !== 0 || parsedYear % 400 === 0;
@@ -183,7 +214,19 @@ function isLeapYear(year) {
183
214
  var isLeapYear_default = isLeapYear;
184
215
 
185
216
  //#endregion
186
- //#region src/functions/isMonthlyMultiple.ts
217
+ //#region src/functions/date/isAnniversary.ts
218
+ function checkLeapYear(firstDate, secondDate) {
219
+ if (isLeapYear_default(firstDate.getFullYear()) && firstDate.getMonth() === 1 && secondDate.getMonth() === 1) return firstDate.getDate() === 29 && secondDate.getDate() === 28;
220
+ return false;
221
+ }
222
+ function isAnniversary(firstDate, secondDate) {
223
+ if (checkLeapYear(firstDate, secondDate) || checkLeapYear(secondDate, firstDate)) return true;
224
+ return firstDate.getDate() === secondDate.getDate() && firstDate.getMonth() === secondDate.getMonth();
225
+ }
226
+ var isAnniversary_default = isAnniversary;
227
+
228
+ //#endregion
229
+ //#region src/functions/date/isMonthlyMultiple.ts
187
230
  function endOfMonthChecksButNotFebruary(firstDate, secondDate) {
188
231
  if ([
189
232
  3,
@@ -222,6 +265,13 @@ function isMonthlyMultiple(firstDate, secondDate) {
222
265
  }
223
266
  var isMonthlyMultiple_default = isMonthlyMultiple;
224
267
 
268
+ //#endregion
269
+ //#region src/functions/getRecordKeys.ts
270
+ function getRecordKeys(record) {
271
+ return Object.keys(record);
272
+ }
273
+ var getRecordKeys_default = getRecordKeys;
274
+
225
275
  //#endregion
226
276
  //#region src/functions/isOrdered.ts
227
277
  function isOrdered(array) {
@@ -284,13 +334,27 @@ function omitProperties(object, keysToOmit) {
284
334
  var omitProperties_default = omitProperties;
285
335
 
286
336
  //#endregion
287
- //#region src/functions/paralleliseArrays.ts
288
- function paralleliseArrays(firstArray, secondArray) {
289
- const outputArray = [];
290
- for (let i = 0; i < firstArray.length; i++) outputArray.push([firstArray[i], secondArray[i]]);
291
- return outputArray;
337
+ //#region src/functions/parsers/parseBoolean.ts
338
+ function parseBoolean(inputString) {
339
+ const normalisedString = inputString.toLowerCase();
340
+ if (normalisedString !== "true" && normalisedString !== "false") throw new TypeError("INVALID_BOOLEAN_STRING");
341
+ return normalisedString === "true";
292
342
  }
293
- var paralleliseArrays_default = paralleliseArrays;
343
+ /** @deprecated This function has been renamed to parseBoolean. */
344
+ const stringToBoolean = parseBoolean;
345
+ var parseBoolean_default = parseBoolean;
346
+
347
+ //#endregion
348
+ //#region src/functions/parsers/parseFormData.ts
349
+ function parseFormData(formData, dataParser) {
350
+ const object = {};
351
+ formData.forEach((value, key) => {
352
+ object[key] = value;
353
+ });
354
+ if (dataParser) return dataParser(object);
355
+ return object;
356
+ }
357
+ var parseFormData_default = parseFormData;
294
358
 
295
359
  //#endregion
296
360
  //#region src/types/APIError.ts
@@ -373,7 +437,7 @@ function parseUUID(UUID) {
373
437
  var UUID_default = parseUUID;
374
438
 
375
439
  //#endregion
376
- //#region src/functions/parseZodSchema.ts
440
+ //#region src/functions/parsers/parseZodSchema.ts
377
441
  function parseZodSchema(schema, data) {
378
442
  const parsedResult = schema.safeParse(data);
379
443
  if (!parsedResult.success) throw new DataError_default(data);
@@ -381,35 +445,6 @@ function parseZodSchema(schema, data) {
381
445
  }
382
446
  var parseZodSchema_default = parseZodSchema;
383
447
 
384
- //#endregion
385
- //#region src/functions/randomiseArray.ts
386
- function randomiseArray(array) {
387
- const mutableArray = [...array];
388
- const outputArray = [];
389
- do {
390
- const indexToRemove = getRandomNumber_default(0, mutableArray.length - 1);
391
- outputArray.push(mutableArray.splice(indexToRemove, 1)[0]);
392
- } while (mutableArray.length > 0);
393
- return outputArray;
394
- }
395
- var randomiseArray_default = randomiseArray;
396
-
397
- //#endregion
398
- //#region src/functions/range.ts
399
- function range(start, stop, step = 1) {
400
- const numbers = [];
401
- if (step === 0) throw new Error("ZERO_STEP_SIZE_NOT_ALLOWED");
402
- else if (step > 0) {
403
- if (start > stop) throw new Error("INVALID_BOUNDARIES");
404
- for (let i = start; i < stop; i += step) numbers.push(i);
405
- } else if (step < 0) {
406
- if (start < stop) throw new Error("INVALID_BOUNDARIES");
407
- for (let i = start; i > stop; i += step) numbers.push(i);
408
- }
409
- return numbers;
410
- }
411
- var range_default = range;
412
-
413
448
  //#endregion
414
449
  //#region src/functions/removeDuplicates.ts
415
450
  function removeDuplicates(array) {
@@ -430,33 +465,6 @@ function stringListToArray(stringList, { separator = ",", trimWhitespace = true
430
465
  }
431
466
  var stringListToArray_default = stringListToArray;
432
467
 
433
- //#endregion
434
- //#region src/functions/stringToBoolean.ts
435
- function stringToBoolean(inputString) {
436
- const normalisedString = inputString.toLowerCase();
437
- if (normalisedString !== "true" && normalisedString !== "false") throw new TypeError("INVALID_BOOLEAN_STRING");
438
- return normalisedString === "true";
439
- }
440
- var stringToBoolean_default = stringToBoolean;
441
-
442
- //#endregion
443
- //#region src/functions/truncate.ts
444
- function truncate(stringToTruncate, maxLength = 5) {
445
- return stringToTruncate.length > maxLength ? `${stringToTruncate.slice(0, maxLength)}...` : stringToTruncate;
446
- }
447
- var truncate_default = truncate;
448
-
449
- //#endregion
450
- //#region src/functions/wait.ts
451
- function wait(seconds) {
452
- return new Promise((resolve, _) => {
453
- setTimeout(() => {
454
- resolve();
455
- }, seconds * 1e3);
456
- });
457
- }
458
- var wait_default = wait;
459
-
460
468
  //#endregion
461
469
  //#region src/functions/taggedTemplate/interpolate.ts
462
470
  function interpolate(strings, ...interpolations) {
@@ -518,4 +526,22 @@ function removeIndents(first, ...args) {
518
526
  var removeIndents_default = removeIndents;
519
527
 
520
528
  //#endregion
521
- export { APIError_default as APIError, DataError_default as DataError, addDaysToDate_default as addDaysToDate, appendSemicolon_default as appendSemicolon, camelToKebab_default as camelToKebab, convertFileToBase64_default as convertFileToBase64, createFormData_default as createFormData, createTemplateStringsArray_default as createTemplateStringsArray, fillArray_default as fillArray, formatDateAndTime_default as formatDateAndTime, getRandomNumber_default as getRandomNumber, getRecordKeys_default as getRecordKeys, httpErrorCodeLookup, interpolate_default as interpolate, interpolateObjects_default as interpolateObjects, isLeapYear_default as isLeapYear, isMonthlyMultiple_default as isMonthlyMultiple, isOrdered_default as isOrdered, isSameDate_default as isSameDate, kebabToCamel_default as kebabToCamel, normaliseImportPath, normalizeImportPath_default as normalizeImportPath, omitProperties_default as omitProperties, paralleliseArrays_default as paralleliseArrays, Email_default as parseEmail, Env_default as parseEnv, parseIntStrict_default as parseIntStrict, UUID_default as parseUUID, parseZodSchema_default as parseZodSchema, randomiseArray_default as randomiseArray, range_default as range, removeDuplicates_default as removeDuplicates, removeIndents_default as removeIndents, stringListToArray_default as stringListToArray, stringToBoolean_default as stringToBoolean, truncate_default as truncate, wait_default as wait };
529
+ //#region src/functions/truncate.ts
530
+ function truncate(stringToTruncate, maxLength = 5) {
531
+ return stringToTruncate.length > maxLength ? `${stringToTruncate.slice(0, maxLength)}...` : stringToTruncate;
532
+ }
533
+ var truncate_default = truncate;
534
+
535
+ //#endregion
536
+ //#region src/functions/wait.ts
537
+ function wait(seconds) {
538
+ return new Promise((resolve, _) => {
539
+ setTimeout(() => {
540
+ resolve();
541
+ }, seconds * 1e3);
542
+ });
543
+ }
544
+ var wait_default = wait;
545
+
546
+ //#endregion
547
+ export { APIError_default as APIError, DataError_default as DataError, addDaysToDate_default as addDaysToDate, appendSemicolon_default as appendSemicolon, camelToKebab_default as camelToKebab, convertFileToBase64_default as convertFileToBase64, createFormData_default as createFormData, createTemplateStringsArray_default as createTemplateStringsArray, fillArray_default as fillArray, formatDateAndTime_default as formatDateAndTime, getRandomNumber_default as getRandomNumber, getRecordKeys_default as getRecordKeys, httpErrorCodeLookup, interpolate_default as interpolate, interpolateObjects_default as interpolateObjects, isAnniversary_default as isAnniversary, isLeapYear_default as isLeapYear, isMonthlyMultiple_default as isMonthlyMultiple, isOrdered_default as isOrdered, isSameDate_default as isSameDate, kebabToCamel_default as kebabToCamel, normaliseImportPath, normalizeImportPath_default as normalizeImportPath, omitProperties_default as omitProperties, paralleliseArrays_default as paralleliseArrays, parseBoolean_default as parseBoolean, Email_default as parseEmail, Env_default as parseEnv, parseFormData_default as parseFormData, parseIntStrict_default as parseIntStrict, UUID_default as parseUUID, parseZodSchema_default as parseZodSchema, randomiseArray_default as randomiseArray, range_default as range, removeDuplicates_default as removeDuplicates, removeIndents_default as removeIndents, stringListToArray_default as stringListToArray, stringToBoolean, truncate_default as truncate, wait_default as wait };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alextheman/utility",
3
- "version": "3.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "Helpful utility functions",
5
5
  "repository": {
6
6
  "type": "git",