@alextheman/utility 2.15.0 → 2.15.1

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
@@ -61,6 +61,7 @@ __export(index_exports, {
61
61
  isMonthlyMultiple: () => isMonthlyMultiple_default,
62
62
  isOrdered: () => isOrdered_default,
63
63
  isSameDate: () => isSameDate_default,
64
+ kebabToCamel: () => kebabToCamel_default,
64
65
  omitProperties: () => omitProperties_default,
65
66
  parseEmail: () => Email_default,
66
67
  parseEnv: () => Env_default,
@@ -343,6 +344,41 @@ function isOrdered(array) {
343
344
  }
344
345
  var isOrdered_default = isOrdered;
345
346
 
347
+ // src/functions/kebabToCamel.ts
348
+ function kebabToCamel(string, options) {
349
+ if (string !== string.toLowerCase()) {
350
+ throw new Error("INVALID_KEBAB_CASE_INPUT");
351
+ }
352
+ if (string.startsWith("-") || string.endsWith("-") || string.includes("--")) {
353
+ throw new Error("INVALID_KEBAB_CASE_INPUT");
354
+ }
355
+ let outputString = "";
356
+ let skip = false;
357
+ for (const stringIndex in [...string]) {
358
+ if (skip) {
359
+ skip = false;
360
+ continue;
361
+ }
362
+ const index = parseIntStrict_default(stringIndex);
363
+ if (index === 0 && (options == null ? void 0 : options.startWithUpper)) {
364
+ outputString += string[index].toUpperCase();
365
+ continue;
366
+ }
367
+ if (index === string.length - 1) {
368
+ outputString += string[index];
369
+ break;
370
+ }
371
+ if (string[index] === "-" && /^[a-zA-Z]+$/.test(string[index + 1])) {
372
+ outputString += string[index + 1].toUpperCase();
373
+ skip = true;
374
+ } else {
375
+ outputString += string[index];
376
+ }
377
+ }
378
+ return outputString;
379
+ }
380
+ var kebabToCamel_default = kebabToCamel;
381
+
346
382
  // src/functions/omitProperties.ts
347
383
  function omitProperties(object, keysToOmit) {
348
384
  const outputObject = __spreadValues({}, object);
@@ -526,6 +562,7 @@ var UUID_default = parseUUID;
526
562
  isMonthlyMultiple,
527
563
  isOrdered,
528
564
  isSameDate,
565
+ kebabToCamel,
529
566
  omitProperties,
530
567
  parseEmail,
531
568
  parseEnv,
package/dist/index.d.cts CHANGED
@@ -79,6 +79,11 @@ declare function isOrdered(array: readonly number[] | number[]): boolean;
79
79
 
80
80
  declare function isSameDate(firstDate: Date, secondDate: Date): boolean;
81
81
 
82
+ interface KebabToCamelOptions {
83
+ startWithUpper?: boolean;
84
+ }
85
+ declare function kebabToCamel(string: string, options?: KebabToCamelOptions): string;
86
+
82
87
  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>;
83
88
 
84
89
  declare function parseIntStrict(...[string, radix]: Parameters<typeof parseInt>): number;
@@ -103,4 +108,4 @@ declare function wait(seconds: number): Promise<void>;
103
108
 
104
109
  declare function interpolateObjects(strings: TemplateStringsArray, ...values: unknown[]): string;
105
110
 
106
- export { APIError, type CreateFormDataOptions, type CreateFormDataOptionsNullableResolution, type CreateFormDataOptionsUndefinedOrNullResolution, type DisallowUndefined, type Email, type Env, type FormDataNullableResolutionStrategy as FormDataResolutionStrategy, type HTTPErrorCode, type HTTPErrorCodes, type IgnoreCase, type NonUndefined, type OptionalOnCondition, type RecordKey, type StringListToArrayOptions, type UUID, addDaysToDate, appendSemicolon, camelToKebab, convertFileToBase64, createFormData, fillArray, formatDateAndTime, getRandomNumber, getRecordKeys, httpErrorCodeLookup, interpolateObjects, isLeapYear, isMonthlyMultiple, isOrdered, isSameDate, omitProperties, parseEmail, parseEnv, parseIntStrict, parseUUID, randomiseArray, range, removeDuplicates, stringListToArray, stringToBoolean, truncate, wait };
111
+ export { APIError, type CreateFormDataOptions, type CreateFormDataOptionsNullableResolution, type CreateFormDataOptionsUndefinedOrNullResolution, type DisallowUndefined, type Email, type Env, type FormDataNullableResolutionStrategy as FormDataResolutionStrategy, type HTTPErrorCode, type HTTPErrorCodes, type IgnoreCase, type KebabToCamelOptions, type NonUndefined, type OptionalOnCondition, type RecordKey, type StringListToArrayOptions, type UUID, addDaysToDate, appendSemicolon, camelToKebab, convertFileToBase64, createFormData, fillArray, formatDateAndTime, getRandomNumber, getRecordKeys, httpErrorCodeLookup, interpolateObjects, isLeapYear, isMonthlyMultiple, isOrdered, isSameDate, kebabToCamel, omitProperties, parseEmail, parseEnv, parseIntStrict, parseUUID, randomiseArray, range, removeDuplicates, stringListToArray, stringToBoolean, truncate, wait };
package/dist/index.d.ts CHANGED
@@ -79,6 +79,11 @@ declare function isOrdered(array: readonly number[] | number[]): boolean;
79
79
 
80
80
  declare function isSameDate(firstDate: Date, secondDate: Date): boolean;
81
81
 
82
+ interface KebabToCamelOptions {
83
+ startWithUpper?: boolean;
84
+ }
85
+ declare function kebabToCamel(string: string, options?: KebabToCamelOptions): string;
86
+
82
87
  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>;
83
88
 
84
89
  declare function parseIntStrict(...[string, radix]: Parameters<typeof parseInt>): number;
@@ -103,4 +108,4 @@ declare function wait(seconds: number): Promise<void>;
103
108
 
104
109
  declare function interpolateObjects(strings: TemplateStringsArray, ...values: unknown[]): string;
105
110
 
106
- export { APIError, type CreateFormDataOptions, type CreateFormDataOptionsNullableResolution, type CreateFormDataOptionsUndefinedOrNullResolution, type DisallowUndefined, type Email, type Env, type FormDataNullableResolutionStrategy as FormDataResolutionStrategy, type HTTPErrorCode, type HTTPErrorCodes, type IgnoreCase, type NonUndefined, type OptionalOnCondition, type RecordKey, type StringListToArrayOptions, type UUID, addDaysToDate, appendSemicolon, camelToKebab, convertFileToBase64, createFormData, fillArray, formatDateAndTime, getRandomNumber, getRecordKeys, httpErrorCodeLookup, interpolateObjects, isLeapYear, isMonthlyMultiple, isOrdered, isSameDate, omitProperties, parseEmail, parseEnv, parseIntStrict, parseUUID, randomiseArray, range, removeDuplicates, stringListToArray, stringToBoolean, truncate, wait };
111
+ export { APIError, type CreateFormDataOptions, type CreateFormDataOptionsNullableResolution, type CreateFormDataOptionsUndefinedOrNullResolution, type DisallowUndefined, type Email, type Env, type FormDataNullableResolutionStrategy as FormDataResolutionStrategy, type HTTPErrorCode, type HTTPErrorCodes, type IgnoreCase, type KebabToCamelOptions, type NonUndefined, type OptionalOnCondition, type RecordKey, type StringListToArrayOptions, type UUID, addDaysToDate, appendSemicolon, camelToKebab, convertFileToBase64, createFormData, fillArray, formatDateAndTime, getRandomNumber, getRecordKeys, httpErrorCodeLookup, interpolateObjects, isLeapYear, isMonthlyMultiple, isOrdered, isSameDate, kebabToCamel, omitProperties, parseEmail, parseEnv, parseIntStrict, parseUUID, randomiseArray, range, removeDuplicates, stringListToArray, stringToBoolean, truncate, wait };
package/dist/index.js CHANGED
@@ -283,6 +283,41 @@ function isOrdered(array) {
283
283
  }
284
284
  var isOrdered_default = isOrdered;
285
285
 
286
+ // src/functions/kebabToCamel.ts
287
+ function kebabToCamel(string, options) {
288
+ if (string !== string.toLowerCase()) {
289
+ throw new Error("INVALID_KEBAB_CASE_INPUT");
290
+ }
291
+ if (string.startsWith("-") || string.endsWith("-") || string.includes("--")) {
292
+ throw new Error("INVALID_KEBAB_CASE_INPUT");
293
+ }
294
+ let outputString = "";
295
+ let skip = false;
296
+ for (const stringIndex in [...string]) {
297
+ if (skip) {
298
+ skip = false;
299
+ continue;
300
+ }
301
+ const index = parseIntStrict_default(stringIndex);
302
+ if (index === 0 && (options == null ? void 0 : options.startWithUpper)) {
303
+ outputString += string[index].toUpperCase();
304
+ continue;
305
+ }
306
+ if (index === string.length - 1) {
307
+ outputString += string[index];
308
+ break;
309
+ }
310
+ if (string[index] === "-" && /^[a-zA-Z]+$/.test(string[index + 1])) {
311
+ outputString += string[index + 1].toUpperCase();
312
+ skip = true;
313
+ } else {
314
+ outputString += string[index];
315
+ }
316
+ }
317
+ return outputString;
318
+ }
319
+ var kebabToCamel_default = kebabToCamel;
320
+
286
321
  // src/functions/omitProperties.ts
287
322
  function omitProperties(object, keysToOmit) {
288
323
  const outputObject = __spreadValues({}, object);
@@ -465,6 +500,7 @@ export {
465
500
  isMonthlyMultiple_default as isMonthlyMultiple,
466
501
  isOrdered_default as isOrdered,
467
502
  isSameDate_default as isSameDate,
503
+ kebabToCamel_default as kebabToCamel,
468
504
  omitProperties_default as omitProperties,
469
505
  Email_default as parseEmail,
470
506
  Env_default as parseEnv,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alextheman/utility",
3
- "version": "2.15.0",
3
+ "version": "2.15.1",
4
4
  "description": "Helpful utility functions",
5
5
  "repository": {
6
6
  "type": "git",