UNPKG

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