semanticdb-core 1.1.36 → 1.1.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export * from './schema/schema.utils';
|
|
|
7
7
|
export * from './schema/property.utils';
|
|
8
8
|
export { getDrilldownDimensions } from './schema/schema.utils/getDrilldownDimensions';
|
|
9
9
|
export * from './logicform/logicform';
|
|
10
|
+
export * from './logicform/explainLogicform';
|
|
10
11
|
export * from './logicform/logicform.utils';
|
|
11
12
|
export * from './logicform/types/query';
|
|
12
13
|
export * from './logicform/preds/nameForPredItem';
|
package/dist/index.js
CHANGED
|
@@ -25,6 +25,7 @@ __exportStar(require("./schema/property.utils"), exports);
|
|
|
25
25
|
var getDrilldownDimensions_1 = require("./schema/schema.utils/getDrilldownDimensions");
|
|
26
26
|
Object.defineProperty(exports, "getDrilldownDimensions", { enumerable: true, get: function () { return getDrilldownDimensions_1.getDrilldownDimensions; } });
|
|
27
27
|
__exportStar(require("./logicform/logicform"), exports);
|
|
28
|
+
__exportStar(require("./logicform/explainLogicform"), exports);
|
|
28
29
|
__exportStar(require("./logicform/logicform.utils"), exports);
|
|
29
30
|
__exportStar(require("./logicform/types/query"), exports);
|
|
30
31
|
__exportStar(require("./logicform/preds/nameForPredItem"), exports);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { LogicformType } from './logicform';
|
|
2
|
+
import { SchemaType } from '../schema/schema';
|
|
3
|
+
export declare const DEFAULT_EXPLAIN_LOGICFORM_LOCALE = "zh-CN";
|
|
4
|
+
export type ExplainLogicformSchemas = Record<string, SchemaType>;
|
|
5
|
+
export declare const normalizeExplainLogicformLocale: (locale?: string) => string;
|
|
6
|
+
export declare const explainGroupbyLevel: (level?: string) => string;
|
|
7
|
+
export declare const explainSchema: (logicform: LogicformType, schemas: ExplainLogicformSchemas, locale?: string) => string;
|
|
8
|
+
export declare const explainQuery: (logicform: LogicformType, _schemas: ExplainLogicformSchemas, locale?: string) => string;
|
|
9
|
+
export declare const explainPreds: (logicform: LogicformType, _schemas: ExplainLogicformSchemas, locale?: string) => string;
|
|
10
|
+
export declare const explainGroupby: (logicform: LogicformType, _schemas: ExplainLogicformSchemas, locale?: string) => string;
|
|
11
|
+
export declare const explainLimit: (logicform: LogicformType, _schemas: ExplainLogicformSchemas, locale?: string) => string;
|
|
12
|
+
export declare const explainHaving: (logicform: LogicformType, _schemas: ExplainLogicformSchemas, locale?: string) => string;
|
|
13
|
+
export declare const explainLogicform: (logicform: LogicformType, schemas: ExplainLogicformSchemas, locale?: string) => string[];
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.explainLogicform = exports.explainHaving = exports.explainLimit = exports.explainGroupby = exports.explainPreds = exports.explainQuery = exports.explainSchema = exports.explainGroupbyLevel = exports.normalizeExplainLogicformLocale = exports.DEFAULT_EXPLAIN_LOGICFORM_LOCALE = void 0;
|
|
4
|
+
exports.DEFAULT_EXPLAIN_LOGICFORM_LOCALE = 'zh-CN';
|
|
5
|
+
const normalizeExplainLogicformLocale = (locale) => {
|
|
6
|
+
if (locale === exports.DEFAULT_EXPLAIN_LOGICFORM_LOCALE) {
|
|
7
|
+
return locale;
|
|
8
|
+
}
|
|
9
|
+
return exports.DEFAULT_EXPLAIN_LOGICFORM_LOCALE;
|
|
10
|
+
};
|
|
11
|
+
exports.normalizeExplainLogicformLocale = normalizeExplainLogicformLocale;
|
|
12
|
+
const GROUPBY_LEVEL_NAME_DICT = {
|
|
13
|
+
year: '年',
|
|
14
|
+
quarter: '季度',
|
|
15
|
+
toQuarter: '季度',
|
|
16
|
+
month: '月',
|
|
17
|
+
toMonth: '月',
|
|
18
|
+
week: '周',
|
|
19
|
+
toWeek: '周',
|
|
20
|
+
day: '日',
|
|
21
|
+
date: '日',
|
|
22
|
+
hour: '小时',
|
|
23
|
+
minute: '分钟',
|
|
24
|
+
second: '秒',
|
|
25
|
+
};
|
|
26
|
+
const stringifyJson = (value) => {
|
|
27
|
+
if (value === undefined) {
|
|
28
|
+
return '无';
|
|
29
|
+
}
|
|
30
|
+
const stringified = JSON.stringify(value);
|
|
31
|
+
return stringified === undefined ? String(value) : stringified;
|
|
32
|
+
};
|
|
33
|
+
const getEntityIdFromValue = (value) => {
|
|
34
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
if (!('entity_id' in value)) {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
const entityId = value.entity_id;
|
|
41
|
+
return typeof entityId === 'string' && entityId ? entityId : undefined;
|
|
42
|
+
};
|
|
43
|
+
const explainFilterLikeQuery = (query, prefix = '筛选', separator = ' ') => {
|
|
44
|
+
if (!query || Object.keys(query).length === 0) {
|
|
45
|
+
return '';
|
|
46
|
+
}
|
|
47
|
+
const parts = Object.keys(query)
|
|
48
|
+
.filter((k) => k !== 'entity_id')
|
|
49
|
+
.map((k) => {
|
|
50
|
+
const key = k.split('_').pop() || '';
|
|
51
|
+
const entityId = getEntityIdFromValue(query[k]);
|
|
52
|
+
if (entityId) {
|
|
53
|
+
return `${key}(${entityId})`;
|
|
54
|
+
}
|
|
55
|
+
return key;
|
|
56
|
+
});
|
|
57
|
+
const queryEntityId = getEntityIdFromValue(query);
|
|
58
|
+
if (queryEntityId) {
|
|
59
|
+
parts.push(`ID为${queryEntityId}`);
|
|
60
|
+
}
|
|
61
|
+
return parts.length > 0 ? `${prefix}${separator}${parts.join('、')}` : '';
|
|
62
|
+
};
|
|
63
|
+
const explainGroupbyLevel = (level) => {
|
|
64
|
+
if (!level) {
|
|
65
|
+
return '';
|
|
66
|
+
}
|
|
67
|
+
return GROUPBY_LEVEL_NAME_DICT[level] || level;
|
|
68
|
+
};
|
|
69
|
+
exports.explainGroupbyLevel = explainGroupbyLevel;
|
|
70
|
+
const explainSchema = (logicform, schemas, locale = exports.DEFAULT_EXPLAIN_LOGICFORM_LOCALE) => {
|
|
71
|
+
var _a;
|
|
72
|
+
(0, exports.normalizeExplainLogicformLocale)(locale);
|
|
73
|
+
if (!logicform.schema) {
|
|
74
|
+
return '未指定主题';
|
|
75
|
+
}
|
|
76
|
+
const schemaName = ((_a = schemas[logicform.schema]) === null || _a === void 0 ? void 0 : _a.name) || logicform.schema;
|
|
77
|
+
return `${schemaName}主题`;
|
|
78
|
+
};
|
|
79
|
+
exports.explainSchema = explainSchema;
|
|
80
|
+
const explainQuery = (logicform, _schemas, locale = exports.DEFAULT_EXPLAIN_LOGICFORM_LOCALE) => {
|
|
81
|
+
(0, exports.normalizeExplainLogicformLocale)(locale);
|
|
82
|
+
return explainFilterLikeQuery(logicform.query, '筛选');
|
|
83
|
+
};
|
|
84
|
+
exports.explainQuery = explainQuery;
|
|
85
|
+
const explainPreds = (logicform, _schemas, locale = exports.DEFAULT_EXPLAIN_LOGICFORM_LOCALE) => {
|
|
86
|
+
(0, exports.normalizeExplainLogicformLocale)(locale);
|
|
87
|
+
if (!logicform.preds || logicform.preds.length === 0) {
|
|
88
|
+
return '';
|
|
89
|
+
}
|
|
90
|
+
return `计算 ${logicform.preds.map((p) => p.name).join('、')}`;
|
|
91
|
+
};
|
|
92
|
+
exports.explainPreds = explainPreds;
|
|
93
|
+
const explainGroupby = (logicform, _schemas, locale = exports.DEFAULT_EXPLAIN_LOGICFORM_LOCALE) => {
|
|
94
|
+
(0, exports.normalizeExplainLogicformLocale)(locale);
|
|
95
|
+
if (!logicform.groupby || logicform.groupby.length === 0) {
|
|
96
|
+
return '';
|
|
97
|
+
}
|
|
98
|
+
return `按 ${logicform.groupby
|
|
99
|
+
.map((gi) => (0, exports.explainGroupbyLevel)(gi.level) || gi.name || '')
|
|
100
|
+
.join('、')} 分组`;
|
|
101
|
+
};
|
|
102
|
+
exports.explainGroupby = explainGroupby;
|
|
103
|
+
const explainLimit = (logicform, _schemas, locale = exports.DEFAULT_EXPLAIN_LOGICFORM_LOCALE) => {
|
|
104
|
+
(0, exports.normalizeExplainLogicformLocale)(locale);
|
|
105
|
+
if (typeof logicform.limit !== 'number') {
|
|
106
|
+
return '';
|
|
107
|
+
}
|
|
108
|
+
return `限制 ${logicform.limit} 条记录`;
|
|
109
|
+
};
|
|
110
|
+
exports.explainLimit = explainLimit;
|
|
111
|
+
const explainHaving = (logicform, _schemas, locale = exports.DEFAULT_EXPLAIN_LOGICFORM_LOCALE) => {
|
|
112
|
+
(0, exports.normalizeExplainLogicformLocale)(locale);
|
|
113
|
+
return explainFilterLikeQuery(logicform.having, '结果过滤:', '');
|
|
114
|
+
};
|
|
115
|
+
exports.explainHaving = explainHaving;
|
|
116
|
+
const explainLogicform = (logicform, schemas, locale = exports.DEFAULT_EXPLAIN_LOGICFORM_LOCALE) => {
|
|
117
|
+
const normalizedLocale = (0, exports.normalizeExplainLogicformLocale)(locale);
|
|
118
|
+
return [
|
|
119
|
+
(0, exports.explainSchema)(logicform, schemas, normalizedLocale),
|
|
120
|
+
(0, exports.explainQuery)(logicform, schemas, normalizedLocale),
|
|
121
|
+
(0, exports.explainPreds)(logicform, schemas, normalizedLocale),
|
|
122
|
+
(0, exports.explainGroupby)(logicform, schemas, normalizedLocale),
|
|
123
|
+
(0, exports.explainLimit)(logicform, schemas, normalizedLocale),
|
|
124
|
+
(0, exports.explainHaving)(logicform, schemas, normalizedLocale),
|
|
125
|
+
];
|
|
126
|
+
};
|
|
127
|
+
exports.explainLogicform = explainLogicform;
|
package/dist/result/index.js
CHANGED
|
@@ -18,13 +18,13 @@ const logicformResultToMarkdown = (ret, number_only) => {
|
|
|
18
18
|
markdownText += `总记录数: ${total}\n`;
|
|
19
19
|
}
|
|
20
20
|
if (!logicform.groupby && !(0, logicform_utils_1.isSimpleQuery)(logicform)) {
|
|
21
|
-
markdownText
|
|
21
|
+
markdownText += columnProperties
|
|
22
22
|
.map((p) => (number_only ? '' : (p.name + ': ')) +
|
|
23
23
|
(0, property_utils_1.formatWithProperty)(p.ref ? schemas[p.ref] : schemas[logicform.schema], p, result[0][p.name], true))
|
|
24
24
|
.join(',');
|
|
25
25
|
}
|
|
26
26
|
else {
|
|
27
|
-
markdownText
|
|
27
|
+
markdownText +=
|
|
28
28
|
'\n' +
|
|
29
29
|
(0, json2md_1.default)([
|
|
30
30
|
{
|