@authup/kit
Version:
A Package containing general (context independent) utilities.
1 lines • 14.5 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../src/array.ts","../src/array-buffer.ts","../src/base64.ts","../src/has-own-property.ts","../src/nanoid.ts","../src/object.ts","../src/pick.ts","../src/scalar.ts","../src/serialize.ts","../src/template.ts","../src/uuid.ts","../src/url.ts"],"sourcesContent":["/*\n * Copyright (c) 2024-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function toArray<T>(input?: T | T[]): T[] {\n if (!input) {\n return [];\n }\n\n return Array.isArray(input) ? input : [input];\n}\n\nexport function toStringArray<T>(input?: T | T[]) : string[] {\n return toArray(input)\n .filter((el) => typeof el === 'string') as string[];\n}\n\nexport function toArrayElement<T>(input?: T | T[]): T | undefined {\n return Array.isArray(input) ? input[0] : input;\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function arrayBufferToBase64(buffer: ArrayBuffer) {\n return btoa(String.fromCharCode(...new Uint8Array(buffer)));\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function base64ToArrayBuffer(base64: string) : ArrayBuffer {\n const bin = atob(base64);\n const len = bin.length;\n const bytes = new Uint8Array(len);\n\n for (let i = 0; i < len; i++) {\n bytes[i] = bin.charCodeAt(i);\n }\n\n return bytes.buffer;\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function hasOwnProperty<X extends {}, Y extends PropertyKey>(obj: X, prop: Y): obj is X & Record<Y, unknown> {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nexport function isPropertySet<X extends Record<string, any>, K extends keyof X>(\n obj: X,\n prop: K,\n) : boolean {\n return hasOwnProperty(obj, prop);\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { customAlphabet } from 'nanoid';\n\nexport function createNanoID(alphabet?: string) : string;\nexport function createNanoID(len?: number) : string;\nexport function createNanoID(alphabet?: string, len?: number) : string;\nexport function createNanoID(alphabetOrLen?: string | number, len?: number) : string {\n if (typeof alphabetOrLen === 'string') {\n return customAlphabet(alphabetOrLen, len || 21)();\n }\n\n if (typeof alphabetOrLen === 'number') {\n return customAlphabet('0123456789abcdefghijklmnopqrstuvwxyz', alphabetOrLen)();\n }\n\n return customAlphabet('0123456789abcdefghijklmnopqrstuvwxyz', len || 21)();\n}\n","/*\n * Copyright (c) 2023-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function isObject(input: unknown) : input is Record<string, any> {\n return !!input &&\n typeof input === 'object' &&\n !Array.isArray(input);\n}\n\nexport function extendObject<T extends Record<string, any>>(\n target: T,\n source: Partial<T>,\n) : T {\n const keys = Object.keys(source);\n for (let i = 0; i < keys.length; i++) {\n target[keys[i] as keyof T] = source[keys[i]] as T[keyof T];\n }\n\n return target;\n}\n\nexport function flattenObject(input: Record<string, any>) : Record<string, any> {\n const output : Record<string, any> = {};\n\n const keys = Object.keys(input);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const value = input[key];\n if (isObject(value)) {\n const childAttributes = flattenObject(value);\n const childAttributeKeys = Object.keys(childAttributes);\n for (let j = 0; j < childAttributeKeys.length; j++) {\n output[`${key}.${childAttributeKeys[j]}`] = childAttributes[childAttributeKeys[j]];\n }\n\n continue;\n }\n\n output[key] = input[key];\n }\n\n return output;\n}\n","/*\n * Copyright (c) 2024-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\ntype PickRecord<T extends Record<string, any>, S extends keyof T> = {\n [K in S]: K extends keyof T ? T[K] : never\n};\n\nexport function pickRecord<\n T extends Record<string, any>,\n K extends keyof T,\n>(data: T, keys: K[]) : PickRecord<T, K> {\n const output : PickRecord<T, K> = {} as PickRecord<T, K>;\n for (let i = 0; i < keys.length; i++) {\n output[keys[i]] = data[keys[i]];\n }\n\n return output;\n}\n\ntype OmitRecord<T extends Record<string, any>, S extends keyof T> = {\n [K in Exclude<keyof T, S>]: T[K]\n};\n\nexport function omitRecord<\n T extends Record<string, any>,\n K extends keyof T,\n>(data: T, keys: K[]) : OmitRecord<T, K> {\n const dataKeys = Object.keys(data) as K[];\n\n let index : number;\n const output = {} as OmitRecord<T, K>;\n for (let i = 0; i < dataKeys.length; i++) {\n index = keys.indexOf(dataKeys[i]);\n if (index !== -1) {\n continue;\n }\n\n output[dataKeys[i] as unknown as keyof OmitRecord<T, K>] = data[dataKeys[i]] as unknown as T[Exclude<keyof T, K>];\n }\n\n return output;\n}\n","/*\n * Copyright (c) 2024-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function isScalar(\n value: unknown,\n) : value is string | number | boolean | null | undefined {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean' ||\n value === null ||\n value === undefined\n );\n}\n","/*\n * Copyright (c) 2024-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { destr } from 'destr';\n\nexport function serialize(input: unknown) : string {\n if (typeof input === 'boolean') {\n return input ? 'true' : 'false';\n }\n\n if (typeof input === 'undefined') {\n return 'undefined';\n }\n\n if (input === null) {\n return 'null';\n }\n\n if (typeof input === 'number') {\n return `${input}`;\n }\n\n if (typeof input === 'string') {\n return input;\n }\n\n return JSON.stringify(input, (key, value) => {\n if (value instanceof RegExp) {\n return value.toString();\n }\n\n return value;\n });\n}\n\nexport function deserialize<T = any>(input: any) : T {\n return destr(input);\n}\n","/*\n * Copyright (c) 2024-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function template(\n str: string,\n data: Record<string, any>,\n regex = /\\{\\{(.+?)\\}\\}/g,\n) : string {\n return Array.from(str.matchAll(regex))\n .reduce((\n acc,\n match,\n ) => {\n if (typeof data[match[1]] !== 'undefined') {\n return acc.replace(match[0], data[match[1]]);\n }\n\n return acc;\n }, str);\n}\n","/*\n * Copyright (c) 2023-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nconst regexp = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\n\nexport function isUUID(input: string) : boolean {\n return regexp.test(input);\n}\n","/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function makeURLPublicAccessible(url: string) {\n return url.replace('0.0.0.0', '127.0.0.1');\n}\n"],"names":["toArray","input","Array","isArray","toStringArray","filter","el","toArrayElement","arrayBufferToBase64","buffer","btoa","String","fromCharCode","Uint8Array","base64ToArrayBuffer","base64","bin","atob","len","length","bytes","i","charCodeAt","hasOwnProperty","obj","prop","Object","prototype","call","isPropertySet","createNanoID","alphabetOrLen","customAlphabet","isObject","extendObject","target","source","keys","flattenObject","output","key","value","childAttributes","childAttributeKeys","j","pickRecord","data","omitRecord","dataKeys","index","indexOf","isScalar","undefined","serialize","JSON","stringify","RegExp","toString","deserialize","destr","template","str","regex","from","matchAll","reduce","acc","match","replace","regexp","isUUID","test","makeURLPublicAccessible","url"],"mappings":"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"}