@heyform-inc/utils 1.0.8 → 1.0.9
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.d.mts +32 -19
- package/dist/index.d.ts +32 -19
- package/dist/index.js +145 -117
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +129 -117
- package/dist/index.mjs.map +1 -1
- package/package.json +75 -71
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/helper.ts","../src/type.ts","../src/bytes.ts","../src/clone.ts","../src/color.ts","../src/conv.ts","../src/hs.ts","../src/date.ts","../src/mime.ts","../src/nanoid.ts","../src/object.ts","../src/parse.ts","../src/qs.ts","../src/random.ts","../src/slugify.ts","../src/uuid.ts"],"names":["type","red","green","blue","alpha","regx","parse","RandomType"],"mappings":"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","sourcesContent":["export * from 'deep-object-diff'\nexport * from './bytes'\nexport * from './clone'\nexport * from './color'\nexport * from './conv'\nexport * from './date'\nexport { default as helper } from './helper'\nexport * from './hs'\nexport * from './mime'\nexport * from './nanoid'\nexport * from './object'\nexport * from './parse'\nexport { default as qs } from './qs'\nexport * from './random'\nexport * from './slugify'\nexport * from './type'\nexport * from './uuid'\n","import visUUID from 'validator/lib/isUUID'\r\nimport visFQDN from 'validator/lib/isFQDN'\r\nimport { default as visNumeric, IsNumericOptions } from 'validator/lib/isNumeric'\r\nimport { default as visEmail, IsEmailOptions } from 'validator/lib/isEmail'\r\nimport { default as visURL, IsURLOptions } from 'validator/lib/isURL'\r\n\r\nimport { type } from './type'\r\n\r\n/* @ts-ignore */\r\nconst whiteSpaceRegx =\r\n /^[\\s\\f\\n\\r\\t\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0]+$/\r\n\r\nexport const isUUID = visUUID\r\nexport const isFQDN = visFQDN\r\n\r\nexport function isBoolean(arg: any): boolean {\r\n return type(arg) === 'boolean'\r\n}\r\n\r\nexport function isString(arg: any): boolean {\r\n return type(arg) === 'string'\r\n}\r\n\r\nexport function isNumber(arg: any): boolean {\r\n return type(arg) === 'number'\r\n}\r\n\r\nexport const isArray = Array.isArray\r\n\r\nexport function isValidArray(arg: any): boolean {\r\n return isArray(arg) && arg.length > 0\r\n}\r\n\r\nexport function isNan(arg: any): boolean {\r\n return isNumber(arg) && Number.isNaN(arg)\r\n}\r\n\r\nexport function isSet(arg: any): boolean {\r\n return type(arg) === 'set'\r\n}\r\n\r\nexport function isWeakSet(arg: any): boolean {\r\n return type(arg) === 'weakset'\r\n}\r\n\r\nexport function isMap(arg: any): boolean {\r\n return type(arg) === 'map'\r\n}\r\n\r\nexport function isWeakMap(arg: any): boolean {\r\n return type(arg) === 'weakmap'\r\n}\r\n\r\nexport function isSymbol(arg: any): boolean {\r\n return type(arg) === 'symbol'\r\n}\r\n\r\nexport function isObject(arg: any): boolean {\r\n return type(arg) === 'object'\r\n}\r\n\r\nexport function isDate(arg: any): boolean {\r\n return type(arg) === 'date'\r\n}\r\n\r\nexport function isRegExp(arg: any): boolean {\r\n return type(arg) === 'regexp'\r\n}\r\n\r\nexport function isError(arg: any): boolean {\r\n return type(arg) === 'error'\r\n}\r\n\r\nexport function isFunction(arg: any): boolean {\r\n return type(arg) === 'function'\r\n}\r\n\r\nexport function isNull(arg: any): boolean {\r\n return type(arg) === 'null'\r\n}\r\n\r\nexport function isUndefined(arg: any): boolean {\r\n return type(arg) === 'undefined'\r\n}\r\n\r\nexport function isNil(arg: any): boolean {\r\n return isNull(arg) || isUndefined(arg)\r\n}\r\n\r\nexport function isPlainObject(arg: any): boolean {\r\n if (!isObject(arg)) return false\r\n\r\n const ctor = arg.constructor\r\n if (typeof ctor !== 'function') return false\r\n\r\n const proto = ctor.prototype\r\n if (!isObject(proto)) return false\r\n\r\n return proto.hasOwnProperty('isPrototypeOf')\r\n}\r\n\r\nexport function isEmpty(arg: any): boolean {\r\n if (isNil(arg)) return true\r\n\r\n if (isBoolean(arg)) return false\r\n\r\n if (isNumber(arg)) return false\r\n\r\n if (isString(arg)) {\r\n return arg.length === 0 || whiteSpaceRegx.test(arg)\r\n }\r\n\r\n if (isFunction(arg) || isArray(arg)) {\r\n return arg.length === 0\r\n }\r\n\r\n switch (type(arg)) {\r\n case 'file':\r\n case 'map':\r\n case 'weakmap':\r\n case 'set':\r\n case 'weakset': {\r\n return arg.size === 0\r\n }\r\n\r\n case 'object': {\r\n for (const key in arg) {\r\n if (Object.hasOwnProperty.call(arg, key)) return false\r\n }\r\n return true\r\n }\r\n\r\n default:\r\n break\r\n }\r\n\r\n return false\r\n}\r\n\r\nexport function isValid(arg: any): boolean {\r\n return !isEmpty(arg)\r\n}\r\n\r\nexport function isEqual(arg1: any, arg2: any): boolean {\r\n return String(arg1) === String(arg2)\r\n}\r\n\r\nexport function isTrue(arg1: any): boolean {\r\n return arg1 === true || arg1 === 'true' || isEqual(arg1, '1')\r\n}\r\n\r\nexport function isFalse(arg1: any): boolean {\r\n return arg1 === false || arg1 === 'false' || isEqual(arg1, '0')\r\n}\r\n\r\nexport function isBool(arg: any): boolean {\r\n return isTrue(arg) || isFalse(arg)\r\n}\r\n\r\nexport function isFormData(arg: any): boolean {\r\n return type(arg) === 'formdata'\r\n}\r\n\r\nexport function uniqueArray(arg: any): any[] {\r\n if (!isValidArray(arg)) {\r\n return []\r\n }\r\n return Array.from(new Set(arg))\r\n}\r\n\r\nexport function isNumeric(arg: any, options?: IsNumericOptions): boolean {\r\n return isNumber(arg) || (isString(arg) && visNumeric(arg, options))\r\n}\r\n\r\nexport function isURL(arg: any, options?: IsURLOptions): boolean {\r\n return isValid(arg) && isString(arg) && visURL(arg, options)\r\n}\r\n\r\nexport function isEmail(arg: any, options?: IsEmailOptions): boolean {\r\n return isValid(arg) && isString(arg) && visEmail(arg, options)\r\n}\r\n\r\nexport default {\r\n isUUID,\r\n isFQDN,\r\n isBoolean,\r\n isString,\r\n isNumber,\r\n isNumeric,\r\n isArray,\r\n isValidArray,\r\n isNan,\r\n isSet,\r\n isMap,\r\n isSymbol,\r\n isObject,\r\n isDate,\r\n isRegExp,\r\n isError,\r\n isFunction,\r\n isNull,\r\n isUndefined,\r\n isNil,\r\n isPlainObject,\r\n isEmpty,\r\n isValid,\r\n isEqual,\r\n isTrue,\r\n isFalse,\r\n isBool,\r\n isURL,\r\n isEmail,\r\n isFormData,\r\n uniqueArray\r\n}\r\n","const toString = Object.prototype.toString\n\nexport function type(obj: any): string {\n if (obj === null) {\n return 'null'\n }\n\n let type: string = typeof obj\n\n if (type !== 'object') {\n return type\n }\n\n type = toString.call(obj).slice(8, -1)\n\n const typeLower = type.toLowerCase()\n\n if (typeLower !== 'object') {\n if (\n typeLower === 'number' ||\n typeLower === 'boolean' ||\n typeLower === 'string'\n ) {\n return type\n }\n return typeLower\n }\n\n return typeLower\n}\n","import { isEmpty } from './helper'\n\nconst BYTE = 1\nconst KB = BYTE * 1024\nconst MB = KB * 1024\nconst GB = MB * 1024\nconst TB = GB * 1024\nconst PB = TB * 1024\nconst regx = /^(-?(?:\\d+)?\\.?\\d+)(b|kb|mb|gb|tb|pb)$/i\n\nexport function parseBytes(value: string | number): number | undefined {\n if (isEmpty(value)) {\n return\n }\n\n const str = String(value)\n const matches = str.match(regx)\n\n if (!matches) {\n return\n }\n\n const num = parseFloat(matches[1])\n const type = matches[2].toLowerCase()\n\n switch (type) {\n case 'pb':\n return num * PB\n\n case 'tb':\n return num * TB\n\n case 'gb':\n return num * GB\n\n case 'mb':\n return num * MB\n\n case 'kb':\n return num * KB\n\n case 'b':\n return num * BYTE\n }\n}\n\nexport function bytes(size: string): number | undefined {\n return parseBytes(size)\n}\n\nexport function formatBytes(value: string | number): string {\n const mag = Math.abs(Number(value))\n let unit: string\n let size: number | string\n\n if (mag >= PB) {\n unit = 'PB'\n size = mag / PB\n } else if (mag >= TB) {\n unit = 'TB'\n size = mag / TB\n } else if (mag >= GB) {\n unit = 'GB'\n size = mag / GB\n } else if (mag >= MB) {\n unit = 'MB'\n size = mag / MB\n } else if (mag >= KB) {\n unit = 'KB'\n size = mag / KB\n } else {\n unit = 'B'\n size = mag / BYTE\n }\n\n if (String(size).includes('.')) {\n size = size.toFixed(1)\n }\n\n return size + unit\n}\n","import _clone from 'clone'\n\nexport function clone<T>(obj: T): T {\n return _clone(obj)\n}\n","import { isEmpty } from './helper'\n\nconst HEX_REGEX = /^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i\nconst RGBA_REGEX =\n /rgba\\((\\d{1,3}%?),\\s*(\\d{1,3}%?),\\s*(\\d{1,3}%?),\\s*(\\d*(?:\\.\\d+)?)\\)/i\nconst RGB_REGEX = /rgb\\((\\d{1,3}%?),\\s*(\\d{1,3}%?),\\s*(\\d{1,3}%?)\\)/i\n\nexport function isHexColor(color: string): boolean {\n return HEX_REGEX.test(color)\n}\n\nexport function isRgba(color: string): boolean {\n return RGBA_REGEX.test(color)\n}\n\nexport function isRgb(color: string): boolean {\n return RGB_REGEX.test(color)\n}\n\nexport function hexToRgb(hex: string): number[] {\n if (isEmpty(hex)) {\n return []\n }\n\n if (isRgba(hex)) {\n // @ts-ignore\n const [, red, green, blue, alpha] = RGBA_REGEX.exec(hex)\n return [Number(red), Number(green), Number(blue), Number(alpha)]\n }\n\n if (isRgb(hex)) {\n // @ts-ignore\n const [, red, green, blue] = RGB_REGEX.exec(hex)\n return [Number(red), Number(green), Number(blue), 1]\n }\n\n if (!isHexColor(hex)) {\n return []\n }\n\n hex = hex.replace(/^#/, '')\n\n if (hex.length === 3) {\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2]\n }\n\n let alpha = 1\n if (hex.length === 8) {\n alpha = hexToFloatAlpha(hex.slice(6, 8))\n hex = hex.slice(0, 6)\n }\n\n const number = Number.parseInt(hex, 16)\n const red = number >> 16\n const green = (number >> 8) & 255\n const blue = number & 255\n\n return [red, green, blue, alpha]\n}\n\nexport function isDarkColor(hex: string): boolean {\n if (!isHexColor(hex)) {\n return true\n }\n return colorBrightness(hex) < 170\n}\n\nexport function isLightColor(hex: string): boolean {\n return !isDarkColor(hex)\n}\n\nexport function colorBrightness(hex: string): number {\n const [red, green, blue, alpha] = hexToRgb(hex)\n return (alpha * (red * 299 + green * 587 + blue * 114)) / 1000\n}\n\nexport function rgbToHex([r, g, b]: number[]): string {\n return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)\n}\n\nexport function alpha(hex: string, alpha: number): string {\n const [red, green, blue] = hexToRgb(hex)\n return `rgba(${red}, ${green}, ${blue}, ${alpha})`\n}\n\nexport function lighten(hex: string, alpha: number): string {\n return rgbToHex(alphaHexToRgb(hex, 1 - alpha, '#fff'))\n}\n\nexport function darken(hex: string, alpha: number): string {\n return rgbToHex(alphaHexToRgb(hex, 1 - alpha, '#010101'))\n}\n\nexport function invert(hex: string): string {\n const [red, green, blue] = hexToRgb(hex)\n return rgbToHex([255 - red, 255 - green, 255 - blue])\n}\n\n/**\n * Convert rgba to a transparency-adjusted-hex\n * https://stackoverflow.com/a/15898886\n */\nexport function alphaHexToRgb(\n hex: string,\n alpha: number,\n backgroundHex: string\n): number[] {\n const hexRgb = hexToRgb(hex)\n const backgroundRgb = hexToRgb(backgroundHex)\n\n return hexRgb.map((color, index) => {\n return colorRange(\n Math.floor(\n colorRange(color) * alpha +\n colorRange(backgroundRgb[index]) * (1 - alpha)\n )\n )\n })\n}\n\nfunction colorRange(color: number): number {\n return color < 1 ? 1 : color >= 255 ? 255 : color\n}\n\nfunction hexToFloatAlpha(arg: string) {\n const num = parseInt(arg, 16)\n const max = parseInt('0xff', 16)\n return Number((num / max).toFixed(2))\n}\n","import { isEmpty, isTrue, isBoolean } from './helper'\n\nexport function toBool(value: unknown, defaults?: boolean): boolean {\n if (isEmpty(value)) {\n return defaults || false\n }\n\n if (isBoolean(value)) {\n return value as boolean\n }\n\n return isTrue(value)\n}\n","import { isEmpty } from './helper'\n\nconst second = 1\nconst minute = second * 60\nconst hour = minute * 60\nconst day = hour * 24\nconst week = day * 7\nconst year = day * 365\nconst regx = /^(-?(?:\\d+)?\\.?\\d+)(s|m|h|d|w|y)$/i\n\nfunction parse(arg: string): number | undefined {\n if (isEmpty(arg)) {\n return\n }\n\n const str = String(arg)\n const matches = str.match(regx)\n\n if (!matches) {\n return\n }\n\n const num = parseFloat(matches[1])\n const type = matches[2].toLowerCase()\n\n switch (type) {\n case 'y':\n return num * year\n\n case 'w':\n return num * week\n\n case 'd':\n return num * day\n\n case 'h':\n return num * hour\n\n case 'm':\n return num * minute\n\n case 's':\n return num * second\n }\n}\n\nexport function hs(arg: string): number | undefined {\n const value = parse(arg)\n\n if (value) {\n return Math.round(value)\n }\n}\n\nexport function ms(arg: string): number | undefined {\n const value = hs(arg)\n\n if (value) {\n return value * 1e3\n }\n}\n","import { hs } from './hs'\nimport { OpUnitType, QUnitType } from 'dayjs'\nimport dayjs from 'dayjs'\n\nexport function timestamp(): number {\n return Math.floor(Date.now() / 1e3)\n}\n\nexport function date(str?: string, format?: string) {\n return dayjs(str, format)\n}\n\nexport function unixDate(t: number) {\n return dayjs.unix(t)\n}\n\nexport function isDateExpired(\n start: number,\n end: number,\n expire: string\n): boolean {\n return end - start > hs(expire)!\n}\n\nexport function unixDiff(\n start: number,\n end: number,\n unit: QUnitType | OpUnitType = 'day'\n): number {\n if (start > end || start < 0 || end < 0) {\n return 0\n }\n return unixDate(end).diff(unixDate(start), unit)\n}\n\nexport function datePeriod(\n start: number,\n value = 1,\n unit: OpUnitType = 'month'\n): number {\n return unixDate(start)\n .add(value, unit as unknown as any)\n .unix()\n}\n","import * as m from 'mime-types'\n\nexport const commonImageMimeTypes: string[] = [\n m.lookup('.jpg'),\n m.lookup('.png'),\n m.lookup('.bmp'),\n m.lookup('.webp'),\n m.lookup('.gif')\n] as any\n\nexport const commonFileMimeTypes: string[] = [\n ...commonImageMimeTypes,\n m.lookup('.txt'),\n m.lookup('.md'),\n m.lookup('.doc'),\n m.lookup('.docx'),\n m.lookup('.xls'),\n m.lookup('.xlsx'),\n m.lookup('.csv'),\n m.lookup('.ppt'),\n m.lookup('.pptx'),\n m.lookup('.pdf'),\n m.lookup('.mp4'),\n m.lookup('.wmv'),\n m.lookup('.svg')\n] as any\n\nexport const mime = m.lookup\n","import { customAlphabet } from 'nanoid'\n\nconst NANOID_ALPHABET =\n 'ModuleSymbhasOwnPr0123456789ABCDEFGHNRVfgctiUvzKqYTJkLxpZXIjQW'\n\nexport function nanoid(len = 21): string {\n return nanoidCustomAlphabet(NANOID_ALPHABET, len)\n}\n\nexport function nanoidCustomAlphabet(alphabet: string, len = 21): string {\n const generate = customAlphabet(alphabet, len)\n return generate()\n}\n","import { clone } from './clone'\nimport {\n isArray,\n isNan,\n isNil,\n isObject,\n isPlainObject,\n isValid\n} from './helper'\nimport * as objectPath from 'object-path'\n\nexport { deepEqual } from 'fast-equals'\n\nexport function pickObject(\n target: Record<string, any>,\n fields: Array<string | string[]>,\n excludes: Array<string> = []\n): Record<string, any> {\n if (!isObject(target)) {\n return {}\n }\n\n const copied = clone<Record<string, any>>(target)\n const targetKeys = Object.keys(copied)\n\n const fieldAlias: Record<string, any> = {}\n let picked: string[] = []\n\n if (fields.length > 0) {\n fields.forEach(item => {\n if (isArray(item)) {\n if (item.length > 0) {\n const filed = item[0]\n picked.push(filed)\n\n if (item.length > 1) {\n fieldAlias[filed] = item[1]\n }\n }\n } else {\n picked.push(item)\n }\n })\n } else {\n picked = targetKeys\n }\n\n const newObj: Record<string, any> = {}\n\n targetKeys\n .filter(key => !excludes.includes(key) && picked.includes(key))\n .forEach(key => {\n const alias = fieldAlias[key]\n\n if (alias) {\n newObj[alias] = copied[key]\n } else {\n newObj[key] = copied[key]\n }\n })\n\n return newObj\n}\n\nexport function pickValidValues<T = string | number | boolean>(\n target: Record<string, T>,\n fields: Array<string | string[]>\n): Record<string, T> {\n const dist: Record<string, T> = {}\n\n fields.forEach(field => {\n let key = String(field)\n let alias: string | undefined\n\n if (isArray(field)) {\n key = field[0]\n\n if (field.length > 1) {\n alias = field[1]\n }\n }\n\n let value = target[key]\n\n if (isValid(value)) {\n if (isPlainObject(value) || isArray(value)) {\n value = clone(value)\n }\n\n dist[alias || key] = value\n }\n })\n\n return dist\n}\n\nexport function removeObjectNil(\n target: Record<string, any>\n): Record<string, any> {\n if (!isObject(target)) {\n return {}\n }\n\n const copied = clone<Record<string, any>>(target)\n const newObj: Record<string, any> = {}\n\n for (const field of Object.keys(copied)) {\n const value = copied[field]\n\n if (isNil(value) || isNan(value)) {\n continue\n }\n\n newObj[field] = value\n }\n\n return newObj\n}\n\nexport function copyObjectValues(\n target: Record<string, any>,\n dist: Record<string, any>,\n keyMaps: Array<string | string[]>\n): void {\n if (!isObject(target) || !isObject(dist)) {\n return\n }\n\n for (const keys of keyMaps) {\n let targetKey: string\n let distKey: string\n\n if (isArray(keys)) {\n targetKey = keys[0]\n distKey = keys[1]\n } else {\n targetKey = String(keys)\n distKey = targetKey\n }\n\n let value = objectPath.get(target, targetKey)\n\n if (!isNil(value) && !isNan(value)) {\n if (isPlainObject(value) || isArray(value)) {\n value = clone(value)\n }\n objectPath.set(dist, distKey, value)\n }\n }\n}\n","import * as helper from './helper'\n\nexport function parseJson(str: string, defaultValue?: any): any {\n let value: any\n\n try {\n value = JSON.parse(str)\n } catch (e) {\n // eslint-disable-line\n }\n\n if (defaultValue && !value) {\n value = defaultValue\n }\n\n return value\n}\n\nexport function parseBool(arg: any, defaultValue?: boolean): boolean {\n if (helper.isEmpty(arg)) {\n return defaultValue || false\n }\n\n if (helper.isBoolean(arg)) {\n return arg\n }\n\n return helper.isTrue(arg)\n}\n\nexport function parseNumber(\n arg: any,\n defaultValue?: number,\n maxValue?: number\n): number | undefined {\n if (helper.isNumber(arg)) {\n if (maxValue && maxValue < Number(arg)) {\n return maxValue\n }\n return Number(arg)\n }\n\n const num = parseInt(arg, 10)\n\n if (isNaN(num)) {\n return defaultValue\n }\n\n if (maxValue && maxValue < num) {\n return maxValue\n }\n\n return num\n}\n\nexport function htmlToText(html: string, limit = 100) {\n let result = html\n .replace(/<style[^<>]*>((?!<\\/).)*<\\/style>/gi, '')\n .replace(/<script[^<>]*>((?!<\\/).)*<\\/script>/gi, '')\n .replace(/<[^>]+>/g, '')\n .replace(/\\t|\\r|\\n|\\r\\n/g, '')\n .replace(/\\s+/g, '')\n .replace(/ /g, ' ')\n .replace(/"/g, '\"')\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n\n if (limit > 0) {\n result = result.slice(0, limit)\n }\n\n return result\n}\n","import { isEmpty, isString } from './helper'\n\ninterface QsOptions {\n encode?: boolean\n decode?: boolean\n separator?: string\n}\n\nexport function stringify(\n arg: Record<string, any>,\n options?: QsOptions\n): string {\n const arr: string[] = []\n\n Object.keys(arg).forEach(key => {\n let val = arg[key]\n\n if (isEmpty(val)) {\n val = ''\n } else {\n val = String(val)\n }\n\n if (options?.encode) {\n val = encodeURIComponent(val)\n }\n\n arr.push(`${key}=${val}`)\n })\n\n return arr.join('&')\n}\n\nexport function parse(str: string, options?: QsOptions): Record<string, any> {\n const obj: Record<string, any> = {}\n\n if (!isString(str)) {\n return obj\n }\n\n const arr = str.replace(/^([^?]+)?\\?/, '').split('&')\n\n arr.forEach(param => {\n const paramArr = param.split('=')\n const key = paramArr[0]\n\n if (!isEmpty(key)) {\n let val: any = paramArr[1]\n\n if (options?.decode) {\n val = decodeURIComponent(val)\n }\n\n val =\n options?.separator && val.includes(options?.separator)\n ? val.split(options?.separator)\n : val\n\n obj[key] = val\n }\n })\n\n return obj\n}\n\nexport default {\n stringify,\n parse\n}\n","const numeric = '0123456789'\nconst hexic = '0123456789abcdef'\nconst lower = 'abcdefghijklmnopqrstuvwxyz'\nconst upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'\nconst length = 6\n\nexport enum RandomType {\n LOWER,\n UPPER,\n NUMERIC,\n HEXIC,\n LOWER_NUMERIC,\n UPPER_NUMERIC,\n ALPHANUMERIC\n}\n\nexport function random(\n len = length * 2,\n type = RandomType.ALPHANUMERIC\n): string {\n let alphabet: string = numeric + lower + upper\n\n switch (type) {\n case RandomType.LOWER:\n alphabet = lower\n break\n case RandomType.UPPER:\n alphabet = upper\n break\n case RandomType.HEXIC:\n alphabet = hexic\n break\n case RandomType.NUMERIC:\n alphabet = numeric\n break\n case RandomType.LOWER_NUMERIC:\n alphabet = lower + numeric\n break\n case RandomType.UPPER_NUMERIC:\n alphabet = upper + numeric\n break\n case RandomType.ALPHANUMERIC:\n alphabet = lower + upper + numeric\n break\n default:\n break\n }\n\n let str = ''\n const alphabetLength = alphabet.length\n\n for (let i = 0; i < len; i++) {\n str += alphabet.charAt(Math.floor(Math.random() * alphabetLength))\n }\n\n return str\n}\n","import slug from 'slugify'\n\nexport interface SlugifyOptions {\n replacement?: string\n remove?: RegExp\n lower?: boolean\n strict?: boolean\n locale?: string\n trim?: boolean\n}\n\nexport function slugify(text: string, options?: SlugifyOptions): string {\n return slug(text, {\n replacement: '_',\n lower: true,\n ...options\n })\n}\n","export { v4 as uuidv4, v5 as uuidv5 } from 'uuid'\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/helper.ts","../src/type.ts","../src/bytes.ts","../src/clone.ts","../src/color.ts","../src/conv.ts","../src/hs.ts","../src/date.ts","../src/mime.ts","../src/nanoid.ts","../src/object.ts","../src/parse.ts","../src/random.ts","../src/slugify.ts","../src/uuid.ts"],"names":["default","type","red","green","blue","alpha","RandomType"],"mappings":"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","sourcesContent":["export * from 'deep-object-diff'\nexport { default as qs } from 'qs'\nexport * from './bytes'\nexport * from './clone'\nexport * from './color'\nexport * from './conv'\nexport * from './date'\nexport { default as helper } from './helper'\nexport * from './hs'\nexport * from './mime'\nexport * from './nanoid'\nexport * from './object'\nexport * from './parse'\nexport * from './random'\nexport * from './slugify'\nexport * from './type'\nexport * from './uuid'\n","import visUUID from 'validator/lib/isUUID'\nimport visFQDN from 'validator/lib/isFQDN'\nimport {\n default as visNumeric,\n IsNumericOptions\n} from 'validator/lib/isNumeric'\nimport { default as visEmail, IsEmailOptions } from 'validator/lib/isEmail'\nimport { default as visURL, IsURLOptions } from 'validator/lib/isURL'\n\nimport { type } from './type'\n\n/* @ts-ignore */\nconst whiteSpaceRegx =\n /^[\\s\\f\\n\\r\\t\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0]+$/\n\nexport const isUUID = visUUID\nexport const isFQDN = visFQDN\n\nexport function isBoolean(arg: any): boolean {\n return type(arg) === 'boolean'\n}\n\nexport function isString(arg: any): boolean {\n return type(arg) === 'string'\n}\n\nexport function isNumber(arg: any): boolean {\n return type(arg) === 'number'\n}\n\nexport const isArray = Array.isArray\n\nexport function isValidArray(arg: any): boolean {\n return isArray(arg) && arg.length > 0\n}\n\nexport function isNan(arg: any): boolean {\n return isNumber(arg) && Number.isNaN(arg)\n}\n\nexport function isSet(arg: any): boolean {\n return type(arg) === 'set'\n}\n\nexport function isWeakSet(arg: any): boolean {\n return type(arg) === 'weakset'\n}\n\nexport function isMap(arg: any): boolean {\n return type(arg) === 'map'\n}\n\nexport function isWeakMap(arg: any): boolean {\n return type(arg) === 'weakmap'\n}\n\nexport function isSymbol(arg: any): boolean {\n return type(arg) === 'symbol'\n}\n\nexport function isObject(arg: any): boolean {\n return type(arg) === 'object'\n}\n\nexport function isDate(arg: any): boolean {\n return type(arg) === 'date'\n}\n\nexport function isRegExp(arg: any): boolean {\n return type(arg) === 'regexp'\n}\n\nexport function isError(arg: any): boolean {\n return type(arg) === 'error'\n}\n\nexport function isFunction(arg: any): boolean {\n return type(arg) === 'function'\n}\n\nexport function isNull(arg: any): boolean {\n return type(arg) === 'null'\n}\n\nexport function isUndefined(arg: any): boolean {\n return type(arg) === 'undefined'\n}\n\nexport function isNil(arg: any): boolean {\n return isNull(arg) || isUndefined(arg)\n}\n\nexport function isPlainObject(arg: any): boolean {\n if (!isObject(arg)) return false\n\n const ctor = arg.constructor\n if (typeof ctor !== 'function') return false\n\n const proto = ctor.prototype\n if (!isObject(proto)) return false\n\n return proto.hasOwnProperty('isPrototypeOf')\n}\n\nexport function isEmpty(arg: any): boolean {\n if (isNil(arg)) return true\n\n if (isBoolean(arg)) return false\n\n if (isNumber(arg)) return false\n\n if (isString(arg)) {\n return arg.length === 0 || whiteSpaceRegx.test(arg)\n }\n\n if (isFunction(arg) || isArray(arg)) {\n return arg.length === 0\n }\n\n switch (type(arg)) {\n case 'file':\n case 'map':\n case 'weakmap':\n case 'set':\n case 'weakset': {\n return arg.size === 0\n }\n\n case 'object': {\n for (const key in arg) {\n if (Object.hasOwnProperty.call(arg, key)) return false\n }\n return true\n }\n\n default:\n break\n }\n\n return false\n}\n\nexport function isValid(arg: any): boolean {\n return !isEmpty(arg)\n}\n\nexport function isEqual(arg1: any, arg2: any): boolean {\n return String(arg1) === String(arg2)\n}\n\nexport function isTrue(arg1: any): boolean {\n return arg1 === true || arg1 === 'true' || isEqual(arg1, '1')\n}\n\nexport function isFalse(arg1: any): boolean {\n return arg1 === false || arg1 === 'false' || isEqual(arg1, '0')\n}\n\nexport function isBool(arg: any): boolean {\n return isTrue(arg) || isFalse(arg)\n}\n\nexport function isFormData(arg: any): boolean {\n return type(arg) === 'formdata'\n}\n\nexport function uniqueArray(arg: any): any[] {\n if (!isValidArray(arg)) {\n return []\n }\n return Array.from(new Set(arg))\n}\n\nexport function isNumeric(arg: any, options?: IsNumericOptions): boolean {\n return isNumber(arg) || (isString(arg) && visNumeric(arg, options))\n}\n\nexport function isURL(arg: any, options?: IsURLOptions): boolean {\n return isValid(arg) && isString(arg) && visURL(arg, options)\n}\n\nexport function isEmail(arg: any, options?: IsEmailOptions): boolean {\n return isValid(arg) && isString(arg) && visEmail(arg, options)\n}\n\nexport default {\n isUUID,\n isFQDN,\n isBoolean,\n isString,\n isNumber,\n isNumeric,\n isArray,\n isValidArray,\n isNan,\n isSet,\n isMap,\n isWeakSet,\n isWeakMap,\n isSymbol,\n isObject,\n isDate,\n isRegExp,\n isError,\n isFunction,\n isNull,\n isUndefined,\n isNil,\n isPlainObject,\n isEmpty,\n isValid,\n isEqual,\n isTrue,\n isFalse,\n isBool,\n isURL,\n isEmail,\n isFormData,\n uniqueArray\n}\n","const toString = Object.prototype.toString\n\nexport function type(obj: any): string {\n if (obj === null) {\n return 'null'\n }\n\n let type: string = typeof obj\n\n if (type !== 'object') {\n return type\n }\n\n type = toString.call(obj).slice(8, -1)\n\n const typeLower = type.toLowerCase()\n\n if (typeLower !== 'object') {\n if (\n typeLower === 'number' ||\n typeLower === 'boolean' ||\n typeLower === 'string'\n ) {\n return type\n }\n return typeLower\n }\n\n return typeLower\n}\n","import { isEmpty } from './helper'\n\nconst BYTE = 1\nconst KB = BYTE * 1024\nconst MB = KB * 1024\nconst GB = MB * 1024\nconst TB = GB * 1024\nconst PB = TB * 1024\nconst regx = /^(-?(?:\\d+)?\\.?\\d+)(b|kb|mb|gb|tb|pb)$/i\n\nexport function parseBytes(value: string | number): number | undefined {\n if (isEmpty(value)) {\n return\n }\n\n const str = String(value)\n const matches = str.match(regx)\n\n if (!matches) {\n return\n }\n\n const num = parseFloat(matches[1])\n const type = matches[2].toLowerCase()\n\n switch (type) {\n case 'pb':\n return num * PB\n\n case 'tb':\n return num * TB\n\n case 'gb':\n return num * GB\n\n case 'mb':\n return num * MB\n\n case 'kb':\n return num * KB\n\n case 'b':\n return num * BYTE\n }\n}\n\nexport function bytes(size: string): number | undefined {\n return parseBytes(size)\n}\n\nexport function formatBytes(value: string | number): string {\n const mag = Math.abs(Number(value))\n let unit: string\n let size: number | string\n\n if (mag >= PB) {\n unit = 'PB'\n size = mag / PB\n } else if (mag >= TB) {\n unit = 'TB'\n size = mag / TB\n } else if (mag >= GB) {\n unit = 'GB'\n size = mag / GB\n } else if (mag >= MB) {\n unit = 'MB'\n size = mag / MB\n } else if (mag >= KB) {\n unit = 'KB'\n size = mag / KB\n } else {\n unit = 'B'\n size = mag / BYTE\n }\n\n if (String(size).includes('.')) {\n size = size.toFixed(1)\n }\n\n return size + unit\n}\n","import _clone from 'clone'\n\nexport function clone<T>(obj: T): T {\n return _clone(obj)\n}\n","import { isEmpty } from './helper'\n\nconst HEX_REGEX = /^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i\nconst RGBA_REGEX =\n /rgba\\((\\d{1,3}%?),\\s*(\\d{1,3}%?),\\s*(\\d{1,3}%?),\\s*(\\d*(?:\\.\\d+)?)\\)/i\nconst RGB_REGEX = /rgb\\((\\d{1,3}%?),\\s*(\\d{1,3}%?),\\s*(\\d{1,3}%?)\\)/i\n\nexport function isHexColor(color: string): boolean {\n return HEX_REGEX.test(color)\n}\n\nexport function isRgba(color: string): boolean {\n return RGBA_REGEX.test(color)\n}\n\nexport function isRgb(color: string): boolean {\n return RGB_REGEX.test(color)\n}\n\nexport function hexToRgb(hex: string): number[] {\n if (isEmpty(hex)) {\n return []\n }\n\n if (isRgba(hex)) {\n // @ts-ignore\n const [, red, green, blue, alpha] = RGBA_REGEX.exec(hex)\n return [Number(red), Number(green), Number(blue), Number(alpha)]\n }\n\n if (isRgb(hex)) {\n // @ts-ignore\n const [, red, green, blue] = RGB_REGEX.exec(hex)\n return [Number(red), Number(green), Number(blue), 1]\n }\n\n if (!isHexColor(hex)) {\n return []\n }\n\n hex = hex.replace(/^#/, '')\n\n if (hex.length === 3) {\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2]\n }\n\n let alpha = 1\n if (hex.length === 8) {\n alpha = hexToFloatAlpha(hex.slice(6, 8))\n hex = hex.slice(0, 6)\n }\n\n const number = Number.parseInt(hex, 16)\n const red = number >> 16\n const green = (number >> 8) & 255\n const blue = number & 255\n\n return [red, green, blue, alpha]\n}\n\nexport function isDarkColor(hex: string): boolean {\n if (!isHexColor(hex)) {\n return true\n }\n return colorBrightness(hex) < 170\n}\n\nexport function isLightColor(hex: string): boolean {\n return !isDarkColor(hex)\n}\n\nexport function colorBrightness(hex: string): number {\n const [red, green, blue, alpha] = hexToRgb(hex)\n return (alpha * (red * 299 + green * 587 + blue * 114)) / 1000\n}\n\nexport function rgbToHex([r, g, b]: number[]): string {\n return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)\n}\n\nexport function alpha(hex: string, alpha: number): string {\n const [red, green, blue] = hexToRgb(hex)\n return `rgba(${red}, ${green}, ${blue}, ${alpha})`\n}\n\nexport function lighten(hex: string, alpha: number): string {\n return rgbToHex(alphaHexToRgb(hex, 1 - alpha, '#fff'))\n}\n\nexport function darken(hex: string, alpha: number): string {\n return rgbToHex(alphaHexToRgb(hex, 1 - alpha, '#010101'))\n}\n\nexport function invert(hex: string): string {\n const [red, green, blue] = hexToRgb(hex)\n return rgbToHex([255 - red, 255 - green, 255 - blue])\n}\n\n/**\n * Convert rgba to a transparency-adjusted-hex\n * https://stackoverflow.com/a/15898886\n */\nexport function alphaHexToRgb(\n hex: string,\n alpha: number,\n backgroundHex: string\n): number[] {\n const hexRgb = hexToRgb(hex)\n const backgroundRgb = hexToRgb(backgroundHex)\n\n return hexRgb.map((color, index) => {\n return colorRange(\n Math.floor(\n colorRange(color) * alpha +\n colorRange(backgroundRgb[index]) * (1 - alpha)\n )\n )\n })\n}\n\nfunction colorRange(color: number): number {\n return color < 1 ? 1 : color >= 255 ? 255 : color\n}\n\nfunction hexToFloatAlpha(arg: string) {\n const num = parseInt(arg, 16)\n const max = parseInt('0xff', 16)\n return Number((num / max).toFixed(2))\n}\n","import { IParseOptions, IStringifyOptions, parse, stringify } from 'qs'\nimport {\n isEmpty,\n isBoolean,\n isTrue,\n isNumber,\n isValid,\n isString\n} from './helper'\n\nexport function toBool(value: unknown, defaults?: boolean): boolean {\n if (isEmpty(value)) {\n return defaults || false\n }\n\n if (isBoolean(value)) {\n return value as boolean\n }\n\n return isTrue(value)\n}\n\nexport const parseBool = toBool\n\nexport function toInteger(\n value: unknown,\n defaults?: number,\n maxValue?: number\n): number | undefined {\n let val: number\n\n if (isNumber(value)) {\n val = Number(value)\n } else {\n val = parseInt(value as string, 10)\n }\n\n if (!isFinite(val)) {\n return defaults\n }\n\n return maxValue ? Math.min(maxValue, val) : val\n}\n\nexport const parseNumber = toInteger\nexport const toInt = toInteger\n\nexport function toFloat(\n value: unknown,\n defaults?: number,\n maxValue?: number\n): number | undefined {\n let val: number\n\n if (isNumber(value)) {\n val = Number(value)\n } else {\n val = parseFloat(value as string)\n }\n\n if (!isFinite(val)) {\n return defaults\n }\n\n return maxValue ? Math.min(maxValue, val) : val\n}\n\nexport function toFixed(value: number, precision = 2) {\n return value.toFixed(precision).replace(/(\\.\\d*?)0+$/, '$1').replace(/\\.$/, '')\n}\n\nexport function toJSON<T extends object>(\n str: unknown,\n defaults?: T\n): T | undefined {\n let value: T | undefined\n\n if (isValid(str) && isString(str)) {\n try {\n value = JSON.parse(str as string)\n } catch (e) {\n // eslint-disable-line\n }\n }\n\n if (!!defaults && !value) {\n value = defaults\n }\n\n return value\n}\n\nexport const parseJson = toJSON\n\nconst THOUSAND = 1_000\nconst HUNDRED_THOUSAND = 100_000\nconst MILLION = 1_000_000\nconst HUNDRED_MILLION = 100_000_000\nconst BILLION = 1_000_000_000\nconst HUNDRED_BILLION = 100_000_000_000\nconst TRILLION = 1_000_000_000_000\n\nexport function toIntlNumber(value: number) {\n if (value >= THOUSAND && value < MILLION) {\n const thousands = value / THOUSAND\n\n if (thousands === Math.floor(thousands) || value >= HUNDRED_THOUSAND) {\n return Math.floor(thousands) + 'K'\n } else {\n return Math.floor(thousands * 10) / 10 + 'K'\n }\n } else if (value >= MILLION && value < BILLION) {\n const millions = value / MILLION\n\n if (millions === Math.floor(millions) || value >= HUNDRED_MILLION) {\n return Math.floor(millions) + 'M'\n } else {\n return Math.floor(millions * 10) / 10 + 'M'\n }\n } else if (value >= BILLION && value < TRILLION) {\n const billions = value / BILLION\n\n if (billions === Math.floor(billions) || value >= HUNDRED_BILLION) {\n return Math.floor(billions) + 'B'\n } else {\n return Math.floor(billions * 10) / 10 + 'B'\n }\n } else {\n return `${value}`\n }\n}\n\ninterface ToDurationOptions {\n hideOnZeroValue?: boolean\n padNumber?: boolean\n hourUnit?: string\n minuteUnit?: string\n secondUnit?: string\n}\n\nfunction durationPad(num: number, size: number) {\n return ('000' + num).slice(size * -1)\n}\n\nfunction getDuration(num: number, unit: string, options?: ToDurationOptions) {\n if (options?.hideOnZeroValue && num === 0) {\n return\n }\n\n if (options?.padNumber) {\n return durationPad(num, 2) + unit\n }\n\n return num + unit\n}\n\nexport function toDuration(value: number, options?: ToDurationOptions) {\n const hours = Math.floor(value / 60 / 60)\n const minutes = Math.floor(value / 60) % 60\n const seconds = Math.floor(value - minutes * 60 - hours * 60 * 60)\n\n return [\n hours > 0 ? { num: hours, unit: options?.hourUnit || 'h' } : null,\n minutes > 0 ? { num: minutes, unit: options?.minuteUnit || 'm' } : null,\n { num: seconds, unit: options?.secondUnit || 's' }\n ]\n .filter(Boolean)\n .map((d, i) =>\n getDuration(d!.num, d!.unit, {\n ...options,\n hideOnZeroValue: i === 0 ? false : options?.hideOnZeroValue\n })\n )\n .filter(Boolean)\n .join(' ')\n}\n\nexport function toURLParams<T extends object>(\n value: string,\n options?: IParseOptions\n) {\n return parse(value, options) as T\n}\n\nexport function toURLQuery(\n value: Record<string | number, any>,\n baseUri?: string,\n options?: IStringifyOptions\n) {\n const query = stringify(value, options)\n\n if (baseUri) {\n return baseUri + (baseUri.includes('?') ? '&' : '?') + query\n }\n\n return query\n}\n","import vms from 'ms'\n\nexport function hs(arg: string): number | undefined {\n const value = ms(arg)\n\n if (value) {\n return Math.round(value / 1_000)\n }\n}\n\nexport function ms(arg: string): number | undefined {\n return vms(arg)\n}\n\nexport const toSecond = hs\nexport const toMillisecond = ms\n","import { hs } from './hs'\nimport { OpUnitType, QUnitType } from 'dayjs'\nimport dayjs from 'dayjs'\n\nexport function timestamp(): number {\n return Math.floor(Date.now() / 1e3)\n}\n\nexport function date(str?: string, format?: string) {\n return dayjs(str, format)\n}\n\nexport function unixDate(t: number) {\n return dayjs.unix(t)\n}\n\nexport function isDateExpired(\n start: number,\n end: number,\n expire: string\n): boolean {\n return end - start > hs(expire)!\n}\n\nexport function unixDiff(\n start: number,\n end: number,\n unit: QUnitType | OpUnitType = 'day'\n): number {\n if (start > end || start < 0 || end < 0) {\n return 0\n }\n return unixDate(end).diff(unixDate(start), unit)\n}\n\nexport function datePeriod(\n start: number,\n value = 1,\n unit: OpUnitType = 'month'\n): number {\n return unixDate(start)\n .add(value, unit as unknown as any)\n .unix()\n}\n","import * as m from 'mime-types'\n\nexport const commonImageMimeTypes: string[] = [\n m.lookup('.jpg'),\n m.lookup('.png'),\n m.lookup('.bmp'),\n m.lookup('.webp'),\n m.lookup('.gif')\n] as any\n\nexport const commonFileMimeTypes: string[] = [\n ...commonImageMimeTypes,\n m.lookup('.txt'),\n m.lookup('.md'),\n m.lookup('.doc'),\n m.lookup('.docx'),\n m.lookup('.xls'),\n m.lookup('.xlsx'),\n m.lookup('.csv'),\n m.lookup('.ppt'),\n m.lookup('.pptx'),\n m.lookup('.pdf'),\n m.lookup('.mp4'),\n m.lookup('.wmv'),\n m.lookup('.svg')\n] as any\n\nexport const mime = m.lookup\n","import { customAlphabet } from 'nanoid'\n\nconst NANOID_ALPHABET =\n 'ModuleSymbhasOwnPr0123456789ABCDEFGHNRVfgctiUvzKqYTJkLxpZXIjQW'\n\nexport function nanoid(len = 21): string {\n return nanoidCustomAlphabet(NANOID_ALPHABET, len)\n}\n\nexport function nanoidCustomAlphabet(alphabet: string, len = 21): string {\n const generate = customAlphabet(alphabet, len)\n return generate()\n}\n","import { clone } from './clone'\nimport {\n isArray,\n isNan,\n isNil,\n isObject,\n isPlainObject,\n isValid\n} from './helper'\nimport * as objectPath from 'object-path'\n\nexport { deepEqual } from 'fast-equals'\n\nexport function pickObject(\n target: Record<string, any>,\n fields: Array<string | string[]>,\n excludes: Array<string> = []\n): Record<string, any> {\n if (!isObject(target)) {\n return {}\n }\n\n const copied = clone<Record<string, any>>(target)\n const targetKeys = Object.keys(copied)\n\n const fieldAlias: Record<string, any> = {}\n let picked: string[] = []\n\n if (fields.length > 0) {\n fields.forEach(item => {\n if (isArray(item)) {\n if (item.length > 0) {\n const filed = item[0]\n picked.push(filed)\n\n if (item.length > 1) {\n fieldAlias[filed] = item[1]\n }\n }\n } else {\n picked.push(item)\n }\n })\n } else {\n picked = targetKeys\n }\n\n const newObj: Record<string, any> = {}\n\n targetKeys\n .filter(key => !excludes.includes(key) && picked.includes(key))\n .forEach(key => {\n const alias = fieldAlias[key]\n\n if (alias) {\n newObj[alias] = copied[key]\n } else {\n newObj[key] = copied[key]\n }\n })\n\n return newObj\n}\n\nexport function excludeObject(\n target: Record<string, any>,\n excludes: Array<string> = []\n): Record<string, any> {\n return pickObject(target, [], excludes)\n}\n\nexport function pickValidValues<T = string | number | boolean>(\n target: Record<string, T>,\n fields: Array<string | string[]>\n): Record<string, T> {\n const dist: Record<string, T> = {}\n\n fields.forEach(field => {\n let key = String(field)\n let alias: string | undefined\n\n if (isArray(field)) {\n key = field[0]\n\n if (field.length > 1) {\n alias = field[1]\n }\n }\n\n let value = target[key]\n\n if (isValid(value)) {\n if (isPlainObject(value) || isArray(value)) {\n value = clone(value)\n }\n\n dist[alias || key] = value\n }\n })\n\n return dist\n}\n\nexport function removeObjectNil(\n target: Record<string, any>\n): Record<string, any> {\n if (!isObject(target)) {\n return {}\n }\n\n const copied = clone<Record<string, any>>(target)\n const newObj: Record<string, any> = {}\n\n for (const field of Object.keys(copied)) {\n const value = copied[field]\n\n if (isNil(value) || isNan(value)) {\n continue\n }\n\n newObj[field] = value\n }\n\n return newObj\n}\n\nexport function copyObjectValues(\n target: Record<string, any>,\n dist: Record<string, any>,\n keyMaps: Array<string | string[]>\n): void {\n if (!isObject(target) || !isObject(dist)) {\n return\n }\n\n for (const keys of keyMaps) {\n let targetKey: string\n let distKey: string\n\n if (isArray(keys)) {\n targetKey = keys[0]\n distKey = keys[1]\n } else {\n targetKey = String(keys)\n distKey = targetKey\n }\n\n let value = objectPath.get(target, targetKey)\n\n if (!isNil(value) && !isNan(value)) {\n if (isPlainObject(value) || isArray(value)) {\n value = clone(value)\n }\n objectPath.set(dist, distKey, value)\n }\n }\n}\n","export function htmlToText(html: string, limit = 100) {\n let result = html\n .replace(/<style[^<>]*>((?!<\\/).)*<\\/style>/gi, '')\n .replace(/<script[^<>]*>((?!<\\/).)*<\\/script>/gi, '')\n .replace(/<[^>]+>/g, '')\n .replace(/\\t|\\r|\\n|\\r\\n/g, '')\n .replace(/\\s+/g, '')\n .replace(/ /g, ' ')\n .replace(/"/g, '\"')\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n\n if (limit > 0) {\n result = result.slice(0, limit)\n }\n\n return result\n}\n","const numeric = '0123456789'\nconst hexic = '0123456789abcdef'\nconst lower = 'abcdefghijklmnopqrstuvwxyz'\nconst upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'\nconst length = 6\n\nexport enum RandomType {\n LOWER,\n UPPER,\n NUMERIC,\n HEXIC,\n LOWER_NUMERIC,\n UPPER_NUMERIC,\n ALPHANUMERIC\n}\n\nexport function random(\n len = length * 2,\n type = RandomType.ALPHANUMERIC\n): string {\n let alphabet: string = numeric + lower + upper\n\n switch (type) {\n case RandomType.LOWER:\n alphabet = lower\n break\n case RandomType.UPPER:\n alphabet = upper\n break\n case RandomType.HEXIC:\n alphabet = hexic\n break\n case RandomType.NUMERIC:\n alphabet = numeric\n break\n case RandomType.LOWER_NUMERIC:\n alphabet = lower + numeric\n break\n case RandomType.UPPER_NUMERIC:\n alphabet = upper + numeric\n break\n case RandomType.ALPHANUMERIC:\n alphabet = lower + upper + numeric\n break\n }\n\n let str = ''\n const alphabetLength = alphabet.length\n\n for (let i = 0; i < len; i++) {\n str += alphabet.charAt(Math.floor(Math.random() * alphabetLength))\n }\n\n return str\n}\n","import slug from 'slugify'\n\nexport interface SlugifyOptions {\n replacement?: string\n remove?: RegExp\n lower?: boolean\n strict?: boolean\n locale?: string\n trim?: boolean\n}\n\nexport function slugify(text: string, options?: SlugifyOptions): string {\n return slug(text, {\n replacement: '_',\n lower: true,\n ...options\n })\n}\n","export { v4 as uuidv4, v5 as uuidv5 } from 'uuid'\n"]}
|
package/dist/index.mjs
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
export * from 'deep-object-diff';
|
|
2
|
+
import { parse, stringify } from 'qs';
|
|
3
|
+
export { default as qs } from 'qs';
|
|
2
4
|
import visUUID from 'validator/lib/isUUID';
|
|
3
5
|
import visFQDN from 'validator/lib/isFQDN';
|
|
4
6
|
import visNumeric from 'validator/lib/isNumeric';
|
|
5
7
|
import visEmail from 'validator/lib/isEmail';
|
|
6
8
|
import visURL from 'validator/lib/isURL';
|
|
7
9
|
import _clone from 'clone';
|
|
10
|
+
import vms from 'ms';
|
|
8
11
|
import dayjs from 'dayjs';
|
|
9
12
|
import * as m from 'mime-types';
|
|
10
13
|
import { customAlphabet } from 'nanoid';
|
|
@@ -59,9 +62,15 @@ function isNan(arg) {
|
|
|
59
62
|
function isSet(arg) {
|
|
60
63
|
return type(arg) === "set";
|
|
61
64
|
}
|
|
65
|
+
function isWeakSet(arg) {
|
|
66
|
+
return type(arg) === "weakset";
|
|
67
|
+
}
|
|
62
68
|
function isMap(arg) {
|
|
63
69
|
return type(arg) === "map";
|
|
64
70
|
}
|
|
71
|
+
function isWeakMap(arg) {
|
|
72
|
+
return type(arg) === "weakmap";
|
|
73
|
+
}
|
|
65
74
|
function isSymbol(arg) {
|
|
66
75
|
return type(arg) === "symbol";
|
|
67
76
|
}
|
|
@@ -169,6 +178,8 @@ var helper_default = {
|
|
|
169
178
|
isNan,
|
|
170
179
|
isSet,
|
|
171
180
|
isMap,
|
|
181
|
+
isWeakSet,
|
|
182
|
+
isWeakMap,
|
|
172
183
|
isSymbol,
|
|
173
184
|
isObject,
|
|
174
185
|
isDate,
|
|
@@ -352,8 +363,6 @@ function hexToFloatAlpha(arg) {
|
|
|
352
363
|
const max = parseInt("0xff", 16);
|
|
353
364
|
return Number((num / max).toFixed(2));
|
|
354
365
|
}
|
|
355
|
-
|
|
356
|
-
// src/conv.ts
|
|
357
366
|
function toBool(value, defaults) {
|
|
358
367
|
if (isEmpty(value)) {
|
|
359
368
|
return defaults || false;
|
|
@@ -363,53 +372,131 @@ function toBool(value, defaults) {
|
|
|
363
372
|
}
|
|
364
373
|
return isTrue(value);
|
|
365
374
|
}
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
var year = day * 365;
|
|
374
|
-
var regx2 = /^(-?(?:\d+)?\.?\d+)(s|m|h|d|w|y)$/i;
|
|
375
|
-
function parse(arg) {
|
|
376
|
-
if (isEmpty(arg)) {
|
|
377
|
-
return;
|
|
375
|
+
var parseBool = toBool;
|
|
376
|
+
function toInteger(value, defaults, maxValue) {
|
|
377
|
+
let val;
|
|
378
|
+
if (isNumber(value)) {
|
|
379
|
+
val = Number(value);
|
|
380
|
+
} else {
|
|
381
|
+
val = parseInt(value, 10);
|
|
378
382
|
}
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
383
|
+
if (!isFinite(val)) {
|
|
384
|
+
return defaults;
|
|
385
|
+
}
|
|
386
|
+
return maxValue ? Math.min(maxValue, val) : val;
|
|
387
|
+
}
|
|
388
|
+
var parseNumber = toInteger;
|
|
389
|
+
var toInt = toInteger;
|
|
390
|
+
function toFloat(value, defaults, maxValue) {
|
|
391
|
+
let val;
|
|
392
|
+
if (isNumber(value)) {
|
|
393
|
+
val = Number(value);
|
|
394
|
+
} else {
|
|
395
|
+
val = parseFloat(value);
|
|
396
|
+
}
|
|
397
|
+
if (!isFinite(val)) {
|
|
398
|
+
return defaults;
|
|
399
|
+
}
|
|
400
|
+
return maxValue ? Math.min(maxValue, val) : val;
|
|
401
|
+
}
|
|
402
|
+
function toFixed(value, precision = 2) {
|
|
403
|
+
return value.toFixed(precision).replace(/(\.\d*?)0+$/, "$1").replace(/\.$/, "");
|
|
404
|
+
}
|
|
405
|
+
function toJSON(str, defaults) {
|
|
406
|
+
let value;
|
|
407
|
+
if (isValid(str) && isString(str)) {
|
|
408
|
+
try {
|
|
409
|
+
value = JSON.parse(str);
|
|
410
|
+
} catch (e) {
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
if (!!defaults && !value) {
|
|
414
|
+
value = defaults;
|
|
415
|
+
}
|
|
416
|
+
return value;
|
|
417
|
+
}
|
|
418
|
+
var parseJson = toJSON;
|
|
419
|
+
var THOUSAND = 1e3;
|
|
420
|
+
var HUNDRED_THOUSAND = 1e5;
|
|
421
|
+
var MILLION = 1e6;
|
|
422
|
+
var HUNDRED_MILLION = 1e8;
|
|
423
|
+
var BILLION = 1e9;
|
|
424
|
+
var HUNDRED_BILLION = 1e11;
|
|
425
|
+
var TRILLION = 1e12;
|
|
426
|
+
function toIntlNumber(value) {
|
|
427
|
+
if (value >= THOUSAND && value < MILLION) {
|
|
428
|
+
const thousands = value / THOUSAND;
|
|
429
|
+
if (thousands === Math.floor(thousands) || value >= HUNDRED_THOUSAND) {
|
|
430
|
+
return Math.floor(thousands) + "K";
|
|
431
|
+
} else {
|
|
432
|
+
return Math.floor(thousands * 10) / 10 + "K";
|
|
433
|
+
}
|
|
434
|
+
} else if (value >= MILLION && value < BILLION) {
|
|
435
|
+
const millions = value / MILLION;
|
|
436
|
+
if (millions === Math.floor(millions) || value >= HUNDRED_MILLION) {
|
|
437
|
+
return Math.floor(millions) + "M";
|
|
438
|
+
} else {
|
|
439
|
+
return Math.floor(millions * 10) / 10 + "M";
|
|
440
|
+
}
|
|
441
|
+
} else if (value >= BILLION && value < TRILLION) {
|
|
442
|
+
const billions = value / BILLION;
|
|
443
|
+
if (billions === Math.floor(billions) || value >= HUNDRED_BILLION) {
|
|
444
|
+
return Math.floor(billions) + "B";
|
|
445
|
+
} else {
|
|
446
|
+
return Math.floor(billions * 10) / 10 + "B";
|
|
447
|
+
}
|
|
448
|
+
} else {
|
|
449
|
+
return `${value}`;
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
function durationPad(num, size) {
|
|
453
|
+
return ("000" + num).slice(size * -1);
|
|
454
|
+
}
|
|
455
|
+
function getDuration(num, unit, options) {
|
|
456
|
+
if (options?.hideOnZeroValue && num === 0) {
|
|
382
457
|
return;
|
|
383
458
|
}
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
459
|
+
if (options?.padNumber) {
|
|
460
|
+
return durationPad(num, 2) + unit;
|
|
461
|
+
}
|
|
462
|
+
return num + unit;
|
|
463
|
+
}
|
|
464
|
+
function toDuration(value, options) {
|
|
465
|
+
const hours = Math.floor(value / 60 / 60);
|
|
466
|
+
const minutes = Math.floor(value / 60) % 60;
|
|
467
|
+
const seconds = Math.floor(value - minutes * 60 - hours * 60 * 60);
|
|
468
|
+
return [
|
|
469
|
+
hours > 0 ? { num: hours, unit: options?.hourUnit || "h" } : null,
|
|
470
|
+
minutes > 0 ? { num: minutes, unit: options?.minuteUnit || "m" } : null,
|
|
471
|
+
{ num: seconds, unit: options?.secondUnit || "s" }
|
|
472
|
+
].filter(Boolean).map(
|
|
473
|
+
(d, i) => getDuration(d.num, d.unit, {
|
|
474
|
+
...options,
|
|
475
|
+
hideOnZeroValue: i === 0 ? false : options?.hideOnZeroValue
|
|
476
|
+
})
|
|
477
|
+
).filter(Boolean).join(" ");
|
|
478
|
+
}
|
|
479
|
+
function toURLParams(value, options) {
|
|
480
|
+
return parse(value, options);
|
|
481
|
+
}
|
|
482
|
+
function toURLQuery(value, baseUri, options) {
|
|
483
|
+
const query = stringify(value, options);
|
|
484
|
+
if (baseUri) {
|
|
485
|
+
return baseUri + (baseUri.includes("?") ? "&" : "?") + query;
|
|
399
486
|
}
|
|
487
|
+
return query;
|
|
400
488
|
}
|
|
401
489
|
function hs(arg) {
|
|
402
|
-
const value =
|
|
490
|
+
const value = ms(arg);
|
|
403
491
|
if (value) {
|
|
404
|
-
return Math.round(value);
|
|
492
|
+
return Math.round(value / 1e3);
|
|
405
493
|
}
|
|
406
494
|
}
|
|
407
495
|
function ms(arg) {
|
|
408
|
-
|
|
409
|
-
if (value) {
|
|
410
|
-
return value * 1e3;
|
|
411
|
-
}
|
|
496
|
+
return vms(arg);
|
|
412
497
|
}
|
|
498
|
+
var toSecond = hs;
|
|
499
|
+
var toMillisecond = ms;
|
|
413
500
|
function timestamp() {
|
|
414
501
|
return Math.floor(Date.now() / 1e3);
|
|
415
502
|
}
|
|
@@ -499,6 +586,9 @@ function pickObject(target, fields, excludes = []) {
|
|
|
499
586
|
});
|
|
500
587
|
return newObj;
|
|
501
588
|
}
|
|
589
|
+
function excludeObject(target, excludes = []) {
|
|
590
|
+
return pickObject(target, [], excludes);
|
|
591
|
+
}
|
|
502
592
|
function pickValidValues(target, fields) {
|
|
503
593
|
const dist = {};
|
|
504
594
|
fields.forEach((field) => {
|
|
@@ -560,42 +650,6 @@ function copyObjectValues(target, dist, keyMaps) {
|
|
|
560
650
|
}
|
|
561
651
|
|
|
562
652
|
// src/parse.ts
|
|
563
|
-
function parseJson(str, defaultValue) {
|
|
564
|
-
let value;
|
|
565
|
-
try {
|
|
566
|
-
value = JSON.parse(str);
|
|
567
|
-
} catch (e) {
|
|
568
|
-
}
|
|
569
|
-
if (defaultValue && !value) {
|
|
570
|
-
value = defaultValue;
|
|
571
|
-
}
|
|
572
|
-
return value;
|
|
573
|
-
}
|
|
574
|
-
function parseBool(arg, defaultValue) {
|
|
575
|
-
if (isEmpty(arg)) {
|
|
576
|
-
return defaultValue || false;
|
|
577
|
-
}
|
|
578
|
-
if (isBoolean(arg)) {
|
|
579
|
-
return arg;
|
|
580
|
-
}
|
|
581
|
-
return isTrue(arg);
|
|
582
|
-
}
|
|
583
|
-
function parseNumber(arg, defaultValue, maxValue) {
|
|
584
|
-
if (isNumber(arg)) {
|
|
585
|
-
if (maxValue && maxValue < Number(arg)) {
|
|
586
|
-
return maxValue;
|
|
587
|
-
}
|
|
588
|
-
return Number(arg);
|
|
589
|
-
}
|
|
590
|
-
const num = parseInt(arg, 10);
|
|
591
|
-
if (isNaN(num)) {
|
|
592
|
-
return defaultValue;
|
|
593
|
-
}
|
|
594
|
-
if (maxValue && maxValue < num) {
|
|
595
|
-
return maxValue;
|
|
596
|
-
}
|
|
597
|
-
return num;
|
|
598
|
-
}
|
|
599
653
|
function htmlToText(html, limit = 100) {
|
|
600
654
|
let result = html.replace(/<style[^<>]*>((?!<\/).)*<\/style>/gi, "").replace(/<script[^<>]*>((?!<\/).)*<\/script>/gi, "").replace(/<[^>]+>/g, "").replace(/\t|\r|\n|\r\n/g, "").replace(/\s+/g, "").replace(/ /g, " ").replace(/"/g, '"').replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
601
655
|
if (limit > 0) {
|
|
@@ -604,48 +658,6 @@ function htmlToText(html, limit = 100) {
|
|
|
604
658
|
return result;
|
|
605
659
|
}
|
|
606
660
|
|
|
607
|
-
// src/qs.ts
|
|
608
|
-
function stringify(arg, options) {
|
|
609
|
-
const arr = [];
|
|
610
|
-
Object.keys(arg).forEach((key) => {
|
|
611
|
-
let val = arg[key];
|
|
612
|
-
if (isEmpty(val)) {
|
|
613
|
-
val = "";
|
|
614
|
-
} else {
|
|
615
|
-
val = String(val);
|
|
616
|
-
}
|
|
617
|
-
if (options?.encode) {
|
|
618
|
-
val = encodeURIComponent(val);
|
|
619
|
-
}
|
|
620
|
-
arr.push(`${key}=${val}`);
|
|
621
|
-
});
|
|
622
|
-
return arr.join("&");
|
|
623
|
-
}
|
|
624
|
-
function parse2(str, options) {
|
|
625
|
-
const obj = {};
|
|
626
|
-
if (!isString(str)) {
|
|
627
|
-
return obj;
|
|
628
|
-
}
|
|
629
|
-
const arr = str.replace(/^([^?]+)?\?/, "").split("&");
|
|
630
|
-
arr.forEach((param) => {
|
|
631
|
-
const paramArr = param.split("=");
|
|
632
|
-
const key = paramArr[0];
|
|
633
|
-
if (!isEmpty(key)) {
|
|
634
|
-
let val = paramArr[1];
|
|
635
|
-
if (options?.decode) {
|
|
636
|
-
val = decodeURIComponent(val);
|
|
637
|
-
}
|
|
638
|
-
val = options?.separator && val.includes(options?.separator) ? val.split(options?.separator) : val;
|
|
639
|
-
obj[key] = val;
|
|
640
|
-
}
|
|
641
|
-
});
|
|
642
|
-
return obj;
|
|
643
|
-
}
|
|
644
|
-
var qs_default = {
|
|
645
|
-
stringify,
|
|
646
|
-
parse: parse2
|
|
647
|
-
};
|
|
648
|
-
|
|
649
661
|
// src/random.ts
|
|
650
662
|
var numeric = "0123456789";
|
|
651
663
|
var hexic = "0123456789abcdef";
|
|
@@ -702,6 +714,6 @@ function slugify(text, options) {
|
|
|
702
714
|
});
|
|
703
715
|
}
|
|
704
716
|
|
|
705
|
-
export { RandomType, alpha, alphaHexToRgb, bytes, clone, colorBrightness, commonFileMimeTypes, commonImageMimeTypes, copyObjectValues, darken, date, datePeriod, formatBytes, helper_default as helper, hexToRgb, hs, htmlToText, invert, isDarkColor, isDateExpired, isHexColor, isLightColor, isRgb, isRgba, lighten, mime, ms, nanoid, nanoidCustomAlphabet, parseBool, parseBytes, parseJson, parseNumber, pickObject, pickValidValues,
|
|
717
|
+
export { RandomType, alpha, alphaHexToRgb, bytes, clone, colorBrightness, commonFileMimeTypes, commonImageMimeTypes, copyObjectValues, darken, date, datePeriod, excludeObject, formatBytes, helper_default as helper, hexToRgb, hs, htmlToText, invert, isDarkColor, isDateExpired, isHexColor, isLightColor, isRgb, isRgba, lighten, mime, ms, nanoid, nanoidCustomAlphabet, parseBool, parseBytes, parseJson, parseNumber, pickObject, pickValidValues, random, removeObjectNil, rgbToHex, slugify, timestamp, toBool, toDuration, toFixed, toFloat, toInt, toInteger, toIntlNumber, toJSON, toMillisecond, toSecond, toURLParams, toURLQuery, type, unixDate, unixDiff };
|
|
706
718
|
//# sourceMappingURL=out.js.map
|
|
707
719
|
//# sourceMappingURL=index.mjs.map
|