@gluestack-v2/glue-plugin-service-gateway
Version:
Gluestack V2 service Gateway Plugin
122 lines (103 loc) • 2.64 kB
JavaScript
(function (factory) {
if (typeof module === "object" && typeof module.exports === "object") {
var v = factory(require, exports);
if (v !== undefined) module.exports = v;
}
else if (typeof define === "function" && define.amd) {
define(["require", "exports"], factory);
}
})(function (require, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.eventsTemplate = void 0;
const eventsTemplate = () => {
return `/**
* @typedef {import('moleculer').ServiceSchema} ServiceSchema Moleculer's Service Schema
* @typedef {import('moleculer').Context} Context Moleculer's Context
*/
/** @type {ServiceSchema} */
const eventListeners = require("../events/listeners");
const Context = require("../Context.ts");
module.exports = {
name: "events",
/**
* Settings
*/
settings: {},
/**
* Dependencies
*/
dependencies: [],
/**
* Actions
*/
actions: {
emit: {
handler(ctx) {
return this.emit(ctx);
},
},
},
/**
* Events
*/
events: {
// **---Add Events Here---**
},
/**
* Methods
*/
methods: {
emit(ctx) {
let data = ctx.params;
let actionsArr = [];
eventListeners.map((listener) => {
const eventName = Object.keys(listener)[0];
const currentListeners = listener[eventName];
currentListeners.map((ctxCallPath) => {
const serverSdk = new Context(ctx);
const finalPath = ctxCallPath.split("/").join(".");
if (eventName == data.eventName) {
actionsArr.push({
action: finalPath,
params: serverSdk.params,
});
}
});
});
return ctx.mcall(actionsArr);
/**
* const data = {
* event: 'user.created',
* params: {
* name: 'John Doe',
* email: 'jdoe@example.com'
* }
* };
*/
// const listeners = eventListeners.listeners["user.updated"];
// for await(const listener of listeners) {
// await broker.call(listener, data);
// }
},
testFunction(data) {
console.log(data.params);
},
},
/**
* Service created lifecycle event handler
*/
created() {},
/**
* Service started lifecycle event handler
*/
async started() {},
/**
* Service stopped lifecycle event handler
*/
async stopped() {},
};
`;
};
exports.eventsTemplate = eventsTemplate;
});