@neo-one/server-plugin-project
Version:
NEO•ONE server plugin for project functionality.
90 lines (88 loc) • 11.4 kB
JavaScript
;
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==