New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

@umatch/utils

Package Overview
Dependencies
Maintainers
1
Versions
116
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@umatch/utils - npm Package Compare versions

Comparing version
13.0.1
to
14.0.0
+97
./lib/index.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.isString = exports.isPrimitive = exports.isPlainObject = exports.isObject = exports.isNumber = exports.isNullOrUndefined = exports.isKeyOf = exports.isFunction = exports.isDate = exports.isBoolean = exports.isArray = void 0;
/**
* Returns whether obj is an array.
*
* Uses Array.isArray().
*/
function isArray(obj) {
return Array.isArray(obj);
}
exports.isArray = isArray;
/**
* Returns whether obj is a boolean.
*/
function isBoolean(obj) {
return typeof obj === 'boolean';
}
exports.isBoolean = isBoolean;
/**
* Returns whether obj is a Date.
*/
function isDate(obj) {
return obj?.constructor?.name === 'Date';
}
exports.isDate = isDate;
/**
* Returns whether obj is a function.
*/
// eslint-disable-next-line @typescript-eslint/ban-types
function isFunction(obj) {
return typeof obj === 'function';
}
exports.isFunction = isFunction;
/**
* Returns whether obj is a plain object.
*/
function isPlainObject(obj) {
if (!isObject(obj))
return false;
// if it has no constructor
if (obj.constructor === undefined)
return true;
// if it has modified prototype
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
const proto = obj.constructor.prototype;
if (!isObject(proto))
return false;
// if its constructor does not have an Object-specific method
return proto.hasOwnProperty('isPrototypeOf');
}
exports.isPlainObject = isPlainObject;
/**
* Returns whether key is a key of obj.
*/
function isKeyOf(obj, key) {
return key in obj;
}
exports.isKeyOf = isKeyOf;
/**
* Returns whether obj is null or undefined.
*/
function isNullOrUndefined(obj) {
return obj === null || obj === undefined;
}
exports.isNullOrUndefined = isNullOrUndefined;
/**
* Returns whether obj is a number.
*/
function isNumber(obj) {
return typeof obj === 'number';
}
exports.isNumber = isNumber;
/**
* Returns whether obj is NOT one of the primitive data types. It may
* still be any kind of object, including the instance of some class.
* To narrow this down to only plain objects, use [isPlainObject]{@link isPlainObject}.
*/
function isObject(obj) {
return Object.prototype.toString.call(obj) === '[object Object]';
}
exports.isObject = isObject;
/**
* Returns whether obj is a primitive data type.
*/
function isPrimitive(obj) {
return (isNullOrUndefined(obj) ||
['boolean', 'number', 'string', 'bigint'].includes(typeof obj));
}
exports.isPrimitive = isPrimitive;
/**
* Returns whether obj is a string.
*/
function isString(obj) {
return typeof obj === 'string';
}
exports.isString = isString;
+10
-10
import { type DeepArray, type Dictionary, type Merge, type ValueOf } from '../index';
import { type CamelToSnakeCase, type SnakeToCamelCase } from '../string';
import { type SnakeCase, type CamelCase } from '../string';
/**

@@ -13,6 +13,6 @@ * Copies an object and applies a function to all values. If keys is

/**
* Applies SnakeToCamelCase on the keys of an object.
* Applies camelCase on the keys of an object.
*/
type SnakeToCamelCaseKeys<T extends Dictionary> = {
[K in keyof T as SnakeToCamelCase<K & string>]: T[K];
type CamelCaseKeys<T extends Dictionary> = {
[K in keyof T as CamelCase<K & string>]: T[K];
};

@@ -22,3 +22,3 @@ /**

*/
declare function camelCaseKeys<T extends Dictionary>(obj: T): SnakeToCamelCaseKeys<T>;
declare function camelCaseKeys<T extends Dictionary>(obj: T): CamelCaseKeys<T>;
/**

@@ -164,6 +164,6 @@ * Returns a deep clone of the object.

/**
* Applies CamelToSnakeCase on the keys of an object.
* Applies snake_case on the keys of an object.
*/
type CamelToSnakeCaseKeys<T extends Dictionary> = {
[K in keyof T as CamelToSnakeCase<K & string>]: T[K];
type SnakeCaseKeys<T extends Dictionary> = {
[K in keyof T as SnakeCase<K & string>]: T[K];
};

@@ -173,3 +173,3 @@ /**

*/
declare function snakeCaseKeys<T extends Dictionary>(obj: T): CamelToSnakeCaseKeys<T>;
declare function snakeCaseKeys<T extends Dictionary>(obj: T): SnakeCaseKeys<T>;
/**

@@ -191,3 +191,3 @@ * Similar to JSON.stringify(), but optionally pads entries between

}, inheritedIndent?: string): string;
export { apply, camelCaseKeys, deepClone, deepMap, extract, getDeepProperty, hasOwnProperty, isDeepEmpty, merge, omit, pick, rename, setDeepProperty, snakeCaseKeys, stringify, type CamelToSnakeCaseKeys, type DeepEmpty, type SnakeToCamelCaseKeys, };
export { apply, camelCaseKeys, deepClone, deepMap, extract, getDeepProperty, hasOwnProperty, isDeepEmpty, merge, omit, pick, rename, setDeepProperty, snakeCaseKeys, stringify, type CamelCaseKeys, type DeepEmpty, type SnakeCaseKeys, };
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/object/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EAEd,KAAK,UAAU,EACf,KAAK,KAAK,EACV,KAAK,OAAO,EACb,MAAM,UAAU,CAAC;AAClB,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,WAAW,CAAC;AAEnB;;;GAGG;AACH,iBAAS,KAAK,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,IAAI,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EACvE,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAC5B,IAAI,CAAC,EAAE,IAAI,GACV,IAAI,SAAS,SAAS,GACrB;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC;CAAE,GACrB;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAc1D;;GAEG;AACH,KAAK,oBAAoB,CAAC,CAAC,SAAS,UAAU,IAAI;KAC/C,CAAC,IAAI,MAAM,CAAC,IAAI,gBAAgB,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrD,CAAC;AAEF;;GAEG;AACH,iBAAS,aAAa,CAAC,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAK9E;;;;;;GAMG;AACH,iBAAS,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AAiBjC;;;GAGG;AACH,iBAAS,OAAO,CAAC,KAAK,EAAE,CAAC,SAAS,SAAS,CAAC,KAAK,CAAC,EAChD,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,GAC3B,CAAC,CAEH;AAED;;;;;;;;;;GAUG;AACH,iBAAS,OAAO,CACd,KAAK,CAAC,CAAC,SAAS,UAAU,EAC1B,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,EACpB,KAAK,CAAC,OAAO,SACT;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAC3B;IAAE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAA;CAAE,GACjC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GACpC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,EAExC,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,OAAO,GACf,CAAC,SAAS,UAAU,GACnB,OAAO,SAAS;IAAE,MAAM,EAAE,MAAM,MAAM,CAAA;CAAE,GACtC;IACE;SACG,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,EAAE,GAC5D,OAAO,SAAS;YAAE,MAAM,EAAE,KAAK,CAAA;SAAE,GAC/B,GAAG,GACH,IAAI,GACN,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;KACnB;IACD;SACG,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,GACzD,KAAK,GACL,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;KACjB;CACF,GACD,OAAO,SAAS;IAAE,MAAM,EAAE,MAAM,MAAM,CAAA;CAAE,GACxC;IACE;SACG,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,SAAS,GAAG,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,EAAE,GAC5D,OAAO,SAAS;YAAE,MAAM,EAAE,KAAK,CAAA;SAAE,GAC/B,GAAG,GACH,IAAI,GACN,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;KACnB;IACD;SACG,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,GAAG,MAAM,EAAE,GACzD,KAAK,GACL,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;KACjB;CACF,GACD,OAAO,SAAS;IAAE,IAAI,EAAE,SAAS,CAAC,EAAE,CAAA;CAAE,GACtC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GACxB,OAAO,SAAS;IAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;CAAE,GAClD,CAAC;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CAAE,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,GAC1D,OAAO,SAAS;IAAE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAA;CAAE,GACjD,CAAC;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CAAE,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,GAC1D,KAAK,GACP,UAAU,CAAC;AAoEf;;;;;;GAMG;AACH,iBAAS,eAAe,CACtB,GAAG,EAAE,UAAU,GAAG,SAAS,OAAO,EAAE,EACpC,GAAG,EAAE,MAAM,EACX,GAAG,SAAM,GACR,OAAO,CAWT;AAED;;GAEG;AACH,iBAAS,cAAc,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,EAC9C,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,CAAC,GACN,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAG/B;AAED;;;GAGG;AACH,KAAK,SAAS,GAAG;IACf,CAAC,GAAG,EAAE,WAAW,GAAG,EAAE,GAAG,SAAS,EAAE,GAAG,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC;CAC/E,CAAC;AAEF;;GAEG;AACH,iBAAS,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,SAAS,CAanD;AAoBD;;;;;;;;GAQG;AACH,iBAAS,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,EACjD,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,CAAC,EACT,QAAQ,CAAC,EAAE,UAAU,GAAG,QAAQ,GAC/B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAgBf;;GAEG;AACH,iBAAS,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAM5E;;;;;GAKG;AACH,iBAAS,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAM5E;;GAEG;AACH,iBAAS,MAAM,CACb,CAAC,EACD,KAAK,CAAC,MAAM,SAAS;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM;CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,EAE1E,GAAG,EAAE,CAAC,EACN,MAAM,EAAE,MAAM,GACb,MAAM,SAAS,UAAU,CAAC,MAAM,CAAC,GAChC;KACG,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,MAAM,GAC7D,MAAM,CAAC,CAAC,CAAC,GACT,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACb,GACD;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC;AAiBhC;;;;;;;;GAQG;AACH,iBAAS,eAAe,CACtB,GAAG,EAAE,UAAU,GAAG,SAAS,OAAO,EAAE,EACpC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,EACd,GAAG,SAAM,GACR,OAAO,CAsBT;AAED;;GAEG;AACH,KAAK,oBAAoB,CAAC,CAAC,SAAS,UAAU,IAAI;KAC/C,CAAC,IAAI,MAAM,CAAC,IAAI,gBAAgB,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrD,CAAC;AAEF;;GAEG;AACH,iBAAS,aAAa,CAAC,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAsB9E;;;;;;;;;;GAUG;AACH,iBAAS,SAAS,CAChB,GAAG,EAAE,UAAU,GAAG,SAAS,OAAO,EAAE,EACpC,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,EACpE,eAAe,SAAK,GACnB,MAAM,CAyBR;AAED,OAAO,EACL,KAAK,EACL,aAAa,EACb,SAAS,EACT,OAAO,EACP,OAAO,EACP,eAAe,EACf,cAAc,EACd,WAAW,EACX,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,eAAe,EACf,aAAa,EACb,SAAS,EACT,KAAK,oBAAoB,EACzB,KAAK,SAAS,EACd,KAAK,oBAAoB,GAC1B,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/object/index.ts"],"names":[],"mappings":"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"}

@@ -218,7 +218,27 @@ import { type ForegroundColor } from 'chalk';

/**
* Converts a string from snake to camel case.
* Returns the last letter of a string.
*/
type SnakeToCamelCase<S extends string, Acc extends string = ''> = S extends `${infer H}_${infer T}` ? SnakeToCamelCase<Capitalize<T>, `${Acc}${H}`> : S extends `${infer H}${infer T}` ? SnakeToCamelCase<T, `${Acc}${H}`> : Acc;
type LastLetter<S extends string, Previous extends string = ''> = S extends `${infer First}${infer Rest}` ? Rest extends '' ? S : LastLetter<Rest, First> : Previous;
/**
* Converts a string to camelCase.
*/
type CamelCase<S extends string, Acc extends string = ''> = S extends `${infer First}${infer Rest}` ? Acc extends '' ? CamelCase<Rest, Lowercase<First>> : First extends '_' | ' ' | '-' ? CamelCase<Capitalize<Rest>, Acc> : CamelCase<Rest, `${Acc}${First}`> : Acc;
/**
* Converts a string to PascalCase.
*/
type PascalCase<S extends string, Acc extends string = ''> = S extends `${infer First}${infer Rest}` ? Acc extends '' ? PascalCase<Rest, Uppercase<First>> : First extends '_' | ' ' | '-' ? PascalCase<Capitalize<Rest>, Acc> : PascalCase<Rest, `${Acc}${First}`> : Acc;
/**
* Converts a string to Sentence case.
*/
type SentenceCase<S extends string, Acc extends string = ''> = S extends `${infer First}${infer Rest}` ? Acc extends '' ? SentenceCase<Rest, Uppercase<First>> : First extends '_' | ' ' | '-' ? SentenceCase<Rest, `${Acc} `> : First extends Uppercase<First> ? LastLetter<Acc> extends ' ' ? SentenceCase<Rest, `${Acc}${Lowercase<First>}`> : SentenceCase<Rest, `${Acc} ${Lowercase<First>}`> : SentenceCase<Rest, `${Acc}${First}`> : Acc;
/**
* Converts a string to snake_case.
*/
type SnakeCase<S extends string, Acc extends string = ''> = S extends `${infer First}${infer Rest}` ? Acc extends '' ? SnakeCase<Rest, Lowercase<First>> : First extends '_' | ' ' | '-' ? SnakeCase<Capitalize<Rest>, `${Acc}_`> : First extends Uppercase<First> ? LastLetter<Acc> extends '_' ? SnakeCase<Rest, `${Acc}${Lowercase<First>}`> : SnakeCase<Rest, `${Acc}_${Lowercase<First>}`> : SnakeCase<Rest, `${Acc}${First}`> : Acc;
/**
* Converts a string to Title Case.
*/
type TitleCase<S extends string, Acc extends string = ''> = S extends `${infer First}${infer Rest}` ? Acc extends '' ? TitleCase<Rest, Uppercase<First>> : First extends '_' | ' ' | '-' ? TitleCase<Capitalize<Rest>, `${Acc} `> : First extends Uppercase<First> ? LastLetter<Acc> extends ' ' ? TitleCase<Rest, `${Acc}${First}`> : TitleCase<Rest, `${Acc} ${First}`> : TitleCase<Rest, `${Acc}${First}`> : Acc;
/**
* Converts a string to camelCase.
*

@@ -229,5 +249,5 @@ * *Warning*: the whole string is considered as one, so if you want to

*/
declare function camelCase<S extends string>(str: S): SnakeToCamelCase<S>;
declare function camelCase<S extends string>(str: S): CamelCase<S>;
/**
* Converts a string to camelCase.
* Converts a string to PascalCase.
*

@@ -238,15 +258,8 @@ * *Warning*: the whole string is considered as one, so if you want to

*/
declare function pascalCase(str: string): string;
declare function pascalCase<S extends string>(str: S): PascalCase<S>;
/**
* Converts a string to Sentence case.
*/
declare function sentenceCase(str: string): string;
declare function sentenceCase<S extends string>(str: S): SentenceCase<S>;
/**
* Converts a string from camel to snake case.
*
* Iterates one letter at a time, keeping the result in an
* accumulator and consecutive uppercase letters in a buffer.
*/
type CamelToSnakeCase<S extends string, Acc extends string = '', Buffer extends string = ''> = S extends `${infer First}${infer Rest}` ? CamelToSnakeCase<Rest, First extends Uppercase<First> ? Rest extends `${infer Second}${infer _}` ? Second extends Lowercase<Second> ? JoinNonEmpty<[Acc, Buffer, Lowercase<First>], '_'> : Acc : JoinNonEmpty<[Acc, Buffer, Lowercase<First>], '_'> : `${Acc}${First}`, First extends Uppercase<First> ? `${Buffer}${Lowercase<First>}` : ''> : Acc & string;
/**
* Converts a string to snake_case.

@@ -258,3 +271,3 @@ *

*/
declare function snakeCase<S extends string>(str: S): CamelToSnakeCase<S>;
declare function snakeCase<S extends string>(str: S): SnakeCase<S>;
/**

@@ -265,7 +278,7 @@ * Converts a string to Title Case.

*
* @param {string} str
* @param {string[]} [skipWords] Words to skip. Default: english skip words (articles, prepositions, etc.)
* @param str
* @param [skipWords] Words to skip. Default: english skip words (articles, prepositions, etc.)
*/
declare function titleCase(str: string, skipWords?: readonly string[]): string;
export { basicPluralizer, capitalize, center, formatStr, formatTime, getCountDown, join, joinNonEmpty, joinUrl, pad, parseBool, parseFunctionCall, parseNumber, removeAccents, rsplit, split, uncapitalize, camelCase, pascalCase, sentenceCase, snakeCase, titleCase, type CamelToSnakeCase, type DateTimeDict, type JoinNonEmpty, type Pluralizer, type Replace, type SnakeToCamelCase, type Trim, type Unquote, };
declare function titleCase<S extends string>(str: S, skipWords?: readonly string[]): TitleCase<S>;
export { basicPluralizer, capitalize, center, formatStr, formatTime, getCountDown, join, joinNonEmpty, joinUrl, pad, parseBool, parseFunctionCall, parseNumber, removeAccents, rsplit, split, uncapitalize, type DateTimeDict, type JoinNonEmpty, type LastLetter, type Pluralizer, type Replace, type Trim, type Unquote, camelCase, pascalCase, sentenceCase, snakeCase, titleCase, type CamelCase, type PascalCase, type SentenceCase, type SnakeCase, type TitleCase, };
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/string/index.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/string/index.ts"],"names":[],"mappings":"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"}

@@ -198,2 +198,4 @@ "use strict";

function join(parts, and = '&') {
if (!parts.length)
return '';
const firstParts = parts.slice(0, -1);

@@ -448,4 +450,2 @@ const lastPart = parts.slice(-1)[0];

const _camelCase = toCase(uncapitalize, capitalize, '');
const _pascalCase = toCase(capitalize, capitalize, '');
const _snakeCase = toCase(uncapitalize, uncapitalize, '_');
/**

@@ -462,4 +462,5 @@ * Converts a string to camelCase.

exports.camelCase = camelCase;
const _pascalCase = toCase(capitalize, capitalize, '');
/**
* Converts a string to camelCase.
* Converts a string to PascalCase.
*

@@ -474,2 +475,3 @@ * *Warning*: the whole string is considered as one, so if you want to

exports.pascalCase = pascalCase;
const _sentenceCase = toCase(capitalize, uncapitalize, ' ');
/**

@@ -479,6 +481,6 @@ * Converts a string to Sentence case.

function sentenceCase(str) {
const [first, ...rest] = str.split(/(\s)/);
return [capitalize(first), ...rest.map(uncapitalize)].join('');
return _sentenceCase(str);
}
exports.sentenceCase = sentenceCase;
const _snakeCase = toCase(uncapitalize, uncapitalize, '_');
/**

@@ -523,10 +525,9 @@ * Converts a string to snake_case.

*
* @param {string} str
* @param {string[]} [skipWords] Words to skip. Default: english skip words (articles, prepositions, etc.)
* @param str
* @param [skipWords] Words to skip. Default: english skip words (articles, prepositions, etc.)
*/
function titleCase(str, skipWords = ENGLISH_SKIP_WORDS) {
const otherWordsFunction = (word) => skipWords.includes(word.toLowerCase()) ? word : capitalize(word);
const [first, ...rest] = str.split(/(\s)/);
return [capitalize(first), ...rest.map(otherWordsFunction)].join('');
return toCase(capitalize, otherWordsFunction, ' ')(str);
}
exports.titleCase = titleCase;
{
"name": "@umatch/utils",
"version": "13.0.1",
"version": "14.0.0",
"description": "Math, array, string, object &amp; time-related functions and types.",

@@ -5,0 +5,0 @@ "author": "Gabriel Okamoto <gabrielokamoto@hotmail.com>",

@@ -13,8 +13,3 @@ import {

} from '../index';
import {
camelCase,
snakeCase,
type CamelToSnakeCase,
type SnakeToCamelCase,
} from '../string';
import { camelCase, snakeCase, type SnakeCase, type CamelCase } from '../string';

@@ -46,6 +41,6 @@ /**

/**
* Applies SnakeToCamelCase on the keys of an object.
* Applies camelCase on the keys of an object.
*/
type SnakeToCamelCaseKeys<T extends Dictionary> = {
[K in keyof T as SnakeToCamelCase<K & string>]: T[K];
type CamelCaseKeys<T extends Dictionary> = {
[K in keyof T as CamelCase<K & string>]: T[K];
};

@@ -56,3 +51,3 @@

*/
function camelCaseKeys<T extends Dictionary>(obj: T): SnakeToCamelCaseKeys<T>;
function camelCaseKeys<T extends Dictionary>(obj: T): CamelCaseKeys<T>;
function camelCaseKeys(obj: Dictionary): Dictionary {

@@ -428,6 +423,6 @@ return rename(obj, camelCase);

/**
* Applies CamelToSnakeCase on the keys of an object.
* Applies snake_case on the keys of an object.
*/
type CamelToSnakeCaseKeys<T extends Dictionary> = {
[K in keyof T as CamelToSnakeCase<K & string>]: T[K];
type SnakeCaseKeys<T extends Dictionary> = {
[K in keyof T as SnakeCase<K & string>]: T[K];
};

@@ -438,3 +433,3 @@

*/
function snakeCaseKeys<T extends Dictionary>(obj: T): CamelToSnakeCaseKeys<T>;
function snakeCaseKeys<T extends Dictionary>(obj: T): SnakeCaseKeys<T>;
function snakeCaseKeys(obj: Dictionary): Dictionary {

@@ -519,5 +514,5 @@ return rename(obj, snakeCase);

stringify,
type CamelToSnakeCaseKeys,
type CamelCaseKeys,
type DeepEmpty,
type SnakeToCamelCaseKeys,
type SnakeCaseKeys,
};

@@ -285,2 +285,4 @@ import chalk, { type Chalk, type ForegroundColor } from 'chalk';

function join(parts: readonly string[], and = '&'): string {
if (!parts.length) return '';
const firstParts = parts.slice(0, -1);

@@ -567,19 +569,98 @@ const lastPart = parts.slice(-1)[0];

const _camelCase = toCase(uncapitalize, capitalize, '');
const _pascalCase = toCase(capitalize, capitalize, '');
const _snakeCase = toCase(uncapitalize, uncapitalize, '_');
/**
* Returns the last letter of a string.
*/
type LastLetter<
S extends string,
Previous extends string = '',
> = S extends `${infer First}${infer Rest}`
? Rest extends ''
? S
: LastLetter<Rest, First>
: Previous;
/**
* Converts a string from snake to camel case.
* Converts a string to camelCase.
*/
type SnakeToCamelCase<
type CamelCase<
S extends string,
Acc extends string = '',
> = S extends `${infer H}_${infer T}`
? SnakeToCamelCase<Capitalize<T>, `${Acc}${H}`>
: S extends `${infer H}${infer T}`
? SnakeToCamelCase<T, `${Acc}${H}`>
> = S extends `${infer First}${infer Rest}`
? Acc extends ''
? CamelCase<Rest, Lowercase<First>>
: First extends '_' | ' ' | '-'
? CamelCase<Capitalize<Rest>, Acc>
: CamelCase<Rest, `${Acc}${First}`>
: Acc;
/**
* Converts a string to PascalCase.
*/
type PascalCase<
S extends string,
Acc extends string = '',
> = S extends `${infer First}${infer Rest}`
? Acc extends ''
? PascalCase<Rest, Uppercase<First>>
: First extends '_' | ' ' | '-'
? PascalCase<Capitalize<Rest>, Acc>
: PascalCase<Rest, `${Acc}${First}`>
: Acc;
/**
* Converts a string to Sentence case.
*/
type SentenceCase<
S extends string,
Acc extends string = '',
> = S extends `${infer First}${infer Rest}`
? Acc extends ''
? SentenceCase<Rest, Uppercase<First>>
: First extends '_' | ' ' | '-'
? SentenceCase<Rest, `${Acc} `>
: First extends Uppercase<First>
? LastLetter<Acc> extends ' '
? SentenceCase<Rest, `${Acc}${Lowercase<First>}`>
: SentenceCase<Rest, `${Acc} ${Lowercase<First>}`>
: SentenceCase<Rest, `${Acc}${First}`>
: Acc;
/**
* Converts a string to snake_case.
*/
type SnakeCase<
S extends string,
Acc extends string = '',
> = S extends `${infer First}${infer Rest}`
? Acc extends ''
? SnakeCase<Rest, Lowercase<First>>
: First extends '_' | ' ' | '-'
? SnakeCase<Capitalize<Rest>, `${Acc}_`>
: First extends Uppercase<First>
? LastLetter<Acc> extends '_'
? SnakeCase<Rest, `${Acc}${Lowercase<First>}`>
: SnakeCase<Rest, `${Acc}_${Lowercase<First>}`>
: SnakeCase<Rest, `${Acc}${First}`>
: Acc;
/**
* Converts a string to Title Case.
*/
type TitleCase<
S extends string,
Acc extends string = '',
> = S extends `${infer First}${infer Rest}`
? Acc extends ''
? TitleCase<Rest, Uppercase<First>>
: First extends '_' | ' ' | '-'
? TitleCase<Capitalize<Rest>, `${Acc} `>
: First extends Uppercase<First>
? LastLetter<Acc> extends ' '
? TitleCase<Rest, `${Acc}${First}`>
: TitleCase<Rest, `${Acc} ${First}`>
: TitleCase<Rest, `${Acc}${First}`>
: Acc;
const _camelCase = toCase(uncapitalize, capitalize, '');
/**
* Converts a string to camelCase.

@@ -591,8 +672,9 @@ *

*/
function camelCase<S extends string>(str: S): SnakeToCamelCase<S> {
return _camelCase(str) as SnakeToCamelCase<S>;
function camelCase<S extends string>(str: S): CamelCase<S> {
return _camelCase(str) as CamelCase<S>;
}
const _pascalCase = toCase(capitalize, capitalize, '');
/**
* Converts a string to camelCase.
* Converts a string to PascalCase.
*

@@ -603,41 +685,16 @@ * *Warning*: the whole string is considered as one, so if you want to

*/
function pascalCase(str: string): string {
return _pascalCase(str);
function pascalCase<S extends string>(str: S): PascalCase<S> {
return _pascalCase(str) as PascalCase<S>;
}
const _sentenceCase = toCase(capitalize, uncapitalize, ' ');
/**
* Converts a string to Sentence case.
*/
function sentenceCase(str: string): string {
const [first, ...rest] = str.split(/(\s)/);
return [capitalize(first), ...rest.map(uncapitalize)].join('');
function sentenceCase<S extends string>(str: S): SentenceCase<S> {
return _sentenceCase(str) as SentenceCase<S>;
}
const _snakeCase = toCase(uncapitalize, uncapitalize, '_');
/**
* Converts a string from camel to snake case.
*
* Iterates one letter at a time, keeping the result in an
* accumulator and consecutive uppercase letters in a buffer.
*/
type CamelToSnakeCase<
S extends string,
Acc extends string = '',
Buffer extends string = '',
> = S extends `${infer First}${infer Rest}`
? CamelToSnakeCase<
Rest,
First extends Uppercase<First>
? Rest extends `${infer Second}${infer _}`
? Second extends Lowercase<Second>
? JoinNonEmpty<[Acc, Buffer, Lowercase<First>], '_'>
: Acc
: JoinNonEmpty<[Acc, Buffer, Lowercase<First>], '_'>
: `${Acc}${First}`,
// if the first letter is uppercase, add it to the buffer,
// otherwise reset the buffer
First extends Uppercase<First> ? `${Buffer}${Lowercase<First>}` : ''
>
: Acc & string;
/**
* Converts a string to snake_case.

@@ -649,4 +706,4 @@ *

*/
function snakeCase<S extends string>(str: S): CamelToSnakeCase<S> {
return _snakeCase(str) as CamelToSnakeCase<S>;
function snakeCase<S extends string>(str: S): SnakeCase<S> {
return _snakeCase(str) as SnakeCase<S>;
}

@@ -682,14 +739,13 @@

*
* @param {string} str
* @param {string[]} [skipWords] Words to skip. Default: english skip words (articles, prepositions, etc.)
* @param str
* @param [skipWords] Words to skip. Default: english skip words (articles, prepositions, etc.)
*/
function titleCase(
str: string,
function titleCase<S extends string>(
str: S,
skipWords: readonly string[] = ENGLISH_SKIP_WORDS,
): string {
): TitleCase<S> {
const otherWordsFunction = (word: string) =>
skipWords.includes(word.toLowerCase()) ? word : capitalize(word);
const [first, ...rest] = str.split(/(\s)/);
return [capitalize(first), ...rest.map(otherWordsFunction)].join('');
return toCase(capitalize, otherWordsFunction, ' ')(str) as TitleCase<S>;
}

@@ -715,2 +771,9 @@

uncapitalize,
type DateTimeDict,
type JoinNonEmpty,
type LastLetter,
type Pluralizer,
type Replace,
type Trim,
type Unquote,
// case functions

@@ -722,10 +785,7 @@ camelCase,

titleCase,
type CamelToSnakeCase,
type DateTimeDict,
type JoinNonEmpty,
type Pluralizer,
type Replace,
type SnakeToCamelCase,
type Trim,
type Unquote,
type CamelCase,
type PascalCase,
type SentenceCase,
type SnakeCase,
type TitleCase,
};