24 lines
1017 B
Java
24 lines
1017 B
Java
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
var tslib_1 = require("tslib");
|
|
var helper_1 = require("../helper");
|
|
function fold(rows, options) {
|
|
var _a = helper_1.mergeOptions(options, { as: ['key', 'value'] }), fields = _a.fields, as = _a.as;
|
|
helper_1.assert(fields, "fold: fields is required.");
|
|
helper_1.assert(Array.isArray(fields), "fold: fields must be an array.");
|
|
helper_1.assert(fields.length === 0, "fold: fields's length must be great than 0.");
|
|
if (!as || !Array.isArray(as) || as.length < 2) {
|
|
throw new TypeError("Invalid as: as must be an array which has two item");
|
|
}
|
|
var result = [];
|
|
var _b = tslib_1.__read(as, 2), key = _b[0], value = _b[1];
|
|
rows.forEach(function (row) {
|
|
fields.forEach(function (field) {
|
|
var _a;
|
|
result.push(tslib_1.__assign(tslib_1.__assign({}, row), (_a = {}, _a[key] = field, _a[value] = row[field], _a)));
|
|
});
|
|
});
|
|
return result;
|
|
}
|
|
exports.fold = fold;
|