UNPKG

@neo-one/server-plugin-project

Version:

NEO•ONE server plugin for project functionality.

90 lines (88 loc) 11.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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 server_plugin_wallet_1 = require("@neo-one/server-plugin-wallet"); const utils_1 = require("@neo-one/utils"); const operators_1 = require("rxjs/operators"); const build_1 = require("./build"); const buildCommand_1 = require("./buildCommand"); const constants_1 = require("./constants"); const initCommand_1 = require("./initCommand"); const ProjectResourceType_1 = require("./ProjectResourceType"); const reset_1 = require("./reset"); const utils_2 = require("./utils"); class ProjectPlugin extends server_plugin_1.Plugin { constructor() { super(...arguments); this.projectResourceType = new ProjectResourceType_1.ProjectResourceType({ plugin: this }); } get name() { return constants_1.constants.PLUGIN; } get names() { return { capital: 'Projects', capitalPlural: 'Projects', lower: 'project', lowerPlural: 'projects', }; } get dependencies() { return [server_plugin_network_1.constants.PLUGIN, server_plugin_wallet_1.constants.PLUGIN, server_plugin_neotracker_1.constants.PLUGIN]; } get resourceTypes() { return [this.projectResourceType]; } get interactive() { return [buildCommand_1.buildCommand, initCommand_1.initCommand]; } executeTaskList(pluginManager, optionsIn) { const options = this.parseExecuteTaskListOptions(optionsIn); switch (options.command) { case 'build': return build_1.build(pluginManager, options); case 'reset': return reset_1.reset(pluginManager, options); default: utils_1.utils.assertNever(options); throw new Error('Unknown command'); } } async request(pluginManager, optionsIn) { const options = this.parseRequestOptions(optionsIn); const { projectID } = options; const project = await utils_2.getProject(pluginManager, options.projectID); const networkName = utils_2.getLocalNetworkName(project.rootDir, projectID); switch (options.type) { case 'network': return server_plugin_network_1.getNetworkResourceManager(pluginManager) .getResource$({ name: networkName, options: {}, }) .pipe(operators_1.filter(utils_1.utils.notNull), operators_1.take(1)) .toPromise(); case 'sourceMaps': return project.sourceMaps; case 'neotracker': const neotracker = await server_plugin_neotracker_1.getNEOTrackerResourceManager(pluginManager).getResource({ name: utils_2.getLocalNEOTrackerName(networkName), options: {}, }); return neotracker.url; default: utils_1.utils.assertNever(options); throw new Error('Unknown command'); } } parseExecuteTaskListOptions(options) { return JSON.parse(options); } parseRequestOptions(options) { return JSON.parse(options); } } exports.ProjectPlugin = ProjectPlugin; //# sourceMappingURL=data:application/json;charset=utf8;base64,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b0JBQy9FLElBQUksRUFBRSw4QkFBc0IsQ0FBQyxXQUFXLENBQUM7b0JBQ3pDLE9BQU8sRUFBRSxFQUFFO2lCQUNaLENBQUMsQ0FBQztnQkFFSCxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUM7WUFDeEI7Z0JBQ0UsYUFBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztJQUVPLDJCQUEyQixDQUFDLE9BQWU7UUFDakQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxPQUFlO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QixDQUFDO0NBQ0Y7QUF0RkQsc0NBc0ZDIiwiZmlsZSI6Im5lby1vbmUtc2VydmVyLXBsdWdpbi1wcm9qZWN0L3NyYy9Qcm9qZWN0UGx1Z2luLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJhY3RpdmVDb21tYW5kLCBQbHVnaW4sIFBsdWdpbk1hbmFnZXIsIFJlc291cmNlVHlwZSwgVGFza0xpc3QgfSBmcm9tICdAbmVvLW9uZS9zZXJ2ZXItcGx1Z2luJztcbmltcG9ydCB7IGNvbnN0YW50cyBhcyBuZW90cmFja2VyQ29uc3RhbnRzLCBnZXRORU9UcmFja2VyUmVzb3VyY2VNYW5hZ2VyIH0gZnJvbSAnQG5lby1vbmUvc2VydmVyLXBsdWdpbi1uZW90cmFja2VyJztcbmltcG9ydCB7IGNvbnN0YW50cyBhcyBuZXR3b3JrQ29uc3RhbnRzLCBnZXROZXR3b3JrUmVzb3VyY2VNYW5hZ2VyIH0gZnJvbSAnQG5lby1vbmUvc2VydmVyLXBsdWdpbi1uZXR3b3JrJztcbmltcG9ydCB7IGNvbnN0YW50cyBhcyB3YWxsZXRDb25zdGFudHMgfSBmcm9tICdAbmVvLW9uZS9zZXJ2ZXItcGx1Z2luLXdhbGxldCc7XG5pbXBvcnQgeyB1dGlscyB9IGZyb20gJ0BuZW8tb25lL3V0aWxzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGJ1aWxkIH0gZnJvbSAnLi9idWlsZCc7XG5pbXBvcnQgeyBidWlsZENvbW1hbmQgfSBmcm9tICcuL2J1aWxkQ29tbWFuZCc7XG5pbXBvcnQgeyBjb25zdGFudHMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBpbml0Q29tbWFuZCB9IGZyb20gJy4vaW5pdENvbW1hbmQnO1xuaW1wb3J0IHsgUHJvamVjdFJlc291cmNlVHlwZSB9IGZyb20gJy4vUHJvamVjdFJlc291cmNlVHlwZSc7XG5pbXBvcnQgeyByZXNldCB9IGZyb20gJy4vcmVzZXQnO1xuaW1wb3J0IHsgRXhlY3V0ZVRhc2tMaXN0T3B0aW9ucywgUmVxdWVzdE9wdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGdldExvY2FsTkVPVHJhY2tlck5hbWUsIGdldExvY2FsTmV0d29ya05hbWUsIGdldFByb2plY3QgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIFByb2plY3RQbHVnaW4gZXh0ZW5kcyBQbHVnaW4ge1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvamVjdFJlc291cmNlVHlwZSA9IG5ldyBQcm9qZWN0UmVzb3VyY2VUeXBlKHsgcGx1Z2luOiB0aGlzIH0pO1xuXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBjb25zdGFudHMuUExVR0lOO1xuICB9XG5cbiAgcHVibGljIGdldCBuYW1lcygpOiB7XG4gICAgcmVhZG9ubHkgY2FwaXRhbDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGNhcGl0YWxQbHVyYWw6IHN0cmluZztcbiAgICByZWFkb25seSBsb3dlcjogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGxvd2VyUGx1cmFsOiBzdHJpbmc7XG4gIH0ge1xuICAgIHJldHVybiB7XG4gICAgICBjYXBpdGFsOiAnUHJvamVjdHMnLFxuICAgICAgY2FwaXRhbFBsdXJhbDogJ1Byb2plY3RzJyxcbiAgICAgIGxvd2VyOiAncHJvamVjdCcsXG4gICAgICBsb3dlclBsdXJhbDogJ3Byb2plY3RzJyxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldCBkZXBlbmRlbmNpZXMoKTogcmVhZG9ubHkgc3RyaW5nW10ge1xuICAgIHJldHVybiBbbmV0d29ya0NvbnN0YW50cy5QTFVHSU4sIHdhbGxldENvbnN0YW50cy5QTFVHSU4sIG5lb3RyYWNrZXJDb25zdGFudHMuUExVR0lOXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVzb3VyY2VUeXBlcygpOiByZWFkb25seSBSZXNvdXJjZVR5cGVbXSB7XG4gICAgcmV0dXJuIFt0aGlzLnByb2plY3RSZXNvdXJjZVR5cGVdO1xuICB9XG5cbiAgcHVibGljIGdldCBpbnRlcmFjdGl2ZSgpOiByZWFkb25seSBJbnRlcmFjdGl2ZUNvbW1hbmRbXSB7XG4gICAgcmV0dXJuIFtidWlsZENvbW1hbmQsIGluaXRDb21tYW5kXTtcbiAgfVxuXG4gIHB1YmxpYyBleGVjdXRlVGFza0xpc3QocGx1Z2luTWFuYWdlcjogUGx1Z2luTWFuYWdlciwgb3B0aW9uc0luOiBzdHJpbmcpOiBUYXNrTGlzdCB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMucGFyc2VFeGVjdXRlVGFza0xpc3RPcHRpb25zKG9wdGlvbnNJbik7XG4gICAgc3dpdGNoIChvcHRpb25zLmNvbW1hbmQpIHtcbiAgICAgIGNhc2UgJ2J1aWxkJzpcbiAgICAgICAgcmV0dXJuIGJ1aWxkKHBsdWdpbk1hbmFnZXIsIG9wdGlvbnMpO1xuICAgICAgY2FzZSAncmVzZXQnOlxuICAgICAgICByZXR1cm4gcmVzZXQocGx1Z2luTWFuYWdlciwgb3B0aW9ucyk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB1dGlscy5hc3NlcnROZXZlcihvcHRpb25zKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIGNvbW1hbmQnKTtcbiAgICB9XG4gIH1cblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgbm8tYW55XG4gIHB1YmxpYyBhc3luYyByZXF1ZXN0KHBsdWdpbk1hbmFnZXI6IFBsdWdpbk1hbmFnZXIsIG9wdGlvbnNJbjogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5wYXJzZVJlcXVlc3RPcHRpb25zKG9wdGlvbnNJbik7XG4gICAgY29uc3QgeyBwcm9qZWN0SUQgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgcHJvamVjdCA9IGF3YWl0IGdldFByb2plY3QocGx1Z2luTWFuYWdlciwgb3B0aW9ucy5wcm9qZWN0SUQpO1xuICAgIGNvbnN0IG5ldHdvcmtOYW1lID0gZ2V0TG9jYWxOZXR3b3JrTmFtZShwcm9qZWN0LnJvb3REaXIsIHByb2plY3RJRCk7XG4gICAgc3dpdGNoIChvcHRpb25zLnR5cGUpIHtcbiAgICAgIGNhc2UgJ25ldHdvcmsnOlxuICAgICAgICByZXR1cm4gZ2V0TmV0d29ya1Jlc291cmNlTWFuYWdlcihwbHVnaW5NYW5hZ2VyKVxuICAgICAgICAgIC5nZXRSZXNvdXJjZSQoe1xuICAgICAgICAgICAgbmFtZTogbmV0d29ya05hbWUsXG4gICAgICAgICAgICBvcHRpb25zOiB7fSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKHV0aWxzLm5vdE51bGwpLFxuICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICApXG4gICAgICAgICAgLnRvUHJvbWlzZSgpO1xuICAgICAgY2FzZSAnc291cmNlTWFwcyc6XG4gICAgICAgIHJldHVybiBwcm9qZWN0LnNvdXJjZU1hcHM7XG4gICAgICBjYXNlICduZW90cmFja2VyJzpcbiAgICAgICAgY29uc3QgbmVvdHJhY2tlciA9IGF3YWl0IGdldE5FT1RyYWNrZXJSZXNvdXJjZU1hbmFnZXIocGx1Z2luTWFuYWdlcikuZ2V0UmVzb3VyY2Uoe1xuICAgICAgICAgIG5hbWU6IGdldExvY2FsTkVPVHJhY2tlck5hbWUobmV0d29ya05hbWUpLFxuICAgICAgICAgIG9wdGlvbnM6IHt9LFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gbmVvdHJhY2tlci51cmw7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB1dGlscy5hc3NlcnROZXZlcihvcHRpb25zKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIGNvbW1hbmQnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBhcnNlRXhlY3V0ZVRhc2tMaXN0T3B0aW9ucyhvcHRpb25zOiBzdHJpbmcpOiBFeGVjdXRlVGFza0xpc3RPcHRpb25zIHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShvcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VSZXF1ZXN0T3B0aW9ucyhvcHRpb25zOiBzdHJpbmcpOiBSZXF1ZXN0T3B0aW9ucyB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2Uob3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==