- Install:
npm install metautil - Require:
const metautil = require('metautil');
random(min: number, max?: number): numbersample(arr: Array<any>): anyparseParams(params: string): objectreplace(str: string, substr: string, newstr: string): stringsplit(s: string, separator: string): [string, string]fileExt(fileName: string): stringparsePath(relPath: string): Array<string>between(s: string, prefix: string, suffix: string): stringisFirstUpper(s: string): booleantoLowerCamel(s: string): stringtoUpperCamel(s: string): stringisConstant(s: string): booleannowDate(date?: Date): stringduration(s: string | number): numberbytesToSize(bytes: number): stringsizeToBytes(size: string): numbernamespaceByPath(namespace: object, path: string): object | nullmakePrivate(instance: object): objectprotect(allowMixins: Array<string>, ...namespaces: Array<object>): voidcreateAbortController(): AbortControllertimeout(msec: number, signal?: EventEmitter): Promise<void>delay(msec: number, signal?: EventEmitter): Promise<void>
ipToInt(ip?: string): numberparseHost(host?: string): stringparseCookies(cookie: string): objectfetch(url: string): Promise<string>jsonParse(buffer: Buffer): object | nullreceiveBody(req: IncomingMessage): Promise<Buffer | null>
cryptoRandom(): numbergenerateKey(length: number, possible: string): stringcrcToken(secret: string, key: string): stringgenerateToken(secret: string, characters: string, length: number): stringvalidateToken(secret: string, token: string): booleanhashPassword(password: string): Promise<string>validatePassword(password: string, serHash: string): Promise<boolean>md5(fileName: string): Promise<string>
- Semaphore for limit concurrency accessing limited resource
new Semaphore(concurrency: number, size?: number, timeout?: number)empty: booleanenter(): Promise<void>leave(): void
- Pool with round-robin and exclusive item capture
new Pool()size: numberavailable: numbernext(): object | nulladd(item: object): voidcapture(): object | nullrelease(item: object): voidisFree(item: object): boolean
Copyright (c) 2017-2021 Metarhia contributors.
Metautil is MIT licensed.
Metautil is a part of Metarhia technology stack.