UNPKG

earljs

Version:

Ergonomic, modern and type-safe assertion library

54 lines (53 loc) 2.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.formatMapEntries = void 0; const formatUnknown_1 = require("./formatUnknown"); const getOptionsWith_1 = require("./getOptionsWith"); function formatMapEntries(value, sibling, options, valueStack, siblingStack) { var _a, _b; let inOrder = value; if (sibling instanceof Map) { inOrder = new Map(); for (const key of sibling.keys()) { if (value.has(key)) { inOrder.set(key, value.get(key)); } } for (const [key, keyValue] of value) { if (!sibling.has(key)) { inOrder.set(key, keyValue); } } } const valueItems = [...inOrder]; const siblingItems = sibling instanceof Map ? [...sibling] : []; const keyOptions = (0, getOptionsWith_1.getOptionsWith)(options, { skipMatcherReplacement: true, requireStrictEquality: true, maxLineLength: options.maxLineLength - 10, }); const passedValueOptions = (0, getOptionsWith_1.getOptionsWith)(options, { requireStrictEquality: false, maxLineLength: options.maxLineLength - 10, }); const entries = []; for (let i = 0; i < valueItems.length; i++) { const keyFormat = (0, formatUnknown_1.formatUnknown)(valueItems[i][0], (_a = siblingItems[i]) === null || _a === void 0 ? void 0 : _a[0], keyOptions, valueStack, siblingStack); for (const line of keyFormat) { line[0] += 1; } const valueOptions = (0, getOptionsWith_1.getOptionsWith)(passedValueOptions, { skipMatcherReplacement: passedValueOptions.skipMatcherReplacement || (sibling instanceof Map && !sibling.has(valueItems[i][0])), }); const valueFormat = (0, formatUnknown_1.formatUnknown)(valueItems[i][1], (_b = siblingItems[i]) === null || _b === void 0 ? void 0 : _b[1], valueOptions, valueStack, siblingStack); for (const line of valueFormat) { line[0] += 1; } const joint = [...keyFormat]; joint[joint.length - 1][1] = `${joint[joint.length - 1][1]} => ${valueFormat[0][1]}`; joint.push(...valueFormat.slice(1)); entries.push(...joint); } return entries; } exports.formatMapEntries = formatMapEntries;