UNPKG

@neo-one/server-plugin-simulation

Version:

NEO•ONE Server simulation plugin.

35 lines (33 loc) 5.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const fs = tslib_1.__importStar(require("fs-extra")); const path = tslib_1.__importStar(require("path")); const errors_1 = require("./errors"); const requireResolve = (pkg, requirePath) => path.resolve(require.resolve(pkg), requirePath); const setupSimulation = async (pkg, dirName, config) => { const simulationPath = path.resolve(process.cwd(), dirName); await fs.ensureDir(simulationPath); await fs.copy(requireResolve(pkg, config.templateDir), simulationPath); }; const tryRequireSimulation = (pkg) => { try { const config = require(pkg); return config != undefined && config.default != undefined ? config.default : config; } catch (_a) { throw new errors_1.CouldNotLoadSimulationError(pkg); } }; exports.createCommand = ({ cli }) => cli.vorpal .command('create simulation <dirName> <simulation>', 'Create a NEO•ONE simulation.') .action(async (args) => { const dirName = args.dirName; const pkg = args.simulation; cli.print('Loading simulation package...'); const config = tryRequireSimulation(pkg); cli.print('Setting up simulation...'); await setupSimulation(pkg, dirName, config); cli.print(`Created simulation in ${dirName}.`); }); //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNyZWF0ZUNvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBQStCO0FBQy9CLG1EQUE2QjtBQUM3QixxQ0FBdUQ7QUFHdkQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxHQUFXLEVBQUUsV0FBbUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBRTdHLE1BQU0sZUFBZSxHQUFHLEtBQUssRUFBRSxHQUFXLEVBQUUsT0FBZSxFQUFFLE1BQXdCLEVBQUUsRUFBRTtJQUN2RixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RCxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbkMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQ3pFLENBQUMsQ0FBQztBQUVGLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxHQUFXLEVBQW9CLEVBQUU7SUFDN0QsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU1QixPQUFPLE1BQU0sSUFBSSxTQUFTLElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztLQUNyRjtJQUFDLFdBQU07UUFDTixNQUFNLElBQUksb0NBQTJCLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDNUM7QUFDSCxDQUFDLENBQUM7QUFFVyxRQUFBLGFBQWEsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFzQixFQUFFLEVBQUUsQ0FDM0QsR0FBRyxDQUFDLE1BQU07S0FDUCxPQUFPLENBQUMsMENBQTBDLEVBQUUsOEJBQThCLENBQUM7S0FDbkYsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtJQUNyQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQzdCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDNUIsR0FBRyxDQUFDLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sTUFBTSxHQUFHLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLEdBQUcsQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUN0QyxNQUFNLGVBQWUsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLEdBQUcsQ0FBQyxLQUFLLENBQUMseUJBQXlCLE9BQU8sR0FBRyxDQUFDLENBQUM7QUFDakQsQ0FBQyxDQUFDLENBQUMiLCJmaWxlIjoibmVvLW9uZS1zZXJ2ZXItcGx1Z2luLXNpbXVsYXRpb24vc3JjL2NyZWF0ZUNvbW1hbmQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnRlcmFjdGl2ZUNMSUFyZ3MgfSBmcm9tICdAbmVvLW9uZS9zZXJ2ZXItcGx1Z2luJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBDb3VsZE5vdExvYWRTaW11bGF0aW9uRXJyb3IgfSBmcm9tICcuL2Vycm9ycyc7XG5pbXBvcnQgeyBTaW11bGF0aW9uQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IHJlcXVpcmVSZXNvbHZlID0gKHBrZzogc3RyaW5nLCByZXF1aXJlUGF0aDogc3RyaW5nKSA9PiBwYXRoLnJlc29sdmUocmVxdWlyZS5yZXNvbHZlKHBrZyksIHJlcXVpcmVQYXRoKTtcblxuY29uc3Qgc2V0dXBTaW11bGF0aW9uID0gYXN5bmMgKHBrZzogc3RyaW5nLCBkaXJOYW1lOiBzdHJpbmcsIGNvbmZpZzogU2ltdWxhdGlvbkNvbmZpZykgPT4ge1xuICBjb25zdCBzaW11bGF0aW9uUGF0aCA9IHBhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBkaXJOYW1lKTtcbiAgYXdhaXQgZnMuZW5zdXJlRGlyKHNpbXVsYXRpb25QYXRoKTtcbiAgYXdhaXQgZnMuY29weShyZXF1aXJlUmVzb2x2ZShwa2csIGNvbmZpZy50ZW1wbGF0ZURpciksIHNpbXVsYXRpb25QYXRoKTtcbn07XG5cbmNvbnN0IHRyeVJlcXVpcmVTaW11bGF0aW9uID0gKHBrZzogc3RyaW5nKTogU2ltdWxhdGlvbkNvbmZpZyA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgY29uZmlnID0gcmVxdWlyZShwa2cpO1xuXG4gICAgcmV0dXJuIGNvbmZpZyAhPSB1bmRlZmluZWQgJiYgY29uZmlnLmRlZmF1bHQgIT0gdW5kZWZpbmVkID8gY29uZmlnLmRlZmF1bHQgOiBjb25maWc7XG4gIH0gY2F0Y2gge1xuICAgIHRocm93IG5ldyBDb3VsZE5vdExvYWRTaW11bGF0aW9uRXJyb3IocGtnKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUNvbW1hbmQgPSAoeyBjbGkgfTogSW50ZXJhY3RpdmVDTElBcmdzKSA9PlxuICBjbGkudm9ycGFsXG4gICAgLmNvbW1hbmQoJ2NyZWF0ZSBzaW11bGF0aW9uIDxkaXJOYW1lPiA8c2ltdWxhdGlvbj4nLCAnQ3JlYXRlIGEgTkVP4oCiT05FIHNpbXVsYXRpb24uJylcbiAgICAuYWN0aW9uKGFzeW5jIChhcmdzKSA9PiB7XG4gICAgICBjb25zdCBkaXJOYW1lID0gYXJncy5kaXJOYW1lO1xuICAgICAgY29uc3QgcGtnID0gYXJncy5zaW11bGF0aW9uO1xuICAgICAgY2xpLnByaW50KCdMb2FkaW5nIHNpbXVsYXRpb24gcGFja2FnZS4uLicpO1xuICAgICAgY29uc3QgY29uZmlnID0gdHJ5UmVxdWlyZVNpbXVsYXRpb24ocGtnKTtcbiAgICAgIGNsaS5wcmludCgnU2V0dGluZyB1cCBzaW11bGF0aW9uLi4uJyk7XG4gICAgICBhd2FpdCBzZXR1cFNpbXVsYXRpb24ocGtnLCBkaXJOYW1lLCBjb25maWcpO1xuICAgICAgY2xpLnByaW50KGBDcmVhdGVkIHNpbXVsYXRpb24gaW4gJHtkaXJOYW1lfS5gKTtcbiAgICB9KTtcbiJdfQ==