28 lines
1023 B
Java
28 lines
1023 B
Java
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
var tslib_1 = require("tslib");
|
|
var helper_1 = require("../helper");
|
|
function lookup(rows, options) {
|
|
var opts = helper_1.mergeOptions(options, { default: null, as: [] });
|
|
var as = opts.as, values = opts.values, field = opts.field, from = opts.from, key = opts.key;
|
|
return rows.map(function (row) {
|
|
var item = tslib_1.__assign({}, row);
|
|
var target = from.find(function (item) { return item[key] === row[field]; });
|
|
if (!values) {
|
|
if (!Array.isArray(as) || !as[0])
|
|
throw new Error('as is required when values is unspecified');
|
|
if (!target)
|
|
item[as[0]] = opts.default;
|
|
else
|
|
item[as[0]] = target;
|
|
}
|
|
else {
|
|
values.map(function (key, index) {
|
|
item[as[index] || key] = target ? target[key] : opts.default;
|
|
});
|
|
}
|
|
return item;
|
|
});
|
|
}
|
|
exports.lookup = lookup;
|