UNPKG

magnet-core

Version:

Magnet's core, a simple module loader.

65 lines 2.43 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const utils_1 = require("./utils"); function setupModules(app, pModule) { return __awaiter(this, void 0, void 0, function* () { try { let task; let Module; let parameters = [app]; if (!pModule) { return; } if (pModule.module) { Module = pModule.module; parameters.push(pModule.options); } else { Module = pModule; } task = new Module(...parameters); yield task.setup(); if (task.teardown) { return task.teardown.bind(task); } } catch (err) { throw err; } }); } exports.setupModules = setupModules; function performTasks(app, modules) { return __awaiter(this, void 0, void 0, function* () { let allModuleDone; let teardowns = []; let fails = []; try { modules = modules.map((module) => Array.isArray(module) ? module : [module]); for (let mdls of modules) { mdls = mdls.map((mo) => setupModules(app, mo)); allModuleDone = yield Promise.all(mdls.map(utils_1.reflect)); teardowns.push(utils_1.retrieveReflect(allModuleDone, 'value')); fails = utils_1.retrieveReflect(allModuleDone, 'error'); if (fails.length) { return { teardowns, fails }; } } return { teardowns, fails }; } catch (err) { app.log.error(err); return { teardowns, fails }; } }); } exports.performTasks = performTasks; //# sourceMappingURL=process.js.map