@alextheman/utility 3.3.1 → 3.4.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
@@ -299,6 +299,32 @@ function isMonthlyMultiple(firstDate, secondDate) {
299
299
  }
300
300
  var isMonthlyMultiple_default = isMonthlyMultiple;
301
301
 
302
+ //#endregion
303
+ //#region src/functions/deepCopy.ts
304
+ function callDeepCopy(input) {
305
+ return typeof input === "object" && input !== null ? deepCopy(input) : input;
306
+ }
307
+ function deepCopy(object) {
308
+ if (Array.isArray(object)) return object.map((item) => {
309
+ return callDeepCopy(item);
310
+ });
311
+ const clonedObject = { ...object };
312
+ for (const key in clonedObject) {
313
+ const value = clonedObject[key];
314
+ clonedObject[key] = callDeepCopy(value);
315
+ }
316
+ return clonedObject;
317
+ }
318
+ var deepCopy_default = deepCopy;
319
+
320
+ //#endregion
321
+ //#region src/functions/deepFreeze.ts
322
+ function deepFreeze(object) {
323
+ for (const value of Object.values(object)) if (value && typeof value === "object") deepFreeze(value);
324
+ return Object.freeze(object);
325
+ }
326
+ var deepFreeze_default = deepFreeze;
327
+
302
328
  //#endregion
303
329
  //#region src/functions/getRecordKeys.ts
