@lcap/nasl 1.0.2 → 2.12.0
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/out/automate/engine/index.d.ts +1 -0
- package/out/automate/engine/index.js +34 -12
- package/out/automate/engine/index.js.map +1 -1
- package/out/automate/engine/operators.d.ts +10 -2
- package/out/automate/engine/operators.js +105 -7
- package/out/automate/engine/operators.js.map +1 -1
- package/out/automate/engine/uniqueName.d.ts +8 -2
- package/out/automate/engine/uniqueName.js +72 -4
- package/out/automate/engine/uniqueName.js.map +1 -1
- package/out/automate/engine/utils.d.ts +1 -0
- package/out/automate/engine/utils.js +92 -67
- package/out/automate/engine/utils.js.map +1 -1
- package/out/automate/template/process.d.ts +9 -0
- package/out/automate/template/process.js +10976 -0
- package/out/automate/template/process.js.map +1 -0
- package/out/bak/translator.js +1 -0
- package/out/bak/translator.js.map +1 -1
- package/out/common/BaseNode.d.ts +5 -0
- package/out/common/BaseNode.js +24 -3
- package/out/common/BaseNode.js.map +1 -1
- package/out/concepts/App__.d.ts +51 -49
- package/out/concepts/App__.js +86 -53
- package/out/concepts/App__.js.map +1 -1
- package/out/concepts/BindAttribute__.js +2 -2
- package/out/concepts/BindAttribute__.js.map +1 -1
- package/out/concepts/BindDirective__.js +10 -3
- package/out/concepts/BindDirective__.js.map +1 -1
- package/out/concepts/BindEvent__.js +15 -6
- package/out/concepts/BindEvent__.js.map +1 -1
- package/out/concepts/BooleanLiteral__.d.ts +4 -0
- package/out/concepts/BooleanLiteral__.js +11 -0
- package/out/concepts/BooleanLiteral__.js.map +1 -1
- package/out/concepts/CallFunction__.js +8 -2
- package/out/concepts/CallFunction__.js.map +1 -1
- package/out/concepts/CallLogic__.js +48 -30
- package/out/concepts/CallLogic__.js.map +1 -1
- package/out/concepts/CallQueryComponent__.d.ts +8 -7
- package/out/concepts/CallQueryComponent__.js +86 -76
- package/out/concepts/CallQueryComponent__.js.map +1 -1
- package/out/concepts/Comment__.js +1 -1
- package/out/concepts/Comment__.js.map +1 -1
- package/out/concepts/ConfigGroup__.d.ts +1 -0
- package/out/concepts/ConfigGroup__.js +7 -0
- package/out/concepts/ConfigGroup__.js.map +1 -1
- package/out/concepts/ConfigProperty__.d.ts +1 -0
- package/out/concepts/ConfigProperty__.js +3 -0
- package/out/concepts/ConfigProperty__.js.map +1 -1
- package/out/concepts/Configuration__.d.ts +1 -0
- package/out/concepts/Configuration__.js +3 -0
- package/out/concepts/Configuration__.js.map +1 -1
- package/out/concepts/DataSource__.d.ts +143 -0
- package/out/concepts/DataSource__.js +318 -0
- package/out/concepts/DataSource__.js.map +1 -0
- package/out/concepts/Destination__.js +8 -8
- package/out/concepts/Destination__.js.map +1 -1
- package/out/concepts/End__.js +2 -2
- package/out/concepts/End__.js.map +1 -1
- package/out/concepts/EntityIndex__.d.ts +5 -0
- package/out/concepts/EntityIndex__.js +6 -0
- package/out/concepts/EntityIndex__.js.map +1 -1
- package/out/concepts/EntityProperty__.d.ts +9 -0
- package/out/concepts/EntityProperty__.js +19 -2
- package/out/concepts/EntityProperty__.js.map +1 -1
- package/out/concepts/Entity__.d.ts +5 -0
- package/out/concepts/Entity__.js +20 -10
- package/out/concepts/Entity__.js.map +1 -1
- package/out/concepts/Enum__.js +12 -6
- package/out/concepts/Enum__.js.map +1 -1
- package/out/concepts/ForEachStatement__.js +2 -2
- package/out/concepts/ForEachStatement__.js.map +1 -1
- package/out/concepts/Function__.d.ts +18 -0
- package/out/concepts/Function__.js +96 -1
- package/out/concepts/Function__.js.map +1 -1
- package/out/concepts/Identifier__.js +6 -15
- package/out/concepts/Identifier__.js.map +1 -1
- package/out/concepts/IfStatement__.js +8 -8
- package/out/concepts/IfStatement__.js.map +1 -1
- package/out/concepts/Interface__.js +19 -12
- package/out/concepts/Interface__.js.map +1 -1
- package/out/concepts/JSBlock__.js +3 -5
- package/out/concepts/JSBlock__.js.map +1 -1
- package/out/concepts/Logic__.js +44 -44
- package/out/concepts/Logic__.js.map +1 -1
- package/out/concepts/Module__.d.ts +116 -194
- package/out/concepts/Module__.js +31 -114
- package/out/concepts/Module__.js.map +1 -1
- package/out/concepts/Namespace__.d.ts +0 -86
- package/out/concepts/Namespace__.js +1 -108
- package/out/concepts/Namespace__.js.map +1 -1
- package/out/concepts/Param__.d.ts +2 -1
- package/out/concepts/Param__.js +1 -1
- package/out/concepts/Param__.js.map +1 -1
- package/out/concepts/ProcessElement__.js +30 -10
- package/out/concepts/ProcessElement__.js.map +1 -1
- package/out/concepts/Process__.d.ts +1 -1
- package/out/concepts/Process__.js +17 -10
- package/out/concepts/Process__.js.map +1 -1
- package/out/concepts/QueryFieldExpression__.js +8 -1
- package/out/concepts/QueryFieldExpression__.js.map +1 -1
- package/out/concepts/QueryFromExpression__.d.ts +4 -0
- package/out/concepts/QueryFromExpression__.js +13 -2
- package/out/concepts/QueryFromExpression__.js.map +1 -1
- package/out/concepts/QueryJoinExpression__.d.ts +4 -0
- package/out/concepts/QueryJoinExpression__.js +14 -3
- package/out/concepts/QueryJoinExpression__.js.map +1 -1
- package/out/concepts/Return__.js +1 -1
- package/out/concepts/Return__.js.map +1 -1
- package/out/concepts/Role__.js +10 -3
- package/out/concepts/Role__.js.map +1 -1
- package/out/concepts/SqlQueryComponent__.d.ts +14 -0
- package/out/concepts/SqlQueryComponent__.js +48 -5
- package/out/concepts/SqlQueryComponent__.js.map +1 -1
- package/out/concepts/StringLiteral__.d.ts +1 -1
- package/out/concepts/StringLiteral__.js +1 -1
- package/out/concepts/StructureProperty__.js +6 -5
- package/out/concepts/StructureProperty__.js.map +1 -1
- package/out/concepts/Structure__.js +19 -12
- package/out/concepts/Structure__.js.map +1 -1
- package/out/concepts/SwitchCase__.d.ts +1 -1
- package/out/concepts/SwitchCase__.js +23 -25
- package/out/concepts/SwitchCase__.js.map +1 -1
- package/out/concepts/SwitchStatement__.js +1 -6
- package/out/concepts/SwitchStatement__.js.map +1 -1
- package/out/concepts/TypeAnnotation__.d.ts +8 -0
- package/out/concepts/TypeAnnotation__.js +44 -2
- package/out/concepts/TypeAnnotation__.js.map +1 -1
- package/out/concepts/Variable__.js +1 -1
- package/out/concepts/Variable__.js.map +1 -1
- package/out/concepts/ViewElement__.js +25 -20
- package/out/concepts/ViewElement__.js.map +1 -1
- package/out/concepts/View__.d.ts +0 -2
- package/out/concepts/View__.js +27 -32
- package/out/concepts/View__.js.map +1 -1
- package/out/concepts/WhileStatement__.js +4 -4
- package/out/concepts/WhileStatement__.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.auth.js +20 -0
- package/out/concepts/basics/stdlib/nasl.auth.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.process.d.ts +4 -0
- package/out/concepts/basics/stdlib/nasl.process.js +410 -0
- package/out/concepts/basics/stdlib/nasl.process.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.ui.js +1 -11
- package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.util.js +280 -2
- package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
- package/out/concepts/basics/types/index.d.ts +1 -0
- package/out/concepts/basics/types/index.js +4 -1
- package/out/concepts/basics/types/index.js.map +1 -1
- package/out/concepts/index__.d.ts +1 -0
- package/out/concepts/index__.js +1 -0
- package/out/concepts/index__.js.map +1 -1
- package/out/generator/genBundleFiles.d.ts +3 -1
- package/out/generator/genBundleFiles.js +23 -5
- package/out/generator/genBundleFiles.js.map +1 -1
- package/out/generator/genMetaData.d.ts +1 -0
- package/out/generator/genMetaData.js +20 -12
- package/out/generator/genMetaData.js.map +1 -1
- package/out/index.d.ts +1 -1
- package/out/index.js +2 -1
- package/out/index.js.map +1 -1
- package/out/server/createUiTs.js +1 -0
- package/out/server/createUiTs.js.map +1 -1
- package/out/server/getLogics.js +27 -1
- package/out/server/getLogics.js.map +1 -1
- package/out/server/getMemberIdentifier.js +5 -0
- package/out/server/getMemberIdentifier.js.map +1 -1
- package/out/server/getProcesses.d.ts +4 -0
- package/out/server/getProcesses.js +69 -1
- package/out/server/getProcesses.js.map +1 -1
- package/out/server/naslServer.d.ts +1 -0
- package/out/server/naslServer.js +223 -26
- package/out/server/naslServer.js.map +1 -1
- package/out/server/process2LogicNamespace.js +10 -1
- package/out/server/process2LogicNamespace.js.map +1 -1
- package/out/server/translator.js +37 -1
- package/out/server/translator.js.map +1 -1
- package/out/service/creator/errHandles.js +5 -0
- package/out/service/creator/errHandles.js.map +1 -1
- package/out/service/storage/init.d.ts +1 -0
- package/out/service/storage/init.js +95 -84
- package/out/service/storage/init.js.map +1 -1
- package/out/templator/genCreateBlock.js +34 -24
- package/out/templator/genCreateBlock.js.map +1 -1
- package/out/templator/genCurdEditMultipleKeyBlock.js +28 -18
- package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
- package/out/templator/genCurdMultipleKeyBlock.js +45 -29
- package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
- package/out/templator/genEditTableBlock.js +15 -13
- package/out/templator/genEditTableBlock.js.map +1 -1
- package/out/templator/genEnumSelectBlock.js +1 -1
- package/out/templator/genEnumSelectBlock.js.map +1 -1
- package/out/templator/genGridViewBlock.js +29 -24
- package/out/templator/genGridViewBlock.js.map +1 -1
- package/out/templator/genListViewBlock.js +7 -5
- package/out/templator/genListViewBlock.js.map +1 -1
- package/out/templator/genQueryComponent.js +25 -26
- package/out/templator/genQueryComponent.js.map +1 -1
- package/out/templator/genSelectBlock.js +8 -7
- package/out/templator/genSelectBlock.js.map +1 -1
- package/out/templator/genTableBlock.js +31 -21
- package/out/templator/genTableBlock.js.map +1 -1
- package/out/templator/genUpdateBlock.js +34 -24
- package/out/templator/genUpdateBlock.js.map +1 -1
- package/out/templator/utils.d.ts +2 -2
- package/out/templator/utils.js.map +1 -1
- package/out/test/integration/connect-file.js +6 -6
- package/out/test/integration/connect-file.js.map +1 -1
- package/out/translator/index.js +1 -1
- package/out/translator/index.js.map +1 -1
- package/out/utils/index.d.ts +5 -0
- package/out/utils/index.js +50 -1
- package/out/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/src/automate/engine/index.js +33 -8
- package/src/automate/engine/operators.js +114 -17
- package/src/automate/engine/uniqueName.js +77 -9
- package/src/automate/engine/utils.js +95 -68
- package/src/automate/template/process.js +10999 -0
- package/src/bak/translator.js +1 -0
- package/src/common/BaseNode.ts +21 -4
- package/src/concepts/App__.ts +128 -94
- package/src/concepts/BindAttribute__.ts +2 -2
- package/src/concepts/BindDirective__.ts +9 -7
- package/src/concepts/BindEvent__.ts +14 -6
- package/src/concepts/BooleanLiteral__.ts +12 -0
- package/src/concepts/CallFunction__.ts +6 -2
- package/src/concepts/CallLogic__.ts +47 -32
- package/src/concepts/CallQueryComponent__.ts +92 -81
- package/src/concepts/Comment__.ts +1 -1
- package/src/concepts/ConfigGroup__.ts +3 -1
- package/src/concepts/ConfigProperty__.ts +4 -0
- package/src/concepts/Configuration__.ts +3 -0
- package/src/concepts/DataSource__.ts +391 -0
- package/src/concepts/Destination__.ts +24 -8
- package/src/concepts/End__.ts +2 -2
- package/src/concepts/EntityIndex__.ts +7 -0
- package/src/concepts/EntityProperty__.ts +20 -2
- package/src/concepts/Entity__.ts +23 -11
- package/src/concepts/Enum__.ts +25 -6
- package/src/concepts/ForEachStatement__.ts +2 -2
- package/src/concepts/Function__.ts +95 -1
- package/src/concepts/Identifier__.ts +15 -15
- package/src/concepts/IfStatement__.ts +9 -9
- package/src/concepts/Interface__.ts +20 -12
- package/src/concepts/JSBlock__.ts +3 -12
- package/src/concepts/Logic__.ts +45 -79
- package/src/concepts/Module__.ts +141 -342
- package/src/concepts/Namespace__.ts +1 -204
- package/src/concepts/Param__.ts +3 -2
- package/src/concepts/ProcessElement__.ts +33 -12
- package/src/concepts/Process__.ts +18 -12
- package/src/concepts/QueryFieldExpression__.ts +9 -1
- package/src/concepts/QueryFromExpression__.ts +13 -2
- package/src/concepts/QueryJoinExpression__.ts +14 -3
- package/src/concepts/Return__.ts +1 -1
- package/src/concepts/Role__.ts +10 -4
- package/src/concepts/SqlQueryComponent__.ts +47 -11
- package/src/concepts/StringLiteral__.ts +1 -1
- package/src/concepts/StructureProperty__.ts +6 -9
- package/src/concepts/Structure__.ts +19 -11
- package/src/concepts/SwitchCase__.ts +23 -27
- package/src/concepts/SwitchStatement__.ts +1 -5
- package/src/concepts/TypeAnnotation__.ts +43 -2
- package/src/concepts/Variable__.ts +1 -1
- package/src/concepts/ViewElement__.ts +26 -39
- package/src/concepts/View__.ts +29 -34
- package/src/concepts/WhileStatement__.ts +4 -4
- package/src/concepts/basics/stdlib/nasl.auth.ts +20 -0
- package/src/concepts/basics/stdlib/nasl.process.ts +406 -0
- package/src/concepts/basics/stdlib/nasl.ui.ts +1 -11
- package/src/concepts/basics/stdlib/nasl.util.ts +281 -2
- package/src/concepts/basics/types/index.ts +1 -0
- package/src/concepts/index__.ts +1 -0
- package/src/generator/genBundleFiles.ts +28 -7
- package/src/generator/genMetaData.ts +22 -13
- package/src/index.ts +1 -1
- package/src/server/createUiTs.ts +1 -0
- package/src/server/getLogics.ts +29 -4
- package/src/server/getMemberIdentifier.ts +4 -0
- package/src/server/getProcesses.ts +68 -0
- package/src/server/naslServer.ts +227 -30
- package/src/server/process2LogicNamespace.ts +29 -19
- package/src/server/translator.ts +39 -1
- package/src/service/creator/errHandles.js +6 -0
- package/src/service/storage/init.ts +97 -86
- package/src/templator/genCreateBlock.ts +35 -26
- package/src/templator/genCurdEditMultipleKeyBlock.ts +29 -21
- package/src/templator/genCurdMultipleKeyBlock.ts +46 -31
- package/src/templator/genEditTableBlock.ts +17 -14
- package/src/templator/genEnumSelectBlock.ts +1 -1
- package/src/templator/genGridViewBlock.ts +30 -25
- package/src/templator/genListViewBlock.ts +10 -7
- package/src/templator/genQueryComponent.ts +28 -27
- package/src/templator/genSelectBlock.ts +9 -8
- package/src/templator/genTableBlock.ts +32 -23
- package/src/templator/genUpdateBlock.ts +35 -25
- package/src/templator/utils.ts +2 -2
- package/src/test/integration/connect-file.ts +6 -6
- package/src/translator/index.ts +1 -1
- package/src/utils/index.ts +51 -0
|
@@ -0,0 +1,391 @@
|
|
|
1
|
+
import App from './App__';
|
|
2
|
+
import { TranslatorState, withSourceMap, createCompilerState } from '../translator';
|
|
3
|
+
|
|
4
|
+
//================================================================================
|
|
5
|
+
// 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
|
|
6
|
+
// ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
|
|
7
|
+
//================================================================================
|
|
8
|
+
import { EventPayload, Params } from '../common/EventEmitter';
|
|
9
|
+
import { concept, excludedInJSON, property } from '../decorators';
|
|
10
|
+
|
|
11
|
+
import * as utils from '../utils';
|
|
12
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
13
|
+
import BaseNode from '../common/BaseNode';
|
|
14
|
+
import classMap from '../common/classMap';
|
|
15
|
+
import Entity from './Entity__';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* 数据源
|
|
19
|
+
*/
|
|
20
|
+
@concept('数据源')
|
|
21
|
+
export class DataSource extends BaseNode {
|
|
22
|
+
/**
|
|
23
|
+
* 产品概念
|
|
24
|
+
*/
|
|
25
|
+
@property()
|
|
26
|
+
concept: 'DataSource' = 'DataSource';
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* 数据源名称
|
|
30
|
+
*/
|
|
31
|
+
@property()
|
|
32
|
+
name: string = undefined;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* 数据源描述
|
|
36
|
+
*/
|
|
37
|
+
@property()
|
|
38
|
+
description: string = undefined;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* 实体列表
|
|
42
|
+
*/
|
|
43
|
+
@property('Entity')
|
|
44
|
+
entities: Array<Entity> = [];
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* @param source 需要合并的部分参数
|
|
50
|
+
*/
|
|
51
|
+
constructor(source?: Partial<DataSource>) {
|
|
52
|
+
source = Object.assign({}, DataSource.getDefaultOptions(), source);
|
|
53
|
+
super(source);
|
|
54
|
+
super.subConstructor(source);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
static from(source: any, parentNode?: any, parentKey?: string): DataSource {
|
|
58
|
+
return super.from(source, parentNode, parentKey) as DataSource;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* 从父级删除该节点
|
|
63
|
+
* @internal
|
|
64
|
+
*/
|
|
65
|
+
_delete() {
|
|
66
|
+
let params: Params = null;
|
|
67
|
+
if (this.parentNode) {
|
|
68
|
+
params = (this.parentNode as any)?.__removeDataSource?.(this);
|
|
69
|
+
}
|
|
70
|
+
return params;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* 设置数据源描述
|
|
74
|
+
*/
|
|
75
|
+
setDescription(description: string) {
|
|
76
|
+
const object = {
|
|
77
|
+
description,
|
|
78
|
+
};
|
|
79
|
+
this.update({
|
|
80
|
+
...object,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
getEntityExistingNames(excludedList: Array<Entity> = []) {
|
|
85
|
+
const excludedSet = new Set(excludedList);
|
|
86
|
+
return (this.entities || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
|
|
87
|
+
}
|
|
88
|
+
getEntityUniqueName(name = 'Entity1') {
|
|
89
|
+
return utils.unique(name, this.getEntityExistingNames(), undefined, true);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* 插入实体
|
|
94
|
+
* @internal
|
|
95
|
+
* @param name 实体名称,如果不填会自动生成一个唯一名称
|
|
96
|
+
*/
|
|
97
|
+
_insertEntityAt(name: string, index: number): Entity;
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* 插入实体
|
|
101
|
+
* @internal
|
|
102
|
+
* @param entityOptions 实体参数
|
|
103
|
+
*/
|
|
104
|
+
_insertEntityAt(entityOptions: Partial<Entity>, index: number): Entity;
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* 插入实体
|
|
108
|
+
* @internal
|
|
109
|
+
* @param entity 已有的实体实例
|
|
110
|
+
*/
|
|
111
|
+
_insertEntityAt(entity: Entity, index: number): Entity;
|
|
112
|
+
|
|
113
|
+
_insertEntityAt(options: string | Partial<Entity> | Entity, index: number) {
|
|
114
|
+
const entityOptions: any = {};
|
|
115
|
+
const relationOptions = { parentNode: this, parentKey: 'entities' };
|
|
116
|
+
let entity: Entity;
|
|
117
|
+
if (!options) {
|
|
118
|
+
entity = Entity.from({
|
|
119
|
+
...entityOptions,
|
|
120
|
+
name: this.getEntityUniqueName(),
|
|
121
|
+
}, this, 'entities');
|
|
122
|
+
} else if (typeof options === 'string') {
|
|
123
|
+
entity = Entity.from({
|
|
124
|
+
...entityOptions,
|
|
125
|
+
name: options,
|
|
126
|
+
}, this, 'entities');
|
|
127
|
+
} else if (options instanceof Entity) {
|
|
128
|
+
options.ensureDelete(); // 同一实例不支持多处存在
|
|
129
|
+
entity = options;
|
|
130
|
+
Object.assign(entity, relationOptions);
|
|
131
|
+
} else {
|
|
132
|
+
entity = Entity.from({
|
|
133
|
+
...entityOptions,
|
|
134
|
+
...options,
|
|
135
|
+
}, this, 'entities');
|
|
136
|
+
}
|
|
137
|
+
this.entities.splice(index, 0, entity);
|
|
138
|
+
return entity;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* 插入实体
|
|
143
|
+
* @param name 实体名称,如果不填会自动生成一个唯一名称
|
|
144
|
+
*/
|
|
145
|
+
insertEntityAt(name: string, index: number): Entity;
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* 插入实体
|
|
149
|
+
* @param entityOptions 实体参数
|
|
150
|
+
*/
|
|
151
|
+
insertEntityAt(entityOptions: Partial<Entity>, index: number): Entity;
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* 插入实体
|
|
155
|
+
* @param entity 已有的实体实例
|
|
156
|
+
*/
|
|
157
|
+
insertEntityAt(entity: Entity, index: number): Entity;
|
|
158
|
+
|
|
159
|
+
insertEntityAt(options: string | Partial<Entity> | Entity, index: number) {
|
|
160
|
+
const node = this._insertEntityAt(options as any, index);
|
|
161
|
+
node.create({
|
|
162
|
+
index,
|
|
163
|
+
parentNode: this,
|
|
164
|
+
parentKey: 'entities',
|
|
165
|
+
});
|
|
166
|
+
return node;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* 添加实体
|
|
171
|
+
* @internal
|
|
172
|
+
* @param name 实体名称,如果不填会自动生成一个唯一名称
|
|
173
|
+
*/
|
|
174
|
+
_addEntity(name?: string): Entity;
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* 添加实体
|
|
178
|
+
* @internal
|
|
179
|
+
* @param entityOptions 实体参数
|
|
180
|
+
*/
|
|
181
|
+
_addEntity(entityOptions: Partial<Entity>): Entity;
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* 添加实体
|
|
185
|
+
* @internal
|
|
186
|
+
* @param entity 已有的实体实例
|
|
187
|
+
*/
|
|
188
|
+
_addEntity(entity: Entity): Entity;
|
|
189
|
+
|
|
190
|
+
_addEntity(options?: string | Partial<Entity> | Entity) {
|
|
191
|
+
const index = 0;
|
|
192
|
+
return this._insertEntityAt(options as any, index);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* 添加实体
|
|
197
|
+
* @internal
|
|
198
|
+
* @param name 实体名称,如果不填会自动生成一个唯一名称
|
|
199
|
+
*/
|
|
200
|
+
addEntity(name?: string): Entity;
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* 添加实体
|
|
204
|
+
* @param entityOptions 实体参数
|
|
205
|
+
*/
|
|
206
|
+
addEntity(entityOptions: Partial<Entity>): Entity;
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* 添加实体
|
|
210
|
+
* @param entity 已有的实体实例
|
|
211
|
+
*/
|
|
212
|
+
addEntity(entity: Entity): Entity;
|
|
213
|
+
|
|
214
|
+
addEntity(options?: string | Partial<Entity> | Entity) {
|
|
215
|
+
const node = this._addEntity(options as any);
|
|
216
|
+
const index = this.entities.indexOf(node);
|
|
217
|
+
node.create({
|
|
218
|
+
index,
|
|
219
|
+
parentNode: this,
|
|
220
|
+
parentKey: 'entities',
|
|
221
|
+
});
|
|
222
|
+
return node;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* 删除实体
|
|
230
|
+
* @param name 实体名称
|
|
231
|
+
*/
|
|
232
|
+
removeEntity(name: string): void;
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* 删除实体
|
|
236
|
+
* @param entity 已有的实体实例
|
|
237
|
+
*/
|
|
238
|
+
removeEntity(entity: Entity): void;
|
|
239
|
+
|
|
240
|
+
removeEntity(options: string | Entity) {
|
|
241
|
+
let entity: Entity;
|
|
242
|
+
if (typeof options === 'string') {
|
|
243
|
+
entity = this.entities.find((item) => item.name === options);
|
|
244
|
+
if (!entity) {
|
|
245
|
+
throw new Error('找不到实体 ' + options);
|
|
246
|
+
}
|
|
247
|
+
} else {
|
|
248
|
+
entity = options;
|
|
249
|
+
}
|
|
250
|
+
return entity.delete();
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
__removeEntity(entity: Entity) {
|
|
254
|
+
const parentKey = entity.parentKey;
|
|
255
|
+
const params: Params = {
|
|
256
|
+
parentNode: this,
|
|
257
|
+
parentKey,
|
|
258
|
+
index: -1,
|
|
259
|
+
object: null,
|
|
260
|
+
oldObject: entity,
|
|
261
|
+
};
|
|
262
|
+
if (parentKey) {
|
|
263
|
+
params.parentKey = parentKey;
|
|
264
|
+
if (Array.isArray((this as any)[parentKey])) {
|
|
265
|
+
const index = (this as any)[parentKey].indexOf(entity);
|
|
266
|
+
~index && (this as any)[parentKey].splice(index, 1);
|
|
267
|
+
params.index = index;
|
|
268
|
+
} else if ((this as any)[parentKey] === entity) {
|
|
269
|
+
params.index = 0;
|
|
270
|
+
(this as any)[parentKey] = undefined;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
return params;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
//================================================================================
|
|
277
|
+
// ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
|
|
278
|
+
// 自动生成的代码已结束。下面可以手动编写。
|
|
279
|
+
//================================================================================
|
|
280
|
+
findEntityByName(name: string) {
|
|
281
|
+
return this.entities.find((entity) => entity.name === name);
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* 设置DataSource的名称
|
|
285
|
+
*/
|
|
286
|
+
setName(name: string) {
|
|
287
|
+
const App = this.rootNode;
|
|
288
|
+
App.emit('collect:start', {
|
|
289
|
+
actionMsg: '修改数据源名称',
|
|
290
|
+
});
|
|
291
|
+
// 修改配置对应配置上的 datasource
|
|
292
|
+
const dataSourceGroup = (App as App).configuration?.getGroup('dataSource');
|
|
293
|
+
if (dataSourceGroup) {
|
|
294
|
+
const dataSourceConfig = dataSourceGroup.getProperty(this.name);
|
|
295
|
+
if (dataSourceConfig) {
|
|
296
|
+
dataSourceConfig.setName(name);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
// 修改自己内部的名称
|
|
301
|
+
const object = {
|
|
302
|
+
name,
|
|
303
|
+
};
|
|
304
|
+
this.update({
|
|
305
|
+
...object,
|
|
306
|
+
field: 'name',
|
|
307
|
+
});
|
|
308
|
+
// 结束修改 ,批量操作
|
|
309
|
+
App.emit('collect:end');
|
|
310
|
+
}
|
|
311
|
+
getNamespace() {
|
|
312
|
+
if (this.parentNode && (this.parentNode as App).getNamespace) {
|
|
313
|
+
const parentNamespace = (this.parentNode as App).getNamespace();
|
|
314
|
+
const parentName = this.parentNode.name;
|
|
315
|
+
const arr = [parentNamespace];
|
|
316
|
+
if (this.parentNode.concept !== 'App' && parentName) {
|
|
317
|
+
arr.push(parentName);
|
|
318
|
+
}
|
|
319
|
+
return `${arr.join('.')}.dataSources`;
|
|
320
|
+
} else
|
|
321
|
+
throw new Error('无法获取命名空间,请设置 parentNode!');
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* 生成宿主语言的文件路径
|
|
325
|
+
* @param name 一般不用传,用于 rename
|
|
326
|
+
*/
|
|
327
|
+
getEmbeddedFilePath(name = this.name) {
|
|
328
|
+
return `/embedded/${this.rootNode?.name || this.parentNode.name}/datasources/${name}.ts`;
|
|
329
|
+
}
|
|
330
|
+
@withSourceMap()
|
|
331
|
+
toEmbeddedTS(state?: TranslatorState): string {
|
|
332
|
+
let code = `export namespace ${this.name} {\n`;
|
|
333
|
+
code += 'const name = ';
|
|
334
|
+
code += '"' + this.name + '";\n';
|
|
335
|
+
code += '}\n';
|
|
336
|
+
return code;
|
|
337
|
+
}
|
|
338
|
+
toEmbeddedTSFile() {
|
|
339
|
+
let code = `namespace ${this.getNamespace()} {\n`;
|
|
340
|
+
|
|
341
|
+
const state = createCompilerState(code, { tabSize: 1 });
|
|
342
|
+
try {
|
|
343
|
+
code += this.toEmbeddedTS(state);
|
|
344
|
+
} catch (err) {
|
|
345
|
+
code += '';
|
|
346
|
+
}
|
|
347
|
+
code += '}\n';
|
|
348
|
+
|
|
349
|
+
return {
|
|
350
|
+
code,
|
|
351
|
+
filePath: this.getEmbeddedFilePath(),
|
|
352
|
+
sourceMap: state.sourceMap,
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
// 获取datasource对应的数据源配置
|
|
357
|
+
get dataSourceConfig() {
|
|
358
|
+
let devProperty = null;
|
|
359
|
+
let onlineProperty = null;
|
|
360
|
+
let devValue = null;
|
|
361
|
+
let onlineValue = null;
|
|
362
|
+
|
|
363
|
+
const dataSourceGroup = (this.rootNode as App).configuration?.getGroup('dataSource');
|
|
364
|
+
if (dataSourceGroup) {
|
|
365
|
+
const property = dataSourceGroup.getProperty(this.name);
|
|
366
|
+
if (property.values) {
|
|
367
|
+
devProperty = property.values.find((item) => item.env === 'dev');
|
|
368
|
+
devValue = { ...devProperty, ...JSON.parse(devProperty.value || '{}') };
|
|
369
|
+
onlineProperty = property.values.find((item) => item.env === 'online');
|
|
370
|
+
onlineValue = { ...onlineProperty, ...JSON.parse(onlineProperty.value || '{}') };
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
return {
|
|
374
|
+
devProperty,
|
|
375
|
+
onlineProperty,
|
|
376
|
+
devValue,
|
|
377
|
+
onlineValue,
|
|
378
|
+
};
|
|
379
|
+
}
|
|
380
|
+
//================================================================================
|
|
381
|
+
// 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
|
|
382
|
+
// ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
|
|
383
|
+
//================================================================================
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
classMap['DataSource'] = DataSource;
|
|
387
|
+
export default DataSource;
|
|
388
|
+
//================================================================================
|
|
389
|
+
// ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
|
|
390
|
+
// 自动生成的代码已结束。下面可以手动编写。
|
|
391
|
+
//================================================================================
|
|
@@ -52,6 +52,8 @@ export class Destination extends LogicItem {
|
|
|
52
52
|
@property('Argument')
|
|
53
53
|
arguments: Array<Argument> = [];
|
|
54
54
|
|
|
55
|
+
|
|
56
|
+
|
|
55
57
|
/**
|
|
56
58
|
* @param source 需要合并的部分参数
|
|
57
59
|
*/
|
|
@@ -65,6 +67,7 @@ export class Destination extends LogicItem {
|
|
|
65
67
|
return super.from(source, parentNode, parentKey) as Destination;
|
|
66
68
|
}
|
|
67
69
|
|
|
70
|
+
|
|
68
71
|
/**
|
|
69
72
|
* 设置viewNamespace
|
|
70
73
|
*/
|
|
@@ -89,6 +92,10 @@ export class Destination extends LogicItem {
|
|
|
89
92
|
});
|
|
90
93
|
}
|
|
91
94
|
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
92
99
|
/**
|
|
93
100
|
* 插入实际参数
|
|
94
101
|
* @internal
|
|
@@ -121,6 +128,8 @@ export class Destination extends LogicItem {
|
|
|
121
128
|
return argument;
|
|
122
129
|
}
|
|
123
130
|
|
|
131
|
+
|
|
132
|
+
|
|
124
133
|
/**
|
|
125
134
|
* 插入实际参数
|
|
126
135
|
* @param argumentOptions 实际参数参数
|
|
@@ -143,6 +152,8 @@ export class Destination extends LogicItem {
|
|
|
143
152
|
return node;
|
|
144
153
|
}
|
|
145
154
|
|
|
155
|
+
|
|
156
|
+
|
|
146
157
|
/**
|
|
147
158
|
* 添加实际参数
|
|
148
159
|
* @internal
|
|
@@ -162,6 +173,8 @@ export class Destination extends LogicItem {
|
|
|
162
173
|
return this._insertArgumentAt(options as any, index);
|
|
163
174
|
}
|
|
164
175
|
|
|
176
|
+
|
|
177
|
+
|
|
165
178
|
/**
|
|
166
179
|
* 添加实际参数
|
|
167
180
|
* @param argumentOptions 实际参数参数
|
|
@@ -185,6 +198,9 @@ export class Destination extends LogicItem {
|
|
|
185
198
|
return node;
|
|
186
199
|
}
|
|
187
200
|
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
|
|
188
204
|
/**
|
|
189
205
|
* 删除实际参数
|
|
190
206
|
* @param argument 已有的实际参数实例
|
|
@@ -192,7 +208,7 @@ export class Destination extends LogicItem {
|
|
|
192
208
|
removeArgument(argument: Argument): void;
|
|
193
209
|
|
|
194
210
|
removeArgument(options: Argument) {
|
|
195
|
-
|
|
211
|
+
let argument: Argument = options;
|
|
196
212
|
return argument.delete();
|
|
197
213
|
}
|
|
198
214
|
|
|
@@ -388,7 +404,7 @@ export class Destination extends LogicItem {
|
|
|
388
404
|
}
|
|
389
405
|
@withSourceMap()
|
|
390
406
|
toEmbeddedTSInProcess(state: TranslatorState, prependCode: string): string {
|
|
391
|
-
// const tab = indent(state
|
|
407
|
+
// const tab = indent((state?.tabSize || 0));
|
|
392
408
|
if (this.tsCalleeNamespace && this.tsName) {
|
|
393
409
|
let code = `destination: function() {\n`;
|
|
394
410
|
code += prependCode;
|
|
@@ -402,7 +418,7 @@ export class Destination extends LogicItem {
|
|
|
402
418
|
}
|
|
403
419
|
code += `});\n`;
|
|
404
420
|
}
|
|
405
|
-
code += indent(state
|
|
421
|
+
code += indent((state?.tabSize || 0) + 1) + `}\n`;
|
|
406
422
|
return code;
|
|
407
423
|
} else {
|
|
408
424
|
return '__IDENTIFIER__';
|
|
@@ -415,7 +431,7 @@ export class Destination extends LogicItem {
|
|
|
415
431
|
|
|
416
432
|
if (this.parentNode instanceof BindAttribute) {
|
|
417
433
|
code = `${utils.firstLowerCase(this.concept)}: () => {\n`;
|
|
418
|
-
code += indent(state
|
|
434
|
+
code += indent((state?.tabSize || 0) + 2);
|
|
419
435
|
if (this.tsCalleeNamespace && this.tsName) {
|
|
420
436
|
code += `${this.tsCalleeNamespace}.${this.tsName}.$destination({`;
|
|
421
437
|
if (Array.isArray(this.arguments)) {
|
|
@@ -425,7 +441,7 @@ export class Destination extends LogicItem {
|
|
|
425
441
|
}
|
|
426
442
|
code += `});\n`;
|
|
427
443
|
}
|
|
428
|
-
code += indent(state
|
|
444
|
+
code += indent((state?.tabSize || 0) + 1) + `},\n`;
|
|
429
445
|
return code;
|
|
430
446
|
} else {
|
|
431
447
|
if (this.tsCalleeNamespace && this.tsName) {
|
|
@@ -445,7 +461,7 @@ export class Destination extends LogicItem {
|
|
|
445
461
|
@withSourceMap()
|
|
446
462
|
toEmbeddedTSNormalFunction(state?: TranslatorState): string {
|
|
447
463
|
let code = `let ${utils.firstLowerCase(this.concept)} = function() {\n`;
|
|
448
|
-
const tab = indent(state
|
|
464
|
+
const tab = indent((state?.tabSize || 0) + 2);
|
|
449
465
|
if (this.tsCalleeNamespace && this.tsName) {
|
|
450
466
|
code += `${tab}${this.tsCalleeNamespace}.${this.tsName}.$destination(`;
|
|
451
467
|
if (Array.isArray(this.arguments)) {
|
|
@@ -455,7 +471,7 @@ export class Destination extends LogicItem {
|
|
|
455
471
|
}
|
|
456
472
|
code += `${tab});\n`;
|
|
457
473
|
}
|
|
458
|
-
code += `${indent(state
|
|
474
|
+
code += `${indent((state?.tabSize || 0) + 1)}}\n`;
|
|
459
475
|
return code;
|
|
460
476
|
}
|
|
461
477
|
//================================================================================
|
|
@@ -464,7 +480,7 @@ export class Destination extends LogicItem {
|
|
|
464
480
|
//================================================================================
|
|
465
481
|
}
|
|
466
482
|
|
|
467
|
-
classMap
|
|
483
|
+
classMap['Destination'] = Destination;
|
|
468
484
|
export default Destination;
|
|
469
485
|
//================================================================================
|
|
470
486
|
// ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
|
package/src/concepts/End__.ts
CHANGED
|
@@ -70,9 +70,9 @@ export class End extends LogicItem {
|
|
|
70
70
|
let code = '';
|
|
71
71
|
const ret = this.logic.returns[0];
|
|
72
72
|
if (ret) {
|
|
73
|
-
code += indent(state
|
|
73
|
+
code += indent((state?.tabSize || 0)) + 'return ' + ret.name + ';';
|
|
74
74
|
} else {
|
|
75
|
-
code += indent(state
|
|
75
|
+
code += indent((state?.tabSize || 0)) + 'return;';
|
|
76
76
|
}
|
|
77
77
|
return code;
|
|
78
78
|
}
|
|
@@ -15,6 +15,7 @@ import classMap from '../common/classMap';
|
|
|
15
15
|
import Entity from './Entity__';
|
|
16
16
|
import Module from './Module__';
|
|
17
17
|
import App from './App__';
|
|
18
|
+
import DataSource from './DataSource__';
|
|
18
19
|
|
|
19
20
|
/**
|
|
20
21
|
* 实体索引
|
|
@@ -75,6 +76,12 @@ export class EntityIndex extends BaseNode {
|
|
|
75
76
|
get app() {
|
|
76
77
|
return this.getAncestor('App') as App;
|
|
77
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* 祖先 DataSource
|
|
81
|
+
*/
|
|
82
|
+
get dataSource() {
|
|
83
|
+
return this.getAncestor('DataSource') as DataSource;
|
|
84
|
+
}
|
|
78
85
|
|
|
79
86
|
/**
|
|
80
87
|
* @param source 需要合并的部分参数
|
|
@@ -17,6 +17,7 @@ import TypeAnnotation from './TypeAnnotation__';
|
|
|
17
17
|
import Entity from './Entity__';
|
|
18
18
|
import Module from './Module__';
|
|
19
19
|
import App from './App__';
|
|
20
|
+
import DataSource from './DataSource__';
|
|
20
21
|
|
|
21
22
|
/**
|
|
22
23
|
* 实体字段
|
|
@@ -154,6 +155,12 @@ export class EntityProperty extends BaseNode {
|
|
|
154
155
|
get app() {
|
|
155
156
|
return this.getAncestor('App') as App;
|
|
156
157
|
}
|
|
158
|
+
/**
|
|
159
|
+
* 祖先 DataSource
|
|
160
|
+
*/
|
|
161
|
+
get dataSource() {
|
|
162
|
+
return this.getAncestor('DataSource') as DataSource;
|
|
163
|
+
}
|
|
157
164
|
|
|
158
165
|
/**
|
|
159
166
|
* @param source 需要合并的部分参数
|
|
@@ -417,8 +424,8 @@ export class EntityProperty extends BaseNode {
|
|
|
417
424
|
let code = '';
|
|
418
425
|
if (this.relationNamespace && this.relationEntity && this.relationProperty) {
|
|
419
426
|
code += `@nasl.annotation.EntityRelation(new ${this.relationNamespace}.${this.relationEntity}().${this.relationProperty})\n`;
|
|
420
|
-
code += indent(state
|
|
421
|
-
// code += indent(state
|
|
427
|
+
code += indent((state?.tabSize || 0) + 2);
|
|
428
|
+
// code += indent((state?.tabSize || 0) + 1);
|
|
422
429
|
}
|
|
423
430
|
|
|
424
431
|
code += this.name;
|
|
@@ -528,6 +535,17 @@ export class EntityProperty extends BaseNode {
|
|
|
528
535
|
});
|
|
529
536
|
}
|
|
530
537
|
|
|
538
|
+
/**
|
|
539
|
+
* 设置关联实体实体名称
|
|
540
|
+
*/
|
|
541
|
+
setRelationNamespace(relationNamespace: string) {
|
|
542
|
+
const object = {
|
|
543
|
+
relationNamespace,
|
|
544
|
+
};
|
|
545
|
+
this.update({
|
|
546
|
+
...object,
|
|
547
|
+
});
|
|
548
|
+
}
|
|
531
549
|
/**
|
|
532
550
|
* 设置关联实体实体名称
|
|
533
551
|
*/
|
package/src/concepts/Entity__.ts
CHANGED
|
@@ -15,6 +15,7 @@ import classMap from '../common/classMap';
|
|
|
15
15
|
import EntityProperty from './EntityProperty__';
|
|
16
16
|
import EntityIndex from './EntityIndex__';
|
|
17
17
|
import Module from './Module__';
|
|
18
|
+
import DataSource from './DataSource__';
|
|
18
19
|
import App from './App__';
|
|
19
20
|
|
|
20
21
|
/**
|
|
@@ -82,6 +83,12 @@ export class Entity extends BaseNode {
|
|
|
82
83
|
get app() {
|
|
83
84
|
return this.getAncestor('App') as App;
|
|
84
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* 祖先 DataSource
|
|
88
|
+
*/
|
|
89
|
+
get dataSource() {
|
|
90
|
+
return this.getAncestor('DataSource') as DataSource;
|
|
91
|
+
}
|
|
85
92
|
|
|
86
93
|
/**
|
|
87
94
|
* @param source 需要合并的部分参数
|
|
@@ -644,40 +651,45 @@ export class Entity extends BaseNode {
|
|
|
644
651
|
@withSourceMap()
|
|
645
652
|
toEmbeddedTS(state?: TranslatorState): string {
|
|
646
653
|
let code = `export class ${this.name} {\n`;
|
|
647
|
-
code += indent(state
|
|
654
|
+
code += indent((state?.tabSize || 0) + 1);
|
|
648
655
|
code += `__name: '${this.getNamespace()}.${this.name}';\n`;
|
|
649
656
|
this.properties.forEach((property) => {
|
|
650
|
-
code += indent(state
|
|
657
|
+
code += indent((state?.tabSize || 0) + 1);
|
|
651
658
|
code += property.toEmbeddedTS(shiftState(state, code, { tabSize: 0 }));
|
|
652
659
|
code += ';\n';
|
|
653
660
|
});
|
|
654
661
|
if (this.indexes && this.indexes.length) {
|
|
655
|
-
code += indent(state
|
|
662
|
+
code += indent((state?.tabSize || 0) + 1);
|
|
656
663
|
code += `__IndexList() {\n`;
|
|
657
664
|
code += ` return [`;
|
|
658
665
|
this.indexes.forEach((entityIndex) => {
|
|
659
|
-
code += indent(state
|
|
666
|
+
code += indent((state?.tabSize || 0) + 1);
|
|
660
667
|
code += '\n ';
|
|
661
668
|
code += entityIndex.toEmbeddedTS(shiftState(state, code, { tabSize: 0 }));
|
|
662
669
|
});
|
|
663
|
-
code += indent(state
|
|
670
|
+
code += indent((state?.tabSize || 0)) + `\n ];\n }\n`;
|
|
664
671
|
}
|
|
665
672
|
|
|
666
673
|
const ns = this.ns;
|
|
674
|
+
|
|
675
|
+
/**
|
|
676
|
+
* 8个函数的总行数
|
|
677
|
+
* 如果修改这里,可能会影响到dataSource的重命名, 在naslserver中,可能要一起修改
|
|
678
|
+
*/
|
|
667
679
|
code += `\nstatic logics = {\n`;
|
|
668
680
|
ns.logics.forEach((logic) => {
|
|
669
|
-
code += indent(state
|
|
681
|
+
code += indent((state?.tabSize || 0) + 1);
|
|
670
682
|
code += logic.toEmbeddedTS(shiftState(state, code), 'inObject');
|
|
671
683
|
});
|
|
672
684
|
code += '}\n';
|
|
673
|
-
code += indent(state
|
|
685
|
+
code += indent((state?.tabSize || 0)) + '}\n';
|
|
674
686
|
|
|
675
687
|
return code;
|
|
676
688
|
}
|
|
677
689
|
|
|
678
690
|
getNamespace() {
|
|
679
|
-
if (this.parentNode && (this.parentNode as
|
|
680
|
-
return `${(this.parentNode as
|
|
691
|
+
if (this.parentNode && (this.parentNode as DataSource).getNamespace)
|
|
692
|
+
return `${(this.parentNode as DataSource).getNamespace()}.${this.parentNode.name}.entities`;
|
|
681
693
|
else
|
|
682
694
|
throw new Error('无法获取命名空间,请设置 parentNode!');
|
|
683
695
|
}
|
|
@@ -687,12 +699,12 @@ export class Entity extends BaseNode {
|
|
|
687
699
|
* @param name 一般不用传,用于 rename
|
|
688
700
|
*/
|
|
689
701
|
getEmbeddedFilePath(name = this.name) {
|
|
690
|
-
return `/embedded/${this.app.name}/entities/${name}.ts`;
|
|
702
|
+
return `/embedded/${this.app.name}/datasources/${this.parentNode.name}/entities/${name}.ts`;
|
|
691
703
|
}
|
|
692
704
|
|
|
693
705
|
get ns() {
|
|
694
706
|
const ns: Namespace = entity2LogicNamespace(this);
|
|
695
|
-
ns.path = this.getNamespace()
|
|
707
|
+
ns.path = this.getNamespace();
|
|
696
708
|
return ns;
|
|
697
709
|
}
|
|
698
710
|
// @excludedInJSON()
|