earljs
Version:
Ergonomic, modern and type-safe assertion library
48 lines (47 loc) • 1.7 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.formatArrayEntries = void 0;
const formatUnknown_1 = require("./formatUnknown");
const getOptionsWith_1 = require("./getOptionsWith");
function formatArrayEntries(value, sibling, options, valueStack, siblingStack) {
var _a;
const entries = [];
const passedOptions = (0, getOptionsWith_1.getOptionsWith)(options, {
requireStrictEquality: false,
maxLineLength: options.maxLineLength - 10,
});
let empty = 0;
for (let i = 0; i < value.length; i++) {
if (!value.hasOwnProperty(i.toString())) {
empty++;
}
else {
if (empty !== 0) {
entries.push(formatEmpty(empty));
empty = 0;
}
const nestedOptions = (0, getOptionsWith_1.getOptionsWith)(passedOptions, {
skipMatcherReplacement: passedOptions.skipMatcherReplacement ||
(!!sibling && !Object.prototype.hasOwnProperty.call(sibling, i.toString())),
});
const valueFormat = (0, formatUnknown_1.formatUnknown)(value[i], (_a = sibling) === null || _a === void 0 ? void 0 : _a[i], nestedOptions, valueStack, siblingStack);
for (const line of valueFormat) {
line[0] += 1;
}
entries.push(...valueFormat);
}
}
if (empty !== 0) {
entries.push(formatEmpty(empty));
}
return entries;
}
exports.formatArrayEntries = formatArrayEntries;
function formatEmpty(empty) {
if (empty === 1) {
return [1, '<empty>'];
}
else {
return [1, `<${empty} empty items>`];
}
}
;