@lcap/nasl 3.5.0-beta.4 → 3.6.0-alpha.1

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.
Files changed (238) hide show
  1. package/out/bak/translator.js +39 -119
  2. package/out/bak/translator.js.map +1 -1
  3. package/out/breakpoint/generator/BreakpointNode.d.ts +0 -3
  4. package/out/breakpoint/generator/BreakpointNode.js +0 -9
  5. package/out/breakpoint/generator/BreakpointNode.js.map +1 -1
  6. package/out/breakpoint/shared/constants.js +0 -1
  7. package/out/breakpoint/shared/constants.js.map +1 -1
  8. package/out/breakpoint/shared/utils.js +7 -31
  9. package/out/breakpoint/shared/utils.js.map +1 -1
  10. package/out/common/BaseNode.d.ts +13 -1
  11. package/out/common/BaseNode.js +52 -23
  12. package/out/common/BaseNode.js.map +1 -1
  13. package/out/common/Command.js +1 -0
  14. package/out/common/Command.js.map +1 -1
  15. package/out/common/EventEmitter.d.ts +1 -1
  16. package/out/common/EventEmitter.js +0 -4
  17. package/out/common/EventEmitter.js.map +1 -1
  18. package/out/concepts/App__.d.ts +76 -51
  19. package/out/concepts/App__.js +190 -87
  20. package/out/concepts/App__.js.map +1 -1
  21. package/out/concepts/BackendVariable__.js +2 -10
  22. package/out/concepts/BackendVariable__.js.map +1 -1
  23. package/out/concepts/BindAttribute__.js +6 -16
  24. package/out/concepts/BindAttribute__.js.map +1 -1
  25. package/out/concepts/BindDirective__.d.ts +0 -1
  26. package/out/concepts/BindDirective__.js +4 -19
  27. package/out/concepts/BindDirective__.js.map +1 -1
  28. package/out/concepts/BindEvent__.d.ts +1 -3
  29. package/out/concepts/BindEvent__.js +13 -38
  30. package/out/concepts/BindEvent__.js.map +1 -1
  31. package/out/concepts/CallFunction__.js +2 -10
  32. package/out/concepts/CallFunction__.js.map +1 -1
  33. package/out/concepts/CallLogic__.d.ts +0 -2
  34. package/out/concepts/CallLogic__.js +27 -38
  35. package/out/concepts/CallLogic__.js.map +1 -1
  36. package/out/concepts/Constant__.js +6 -7
  37. package/out/concepts/Constant__.js.map +1 -1
  38. package/out/concepts/Destination__.d.ts +1 -1
  39. package/out/concepts/Destination__.js +4 -6
  40. package/out/concepts/Destination__.js.map +1 -1
  41. package/out/concepts/End__.js +1 -2
  42. package/out/concepts/End__.js.map +1 -1
  43. package/out/concepts/Entity__.d.ts +1 -1
  44. package/out/concepts/Entity__.js +2 -0
  45. package/out/concepts/Entity__.js.map +1 -1
  46. package/out/concepts/Event__.d.ts +0 -14
  47. package/out/concepts/Event__.js +0 -61
  48. package/out/concepts/Event__.js.map +1 -1
  49. package/out/concepts/Frontend__.d.ts +88 -0
  50. package/out/concepts/Frontend__.js +143 -1
  51. package/out/concepts/Frontend__.js.map +1 -1
  52. package/out/concepts/Identifier__.d.ts +0 -5
  53. package/out/concepts/Identifier__.js +9 -19
  54. package/out/concepts/Identifier__.js.map +1 -1
  55. package/out/concepts/LogicItem__.d.ts +1 -1
  56. package/out/concepts/LogicItem__.js.map +1 -1
  57. package/out/concepts/Logic__.d.ts +1 -3
  58. package/out/concepts/Logic__.js +13 -16
  59. package/out/concepts/Logic__.js.map +1 -1
  60. package/out/concepts/MemberExpression__.d.ts +1 -1
  61. package/out/concepts/MemberExpression__.js +3 -3
  62. package/out/concepts/MemberExpression__.js.map +1 -1
  63. package/out/concepts/NewComposite__.js.map +1 -1
  64. package/out/concepts/Param__.js +3 -11
  65. package/out/concepts/Param__.js.map +1 -1
  66. package/out/concepts/ProcessElement__.js +1 -9
  67. package/out/concepts/ProcessElement__.js.map +1 -1
  68. package/out/concepts/Return__.js +9 -17
  69. package/out/concepts/Return__.js.map +1 -1
  70. package/out/concepts/Variable__.js +8 -17
  71. package/out/concepts/Variable__.js.map +1 -1
  72. package/out/concepts/ViewElement__.d.ts +2 -17
  73. package/out/concepts/ViewElement__.js +31 -143
  74. package/out/concepts/ViewElement__.js.map +1 -1
  75. package/out/concepts/View__.js +6 -6
  76. package/out/concepts/View__.js.map +1 -1
  77. package/out/concepts/index__.d.ts +0 -5
  78. package/out/concepts/index__.js +0 -5
  79. package/out/concepts/index__.js.map +1 -1
  80. package/out/concepts/utils/asserts.d.ts +3 -258
  81. package/out/concepts/utils/asserts.js +13 -351
  82. package/out/concepts/utils/asserts.js.map +1 -1
  83. package/out/concepts/utils/types.d.ts +3 -20
  84. package/out/generator/genBundleFiles.js +11 -25
  85. package/out/generator/genBundleFiles.js.map +1 -1
  86. package/out/generator/genReleaseBody.js +3 -12
  87. package/out/generator/genReleaseBody.js.map +1 -1
  88. package/out/generator/permission.js +3 -3
  89. package/out/generator/permission.js.map +1 -1
  90. package/out/natural/transformTSCode.js +1 -1
  91. package/out/natural/transformTSCode.js.map +1 -1
  92. package/out/server/extendBaseNode.js +22 -6
  93. package/out/server/extendBaseNode.js.map +1 -1
  94. package/out/server/getLogics.js +27 -62
  95. package/out/server/getLogics.js.map +1 -1
  96. package/out/server/getMemberIdentifier.js +1 -6
  97. package/out/server/getMemberIdentifier.js.map +1 -1
  98. package/out/server/naslServer.js +11 -28
  99. package/out/server/naslServer.js.map +1 -1
  100. package/out/server/translator.js +1 -6
  101. package/out/server/translator.js.map +1 -1
  102. package/out/service/storage/init.js +26 -2
  103. package/out/service/storage/init.js.map +1 -1
  104. package/out/templator/genCreateBlock.js +6 -6
  105. package/out/templator/genCreateBlock.js.map +1 -1
  106. package/out/templator/genCurdEditMultipleKeyBlock.js +16 -16
  107. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  108. package/out/templator/genCurdMultipleKeyBlock.d.ts +27 -0
  109. package/out/templator/genCurdMultipleKeyBlock.js +709 -37
  110. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  111. package/out/templator/genGetBlock.js +4 -4
  112. package/out/templator/genGetBlock.js.map +1 -1
  113. package/out/templator/genGridViewBlock.js +12 -12
  114. package/out/templator/genGridViewBlock.js.map +1 -1
  115. package/out/templator/genListViewBlock.js +4 -4
  116. package/out/templator/genListViewBlock.js.map +1 -1
  117. package/out/templator/genSelectBlock.js +3 -3
  118. package/out/templator/genSelectBlock.js.map +1 -1
  119. package/out/templator/genTableBlock.d.ts +2 -0
  120. package/out/templator/genTableBlock.js +124 -11
  121. package/out/templator/genTableBlock.js.map +1 -1
  122. package/out/templator/genUpdateBlock.js +8 -8
  123. package/out/templator/genUpdateBlock.js.map +1 -1
  124. package/out/templator/utils.d.ts +2 -2
  125. package/out/templator/utils.js.map +1 -1
  126. package/out/translator/utils.js +18 -0
  127. package/out/translator/utils.js.map +1 -1
  128. package/out/utils/i18nInfo.js +2 -7
  129. package/out/utils/i18nInfo.js.map +1 -1
  130. package/package.json +2 -2
  131. package/src/bak/translator.js +43 -121
  132. package/src/breakpoint/generator/BreakpointNode.ts +0 -12
  133. package/src/breakpoint/shared/constants.ts +0 -1
  134. package/src/breakpoint/shared/utils.ts +10 -37
  135. package/src/common/BaseNode.ts +60 -22
  136. package/src/common/Command.ts +1 -0
  137. package/src/common/EventEmitter.ts +1 -6
  138. package/src/concepts/App__.ts +251 -139
  139. package/src/concepts/BackendVariable__.ts +2 -10
  140. package/src/concepts/BindAttribute__.ts +6 -15
  141. package/src/concepts/BindDirective__.ts +4 -19
  142. package/src/concepts/BindEvent__.ts +12 -40
  143. package/src/concepts/CallFunction__.ts +2 -10
  144. package/src/concepts/CallLogic__.ts +32 -45
  145. package/src/concepts/Constant__.ts +7 -5
  146. package/src/concepts/Destination__.ts +4 -6
  147. package/src/concepts/End__.ts +0 -1
  148. package/src/concepts/Entity__.ts +3 -1
  149. package/src/concepts/Event__.ts +0 -70
  150. package/src/concepts/Frontend__.ts +251 -3
  151. package/src/concepts/Identifier__.ts +13 -29
  152. package/src/concepts/LogicItem__.ts +0 -1
  153. package/src/concepts/Logic__.ts +14 -21
  154. package/src/concepts/MemberExpression__.ts +3 -3
  155. package/src/concepts/NewComposite__.ts +6 -4
  156. package/src/concepts/Param__.ts +3 -11
  157. package/src/concepts/ProcessElement__.ts +1 -8
  158. package/src/concepts/Return__.ts +12 -15
  159. package/src/concepts/Variable__.ts +9 -17
  160. package/src/concepts/ViewElement__.ts +54 -166
  161. package/src/concepts/View__.ts +6 -8
  162. package/src/concepts/index__.ts +0 -5
  163. package/src/concepts/utils/asserts.ts +4 -367
  164. package/src/concepts/utils/types.ts +0 -28
  165. package/src/generator/genBundleFiles.ts +15 -33
  166. package/src/generator/genReleaseBody.ts +3 -14
  167. package/src/generator/permission.ts +6 -8
  168. package/src/natural/transformTSCode.ts +1 -1
  169. package/src/server/extendBaseNode.ts +41 -22
  170. package/src/server/getLogics.ts +41 -79
  171. package/src/server/getMemberIdentifier.ts +1 -7
  172. package/src/server/naslServer.ts +12 -30
  173. package/src/server/translator.ts +1 -7
  174. package/src/service/storage/init.ts +33 -2
  175. package/src/templator/genCreateBlock.ts +6 -6
  176. package/src/templator/genCurdEditMultipleKeyBlock.ts +16 -16
  177. package/src/templator/genCurdMultipleKeyBlock.ts +817 -93
  178. package/src/templator/genGetBlock.ts +4 -4
  179. package/src/templator/genGridViewBlock.ts +12 -12
  180. package/src/templator/genListViewBlock.ts +4 -4
  181. package/src/templator/genSelectBlock.ts +3 -3
  182. package/src/templator/genTableBlock.ts +137 -12
  183. package/src/templator/genUpdateBlock.ts +8 -8
  184. package/src/templator/utils.ts +2 -2
  185. package/src/translator/utils.ts +20 -0
  186. package/src/utils/i18nInfo.ts +2 -7
  187. package/test/concepts/call-function/fixtures/from-string.json +59 -68
  188. package/test/concepts/call-function/fixtures/to-string-global-tz.json +58 -67
  189. package/test/concepts/call-function/fixtures/to-string-no-tz.json +48 -57
  190. package/test/concepts/call-function/fixtures/to-string-user-tz.json +60 -69
  191. package/test/concepts/call-function/fixtures/to-string-utc-tz.json +60 -69
  192. package/test/concepts/call-interface/fixtures/only-interface.json +72 -81
  193. package/test/concepts/call-interface/fixtures/with-body-complex-argument.json +214 -223
  194. package/test/concepts/call-interface/fixtures/with-body-no-argument.json +76 -85
  195. package/test/concepts/call-interface/fixtures/with-body-simple-argument.json +91 -100
  196. package/test/concepts/call-interface/fixtures/with-headers-no-argument.json +79 -88
  197. package/test/concepts/call-interface/fixtures/with-headers.json +81 -90
  198. package/test/concepts/call-interface/fixtures/with-query-no-argument.json +79 -88
  199. package/test/concepts/call-interface/fixtures/with-query.json +81 -90
  200. package/test/concepts/call-logic/__snapshots__/getQuickInfoOffset.spec.ts.snap +2 -4
  201. package/test/concepts/call-logic/fixtures/entries-get-with-arguments.json +95 -104
  202. package/test/concepts/call-logic/fixtures/entries-update-with-arguments.json +200 -209
  203. package/test/concepts/call-logic/fixtures/global-logic-argument-no-expression.json +88 -97
  204. package/test/concepts/call-logic/fixtures/global-logic-argument-some-expression.json +115 -124
  205. package/test/concepts/call-logic/fixtures/json-deserialize.json +111 -120
  206. package/test/concepts/call-logic/fixtures/json-serialize-with-string.json +115 -124
  207. package/test/concepts/call-logic/fixtures/json-serialize.json +115 -124
  208. package/test/concepts/call-logic/fixtures/view-buildin-logic-with-argument.json +82 -91
  209. package/test/concepts/call-logic/fixtures/view-component-logic-no-argument.json +79 -88
  210. package/test/concepts/call-logic/fixtures/view-component-with-validation.json +135 -144
  211. package/test/concepts/identifier/fixtures/view-variable.json +136 -145
  212. package/test/concepts/view-element/__snapshots__/toVue.spec.ts.snap +1 -1
  213. package/test/concepts/view-element/fixtures/default-login.json +212 -221
  214. package/test/concepts/view-element/fixtures/default-not-found.json +174 -183
  215. package/test/concepts/view-element/fixtures/with-role-auth.json +82 -91
  216. package/test/concepts/view-element/fixtures/with-table.json +1834 -1843
  217. package/test/concepts/view-element/toVue.spec.ts +0 -1
  218. package/ts-worker/package.json +1 -1
  219. package/out/concepts/BusinessComponent__.d.ts +0 -641
  220. package/out/concepts/BusinessComponent__.js +0 -1901
  221. package/out/concepts/BusinessComponent__.js.map +0 -1
  222. package/out/concepts/BusinessLogic__.d.ts +0 -38
  223. package/out/concepts/BusinessLogic__.js +0 -358
  224. package/out/concepts/BusinessLogic__.js.map +0 -1
  225. package/out/concepts/CallEvent__.d.ts +0 -97
  226. package/out/concepts/CallEvent__.js +0 -263
  227. package/out/concepts/CallEvent__.js.map +0 -1
  228. package/out/concepts/FrontendType__.d.ts +0 -308
  229. package/out/concepts/FrontendType__.js +0 -605
  230. package/out/concepts/FrontendType__.js.map +0 -1
  231. package/out/concepts/ParamWithGroup__.d.ts +0 -39
  232. package/out/concepts/ParamWithGroup__.js +0 -85
  233. package/out/concepts/ParamWithGroup__.js.map +0 -1
  234. package/src/concepts/BusinessComponent__.ts +0 -2669
  235. package/src/concepts/BusinessLogic__.ts +0 -376
  236. package/src/concepts/CallEvent__.ts +0 -334
  237. package/src/concepts/FrontendType__.ts +0 -919
  238. package/src/concepts/ParamWithGroup__.ts +0 -101
