structured-elements
Version:
A TypeScript package for modelling and validating data
20 lines • 986 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildMirrorCollection = void 0;
const recordWithId_1 = require("../is/recordWithId");
const buildMirrorCollection = (array, options) => {
var _a;
return array.reduce((result, record) => {
if (options === null || options === void 0 ? void 0 : options.extractKey) {
result[options.extractKey(record)] = record;
return result;
}
if ((0, recordWithId_1.isRecordWithId)(record)) {
result[record.id] = record;
return result;
}
throw new Error(`buildMirror failed because a record has no id and no extractKey function was provided. { record: ${JSON.stringify(record)} }`);
}, ((_a = options === null || options === void 0 ? void 0 : options.base) === null || _a === void 0 ? void 0 : _a.collection) || {});
};
exports.buildMirrorCollection = buildMirrorCollection;
//# sourceMappingURL=buildCollection.js.map