@fastkit/helpers
Version:
A small collection of helper implementations for processing primitive values and objects.
1 lines • 46.7 kB
Source Map (JSON)
{"version":3,"sources":["../src/runtime-flags.ts","../src/func.ts","../src/number.ts","../src/delay.ts","../src/promise.ts","../src/string.ts","../src/set.ts","../src/map.ts","../src/regexp.ts","../src/array.ts","../src/object.ts","../src/object-id.ts","../src/buffer.ts","../src/date.ts","../src/general.ts","../src/defaults.ts"],"names":[],"mappings":"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","file":"helpers.mjs","sourcesContent":["/**\n * A {@link Window} instance exists globally at runtime\n */\nexport const IN_WINDOW: boolean = typeof window !== 'undefined';\n\n/**\n * A {@link Document} instance exists globally at runtime\n */\nexport const IN_DOCUMENT: boolean = typeof document !== 'undefined';\n","/* eslint-disable @typescript-eslint/ban-types */\n\n/**\n * If the specified type is a function, the function type is returned; otherwise, the function type with the specified return type is returned.\n */\nexport type NormalizeFuncType<T> = T extends (...args: any) => any\n ? T\n : () => T;\n\n/**\n * Value types that can be replaced with functions\n */\nexport type FunctionableValue<T, ARGS extends any[]> = T extends Function\n ? never\n : T | ((...args: ARGS) => T);\n\n/**\n * Resolve functions and replaceable values as values\n * @param source - Value types that can be replaced with functions\n * @param args - List of arguments required by the function\n * @returns Resolved Value\n */\nexport function resolveFunctionableValue<T, ARGS extends any[]>(\n source: FunctionableValue<T, ARGS>,\n ...args: ARGS\n): T extends Function ? never : T {\n return typeof source === 'function' ? source(...args) : source;\n}\n\n/**\n * Generate a resolver function to resolve values that can be replaced with functions\n * @param args - List of arguments required by the function\n * @returns Resolver function\n */\nresolveFunctionableValue.build = function build<ARGS extends any[]>(\n ...args: ARGS\n): <T>(source: FunctionableValue<T, ARGS>) => T extends Function ? never : T {\n return (source) => resolveFunctionableValue(source, ...args);\n};\n","/**\n * Returns an integer of the given value\n *\n * @param value - Numbers or their strings\n * @returns Integer\n */\nexport function toInt(value: string | number): number {\n return typeof value === 'number' ? Math.trunc(value) : parseInt(value, 10);\n}\n\n/**\n * Returns a floating-point value of the given value\n *\n * @param value - Numbers or their strings\n * @returns floating-point value\n */\nexport function toFloat(value: string | number): number {\n return typeof value === 'number' ? value : parseFloat(value);\n}\n\n/**\n * Returns the specified value normalized to number\n *\n * @param value - Numbers or their strings\n * @returns number\n */\nexport function toNumber(source: any): number {\n return typeof source === 'number' ? source : Number(source);\n}\n","/**\n * Obtains a Promise instance that will be resolved after the specified time\n * @param milliseconds - Delay time(millisecond)\n * @returns Promise Instance\n */\nexport function delay(milliseconds: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, milliseconds));\n}\n","/**\n * Verify that the specified value is an object compatible with Promise\n *\n * @param source - Value to be tested\n * @returns `true` if compatible with Promise\n */\nexport function isPromise<T = any>(obj: any): obj is Promise<T> {\n return (\n !!obj &&\n (typeof obj === 'object' || typeof obj === 'function') &&\n typeof obj.then === 'function'\n );\n}\n","/** Checks if value is string */\nexport function isString(source: unknown): source is string {\n return typeof source === 'string' || source instanceof String;\n}\n\n/** Escapes empty-like values (`null`, `undefined`) to empty string */\nexport function nilToEmptyString(source?: string | null): string {\n return source == null ? '' : source;\n}\n\nconst FULL_WIDTH_SYMBOL_RE = /[!-~]/g;\n\n// eslint-disable-next-line no-irregular-whitespace\nconst FULL_WIDTH_SPACE_RE = / /g;\n\nconst REMOVE_SPACE_RE = /[\\s\\t]/g;\n\n/**\n * Remove all spaces and tab characters\n *\n * @param source - String to be converted\n * @returns A string with spaces removed.\n */\nexport const removeSpace = (source: string | null | undefined): string =>\n nilToEmptyString(source).replace(REMOVE_SPACE_RE, '');\n\n/**\n * Convert string to lowercase\n *\n * The target includes full-width alphanumeric characters, symbols, and whitespace characters.\n *\n * @param source - String to be converted\n * @returns Converted string\n */\nexport function toHalfWidth(source: string | null | undefined) {\n return nilToEmptyString(source)\n .replace(FULL_WIDTH_SYMBOL_RE, (_source) =>\n String.fromCharCode(_source.charCodeAt(0) - 0xfee0),\n )\n .replace(FULL_WIDTH_SPACE_RE, ' ');\n}\n\n/**\n * Convert all consecutive spaces to single space\n * @param source - String to be converted\n * @returns Converted string\n */\nexport function toSingleSpace(source: string | null | undefined) {\n return nilToEmptyString(source).replace(/([\\s]+)/g, (m) => m.charAt(0));\n}\n\n/**\n * Obtains a string with the first letter of the specified string capitalized\n *\n * - `\"helloWorld\"` -> `\"HelloWorld\"`\n *\n * @param str - String of conversion source\n * @returns String with first letter converted to uppercase\n */\nexport function capitalize<T extends string>(str: T): Capitalize<T> {\n return (str.charAt(0).toUpperCase() + str.slice(1)) as Capitalize<T>;\n}\n\n/**\n * Obtains a string with the first letter of the specified string in lowercase.\n *\n * - `\"HelloWorld\"` -> `\"helloWorld\"`\n *\n * @param str - String of conversion source\n * @returns String with first letter converted to lowercase\n */\nexport function uncapitalize<T extends string>(str: T): Uncapitalize<T> {\n return (str.charAt(0).toLowerCase() + str.slice(1)) as Uncapitalize<T>;\n}\n\nconst INDENT_MATCH_RE = /^[ \\t]*(?=\\S)/gm;\n\n/**\n * Ignore blank lines and get the number of indent characters in the line with the lowest number of leading spaces\n *\n * @param str - String to get indentation\n * @returns Minimum indent character count\n */\nexport function minIndent(str: string): number {\n const match = str.match(INDENT_MATCH_RE);\n\n if (!match) {\n return 0;\n }\n\n return match.reduce((r, a) => Math.min(r, a.length), Infinity);\n}\n\nconst STRIP_INDENT_UNNECESSARY_LINE_MATCH_RE = /(^\\n+|\\n\\s+$)/g;\n\n/**\n * Obtain a string with the minimum number of indent characters removed\n *\n * @remarks This method trims unnecessary lines (newlines, whitespace only) before and after. This process can be disabled with `retainUnnecessaryLines`\n *\n * @param str - String to remove indentation\n * @param retainUnnecessaryLines - Retain unnecessary lines\n * @returns String with normalized indentation\n */\nexport function stripIndent(\n str: string,\n retainUnnecessaryLines?: boolean,\n): string {\n if (!retainUnnecessaryLines) {\n str = str.replace(STRIP_INDENT_UNNECESSARY_LINE_MATCH_RE, '');\n }\n\n const indent = minIndent(str);\n\n if (indent === 0) {\n return str;\n }\n\n const regex = new RegExp(`^[ \\\\t]{${indent}}`, 'gm');\n\n return str.replace(regex, '');\n}\n","const HAS_SET = typeof Set !== 'undefined';\n\n/**\n * Checks if the given value is a `Set` instance\n * @param source - Value to be tested\n * @returns `true` if it is an instance of `Set`.\n */\nexport function isSet<T>(source: unknown): source is Set<T> {\n return HAS_SET && source instanceof Set;\n}\n","const HAS_MAP = typeof Map !== 'undefined';\n\n/**\n * Checks if the given value is a `Map` instance\n * @param source - Value to be tested\n * @returns `true` if it is an instance of `Map`.\n */\nexport function isMap<K, V>(source: unknown): source is Map<K, V> {\n return HAS_MAP && source instanceof Map;\n}\n","/** Escapes regular expression control chars */\nexport function escapeRegExp(str: string): string {\n return str.replace(/([.*+?^=!:${}()|[\\]/\\\\])/g, '\\\\$1');\n}\n","import { RecursiveArray } from '@fastkit/ts-type-utils';\n\n/**\n * Converting a recursive array to a flat array\n *\n * @param source - Recursive Arrays\n * @returns - Flattened array\n */\nexport function flattenRecursiveArray<T>(source: RecursiveArray<T>): T[] {\n const results: T[] = [];\n if (!Array.isArray(source)) {\n results.push(source);\n } else {\n for (const row of source) {\n results.push(...flattenRecursiveArray(row));\n }\n }\n return results;\n}\n\n/**\n * Remove any element from an array\n *\n * @mutable\n *\n * @param array - Array\n * @param entry - Element to be deleted\n */\nexport function arrayRemove<T>(array: T[], entry: T) {\n const index = array.indexOf(entry);\n if (index !== -1) {\n array.splice(index, 1);\n }\n}\n\n/**\n * Generate a range array with a specified number of ranges\n *\n * @param length - number of elements\n * @param offset - starting value\n * @returns range array\n */\nexport function range(length: number, offset = 0): number[] {\n return Array.from(Array(length), (v, k) => k + offset);\n}\n\n/**\n * Obtain a unique array with duplicate values removed from the specified array\n *\n * @param array - Array\n * @returns Array with duplicates removed\n */\nexport function arrayUnique<T>(array: T[]): T[] {\n return Array.from(new Set(array));\n}\n","import { arrayUnique } from './array';\n\n/**\n * Checks if the specified variable is a not Nullable.\n *\n * @param value - Variables to be examined\n *\n * @returns\n * - `null` -> `false`\n * - `undefined` -> `false`\n * - `0` -> `true`\n * - `1` -> `true`\n * - `\"\"` -> `true`\n * - `\"0\"` -> `true`\n * - `{}` -> `true`\n * - `[]` -> `true`\n */\nexport function inNonNullable<T>(\n value: T,\n): value is Exclude<T, null | undefined> {\n return value != null;\n}\n\n/**\n * Checks if the specified variable is a NonNull object.\n *\n * @param value - Variables to be examined\n *\n * @returns\n * - `null` -> `false`\n * - `1` -> `false`\n * - `\"1\"` -> `false`\n * - `{}` -> `true`\n * - `[]` -> `true`\n * - `new Date()` -> `true`\n * - `new RegExp()` -> `true`\n * - `new SomeClass()` -> `true`\n */\nexport function isNonNullObject<\n T extends Record<string, unknown> = Record<string, unknown>,\n>(value: unknown): value is T {\n return !!value && typeof value === 'object';\n}\n\n/**\n * Checks if the specified variable is a derived instance of the `Object` class.\n *\n * @param value - Variables to be examined\n * @returns\n * - `null` -> `false`\n * - `1` -> `false`\n * - `\"1\"` -> `false`\n * - `{}` -> `true`\n * - `[]` -> `false`\n * - `new Date()` -> `false`\n * - `new RegExp()` -> `false`\n * - `new SomeClass()` -> `true`\n * - `new (class SomeClass extends ParentClass {})()` -> `true`\n * - `new (class SomeClass extends Array {})()` -> `false`\n */\nexport function isObject<\n T extends Record<string, unknown> = Record<string, unknown>,\n>(value: unknown): value is T {\n return Object.prototype.toString.call(value) === '[object Object]';\n}\n\n/**\n * Checks if the specified variable is a direct instance of the `Object` class.\n *\n * @param value - Variables to be examined\n * @returns\n * - `null` -> `false`\n * - `1` -> `false`\n * - `\"1\"` -> `false`\n * - `{}` -> `true`\n * - `[]` -> `false`\n * - `new Date()` -> `false`\n * - `new RegExp()` -> `false`\n * - `new SomeClass()` -> `false`\n */\nexport function isPlainObject<\n T extends Record<string, unknown> = Record<string, unknown>,\n>(value: unknown): value is T {\n if (!isObject(value)) return false;\n\n // If has modified constructor\n const ctor = value.constructor;\n if (value.constructor === undefined) return true;\n\n // If has modified prototype\n const prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n // eslint-disable-next-line no-prototype-builtins\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\n// cloned from https://github.com/epoberezkin/fast-deep-equal with small changes\nexport function objectIncludes(b: any, a: any): boolean {\n if (a === b) return true;\n\n const arrA = Array.isArray(a);\n const arrB = Array.isArray(b);\n let i: number;\n\n if (arrA && arrB) {\n // eslint-disable-next-line eqeqeq\n if (a.length != b.length) return false;\n for (i = 0; i < a.length; i++)\n if (!objectIncludes(a[i], b[i])) return false;\n return true;\n }\n\n // eslint-disable-next-line eqeqeq\n if (arrA != arrB) return false;\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n const dateA = a instanceof Date;\n const dateB = b instanceof Date;\n // eslint-disable-next-line eqeqeq\n if (dateA && dateB) return a.getTime() == b.getTime();\n // eslint-disable-next-line eqeqeq\n if (dateA != dateB) return false;\n\n const regexpA = a instanceof RegExp;\n const regexpB = b instanceof RegExp;\n // eslint-disable-next-line eqeqeq\n if (regexpA && regexpB) return a.toString() == b.toString();\n // eslint-disable-next-line eqeqeq\n if (regexpA != regexpB) return false;\n\n const keys = Object.keys(a);\n // if (keys.length !== Object.keys(b).length) return false;\n\n for (i = 0; i < keys.length; i++)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = 0; i < keys.length; i++)\n if (!objectIncludes(b[keys[i]], a[keys[i]])) return false;\n\n return true;\n }\n if (a && b && typeof a === 'function' && typeof b === 'function') {\n return a.toString() === b.toString();\n }\n\n return false;\n}\n\n/**\n * Returns `true` if it is a iterable object\n * */\nexport function isIterableObject<T = any>(source?: any): source is Iterable<T> {\n return (\n Array.isArray(source) ||\n (source &&\n typeof source === 'object' &&\n source.constructor.name === 'Object') ||\n false\n );\n}\n\n/**\n * @see https://github.com/vuejs/vue-router/blob/c69ff7bd60228fb79acd764c3fdae91015a49103/src/util/route.js#L96\n */\n// eslint-disable-next-line default-param-last\nexport function isObjectEqual<T>(a: T = {} as T, b: unknown): b is T {\n // handle null value #1566\n if (!a || !b) return a === b;\n if (!isObject(b)) return false;\n const aKeys = Object.keys(a as any);\n const bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n return aKeys.every((key) => {\n const aVal = (a as any)[key];\n const bVal = b[key];\n // query values can be null and undefined\n if (aVal == null || bVal == null) return aVal === bVal;\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal);\n }\n return String(aVal) === String(bVal);\n });\n}\n\nexport function objectFromArray<R, K extends string | number | symbol, T>(\n rows: R[] | readonly R[],\n cb: (row: R, index: number) => [K, T],\n): Record<K, T> {\n const entries = new Map(rows.map((row, index) => cb(row, index)));\n return Object.fromEntries(entries) as Record<K, T>;\n}\n\nobjectFromArray.build =\n <R, T>(rows: R[] | readonly R[]) =>\n // eslint-disable-next-line no-shadow\n <K extends string | number | symbol, T>(\n cb: (row: R, index: number) => [K, T],\n ) =>\n objectFromArray(rows, cb);\n\n/**\n * To obtain an object with all undefined properties completely removed from the specified object.\n *\n * @param obj - object\n * @param deep - Recursively delete undefined properties\n * @returns Objects with undefined properties already deleted\n */\nexport function removeUndef<T extends Record<string, any>>(\n obj: T,\n deep = false,\n): T {\n return Object.keys(obj).reduce((result, key) => {\n let value: any = obj[key];\n if (value !== undefined) {\n if (deep && value && typeof value === 'object') {\n value = removeUndef(value, true);\n }\n (result as any)[key] = value;\n }\n return result;\n }, {}) as T;\n}\n\nexport function mapFromObjectArray<\n T extends Record<keyof any, any>,\n K extends keyof T,\n>(array: T[], key: K): Record<T[K], T> {\n return array.reduce(\n (prev, current) => {\n prev[current[key]] = current;\n return prev;\n },\n {} as Record<T[K], T>,\n );\n}\n\n/**\n * To obtain a new object that extracts properties corresponding to specified keys from the given object\n *\n * @param obj - Source object for extraction\n * @param props - List of property names to extract\n * @param includesUndefined - Extract `undefined` values as well?\n * @returns Extracted objects\n */\nexport function pickProperties<\n T extends Record<keyof any, any>,\n K extends keyof T,\n>(obj: T, props: K[], includesUndefined?: boolean): Pick<T, K> {\n const results = {} as Pick<T, K>;\n for (const prop of props) {\n const value = obj[prop];\n if (includesUndefined || value !== undefined) {\n results[prop] = value;\n }\n }\n return results;\n}\n\n/**\n * Retrieve a new object by removing the property corresponding to the specified key from the given object\n *\n * @param obj - Source object\n * @param props - List of property names to be removed\n * @param excludeUndefined - After performing the removal, further undefined properties can be removed or\n * @returns Objects with specified properties already removed\n */\nexport function omitProperties<\n T extends Record<keyof any, any>,\n K extends keyof T,\n>(obj: T, props: K[], excludeUndefined?: boolean): Omit<T, K> {\n const results = {\n ...obj,\n } as Omit<T, K>;\n for (const prop of props) {\n delete (results as any)[prop];\n }\n return excludeUndefined ? removeUndef(results) : results;\n}\n\nexport type Mixin<T extends object, U extends object> = Omit<T, keyof U> & U;\n\n/**\n * Returns a Proxy instance that mixes in the specified trait object for the given base object\n *\n * @param base - Base object\n * @param trait - trait object\n * @returns Mixed-in Proxy\n */\nexport function mixin<T extends object, U extends object>(\n base: T,\n trait: U,\n): Mixin<T, U> {\n const proxy = new Proxy(base, {\n get: (_target, propertyKey, receiver) => {\n const target = Reflect.has(trait, propertyKey) ? trait : _target;\n return Reflect.get(target, propertyKey, receiver);\n },\n set: (_target, propertyKey, newValue, receiver) => {\n const target = Reflect.has(trait, propertyKey) ? trait : _target;\n return Reflect.set(target, propertyKey, newValue, receiver);\n },\n has: (target, propertyKey) =>\n Reflect.has(trait, propertyKey) || Reflect.has(target, propertyKey),\n ownKeys: (target) =>\n arrayUnique([...Reflect.ownKeys(target), ...Reflect.ownKeys(trait)]),\n getOwnPropertyDescriptor: (target, propertyKey) =>\n Reflect.getOwnPropertyDescriptor(trait, propertyKey) ||\n Reflect.getOwnPropertyDescriptor(base, propertyKey),\n }) as any;\n return proxy;\n}\n\ntype UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (\n k: infer I,\n) => void\n ? I\n : never;\n\nexport type Mixins<T extends object, R> =\n R extends Array<infer U>\n ? Mixins<T, UnionToIntersection<U>>\n : R extends object\n ? Mixin<T, R>\n : never;\n\n/**\n * Obtain a Proxy instance mixed with multiple objects as mixins.\n *\n * @param base - Base object\n * @param traits - trait objects\n * @returns Mixed-in Proxy\n */\nexport function mixins<T extends object, R extends object[]>(\n base: T,\n ...traits: R\n): Mixins<T, R> {\n const targets = [base, ...traits].reverse();\n const proxy = new Proxy(base, {\n get: (_target, propertyKey, receiver) => {\n const target =\n targets.find((t) => Reflect.has(t, propertyKey)) || _target;\n return Reflect.get(target, propertyKey, receiver);\n },\n set: (_target, propertyKey, newValue, receiver) => {\n const target =\n targets.find((t) => Reflect.has(t, propertyKey)) || _target;\n return Reflect.set(target, propertyKey, newValue, receiver);\n },\n has: (_target, propertyKey) =>\n targets.some((target) => Reflect.has(target, propertyKey)),\n ownKeys: (_target) =>\n arrayUnique(targets.map((target) => Reflect.ownKeys(target)).flat()),\n getOwnPropertyDescriptor: (_target, propertyKey) => {\n for (const target of targets) {\n const descriptor = Reflect.getOwnPropertyDescriptor(\n target,\n propertyKey,\n );\n if (descriptor) return descriptor;\n }\n },\n }) as any;\n return proxy;\n}\n","import { IN_WINDOW } from './runtime-flags';\n\nlet _currentId = 0;\n\nconst _getNextId = (): number => {\n _currentId++;\n if (_currentId > Number.MAX_SAFE_INTEGER) {\n _currentId = 1;\n }\n return _currentId;\n};\n\nconst _cache = new WeakMap<WeakKey, number>();\n\n/**\n * Retrieve a temporary ID for a given object reference.\n *\n * This function creates an ID that corresponds to a given object reference.\n * The ID is not guaranteed to be globally unique and may have duplicates if\n * a large number of IDs are generated within a single process.\n *\n * @param obj - The object for which the temporary ID is generated.\n * @param onlyClient - If `true` is specified, it will return undefined in the server environment.\n * @returns A temporary ID corresponding to the object reference.\n */\nexport function temporaryObjectID<OnlyClient extends boolean = false>(\n obj: WeakKey,\n onlyClient?: OnlyClient,\n): OnlyClient extends true ? number | undefined : number {\n if (onlyClient && !IN_WINDOW) return undefined as any;\n\n let id = _cache.get(obj);\n if (id === undefined) {\n id = _getNextId();\n _cache.set(obj, id);\n }\n return id;\n}\n","/** Does the Buffer class exist in the Global space? */\nconst HAS_BUFFER = typeof Buffer !== 'undefined';\n\n/** Does the ArrayBuffer class exist in the Global space? */\nconst HAS_ARRAY_BUFFER = typeof ArrayBuffer !== 'undefined';\n\n/**\n * Check if the argument value is a Buffer instance\n * @param source - Value to be checked\n * @returns true if it is a Buffer instance\n */\nexport function isBuffer(source: unknown): source is Buffer {\n return HAS_BUFFER && source instanceof Buffer;\n}\n\n/**\n * Check if the argument value is a ArrayBufferView instance\n * @param source - Value to be checked\n * @returns true if it is a ArrayBufferView instance\n */\nexport function isArrayBufferView(source: unknown): source is ArrayBufferView {\n return HAS_ARRAY_BUFFER && ArrayBuffer.isView(source);\n}\n\n/**\n * Buffer, and duplicate the ArrayBufferView to get a new Buffer\n * @param cur - Buffer from which to duplicate\n * @returns Copied buffer\n */\nexport function copyBuffer(cur: Buffer | ArrayBufferView) {\n if (isBuffer(cur)) {\n return Buffer.from(cur);\n }\n return Buffer.from(cur.buffer.slice(0), cur.byteOffset, cur.byteLength);\n}\n","/**\n * Type of value that can be a source value to create a Date instance.\n */\nexport type DateSource = number | string | Date;\n\n/**\n * Date, or get epoch milliseconds from its source value\n * @param source - {@link DateSource Date source}\n * @returns epoch millisecond\n */\nexport function safeGetTimeByDateSource(source: DateSource) {\n if (typeof source === 'number') return source;\n if (typeof source === 'string') {\n source = new Date(source);\n }\n return source.getTime();\n}\n\n/**\n * Date, or normalize its source value to Date\n * @param source - {@link DateSource Date source}\n * @returns Date Instance\n */\nexport function toDate(source: number | string | Date): Date {\n return source instanceof Date ? source : new Date(source);\n}\n\n/**\n * List of date input precision\n */\nexport const DATE_INPUT_PRECISIONS = [\n 'month',\n 'date',\n 'datetime-local',\n] as const;\n\n/**\n * Date input precision\n * @see {@link DATE_INPUT_PRECISIONS}\n */\nexport type DateInputPrecision = (typeof DATE_INPUT_PRECISIONS)[number];\n\nexport const DATE_INPUT_PARSE_RE =\n /^(\\d{4})-(\\d{2})(-(\\d{2})(T(\\d{2}):(\\d{2}))?)?$/;\n\n/**\n * Date input parse results\n */\nexport type ParseDateInputResult =\n | {\n precision: 'datetime-local';\n year: string;\n month: string;\n date: string;\n hours: string;\n minutes: string;\n source: string;\n }\n | {\n precision: 'date';\n year: string;\n month: string;\n date: string;\n hours?: undefined;\n minutes?: undefined;\n source: string;\n }\n | {\n precision: 'month';\n year: string;\n month: string;\n date?: undefined;\n hours?: undefined;\n minutes?: undefined;\n source: string;\n };\n\n/**\n * Parse a date/time string to obtain individual values\n *\n * @param source - {@link DATE_INPUT_PARSE_RE ISO 8601-like date/time string}\n * @returns Date input parse results (null if not parsed)\n *\n * @see {@link ParseDateInputResult}\n */\nexport function parseDateInput(source: string): ParseDateInputResult | null {\n let result: ParseDateInputResult | null = null;\n const matched = source.match(DATE_INPUT_PARSE_RE);\n if (matched) {\n const year = matched[1];\n const month = matched[2];\n const date = matched[4];\n const hours = matched[6];\n const minutes = matched[7];\n if (hours && minutes) {\n result = {\n precision: 'datetime-local',\n year,\n month,\n date,\n hours,\n minutes,\n source,\n };\n } else if (date) {\n result = {\n precision: 'date',\n year,\n month,\n date,\n source,\n };\n } else if (year && month) {\n result = {\n precision: 'month',\n year,\n month,\n source,\n };\n }\n }\n return result;\n}\n","/**\n * Checks if the specified value is empty-like\n *\n * - For arrays, check length\n * - `false`, `null`, `undefined`, `\"\"` is considered value is empty\n */\nexport function isEmpty(value: any): boolean {\n if (typeof value === 'function') return false;\n return value == null || value === false || value.length === 0;\n}\n\n/**\n * Get the first non-empty-like value from the specified array\n *\n * @param args - Array to be searched\n */\nexport function notEmptyValue<T>(args: T[]): NonNullable<T> | undefined;\n\n/**\n * Get the first non-empty-like value from the specified array\n * @param args - Array to be searched\n * @param defaultValue - Default value if value not found\n */\nexport function notEmptyValue<T>(\n args: T[],\n defaultValue: NonNullable<T>,\n): NonNullable<T>;\n\nexport function notEmptyValue<T>(args: T[], defaultValue?: NonNullable<T>) {\n for (const arg of args) {\n if (!isEmpty(arg)) {\n return arg;\n }\n }\n return defaultValue;\n}\n","import { WritableKeysOf } from '@fastkit/ts-type-utils';\nimport { isNonNullObject } from './object';\n\ninterface AnyObject {\n [key: string | number | symbol]: any;\n}\n\nexport type DefaultsSchemeSource<V> =\n V extends Array<infer U>\n ? U extends AnyObject\n ?\n | [DefaultsScheme<U>]\n | [DefaultsScheme<U>, (notObject: unknown) => Partial<U> | void]\n : [() => U[]]\n : V extends AnyObject\n ? DefaultsScheme<V>\n : () => V;\n\nexport type DefaultsScheme<T> = {\n [K in WritableKeysOf<T>]?: DefaultsSchemeSource<T[K]>;\n};\n\nexport const MERGE_DEFAULTS_INDEX_SIGNATURE_SYMBOL = Symbol(\n 'MERGE_DEFAULTS_INDEX_SIGNATURE',\n);\n\nfunction getIndexSignatureScheme(\n scheme: unknown,\n): DefaultsSchemeSource<any> | undefined {\n if (!scheme || Array.isArray(scheme) || typeof scheme !== 'object') {\n return;\n }\n\n const symbols = Object.getOwnPropertySymbols(scheme);\n if (symbols.some((s) => s === MERGE_DEFAULTS_INDEX_SIGNATURE_SYMBOL)) {\n return (scheme as any)[MERGE_DEFAULTS_INDEX_SIGNATURE_SYMBOL];\n }\n}\n\nexport function createIndexSignatureDefaultsScheme<T>(\n scheme: DefaultsSchemeSource<T>,\n) {\n return {\n [MERGE_DEFAULTS_INDEX_SIGNATURE_SYMBOL]: scheme,\n };\n}\n\nexport function mergeDefaults<T>(base: T, scheme: DefaultsScheme<T>): T {\n const indexSignatureScheme = getIndexSignatureScheme(scheme);\n if (indexSignatureScheme) {\n const baseKeys = Object.keys(base as any); // @FIXME\n const _scheme: any = {};\n baseKeys.forEach((key) => {\n _scheme[key] = indexSignatureScheme;\n });\n return mergeDefaults(base, _scheme as any);\n }\n\n const keys = Object.keys(scheme) as (keyof T)[];\n for (const key of keys) {\n const source = (scheme as any)[key];\n if (!source) {\n continue;\n }\n if (typeof source === 'function') {\n if (base[key] === undefined) {\n base[key] = source() as T[typeof key];\n }\n } else if (Array.isArray(source)) {\n const schemeOrFn = source[0] as DefaultsScheme<any> | (() => any);\n if (!base[key] || !Array.isArray(base[key])) {\n base[key] = [] as any;\n }\n\n const bucket = base[key] as unknown as any[];\n\n if (typeof schemeOrFn === 'function' && !bucket.length) {\n bucket.push(...schemeOrFn());\n }\n\n if (typeof schemeOrFn === 'object') {\n const fallbackFn = (source as any)[1] as unknown as\n | ((notObject: unknown) => any)\n | undefined;\n const newItems: any[] = [];\n bucket.forEach((row) => {\n if (!row || typeof row !== 'object') {\n if (fallbackFn) {\n row = fallbackFn(row);\n if (row === undefined) {\n return;\n }\n } else {\n return;\n }\n }\n newItems.push(mergeDefaults(row, schemeOrFn));\n });\n base[key] = newItems as any;\n }\n } else {\n if (!isNonNullObject(base[key])) {\n base[key] = {} as any;\n }\n base[key] = mergeDefaults(base[key], source as any);\n }\n }\n return base;\n}\n"]}