@abaplint/transpiler-cli 2.11.1 → 2.11.3
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/build/bundle.js +28 -28
- package/package.json +2 -2
package/build/bundle.js
CHANGED
|
@@ -87119,23 +87119,21 @@ const expressions_1 = __webpack_require__(/*! ../expressions */ "./node_modules/
|
|
|
87119
87119
|
class SetHandlerTranspiler {
|
|
87120
87120
|
transpile(node, traversal) {
|
|
87121
87121
|
const methods = [];
|
|
87122
|
-
let
|
|
87122
|
+
let eventClass = undefined;
|
|
87123
87123
|
let eventName = undefined;
|
|
87124
87124
|
for (const m of node.findDirectExpressions(abaplint.Expressions.MethodSource)) {
|
|
87125
87125
|
methods.push(new expressions_1.MethodSourceTranspiler().transpile(m, traversal).getCode().replace("await ", ""));
|
|
87126
|
-
if (
|
|
87126
|
+
if (eventClass === undefined) {
|
|
87127
87127
|
const nameToken = m.getFirstToken();
|
|
87128
87128
|
const scope = traversal.findCurrentScopeByToken(nameToken);
|
|
87129
87129
|
const method = traversal.findMethodReference(nameToken, scope);
|
|
87130
87130
|
if (method?.def.isEventHandler() !== true) {
|
|
87131
87131
|
throw new Error(`SetHandlerTranspiler: Method "${nameToken.getStr()}" is not an event handler`);
|
|
87132
87132
|
}
|
|
87133
|
-
const def = traversal.findClassDefinition(method.def.getClassName(), scope);
|
|
87134
|
-
if (def === undefined) {
|
|
87135
|
-
throw new Error(`SetHandlerTranspiler: Class "${method.def.getClassName()}" not found`);
|
|
87136
|
-
}
|
|
87137
87133
|
eventName = method.def.getEventName();
|
|
87138
|
-
|
|
87134
|
+
eventClass = this.findEventClass(method.def, traversal, scope);
|
|
87135
|
+
// className = method.def.getEventClass();
|
|
87136
|
+
// this.findEventClass(def, eventName, traversal, scope);
|
|
87139
87137
|
}
|
|
87140
87138
|
}
|
|
87141
87139
|
let f = undefined;
|
|
@@ -87151,30 +87149,24 @@ class SetHandlerTranspiler {
|
|
|
87151
87149
|
if (activationExpression) {
|
|
87152
87150
|
activation = ", " + new expressions_1.SourceTranspiler().transpile(activationExpression, traversal).getCode();
|
|
87153
87151
|
}
|
|
87154
|
-
return new chunk_1.Chunk().append(`abap.statements.setHandler({EVENT_NAME: "${eventName}", EVENT_CLASS: "${
|
|
87152
|
+
return new chunk_1.Chunk().append(`abap.statements.setHandler({EVENT_NAME: "${eventName}", EVENT_CLASS: "${eventClass}"}, [${methods.join(",")}], ${f}${activation});`, node, traversal);
|
|
87155
87153
|
}
|
|
87156
|
-
findEventClass(
|
|
87157
|
-
let
|
|
87158
|
-
|
|
87159
|
-
|
|
87160
|
-
|
|
87161
|
-
|
|
87162
|
-
|
|
87163
|
-
|
|
87164
|
-
|
|
87165
|
-
const idef = traversal.findInterfaceDefinition(implementing.name, scope);
|
|
87166
|
-
if (idef === undefined) {
|
|
87167
|
-
continue;
|
|
87168
|
-
}
|
|
87169
|
-
for (const event of idef.getEvents()) {
|
|
87170
|
-
if (event.getName().toUpperCase() === eventName?.toUpperCase()) {
|
|
87171
|
-
return traversal.buildInternalName(idef.getName(), idef);
|
|
87172
|
-
}
|
|
87173
|
-
}
|
|
87154
|
+
findEventClass(mdef, traversal, scope) {
|
|
87155
|
+
let def = traversal.findClassDefinition(mdef.getEventClass(), scope);
|
|
87156
|
+
if (def === undefined) {
|
|
87157
|
+
def = traversal.findInterfaceDefinition(mdef.getEventClass(), scope);
|
|
87158
|
+
}
|
|
87159
|
+
// look through super classes
|
|
87160
|
+
while (def?.getSuperClass() !== undefined) {
|
|
87161
|
+
if (def.getEvents().find(e => e.getName().toUpperCase() === mdef.getEventName()?.toUpperCase())) {
|
|
87162
|
+
break;
|
|
87174
87163
|
}
|
|
87175
|
-
|
|
87164
|
+
def = traversal.findClassDefinition(def.getSuperClass(), scope);
|
|
87176
87165
|
}
|
|
87177
|
-
|
|
87166
|
+
if (def === undefined) {
|
|
87167
|
+
throw new Error(`SetHandlerTranspiler: findEventClass, class or interface "${mdef.getEventClass()}" not found`);
|
|
87168
|
+
}
|
|
87169
|
+
return traversal.buildInternalName(def.getName(), def);
|
|
87178
87170
|
}
|
|
87179
87171
|
}
|
|
87180
87172
|
exports.SetHandlerTranspiler = SetHandlerTranspiler;
|
|
@@ -88447,6 +88439,14 @@ class ClassImplementationTranspiler {
|
|
|
88447
88439
|
}
|
|
88448
88440
|
ret += traversal_1.Traversal.escapeNamespace(clasName) + "." + alias.getName().toLowerCase() + " = " + traversal_1.Traversal.escapeNamespace(clasName) + "." + traversal_1.Traversal.escapeNamespace(alias.getComponent().replace("~", "$")) + ";\n";
|
|
88449
88441
|
}
|
|
88442
|
+
for (const e of cdef.getEvents()) {
|
|
88443
|
+
if (e.isStatic() === false) {
|
|
88444
|
+
continue;
|
|
88445
|
+
}
|
|
88446
|
+
const fname = traversal_1.Traversal.escapeNamespace(e.getName().toLowerCase());
|
|
88447
|
+
const name = traversal.buildInternalName(clasName, cdef);
|
|
88448
|
+
ret += traversal_1.Traversal.escapeNamespace(clasName) + "." + fname + " = {\"EVENT_NAME\": \"" + e.getName().toUpperCase() + "\", \"EVENT_CLASS\": \"" + name + "\"};\n";
|
|
88449
|
+
}
|
|
88450
88450
|
// this is not correct, ABAP does not invocate the class constructor at require time,
|
|
88451
88451
|
// but this will probably work
|
|
88452
88452
|
if (traversal.getCurrentObject().getType() === "CLAS") {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/transpiler-cli",
|
|
3
|
-
"version": "2.11.
|
|
3
|
+
"version": "2.11.3",
|
|
4
4
|
"description": "Transpiler - Command Line Interface",
|
|
5
5
|
"funding": "https://github.com/sponsors/larshp",
|
|
6
6
|
"bin": {
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"license": "MIT",
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@abaplint/core": "^2.113.151",
|
|
31
|
-
"@abaplint/transpiler": "^2.11.
|
|
31
|
+
"@abaplint/transpiler": "^2.11.3",
|
|
32
32
|
"@types/glob": "^8.1.0",
|
|
33
33
|
"@types/node": "^22.17.0",
|
|
34
34
|
"@types/progress": "^2.0.7",
|