@visactor/vgrammar-core
Version:
VGrammar is a visual grammar library
16 lines (11 loc) • 720 B
JavaScript
import { field as getFieldAccessor } from "@visactor/vgrammar-util";
import { isString } from "@visactor/vutils";
import { fieldNames } from "../util/util";
function project(source, fields, as) {
return fields.reduce(((res, field, index) => (res[as[index]] = field(source), res)), {});
}
export const transform = (options, upstreamData) => {
const {fields: fields = []} = options, as = fieldNames(fields, options.as || []), fieldsAccessors = fields.map((field => isString(field) ? getFieldAccessor(field) : field));
return fieldsAccessors.length ? upstreamData.map(((entry, index) => project(entry, fieldsAccessors, as))) : upstreamData.map(((entry, index) => ({})));
};
//# sourceMappingURL=pick.js.map