UNPKG

848 BJavaScriptView Raw
1import { mapper as mapper$1 } from '@vect/object-mapper';
2import { mapper, iterate } from '@vect/vector-mapper';
3
4/**
5 *
6 * @param {Object[]} samples
7 * @param {(str|[str,str])[]} [fields]
8 * @returns {null|{head:*[],rows:*[][]}}
9 */
10
11function samplesSelect(samples, fields) {
12 if (fields !== null && fields !== void 0 && fields.length) {
13 const assigners = mapper(fields, field => Array.isArray(field) ? assigner.bind({
14 k: field[0],
15 p: field[1]
16 }) : assigner.bind({
17 k: field
18 }));
19 return mapper(samples, sample => {
20 let target = {};
21 iterate(assigners, fn => fn(target, sample));
22 return target;
23 });
24 }
25
26 return mapper(samples, sample => mapper$1(sample, x => x));
27}
28const assigner = function (target, source) {
29 target[this.p ?? this.k] = source[this.k];
30};
31
32export { samplesSelect };