@nelts/master
Version:
master for nelts
34 lines (33 loc) • 1.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
require("reflect-metadata");
const path = require("path");
const globby = require("globby");
const utils_1 = require("@nelts/utils");
const agent_1 = require("@nelts/agent");
async function AgentAutoRun(plu) {
const cwd = plu.source;
const files = await globby([
'agent/**/*.ts',
'agent/**/*.js',
'!agent/**/*.d.ts'
], { cwd });
for (let i = 0; i < files.length; i++) {
const file = path.resolve(cwd, files[i]);
const callback = utils_1.RequireDefault(file);
if (Reflect.getMetadata(agent_1.Namespace.AUTO, callback)) {
if (!callback.name)
throw new Error('agent must defined with a name.');
plu.logger.info('<Forking>', '[Agent]', callback.name, '...');
await plu.app.createAgent(callback.name, plu.app.agentModuleFile, {
file,
base: plu.app.base,
config: plu.app.inCommingMessage.config,
name: callback.name,
mpid: plu.app.inCommingMessage.mpid
});
plu.logger.info('<Forked>', '[Agent]', callback.name);
}
}
}
exports.default = AgentAutoRun;