diff --git a/Lara-JS/scripts/build-interfaces.js b/Lara-JS/scripts/build-interfaces.js index bde9da775..b4e7acd79 100755 --- a/Lara-JS/scripts/build-interfaces.js +++ b/Lara-JS/scripts/build-interfaces.js @@ -61,7 +61,9 @@ import { registerJoinpointMapper, wrapJoinPoint, unwrapJoinPoint, -} from "lara-js/api/LaraJoinPoint.js";\n\n` +} from "lara-js/api/LaraJoinPoint.js"; +import eventListener from "./clava/events/EventListener.js"; +import { Event, EventTime } from "./clava/events/Events.js";\n\n` ); generateDefaultAttributeMappers(specification.joinpoints, outputFile); diff --git a/Lara-JS/scripts/generate-ts-joinpoints.js b/Lara-JS/scripts/generate-ts-joinpoints.js index 74b89ee9a..aaea5f396 100644 --- a/Lara-JS/scripts/generate-ts-joinpoints.js +++ b/Lara-JS/scripts/generate-ts-joinpoints.js @@ -167,13 +167,28 @@ function generateJoinpointAction(action, outputFile, joinpoints) { ) .join(", "); + const eventParameters = action.parameters + .map((parameter) => parameter.name.split(":")[0]) + .join(", "); + fs.writeSync( outputFile, `${generateDocumentation(action.tooltip)} ${action.name}(${parameters}): ${ action.returnType - } { return wrapJoinPoint(this._javaObject.${ + } { + eventListener.emit("ACTION", new Event(EventTime.BEFORE, "${ + action.name + }", this, undefined${ + eventParameters.length > 0 ? `, ${eventParameters}` : "" + })); + const res = wrapJoinPoint(this._javaObject.${ action.name - }(${callParameters})); }\n` + }(${callParameters})); + eventListener.emit("ACTION", new Event(EventTime.AFTER, "${ + action.name + }", this, res${eventParameters.length > 0 ? `, ${eventParameters}` : ""})); + return res; + }\n` ); }