UNPKG

@n1k1t/mock-server

Version:

Powerful util to setup mocks over HTTP APIs

65 lines 1.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.cut = exports.parseJsonSafe = exports.serializeRegExp = exports.buildCounter = exports.flattenArrayed = exports.cast = exports.wait = void 0; const wait = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); exports.wait = wait; const cast = (payload) => payload; exports.cast = cast; const flattenArrayed = (payload) => { if (payload?.every?.(Array.isArray)) { return payload.reduce((acc, nestedPayload) => acc.concat((0, exports.flattenArrayed)(nestedPayload)), []); } return Array.isArray(payload) ? [payload] : [[payload]]; }; exports.flattenArrayed = flattenArrayed; /** * @example * ```ts * const counter = buildCounter(5); * * counter() // 6 * counter() // 7 * counter(2) // 9 * ``` */ const buildCounter = (initial = 0, step = 1) => (value = step) => (initial += value); exports.buildCounter = buildCounter; const serializeRegExp = (exp) => ({ source: exp.source, flags: exp.flags, }); exports.serializeRegExp = serializeRegExp; const parseJsonSafe = (serializedJson) => { try { return { status: 'OK', result: JSON.parse(serializedJson), }; } catch (error) { return { status: 'ERROR', error: error instanceof Error ? error : new Error('Unknown'), }; } }; exports.parseJsonSafe = parseJsonSafe; /** * Cuts massive string to a cunks with limited length * * @example * ```ts * cut('foobarbaz', 3) // ['foo', 'bar', 'baz'] * ``` */ const cut = (value, length) => { const result = []; for (let i = 0; i < Math.ceil(value.length / length); i++) { result.push(value.substring(i * length, (i + 1) * length)); } return result; }; exports.cut = cut; //# sourceMappingURL=common.js.map