- Install:
npm install metautil
- Require:
const metautil = require('metautil');
random(min: number, max?: number): number
sample(arr: Array<any>): any
parseParams(params: string): object
replace(str: string, substr: string, newstr: string): string
split(s: string, separator: string): [string, string]
fileExt(fileName: string): string
parsePath(relPath: string): Array<string>
between(s: string, prefix: string, suffix: string): string
isFirstUpper(s: string): boolean
toLowerCamel(s: string): string
toUpperCamel(s: string): string
isConstant(s: string): boolean
nowDate(date?: Date): string
duration(s: string | number): number
bytesToSize(bytes: number): string
sizeToBytes(size: string): number
namespaceByPath(namespace: object, path: string): object | null
makePrivate(instance: object): object
protect(allowMixins: Array<string>, ...namespaces: Array<object>): void
createAbortController(): AbortController
timeout(msec: number, signal?: EventEmitter): Promise<void>
delay(msec: number, signal?: EventEmitter): Promise<void>
ipToInt(ip?: string): number
parseHost(host?: string): string
parseCookies(cookie: string): object
fetch(url: string): Promise<string>
jsonParse(buffer: Buffer): object | null
receiveBody(req: IncomingMessage): Promise<Buffer | null>
cryptoRandom(): number
generateKey(length: number, possible: string): string
crcToken(secret: string, key: string): string
generateToken(secret: string, characters: string, length: number): string
validateToken(secret: string, token: string): boolean
hashPassword(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: boolean
enter(): Promise<void>
leave(): void
- Pool with round-robin and exclusive item capture
new Pool()
size: number
available: number
next(): object | null
add(item: object): void
capture(): object | null
release(item: object): void
isFree(item: object): boolean
Copyright (c) 2017-2021 Metarhia contributors.
Metautil is MIT licensed.
Metautil is a part of Metarhia technology stack.