UNPKG

@neo-one/server-plugin-project

Version:

NEO•ONE server plugin for project functionality.

87 lines (85 loc) 12.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const client_core_1 = require("@neo-one/client-core"); const server_plugin_1 = require("@neo-one/server-plugin"); const server_plugin_neotracker_1 = require("@neo-one/server-plugin-neotracker"); const server_plugin_network_1 = require("@neo-one/server-plugin-network"); const build_1 = require("../build"); const utils_1 = require("../utils"); const getBuildOptions = (ctx) => ctx.buildOptions; const getProjectIDMaybe = (ctx) => ctx.projectID; const getProjectID = (ctx) => ctx.projectID; exports.reset = (pluginManager, options) => new server_plugin_1.TaskList({ tasks: [ { title: 'Load project configuration', task: async (ctx) => { const { rootDir: rootDirIn, projectID: projectIDIn } = options; if (projectIDIn !== undefined) { const project = await utils_1.getProject(pluginManager, projectIDIn); const buildOptions = { command: 'build', rootDir: project.rootDir, }; ctx.buildOptions = buildOptions; ctx.projectID = projectIDIn; } else if (rootDirIn !== undefined) { const buildOptions = { command: 'build', rootDir: rootDirIn, }; ctx.buildOptions = buildOptions; const projectConfig = await utils_1.loadProjectConfig(rootDirIn); ctx.projectID = await utils_1.loadProjectID(pluginManager, projectConfig, options); } else { throw new Error('One of projectID or rootDir must be defined'); } }, }, { title: 'Reset development network', skip: (ctx) => { if (getProjectIDMaybe(ctx) === undefined) { return 'Project has not been created.'; } return false; }, task: async (ctx) => { const networkName = utils_1.getLocalNetworkName(getBuildOptions(ctx).rootDir, getProjectID(ctx)); const [network, neotracker] = await Promise.all([ server_plugin_network_1.getNetworkResourceManager(pluginManager) .getResource({ name: networkName, options: {} }) .catch(() => undefined), server_plugin_neotracker_1.getNEOTrackerResourceManager(pluginManager) .getResource({ name: utils_1.getLocalNEOTrackerName(networkName), options: {}, }) .catch(() => undefined), ]); if (network !== undefined) { if (network.state !== 'started') { await server_plugin_network_1.getNetworkResourceManager(pluginManager) .start(utils_1.getLocalNetworkName(getBuildOptions(ctx).rootDir, getProjectID(ctx)), {}) .toPromise(); } const developerClient = new client_core_1.DeveloperClient(new client_core_1.NEOONEDataProvider({ network: 'local', rpcURL: network.nodes[0].rpcAddress })); await developerClient.reset(); await developerClient.updateSettings({ secondsPerBlock: 15 }); await network.live(); await network.ready(); if (neotracker !== undefined) { await neotracker.reset(); } } }, }, { title: 'Build', task: (ctx) => build_1.build(pluginManager, getBuildOptions(ctx), { forceTransfer: true }), }, ], }); //# sourceMappingURL=data:application/json;charset=utf8;base64,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Q0YsQ0FBQyxDQUFDIiwiZmlsZSI6Im5lby1vbmUtc2VydmVyLXBsdWdpbi1wcm9qZWN0L3NyYy9yZXNldC9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERldmVsb3BlckNsaWVudCwgTkVPT05FRGF0YVByb3ZpZGVyIH0gZnJvbSAnQG5lby1vbmUvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgUGx1Z2luTWFuYWdlciwgVGFza0xpc3QgfSBmcm9tICdAbmVvLW9uZS9zZXJ2ZXItcGx1Z2luJztcbmltcG9ydCB7IGdldE5FT1RyYWNrZXJSZXNvdXJjZU1hbmFnZXIgfSBmcm9tICdAbmVvLW9uZS9zZXJ2ZXItcGx1Z2luLW5lb3RyYWNrZXInO1xuaW1wb3J0IHsgZ2V0TmV0d29ya1Jlc291cmNlTWFuYWdlciB9IGZyb20gJ0BuZW8tb25lL3NlcnZlci1wbHVnaW4tbmV0d29yayc7XG5pbXBvcnQgeyBidWlsZCB9IGZyb20gJy4uL2J1aWxkJztcbmltcG9ydCB7IEJ1aWxkVGFza0xpc3RPcHRpb25zLCBSZXNldFRhc2tMaXN0T3B0aW9ucyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7XG4gIGdldExvY2FsTkVPVHJhY2tlck5hbWUsXG4gIGdldExvY2FsTmV0d29ya05hbWUsXG4gIGdldFByb2plY3QgYXMgbG9hZFByb2plY3QsXG4gIGxvYWRQcm9qZWN0Q29uZmlnLFxuICBsb2FkUHJvamVjdElELFxufSBmcm9tICcuLi91dGlscyc7XG5cbi8vIHRzbGludDpkaXNhYmxlIG5vLWFueVxuY29uc3QgZ2V0QnVpbGRPcHRpb25zID0gKGN0eDogYW55KTogQnVpbGRUYXNrTGlzdE9wdGlvbnMgPT4gY3R4LmJ1aWxkT3B0aW9ucztcbmNvbnN0IGdldFByb2plY3RJRE1heWJlID0gKGN0eDogYW55KTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IGN0eC5wcm9qZWN0SUQ7XG5jb25zdCBnZXRQcm9qZWN0SUQgPSAoY3R4OiBhbnkpOiBzdHJpbmcgPT4gY3R4LnByb2plY3RJRDtcbi8vIHRzbGludDplbmFibGUgbm8tYW55XG5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBleHBvcnQtbmFtZVxuZXhwb3J0IGNvbnN0IHJlc2V0ID0gKHBsdWdpbk1hbmFnZXI6IFBsdWdpbk1hbmFnZXIsIG9wdGlvbnM6IFJlc2V0VGFza0xpc3RPcHRpb25zKTogVGFza0xpc3QgPT5cbiAgbmV3IFRhc2tMaXN0KHtcbiAgICB0YXNrczogW1xuICAgICAge1xuICAgICAgICB0aXRsZTogJ0xvYWQgcHJvamVjdCBjb25maWd1cmF0aW9uJyxcbiAgICAgICAgdGFzazogYXN5bmMgKGN0eCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHsgcm9vdERpcjogcm9vdERpckluLCBwcm9qZWN0SUQ6IHByb2plY3RJREluIH0gPSBvcHRpb25zO1xuICAgICAgICAgIGlmIChwcm9qZWN0SURJbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9qZWN0ID0gYXdhaXQgbG9hZFByb2plY3QocGx1Z2luTWFuYWdlciwgcHJvamVjdElESW4pO1xuICAgICAgICAgICAgY29uc3QgYnVpbGRPcHRpb25zOiBCdWlsZFRhc2tMaXN0T3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgY29tbWFuZDogJ2J1aWxkJyxcbiAgICAgICAgICAgICAgcm9vdERpcjogcHJvamVjdC5yb290RGlyLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGN0eC5idWlsZE9wdGlvbnMgPSBidWlsZE9wdGlvbnM7XG4gICAgICAgICAgICBjdHgucHJvamVjdElEID0gcHJvamVjdElESW47XG4gICAgICAgICAgfSBlbHNlIGlmIChyb290RGlySW4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3QgYnVpbGRPcHRpb25zOiBCdWlsZFRhc2tMaXN0T3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgY29tbWFuZDogJ2J1aWxkJyxcbiAgICAgICAgICAgICAgcm9vdERpcjogcm9vdERpckluLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGN0eC5idWlsZE9wdGlvbnMgPSBidWlsZE9wdGlvbnM7XG4gICAgICAgICAgICBjb25zdCBwcm9qZWN0Q29uZmlnID0gYXdhaXQgbG9hZFByb2plY3RDb25maWcocm9vdERpckluKTtcbiAgICAgICAgICAgIGN0eC5wcm9qZWN0SUQgPSBhd2FpdCBsb2FkUHJvamVjdElEKHBsdWdpbk1hbmFnZXIsIHByb2plY3RDb25maWcsIG9wdGlvbnMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ09uZSBvZiBwcm9qZWN0SUQgb3Igcm9vdERpciBtdXN0IGJlIGRlZmluZWQnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0aXRsZTogJ1Jlc2V0IGRldmVsb3BtZW50IG5ldHdvcmsnLFxuICAgICAgICBza2lwOiAoY3R4KSA9PiB7XG4gICAgICAgICAgaWYgKGdldFByb2plY3RJRE1heWJlKGN0eCkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuICdQcm9qZWN0IGhhcyBub3QgYmVlbiBjcmVhdGVkLic7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgICB0YXNrOiBhc3luYyAoY3R4KSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV0d29ya05hbWUgPSBnZXRMb2NhbE5ldHdvcmtOYW1lKGdldEJ1aWxkT3B0aW9ucyhjdHgpLnJvb3REaXIsIGdldFByb2plY3RJRChjdHgpKTtcbiAgICAgICAgICBjb25zdCBbbmV0d29yaywgbmVvdHJhY2tlcl0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICBnZXROZXR3b3JrUmVzb3VyY2VNYW5hZ2VyKHBsdWdpbk1hbmFnZXIpXG4gICAgICAgICAgICAgIC5nZXRSZXNvdXJjZSh7IG5hbWU6IG5ldHdvcmtOYW1lLCBvcHRpb25zOiB7fSB9KVxuICAgICAgICAgICAgICAuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKSxcbiAgICAgICAgICAgIGdldE5FT1RyYWNrZXJSZXNvdXJjZU1hbmFnZXIocGx1Z2luTWFuYWdlcilcbiAgICAgICAgICAgICAgLmdldFJlc291cmNlKHtcbiAgICAgICAgICAgICAgICBuYW1lOiBnZXRMb2NhbE5FT1RyYWNrZXJOYW1lKG5ldHdvcmtOYW1lKSxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7fSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLmNhdGNoKCgpID0+IHVuZGVmaW5lZCksXG4gICAgICAgICAgXSk7XG5cbiAgICAgICAgICBpZiAobmV0d29yayAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAobmV0d29yay5zdGF0ZSAhPT0gJ3N0YXJ0ZWQnKSB7XG4gICAgICAgICAgICAgIGF3YWl0IGdldE5ldHdvcmtSZXNvdXJjZU1hbmFnZXIocGx1Z2luTWFuYWdlcilcbiAgICAgICAgICAgICAgICAuc3RhcnQoZ2V0TG9jYWxOZXR3b3JrTmFtZShnZXRCdWlsZE9wdGlvbnMoY3R4KS5yb290RGlyLCBnZXRQcm9qZWN0SUQoY3R4KSksIHt9KVxuICAgICAgICAgICAgICAgIC50b1Byb21pc2UoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZGV2ZWxvcGVyQ2xpZW50ID0gbmV3IERldmVsb3BlckNsaWVudChcbiAgICAgICAgICAgICAgbmV3IE5FT09ORURhdGFQcm92aWRlcih7IG5ldHdvcms6ICdsb2NhbCcsIHJwY1VSTDogbmV0d29yay5ub2Rlc1swXS5ycGNBZGRyZXNzIH0pLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGF3YWl0IGRldmVsb3BlckNsaWVudC5yZXNldCgpO1xuICAgICAgICAgICAgYXdhaXQgZGV2ZWxvcGVyQ2xpZW50LnVwZGF0ZVNldHRpbmdzKHsgc2Vjb25kc1BlckJsb2NrOiAxNSB9KTtcbiAgICAgICAgICAgIGF3YWl0IG5ldHdvcmsubGl2ZSgpO1xuICAgICAgICAgICAgYXdhaXQgbmV0d29yay5yZWFkeSgpO1xuXG4gICAgICAgICAgICBpZiAobmVvdHJhY2tlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIGF3YWl0IG5lb3RyYWNrZXIucmVzZXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0aXRsZTogJ0J1aWxkJyxcbiAgICAgICAgdGFzazogKGN0eCkgPT4gYnVpbGQocGx1Z2luTWFuYWdlciwgZ2V0QnVpbGRPcHRpb25zKGN0eCksIHsgZm9yY2VUcmFuc2ZlcjogdHJ1ZSB9KSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSk7XG4iXX0=