UNPKG

@yantrix/utils

Version:

Shared code for Yantrix framework

1 lines 6.76 kB
{"version":3,"sources":["../src/index.ts","../src/casts.ts","../src/isomorphic.ts","../src/fixtures.ts","../src/predicates.ts"],"sourcesContent":["/**\n * @packageDocumentation\n *\n * The `@yantrix/utils` package provides a set of utility functions and types for the Yantrix framework.\n */\n\nexport * from './casts.js';\nexport * from './fixtures.js';\nexport * from './isomorphic.js';\nexport * from './predicates.js';\nexport * from './types.js';\n","export function unifyObjectKey<KeyType = number>(key: string | number): KeyType {\n\treturn Number.parseInt(String(key)) as unknown as KeyType;\n}\n","export function microtime() {\n\tlet mt = 0;\n\tif (typeof process !== 'undefined' && process?.hrtime)\n\t\tmt = (new Date().getTime() * 1e9 + process.hrtime()[1]) / 8.64e13;\n\telse if (performance)\n\t\tmt = performance.now();\n\telse mt = (new Date().getTime() + Math.random()) / 86400;\n\treturn Number.parseInt(Math.floor(mt * 1e5).toString(10));\n}\n","import { microtime } from './isomorphic.js';\nimport { TLengthArray } from './types.js';\n\nexport function randomString(length: number = 10) {\n\tconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n\tlet result = '';\n\tfor (let i = 0; i < length; i++) {\n\t\tresult += chars.charAt(Math.floor(Math.random() * chars.length));\n\t}\n\treturn result;\n}\n\nexport function randomInteger(min: number = 1, max: number = 100): number {\n\treturn Math.floor(Math.random() * (max - min)) + min;\n}\n\nexport const randomDecimal = (min: number = -10000, max: number = 10000) => Math.random() * (max - min) + min;\n\nexport function randomValueFunction() {\n\tconst randomValueFunctions = [randomString, randomInteger, randomDecimal];\n\tconst randomIndex = Math.floor(Math.random() * randomValueFunctions.length);\n\treturn randomValueFunctions[randomIndex]!;\n}\nexport function randomValue(): number | string {\n\treturn randomValueFunction()();\n}\nexport function randomArray(valueType: () => any, amount: number = randomInteger(1, 20)) {\n\treturn Array.from({ length: amount }, valueType);\n}\n\nexport function sampleRange(min = 1, max = 100) {\n\treturn min + Math.floor(Math.random() * (max - min + 1));\n}\n\nexport function pickFromArray<T>(arr: T[], n = 1): T[] {\n\tconst acc: T[] = [];\n\tif (!arr?.length || n <= 0)\n\t\treturn acc;\n\tconst a = JSON.parse(JSON.stringify(arr));\n\twhile (acc.length < n) acc.push(...a.splice(Math.floor(Math.random() * a.length), 1));\n\treturn acc;\n}\n\nexport function popFromArray<T>(arr: T[], n = 1): T[] {\n\tconst acc: T[] = [];\n\tif (!arr?.length || n <= 0)\n\t\treturn acc;\n\tlet i = 0;\n\twhile (i++ < n) {\n\t\tconst v = arr.pop();\n\n\t\tif (v == null)\n\t\t\tbreak;\n\t\tacc.push(v);\n\t}\n\treturn acc;\n}\n\nexport function sampleArray<T = number, N extends number = number>(item: null | ((index?: number) => T) | T, n: N) {\n\tif (item === null) {\n\t\treturn Array\n\t\t\t.from({ length: n })\n\t\t\t.fill(null)\n\t\t\t.map((_, ix) => ix + 1) as TLengthArray<T, N>;\n\t}\n\tif (item instanceof Function) {\n\t\treturn Array\n\t\t\t.from({ length: n })\n\t\t\t.fill(null)\n\t\t\t.map((_, ix) => item(ix)) as TLengthArray<T, N>;\n\t}\n\treturn Array.from({ length: n }).fill(item) as TLengthArray<T, N>;\n}\n\n/**\n * Generate a random alphanumeric ID of a given length.\n * @param {number} length\n * @return {string}\n */\nexport function uniqId(length = 10) {\n\tconst keys = [...microtime().toString(36)];\n\twhile (keys.length < length) keys.push(...sampleRange(0, 35).toString(36));\n\treturn keys\n\t\t.slice(0, length)\n\t\t.join('')\n\t\t.toUpperCase();\n}\n","import { TStaticMethods } from './types';\n\nexport const isNumber = (t: any): t is number => Number.isFinite(t);\nexport const isPositiveNumber = (t: any): t is number => isNumber(t) && t >= 0;\nexport const isPositiveInteger = (t: any): t is number => isPositiveNumber(t) && Number.isSafeInteger(t);\nexport const isInteger = (t: any): t is number => Number.isSafeInteger(t);\nexport const isStaticMethodsAutomata = (Automata: any): Automata is TStaticMethods => Object.prototype.hasOwnProperty.call(Automata, 'id');\n"],"mappings":"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","names":[]}