@@ -1,334 +0,0 @@
1
- import { wrapForEachToGenerator as wrapForEach } from '../utils/time-slicing';
2
- import {
3
- TranslatorState,
4
- shiftState,
5
- createCompilerState,
6
- withSourceMapGenerator,
7
- TranslatorGenerator,
8
- } from '../translator';
9
- import type Event from './Event__';
10
- import type Param from './Param__';
11
- import { BusinessComponent } from './BusinessComponent__';
12
- //================================================================================
13
- // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
14
- // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
15
- //================================================================================
16
- import { EventPayload, Params } from '../common/EventEmitter';
17
- import { concept, excludedInJSON, property, getConceptConstructor, getBaseNode } from '../decorators';
18
-
19
- import * as utils from '../utils';
20
- import * as types from './utils/types';
21
- import * as asserts from './utils/asserts';
22
- import { v4 as uuidv4 } from 'uuid';
23
- import LogicItem from './LogicItem__';
24
- import type Argument from './Argument__';
25
-
26
- /**
27
- * 触发事件
28
- */
29
- @concept('触发事件')
30
- export class CallEvent extends LogicItem {
31
- /** 类名 */
32
- static readonly ConceptName: string = 'CallEvent';
33
-
34
- /** 继承链 */
35
- static readonly inheritanceChain: string[] = ['LogicItem', 'BaseNode'];
36
-
37
- /**
38
- * 产品概念
39
- */
40
- @property('concept')
41
- // @ts-ignore
42
- readonly concept!: 'CallEvent';
43
-
44
- /**
45
- * 触发事件标题
46
- */
47
- @property()
48
- label: string = '触发事件';
49
-
50
- /**
51
- * calleeNamespace
52
- */
53
- @property()
54
- calleeNamespace!: string;
55
-
56
- /**
57
- * calleeName
58
- */
59
- @property()
60
- calleeName!: string;
61
-
62
- /**
63
- * 参数
64
- */
65
- @property({
66
- objectRef: 'Argument',
67
- isArray: true,
68
- defaultValue: [],
69
- })
70
- arguments: Array<Argument> = [];
71
-
72
- /**
73
- * @param source 需要合并的部分参数
74
- */
75
- constructor(source?: Partial<CallEvent>) {
76
- source = Object.assign({}, CallEvent.getDefaultOptions(), source);
77
- super(source);
78
- super.subConstructor(source);
79
- }
80
-
81
- static from(source: any, parentNode?: any, parentKey?: string): CallEvent {
82
- return super.from(source, parentNode, parentKey) as CallEvent;
83
- }
84
-
85
- /**
86
- * 插入实际参数
87
- * @internal
88
- * @param argumentOptions 实际参数参数
89
- */
90
- _insertArgumentAt(argumentOptions: Partial<Argument>, index: number): Argument;
91
-
92
- /**
93
- * 插入实际参数
94
- * @internal
95
- * @param argument 已有的实际参数实例
96
- */
97
- _insertArgumentAt(argument: Argument, index: number): Argument;
98
-
99
- _insertArgumentAt(options: Partial<Argument> | Argument, index: number) {
100
- const argumentOptions: any = {};
101
- const relationOptions = { parentNode: this, parentKey: 'arguments' };
102
- const Argument = getConceptConstructor('Argument');
103
- let argument: Argument;
104
- if (asserts.isArgument(options)) {
105
- options.ensureDelete(); // 同一实例不支持多处存在
106
- argument = options;
107
- Object.assign(argument, relationOptions);
108
- } else {
109
- argument = Argument.from(
110
- {
111
- ...argumentOptions,
112
- ...options,
113
- },
114
- this,
115
- 'arguments',
116
- );
117
- }
118
- this.arguments.splice(index, 0, argument);
119
- return argument;
120
- }
121
-
122
- /**
123
- * 插入实际参数
124
- * @param argumentOptions 实际参数参数
125
- */
126
- insertArgumentAt(argumentOptions: Partial<Argument>, index: number): Argument;
127
-
128
- /**
129
- * 插入实际参数
130
- * @param argument 已有的实际参数实例
131
- */
132
- insertArgumentAt(argument: Argument, index: number): Argument;
133
-
134
- insertArgumentAt(options: Partial<Argument> | Argument, index: number) {
135
- const node = this._insertArgumentAt(options as any, index);
136
- node.create({
137
- index,
138
- parentNode: this,
139
- parentKey: 'arguments',
140
- });
141
- return node;
142
- }
143
-
144
- /**
145
- * 添加实际参数
146
- * @internal
147
- * @param argumentOptions 实际参数参数
148
- */
149
- _addArgument(argumentOptions: Partial<Argument>): Argument;
150
-
151
- /**
152
- * 添加实际参数
153
- * @internal
154
- * @param argument 已有的实际参数实例
155
- */
156
- _addArgument(argument: Argument): Argument;
157
-
158
- _addArgument(options?: Partial<Argument> | Argument) {
159
- const index = this.arguments.length;
160
- return this._insertArgumentAt(options as any, index);
161
- }
162
-
163
- /**
164
- * 添加实际参数
165
- * @param argumentOptions 实际参数参数
166
- */
167
- addArgument(argumentOptions: Partial<Argument>): Argument;
168
-
169
- /**
170
- * 添加实际参数
171
- * @param argument 已有的实际参数实例
172
- */
173
- addArgument(argument: Argument): Argument;
174
-
175
- addArgument(options?: Partial<Argument> | Argument) {
176
- const node = this._addArgument(options as any);
177
- const index = this.arguments.indexOf(node);
178
- node.create({
179
- index,
180
- parentNode: this,
181
- parentKey: 'arguments',
182
- });
183
- return node;
184
- }
185
-
186
- /**
187
- * 删除实际参数
188
- * @param argument 已有的实际参数实例
189
- */
190
- removeArgument(argument: Argument): void;
191
-
192
- removeArgument(options: Argument) {
193
- let argument: Argument = options;
194
- return argument.delete();
195
- }
196
-
197
- __removeLogicItem(logicItem: LogicItem) {
198
- const parentKey = logicItem.parentKey;
199
- const params: Params = {
200
- parentNode: this,
201
- parentKey,
202
- index: -1,
203
- object: null,
204
- oldObject: logicItem,
205
- };
206
- if (parentKey) {
207
- params.parentKey = parentKey;
208
- // @ts-ignore
209
- const t = this.__v_raw || this;
210
- // @ts-ignore
211
- const n = logicItem.__v_raw || logicItem;
212
- if (Array.isArray((t as any)[parentKey])) {
213
- // @ts-ignore
214
- const index = (t as any)[parentKey].findIndex((el) => (el.__v_raw || el) === n);
215
- ~index && (this as any)[parentKey].splice(index, 1);
216
- params.index = index;
217
- } else {
218
- const q = (t as any)[parentKey];
219
- if ((q.__v_raw || q) === n) {
220
- params.index = 0;
221
- (this as any)[parentKey] = undefined;
222
- }
223
- }
224
- }
225
- return params;
226
- }
227
-
228
- //================================================================================
229
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
230
- // 自动生成的代码已结束。下面可以手动编写。
231
- //================================================================================
232
- get businessComponent() {
233
- return this.getAncestor('BusinessComponent') as BusinessComponent;
234
- }
235
-
236
- // 设置触发的事件
237
- setCallee(event: Event) {
238
- const Argument = getConceptConstructor('Argument');
239
- const Identifier = getConceptConstructor('Identifier');
240
- const calleeName = event.name;
241
- const params = event?.params?.map((param) => {
242
- const relationOptions = { parentNode: this, parentKey: 'arguments' };
243
- const argument = Argument.from(
244
- {
245
- keyword: param.name,
246
- expression: param.isFunction ? new Identifier() : param.defaultExpression,
247
- },
248
- this,
249
- );
250
- Object.assign(argument, relationOptions);
251
- return argument;
252
- });
253
- this.update({
254
- calleeName,
255
- arguments: params,
256
- folded: false,
257
- });
258
- }
259
-
260
- // 被调用的事件
261
- getCallNode(): Event | undefined {
262
- return this.businessComponent?.events?.find((event: Event) => event.name === this.calleeName);
263
- }
264
-
265
- // 实参列表
266
- get completeArguments() {
267
- const callArguments = (this.arguments ?? []).slice();
268
- // 没有参数时可以跳过查询原逻辑标签
269
- const node = callArguments.length > 0 ? this.getCallNode() : undefined;
270
- const logicParams = node?.params ?? [];
271
-
272
- callArguments.forEach((arg, index) => {
273
- const param = logicParams[index] || ({} as Param);
274
- arg.paramRequired = Boolean(!param?.defaultValue?.expression);
275
- arg.paramTypeAnnotation = undefined;
276
- arg.paramDefaultValue = undefined;
277
- // 强制更新当前的 keyword
278
- arg.keyword = param?.name && param.name.length > 0 ? param.name : arg.keyword;
279
- // 取到是不是必填放入参数中
280
- if (param && !arg.expression) {
281
- // 非必填时 才会有默认值
282
- arg.paramTypeAnnotation = param.typeAnnotation;
283
- arg.paramDefaultValue = param.defaultValue;
284
- }
285
- });
286
-
287
- return callArguments;
288
- }
289
-
290
- @withSourceMapGenerator
291
- *toEmbeddedTS(state = createCompilerState()): TranslatorGenerator {
292
- const self = this;
293
- const { calleeName, completeArguments, arguments: eventArgs } = self;
294
- let code = `(this as ${this.businessComponent.name}).${calleeName ?? '__IDENTIFIER__'}(`;
295
- if (completeArguments?.length) {
296
- yield* wrapForEach(completeArguments, function* warpForEachGenerator(arg, index) {
297
- // 取到是不是必填放入参数中
298
- code += yield* arg.toEmbeddedTS(shiftState(state, code), arg?.paramRequired);
299
- if (index !== eventArgs.length - 1) code += ', ';
300
- });
301
- }
302
- code += ')';
303
- code += '\n';
304
- return code;
305
- }
306
-
307
- toJS(state?: TranslatorState): string {
308
- const { completeArguments = [] } = this;
309
- let code = '';
310
- code += `this.$emit('${this.calleeName}', {\n`;
311
- if (Array.isArray(completeArguments) && completeArguments.length) {
312
- completeArguments.forEach((arg, index) => {
313
- const argStr = arg?.toJS(shiftState(state, code));
314
-
315
- code += `${arg.keyword}: ${argStr}`;
316
- if (index !== completeArguments?.length - 1) {
317
- code += ', ';
318
- }
319
- });
320
- }
321
- code += '\n})';
322
- return code;
323
- }
324
- //================================================================================
325
- // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
326
- // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
327
- //================================================================================
328
- }
329
-
330
- export default CallEvent;
331
- //================================================================================
332
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
333
- // 自动生成的代码已结束。下面可以手动编写。
334
- //================================================================================