nope-js-node
Version:
NoPE Runtime for Nodejs. For Browser-Support please use nope-browser
37 lines (36 loc) • 1.26 kB
JavaScript
;
/**
* @author Martin Karkowski
* @email m.karkowski@zema.de
* @create date 2021-07-27 15:45:00
* @modify date 2021-07-27 15:45:00
* @desc [description]
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.repl = void 0;
const repl_1 = require("repl");
const runNopeBackend_1 = require("./runNopeBackend");
/**
* Starts an interactive console with the loaded dispatcher.
*/
async function repl(additionalArguments = []) {
const loader = await (0, runNopeBackend_1.default)(additionalArguments, {
// skipLoadingConfig: true
}, true);
const interactiveConsole = (0, repl_1.start)({});
// Assing the context
interactiveConsole.context.dispatcher = loader.dispatcher;
interactiveConsole.context.loader = loader;
interactiveConsole.context.nope = require("../index.nodejs");
// Promise, that will be finished on exiting the interactive console.
const promise = new Promise((resolve) => {
interactiveConsole.once("exit", resolve);
});
await promise;
await loader.dispatcher.dispose();
}
exports.repl = repl;
// If requested As Main => Perform the Operation.
if (require.main === module) {
repl().catch(console.error);
}