304
330
  function getRecordKeys(record) {
@@ -627,6 +653,8 @@ exports.camelToKebab = camelToKebab_default;
627
653
  exports.convertFileToBase64 = convertFileToBase64_default;
628
654
  exports.createFormData = createFormData_default;
629
655
  exports.createTemplateStringsArray = createTemplateStringsArray_default;
656
+ exports.deepCopy = deepCopy_default;
657
+ exports.deepFreeze = deepFreeze_default;
630
658
  exports.fillArray = fillArray_default;
631
659
  exports.formatDateAndTime = formatDateAndTime_default;
632
660
  exports.getRandomNumber = getRandomNumber_default;
package/dist/index.d.cts CHANGED
@@ -121,6 +121,12 @@ declare function isMonthlyMultiple(firstDate: Date, secondDate: Date): boolean;
121
121
  //#region src/functions/date/isSameDate.d.ts
122
122
  declare function isSameDate(firstDate: Date, secondDate: Date): boolean;
123
123
  //#endregion
124
+ //#region src/functions/deepCopy.d.ts
125
+ declare function deepCopy<T extends object>(object: T): T;
126
+ //#endregion
127
+ //#region src/functions/deepFreeze.d.ts
128
+ declare function deepFreeze<T extends object>(object: T): Readonly<T>;
129
+ //#endregion
124
130
  //#region src/functions/getRandomNumber.d.ts
125
131
  declare function getRandomNumber(lowerBound: number, upperBound: number): number;
126
132
  //#endregion
@@ -204,4 +210,4 @@ declare function truncate(stringToTruncate: string, maxLength?: number): string;
204
210
  //#region src/functions/wait.d.ts
205
211
  declare function wait(seconds: number): Promise<void>;
206
212
  //#endregion
207
- export { APIError, CreateFormDataOptions, CreateFormDataOptionsNullableResolution, CreateFormDataOptionsUndefinedOrNullResolution, DataError, DisallowUndefined, Email, Env, FormDataArrayResolutionStrategy, FormDataNullableResolutionStrategy, HTTPErrorCode, IgnoreCase, KebabToCamelOptions, NAMESPACE_EXPORT_REGEX, NonUndefined, NormaliseIndentsFunction, NormaliseIndentsOptions, NormalizeIndentsFunction, NormalizeIndentsOptions, 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, normaliseIndents, normalizeImportPath, normalizeIndents, omitProperties, paralleliseArrays, parseBoolean, parseEmail, parseEnv, parseFormData, parseIntStrict, parseUUID, parseZodSchema, randomiseArray, range, removeDuplicates, removeIndents, stringListToArray, stringToBoolean, truncate, wait };
213
+ export { APIError, CreateFormDataOptions, CreateFormDataOptionsNullableResolution, CreateFormDataOptionsUndefinedOrNullResolution, DataError, DisallowUndefined, Email, Env, FormDataArrayResolutionStrategy, FormDataNullableResolutionStrategy, HTTPErrorCode, IgnoreCase, KebabToCamelOptions, NAMESPACE_EXPORT_REGEX, NonUndefined, NormaliseIndentsFunction, NormaliseIndentsOptions, NormalizeIndentsFunction, NormalizeIndentsOptions, OptionalOnCondition, RecordKey, RemoveIndentsFunction, RemoveIndentsOptions, StringListToArrayOptions, UUID, addDaysToDate, appendSemicolon, camelToKebab, convertFileToBase64, createFormData, createTemplateStringsArray, deepCopy, deepFreeze, fillArray, formatDateAndTime, getRandomNumber, getRecordKeys, httpErrorCodeLookup, interpolate, interpolateObjects, isAnniversary, isLeapYear, isMonthlyMultiple, isOrdered, isSameDate, kebabToCamel, normaliseImportPath, normaliseIndents, normalizeImportPath, normalizeIndents, omitProperties, paralleliseArrays, parseBoolean, parseEmail, parseEnv, parseFormData, parseIntStrict, parseUUID, parseZodSchema, randomiseArray, range, removeDuplicates, removeIndents, stringListToArray, stringToBoolean, truncate, wait };
package/dist/index.d.ts CHANGED
@@ -121,6 +121,12 @@ declare function isMonthlyMultiple(firstDate: Date, secondDate: Date): boolean;
121
121
  //#region src/functions/date/isSameDate.d.ts
122
122
  declare function isSameDate(firstDate: Date, secondDate: Date): boolean;
123
123
  //#endregion
124
+ //#region src/functions/deepCopy.d.ts
125
+ declare function deepCopy<T extends object>(object: T): T;
126
+ //#endregion
127
+ //#region src/functions/deepFreeze.d.ts
128
+ declare function deepFreeze<T extends object>(object: T): Readonly<T>;
129
+ //#endregion
124
130
  //#region src/functions/getRandomNumber.d.ts
125
131
  declare function getRandomNumber(lowerBound: number, upperBound: number): number;
126
132
  //#endregion
@@ -204,4 +210,4 @@ declare function truncate(stringToTruncate: string, maxLength?: number): string;
204
210
  //#region src/functions/wait.d.ts
205
211
  declare function wait(seconds: number): Promise<void>;
206
212
  //#endregion
207
- export { APIError, type CreateFormDataOptions, type CreateFormDataOptionsNullableResolution, type CreateFormDataOptionsUndefinedOrNullResolution, DataError, type DisallowUndefined, type Email, type Env, type FormDataArrayResolutionStrategy, type FormDataNullableResolutionStrategy, type HTTPErrorCode, type IgnoreCase, type KebabToCamelOptions, NAMESPACE_EXPORT_REGEX, type NonUndefined, NormaliseIndentsFunction, NormaliseIndentsOptions, NormalizeIndentsFunction, NormalizeIndentsOptions, 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, normaliseIndents, normalizeImportPath, normalizeIndents, omitProperties, paralleliseArrays, parseBoolean, parseEmail, parseEnv, parseFormData, parseIntStrict, parseUUID, parseZodSchema, randomiseArray, range, removeDuplicates, removeIndents, stringListToArray, stringToBoolean, truncate, wait };
213
+ export { APIError, type CreateFormDataOptions, type CreateFormDataOptionsNullableResolution, type CreateFormDataOptionsUndefinedOrNullResolution, DataError, type DisallowUndefined, type Email, type Env, type FormDataArrayResolutionStrategy, type FormDataNullableResolutionStrategy, type HTTPErrorCode, type IgnoreCase, type KebabToCamelOptions, NAMESPACE_EXPORT_REGEX, type NonUndefined, NormaliseIndentsFunction, NormaliseIndentsOptions, NormalizeIndentsFunction, NormalizeIndentsOptions, type OptionalOnCondition, type RecordKey, RemoveIndentsFunction, RemoveIndentsOptions, type StringListToArrayOptions, type UUID, addDaysToDate, appendSemicolon, camelToKebab, convertFileToBase64, createFormData, createTemplateStringsArray, deepCopy, deepFreeze, fillArray, formatDateAndTime, getRandomNumber, getRecordKeys, httpErrorCodeLookup, interpolate, interpolateObjects, isAnniversary, isLeapYear, isMonthlyMultiple, isOrdered, isSameDate, kebabToCamel, normaliseImportPath, normaliseIndents, normalizeImportPath, normalizeIndents, omitProperties, paralleliseArrays, parseBoolean, parseEmail, parseEnv, parseFormData, parseIntStrict, parseUUID, parseZodSchema, randomiseArray, range, removeDuplicates, removeIndents, stringListToArray, stringToBoolean, truncate, wait };
package/dist/index.js CHANGED
@@ -270,6 +270,32 @@ function isMonthlyMultiple(firstDate, secondDate) {
270
270
  }
271
271
  var isMonthlyMultiple_default = isMonthlyMultiple;
272
272
 
273
+ //#endregion
274
+ //#region src/functions/deepCopy.ts
275
+ function callDeepCopy(input) {
276
+ return typeof input === "object" && input !== null ? deepCopy(input) : input;
277
+ }
278
+ function deepCopy(object) {
279
+ if (Array.isArray(object)) return object.map((item) => {
280
+ return callDeepCopy(item);
281
+ });
282
+ const clonedObject = { ...object };
283
+ for (const key in clonedObject) {
284
+ const value = clonedObject[key];
285
+ clonedObject[key] = callDeepCopy(value);
286
+ }
287
+ return clonedObject;
288
+ }
289
+ var deepCopy_default = deepCopy;
290
+
291
+ //#endregion
292
+ //#region src/functions/deepFreeze.ts
293
+ function deepFreeze(object) {
294
+ for (const value of Object.values(object)) if (value && typeof value === "object") deepFreeze(value);
295
+ return Object.freeze(object);
296
+ }
297
+ var deepFreeze_default = deepFreeze;
298
+
273
299
  //#endregion
274
300
  //#region src/functions/getRecordKeys.ts
275
301
  function getRecordKeys(record) {
@@ -589,4 +615,4 @@ function wait(seconds) {
589
615
  var wait_default = wait;
590
616
 
591
617
  //#endregion
592
- export { APIError_default as APIError, DataError_default as DataError, NAMESPACE_EXPORT_REGEX_default as NAMESPACE_EXPORT_REGEX, 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, normaliseIndents_default as normaliseIndents, normalizeImportPath_default as normalizeImportPath, normalizeIndents, 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 };
618
+ export { APIError_default as APIError, DataError_default as DataError, NAMESPACE_EXPORT_REGEX_default as NAMESPACE_EXPORT_REGEX, addDaysToDate_default as addDaysToDate, appendSemicolon_default as appendSemicolon, camelToKebab_default as camelToKebab, convertFileToBase64_default as convertFileToBase64, createFormData_default as createFormData, createTemplateStringsArray_default as createTemplateStringsArray, deepCopy_default as deepCopy, deepFreeze_default as deepFreeze, 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, normaliseIndents_default as normaliseIndents, normalizeImportPath_default as normalizeImportPath, normalizeIndents, 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.3.1",
3
+ "version": "3.4.0",
4
4
  "description": "Helpful utility functions",
5
5
  "repository": {
6
6
  "type": "git",
@@ -43,13 +43,13 @@
43
43
  "zod": "^4.1.13"
44
44
  },
45
45
  "devDependencies": {
46
- "@alextheman/eslint-plugin": "^4.2.2",
46
+ "@alextheman/eslint-plugin": "^4.2.3",
47
47
  "@types/node": "^24.10.1",
48
48
  "eslint": "^9.39.1",
49
49
  "globals": "^16.5.0",
50
50
  "husky": "^9.1.7",
51
51
  "jsdom": "^27.2.0",
52
- "prettier": "^3.7.1",
52
+ "prettier": "^3.7.2",
53
53
  "tsdown": "^0.16.8",
54
54
  "typescript": "^5.9.3",
55
55
  "vite-tsconfig-paths": "^5.1.4",