Comparing version 1.18.0 to 1.19.0
@@ -828,2 +828,43 @@ /** | ||
declare type CaseInput = string | string[]; | ||
interface StringCaseHandler { | ||
toLowerCamelCase(input: CaseInput): string; | ||
toUpperCamelCase(input: CaseInput): string; | ||
toCamelCase(input: CaseInput, capitaliseFirst?: boolean): string; | ||
toLowerSlugCase(input: CaseInput): string; | ||
toUpperSlugCase(input: CaseInput): string; | ||
toSlugCase(input: CaseInput, toUpper?: boolean): string; | ||
toLowerSnakeCase(input: CaseInput): string; | ||
toUpperSnakeCase(input: CaseInput): string; | ||
toSnakeCase(input: CaseInput, toUpper?: boolean): string; | ||
toLowerSpaced(input: CaseInput): string; | ||
toUpperSpaced(input: CaseInput): string; | ||
toCapitalisedSpaced(input: CaseInput): string; | ||
toSpaced(input: CaseInput, toUpper?: boolean): string; | ||
toCharacterSeparated(input: CaseInput, char: string, toUpper?: boolean): string; | ||
} | ||
declare const StringUtils: { | ||
fromSlugCase: StringCaseHandler; | ||
fromSnakeCase: StringCaseHandler; | ||
fromSpaced: StringCaseHandler; | ||
fromCamelCase: StringCaseHandler; | ||
toLowerCamelCase(input: CaseInput): string; | ||
toUpperCamelCase(input: CaseInput): string; | ||
toCamelCase(input: CaseInput, capitaliseFirst?: boolean): string; | ||
toLowerSlugCase(input: CaseInput): string; | ||
toUpperSlugCase(input: CaseInput): string; | ||
toSlugCase(input: CaseInput, toUpper?: boolean): string; | ||
toLowerSnakeCase(input: CaseInput): string; | ||
toUpperSnakeCase(input: CaseInput): string; | ||
toSnakeCase(input: CaseInput, toUpper?: boolean): string; | ||
toLowerSpaced(input: CaseInput): string; | ||
toUpperSpaced(input: CaseInput): string; | ||
toCapitalisedSpaced(input: CaseInput): string; | ||
toSpaced(input: CaseInput, toUpper?: boolean): string; | ||
toCharacterSeparated(input: CaseInput, char: string, toUpper?: boolean): string; | ||
capitalise: (input?: string) => string; | ||
angloise: (input: string) => string; | ||
clean: (input?: string) => string; | ||
}; | ||
/** | ||
@@ -1801,2 +1842,2 @@ * symbols | ||
export { ArrayUtils, CENTURY, ColourUtils, CustomEntryDict, DAY, DECADE, DeferredPromise, HOUR, ITimer, KeysOnly, MILLENNIUM, MILLISECOND, MINUTE, MONTH, Numbered, ObjOfType, ObjectUtils, OfType, Partial$1 as Partial, ProgressBar, ProgressBarOptions, PromiseUtils, QueueManager, RemapOf, SECOND, TimeUtils, WEEK, YEAR, all, allLimit, allLimitObj, allObj, centuries, century, day, days, decade, decades, each, eachLimit, entries, everys, filters, fn, getDeferred, getProgressBar, getTimer, hour, hours, interval, map, mapLimit, maps, millennium, millenniums, milliseconds, minute, minutes, month, months, ms, partition, printLn, progressBar, queue, randomise, range, reduces, repeat, retry, retryOr, reverse, roll, second, seconds, sortByMapped, sortNumberedText, sorts, stopInterval, superscript, symbols, timer, times, tryOr, wait, waitEvery, waitFor, waitUntil, waiters, week, weeks, year, years, zip, zipMax }; | ||
export { ArrayUtils, CENTURY, CaseInput, ColourUtils, CustomEntryDict, DAY, DECADE, DeferredPromise, HOUR, ITimer, KeysOnly, MILLENNIUM, MILLISECOND, MINUTE, MONTH, Numbered, ObjOfType, ObjectUtils, OfType, Partial$1 as Partial, ProgressBar, ProgressBarOptions, PromiseUtils, QueueManager, RemapOf, SECOND, StringCaseHandler, StringUtils, TimeUtils, WEEK, YEAR, all, allLimit, allLimitObj, allObj, centuries, century, day, days, decade, decades, each, eachLimit, entries, everys, filters, fn, getDeferred, getProgressBar, getTimer, hour, hours, interval, map, mapLimit, maps, millennium, millenniums, milliseconds, minute, minutes, month, months, ms, partition, printLn, progressBar, queue, randomise, range, reduces, repeat, retry, retryOr, reverse, roll, second, seconds, sortByMapped, sortNumberedText, sorts, stopInterval, superscript, symbols, timer, times, tryOr, wait, waitEvery, waitFor, waitUntil, waiters, week, weeks, year, years, zip, zipMax }; |
@@ -36,2 +36,3 @@ var __defProp = Object.defineProperty; | ||
SECOND: () => SECOND, | ||
StringUtils: () => StringUtils, | ||
TimeUtils: () => TimeUtils, | ||
@@ -377,3 +378,3 @@ WEEK: () => WEEK, | ||
byProp: () => byProp, | ||
capitalise: () => capitalise, | ||
capitalise: () => capitalise2, | ||
ceilTo: () => ceilTo, | ||
@@ -477,2 +478,70 @@ clamp: () => clamp, | ||
// src/tools/StringUtils.ts | ||
var capitalise = (input = "") => (input || "").split(/\s/).map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()).join(" "); | ||
var angloise = (input) => input.normalize("NFD").replace(/[\u0300-\u036f]/g, ""); | ||
var clean = (input = "") => angloise([input].flat().join(" ")).replace(/\s{1,}/g, " ").replace(/[^A-Za-z0-9 ]/gi, ""); | ||
var caseHandler = (overrideSplitter) => { | ||
const getSplit = (input) => { | ||
if (overrideSplitter) | ||
return overrideSplitter(input); | ||
const arr = [input].flat(); | ||
return arr.map((s) => clean(s.replace(/-|_/g, " ")).split(" ")).flat(); | ||
}; | ||
const toCamelCase = (input, capitaliseFirst = false) => { | ||
const split = getSplit(input); | ||
return split.map((word, index) => index === 0 && !capitaliseFirst ? word.toLowerCase() : capitalise(word)).join(""); | ||
}; | ||
const toLowerCamelCase = (input) => toCamelCase(input, false); | ||
const toUpperCamelCase = (input) => toCamelCase(input, true); | ||
const toCharacterSeparated = (input, char, toUpper = false) => { | ||
const split = getSplit(input); | ||
return split.map((word, index) => toUpper ? word.toUpperCase() : word.toLowerCase()).join(char); | ||
}; | ||
const toSlugCase = (input, toUpper = false) => toCharacterSeparated(input, "-", toUpper); | ||
const toLowerSlugCase = (input) => toSlugCase(input, false); | ||
const toUpperSlugCase = (input) => toSlugCase(input, true); | ||
const toSnakeCase = (input, toUpper = false) => toCharacterSeparated(input, "_", toUpper); | ||
const toLowerSnakeCase = (input) => toSnakeCase(input, false); | ||
const toUpperSnakeCase = (input) => toSnakeCase(input, true); | ||
const toSpaced = (input, toUpper = false) => toCharacterSeparated(input, " ", toUpper); | ||
const toLowerSpaced = (input) => toSpaced(input, false); | ||
const toUpperSpaced = (input) => toSpaced(input, true); | ||
const toCapitalisedSpaced = (input) => capitalise(toSpaced(input, false)); | ||
return { | ||
toLowerCamelCase, | ||
toUpperCamelCase, | ||
toCamelCase, | ||
toLowerSlugCase, | ||
toUpperSlugCase, | ||
toSlugCase, | ||
toLowerSnakeCase, | ||
toUpperSnakeCase, | ||
toSnakeCase, | ||
toLowerSpaced, | ||
toUpperSpaced, | ||
toCapitalisedSpaced, | ||
toSpaced, | ||
toCharacterSeparated | ||
}; | ||
}; | ||
var standardCaseHandler = caseHandler(); | ||
var fromSlugCase = standardCaseHandler; | ||
var fromSnakeCase = standardCaseHandler; | ||
var fromSpaced = standardCaseHandler; | ||
var fromCamelCase = caseHandler( | ||
(input) => [input].flat().map((s) => clean(s)).map( | ||
(s) => s.replace(/([A-Z])/g, " $1").replace(/-|_/g, " ").trim() | ||
).map((s) => s.split(" ")).flat() | ||
); | ||
var StringUtils = { | ||
capitalise, | ||
angloise, | ||
clean, | ||
...standardCaseHandler, | ||
fromSlugCase, | ||
fromSnakeCase, | ||
fromSpaced, | ||
fromCamelCase | ||
}; | ||
// src/tools/fn.ts | ||
@@ -622,3 +691,6 @@ var noop = () => { | ||
var clamp = (value, a, b) => Math.max(Math.min(a, b), Math.min(value, Math.max(a, b))); | ||
var capitalise = (str) => str.split(/\s/).map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()).join(" "); | ||
var capitalise2 = (str) => { | ||
console.warn("fn.capitalise is deprecated, use StringUtils.capitalize instead"); | ||
return StringUtils.capitalise(str); | ||
}; | ||
@@ -897,3 +969,3 @@ // src/tools/progressBar.ts | ||
var filter = (obj, func) => Object.fromEntries(Object.entries(obj).filter(([key, value], index) => func(key, value, index))); | ||
var clean = (obj) => filter(obj, (key, value) => value !== void 0); | ||
var clean2 = (obj) => filter(obj, (key, value) => value !== void 0); | ||
var ObjectUtils = { | ||
@@ -904,3 +976,3 @@ map: map2, | ||
filter, | ||
clean | ||
clean: clean2 | ||
}; | ||
@@ -1333,2 +1405,3 @@ | ||
SECOND, | ||
StringUtils, | ||
TimeUtils, | ||
@@ -1335,0 +1408,0 @@ WEEK, |
{ | ||
"name": "swiss-ak", | ||
"version": "1.18.0", | ||
"version": "1.19.0", | ||
"author": "Jack Cannon <jackc@annon.co.uk> (http://c.annon.co.uk/)", | ||
@@ -5,0 +5,0 @@ "license": "MIT", |
@@ -11,2 +11,3 @@ export * from './tools/types'; | ||
export * from './tools/TimeUtils'; | ||
export * from './tools/StringUtils'; | ||
export * from './tools/symbols'; | ||
@@ -13,0 +14,0 @@ export * from './tools/queue'; |
import { range, zip } from './ArrayUtils'; | ||
import { StringUtils } from './StringUtils'; | ||
@@ -558,6 +559,5 @@ /** | ||
// TODO docs | ||
export const capitalise = (str: string): string => | ||
str | ||
.split(/\s/) | ||
.map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()) | ||
.join(' '); | ||
export const capitalise = (str: string): string => { | ||
console.warn('fn.capitalise is deprecated, use StringUtils.capitalize instead'); | ||
return StringUtils.capitalise(str); | ||
}; |
Sorry, the diff of this file is not supported yet
248908
24
7253