UNPKG

2 kBJavaScriptView Raw
1import { typeAll } from '@antv/dw-analyzer';
2import { parse } from './parse';
3/**
4 * @public
5 */
6export function rename(originStr, aggType, option) {
7 if (option === void 0) { option = 'brackets'; }
8 if (option === false || option === 'origin') {
9 return originStr;
10 }
11 if (option === true || option === 'brackets' || !option) {
12 return aggType.toUpperCase() + "(" + originStr + ")";
13 }
14 if (option === 'underline') {
15 return aggType.toUpperCase() + "_" + originStr;
16 }
17 if (typeof option === 'function') {
18 return String(option(originStr, aggType));
19 }
20 throw new Error("Invalid rename option " + option);
21}
22/**
23 * @public
24 */
25export function autoSchema(data, renameOption, defaultAgg) {
26 if (renameOption === void 0) { renameOption = 'brackets'; }
27 if (defaultAgg === void 0) { defaultAgg = 'sum'; }
28 var schemas = [];
29 var schema = {
30 actions: [],
31 };
32 var dataAnalyze = typeAll(data);
33 var toGroupBy = [];
34 var toNotGroupBy = [];
35 dataAnalyze.forEach(function (col) {
36 if (['string', 'date', 'boolean'].includes(col.recommendation)) {
37 toGroupBy.push(col.name);
38 }
39 else {
40 toNotGroupBy.push(col.name);
41 }
42 });
43 if (toGroupBy.length) {
44 schema.groupBy = toGroupBy;
45 toNotGroupBy.forEach(function (colName) {
46 schema.actions.push({
47 type: defaultAgg,
48 field: colName,
49 as: rename(colName, defaultAgg, renameOption),
50 });
51 });
52 schemas.push(schema);
53 }
54 return schemas;
55}
56/**
57 * @public
58 */
59export function autoTransform(data, renameOption, defaultAgg) {
60 if (renameOption === void 0) { renameOption = 'brackets'; }
61 if (defaultAgg === void 0) { defaultAgg = 'sum'; }
62 var result = {
63 result: [],
64 schemas: autoSchema(data, renameOption, defaultAgg),
65 };
66 result.result = parse(data, result.schemas);
67 return result;
68}