UNPKG

@neo-one/server-plugin-network

Version:

NEO•ONE Server network plugin.

85 lines (83 loc) 12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const server_plugin_1 = require("@neo-one/server-plugin"); const lodash_1 = tslib_1.__importDefault(require("lodash")); const constants_1 = require("./constants"); const crud_1 = require("./crud"); const MasterNetworkResourceAdapter_1 = require("./MasterNetworkResourceAdapter"); class NetworkResourceType extends server_plugin_1.ResourceType { constructor({ plugin }) { super({ plugin, name: constants_1.constants.NETWORK_RESOURCE_TYPE, names: { capital: 'Network', capitalPlural: 'Networks', lower: 'network', lowerPlural: 'networks', }, }); } async createMasterResourceAdapter({ binary, portAllocator, }) { return new MasterNetworkResourceAdapter_1.MasterNetworkResourceAdapter({ resourceType: this, binary, portAllocator, }); } getCRUD() { return new server_plugin_1.CRUD({ resourceType: this, start: new crud_1.StartNetworkCRUD({ resourceType: this }), stop: new server_plugin_1.StopCRUD({ resourceType: this, aliases: ['stop net'], }), delete: new crud_1.DeleteNetworkCRUD({ resourceType: this }), create: new crud_1.CreateNetworkCRUD({ resourceType: this }), get: new server_plugin_1.GetCRUD({ resourceType: this, aliases: ['get net'], }), describe: new server_plugin_1.DescribeCRUD({ resourceType: this, aliases: ['describe net'], }), }); } getListTable(resources) { return [['Name', 'Type', 'Height', 'Nodes']].concat(lodash_1.default.sortBy(resources, (resource) => resource.name).map((resource) => [ resource.name, resource.type, resource.height === undefined ? 'Unknown' : `${resource.height}`, resource.peers === undefined ? '0' : `${resource.peers}`, `${resource.nodes.length}`, ])); } getDescribeTable(resource) { return [ ['Name', resource.name], ['Type', resource.type], ['Height', resource.height === undefined ? 'Unknown' : `${resource.height}`], [ 'Nodes', { type: 'list', table: [['Name', 'Live', 'Ready', 'RPC', 'TCP', 'Telemetry', 'Height', 'Peers']].concat(lodash_1.default.sortBy(resource.nodes, (node) => node.name).map((node) => [ node.name, node.live ? 'Yes' : 'No', node.ready ? 'Yes' : 'No', node.rpcAddress, node.tcpAddress, node.telemetryAddress, resource.height === undefined ? 'Unknown' : `${resource.height}`, resource.peers === undefined ? '0' : `${resource.peers}`, ])), }, ], ]; } } exports.NetworkResourceType = NetworkResourceType; //# sourceMappingURL=data:application/json;charset=utf8;base64,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QUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBVTtZQUNyRjtnQkFDRSxPQUFPO2dCQUNQO29CQUNFLElBQUksRUFBRSxNQUFNO29CQUNaLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUNyRixnQkFBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQzt3QkFDMUQsSUFBSSxDQUFDLElBQUk7d0JBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJO3dCQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7d0JBQ3pCLElBQUksQ0FBQyxVQUFVO3dCQUNmLElBQUksQ0FBQyxVQUFVO3dCQUNmLElBQUksQ0FBQyxnQkFBZ0I7d0JBQ3JCLFFBQVEsQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRTt3QkFDaEUsUUFBUSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFO3FCQUN6RCxDQUFDLENBQ0g7aUJBQ0Y7YUFDTztTQUNYLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFuRkQsa0RBbUZDIiwiZmlsZSI6Im5lby1vbmUtc2VydmVyLXBsdWdpbi1uZXR3b3JrL3NyYy9OZXR3b3JrUmVzb3VyY2VUeXBlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ1JVRCxcbiAgRGVzY3JpYmVDUlVELFxuICBEZXNjcmliZVRhYmxlLFxuICBHZXRDUlVELFxuICBMaXN0VGFibGUsXG4gIE1hc3RlclJlc291cmNlQWRhcHRlcixcbiAgTWFzdGVyUmVzb3VyY2VBZGFwdGVyT3B0aW9ucyxcbiAgUmVzb3VyY2VTdGF0ZSxcbiAgUmVzb3VyY2VUeXBlLFxuICBTdG9wQ1JVRCxcbn0gZnJvbSAnQG5lby1vbmUvc2VydmVyLXBsdWdpbic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgY29uc3RhbnRzIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQ3JlYXRlTmV0d29ya0NSVUQsIERlbGV0ZU5ldHdvcmtDUlVELCBTdGFydE5ldHdvcmtDUlVEIH0gZnJvbSAnLi9jcnVkJztcbmltcG9ydCB7IE1hc3Rlck5ldHdvcmtSZXNvdXJjZUFkYXB0ZXIgfSBmcm9tICcuL01hc3Rlck5ldHdvcmtSZXNvdXJjZUFkYXB0ZXInO1xuaW1wb3J0IHsgTmV0d29ya1BsdWdpbiB9IGZyb20gJy4vTmV0d29ya1BsdWdpbic7XG5pbXBvcnQgeyBOb2RlIH0gZnJvbSAnLi9ub2RlJztcbmltcG9ydCB7IE5ldHdvcmtUeXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29yayB7XG4gIHJlYWRvbmx5IHBsdWdpbjogc3RyaW5nO1xuICByZWFkb25seSByZXNvdXJjZVR5cGU6IHN0cmluZztcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBiYXNlTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBzdGF0ZTogUmVzb3VyY2VTdGF0ZTtcbiAgcmVhZG9ubHkgdHlwZTogTmV0d29ya1R5cGU7XG4gIHJlYWRvbmx5IGhlaWdodDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICByZWFkb25seSBwZWVyczogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICByZWFkb25seSBub2RlczogcmVhZG9ubHkgTm9kZVtdO1xuICByZWFkb25seSBsaXZlOiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuICByZWFkb25seSByZWFkeTogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrUmVzb3VyY2VPcHRpb25zIHtcbiAgcmVhZG9ubHkgdHlwZT86ICduZW8tb25lJztcbn1cblxuZXhwb3J0IGNsYXNzIE5ldHdvcmtSZXNvdXJjZVR5cGUgZXh0ZW5kcyBSZXNvdXJjZVR5cGU8TmV0d29yaywgTmV0d29ya1Jlc291cmNlT3B0aW9ucz4ge1xuICBwdWJsaWMgY29uc3RydWN0b3IoeyBwbHVnaW4gfTogeyByZWFkb25seSBwbHVnaW46IE5ldHdvcmtQbHVnaW4gfSkge1xuICAgIHN1cGVyKHtcbiAgICAgIHBsdWdpbixcbiAgICAgIG5hbWU6IGNvbnN0YW50cy5ORVRXT1JLX1JFU09VUkNFX1RZUEUsXG4gICAgICBuYW1lczoge1xuICAgICAgICBjYXBpdGFsOiAnTmV0d29yaycsXG4gICAgICAgIGNhcGl0YWxQbHVyYWw6ICdOZXR3b3JrcycsXG4gICAgICAgIGxvd2VyOiAnbmV0d29yaycsXG4gICAgICAgIGxvd2VyUGx1cmFsOiAnbmV0d29ya3MnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVNYXN0ZXJSZXNvdXJjZUFkYXB0ZXIoe1xuICAgIGJpbmFyeSxcbiAgICBwb3J0QWxsb2NhdG9yLFxuICB9OiBNYXN0ZXJSZXNvdXJjZUFkYXB0ZXJPcHRpb25zKTogUHJvbWlzZTxNYXN0ZXJSZXNvdXJjZUFkYXB0ZXI8TmV0d29yaywgTmV0d29ya1Jlc291cmNlT3B0aW9ucz4+IHtcbiAgICByZXR1cm4gbmV3IE1hc3Rlck5ldHdvcmtSZXNvdXJjZUFkYXB0ZXIoe1xuICAgICAgcmVzb3VyY2VUeXBlOiB0aGlzLFxuICAgICAgYmluYXJ5LFxuICAgICAgcG9ydEFsbG9jYXRvcixcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDUlVEKCk6IENSVUQ8TmV0d29yaywgTmV0d29ya1Jlc291cmNlT3B0aW9ucz4ge1xuICAgIHJldHVybiBuZXcgQ1JVRCh7XG4gICAgICByZXNvdXJjZVR5cGU6IHRoaXMsXG4gICAgICBzdGFydDogbmV3IFN0YXJ0TmV0d29ya0NSVUQoeyByZXNvdXJjZVR5cGU6IHRoaXMgfSksXG4gICAgICBzdG9wOiBuZXcgU3RvcENSVUQoe1xuICAgICAgICByZXNvdXJjZVR5cGU6IHRoaXMsXG4gICAgICAgIGFsaWFzZXM6IFsnc3RvcCBuZXQnXSxcbiAgICAgIH0pLFxuICAgICAgZGVsZXRlOiBuZXcgRGVsZXRlTmV0d29ya0NSVUQoeyByZXNvdXJjZVR5cGU6IHRoaXMgfSksXG4gICAgICBjcmVhdGU6IG5ldyBDcmVhdGVOZXR3b3JrQ1JVRCh7IHJlc291cmNlVHlwZTogdGhpcyB9KSxcbiAgICAgIGdldDogbmV3IEdldENSVUQoe1xuICAgICAgICByZXNvdXJjZVR5cGU6IHRoaXMsXG4gICAgICAgIGFsaWFzZXM6IFsnZ2V0IG5ldCddLFxuICAgICAgfSksXG4gICAgICBkZXNjcmliZTogbmV3IERlc2NyaWJlQ1JVRCh7XG4gICAgICAgIHJlc291cmNlVHlwZTogdGhpcyxcbiAgICAgICAgYWxpYXNlczogWydkZXNjcmliZSBuZXQnXSxcbiAgICAgIH0pLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldExpc3RUYWJsZShyZXNvdXJjZXM6IHJlYWRvbmx5IE5ldHdvcmtbXSk6IExpc3RUYWJsZSB7XG4gICAgcmV0dXJuIFtbJ05hbWUnLCAnVHlwZScsICdIZWlnaHQnLCAnTm9kZXMnXV0uY29uY2F0KFxuICAgICAgXy5zb3J0QnkocmVzb3VyY2VzLCAocmVzb3VyY2UpID0+IHJlc291cmNlLm5hbWUpLm1hcCgocmVzb3VyY2UpID0+IFtcbiAgICAgICAgcmVzb3VyY2UubmFtZSxcbiAgICAgICAgcmVzb3VyY2UudHlwZSxcbiAgICAgICAgcmVzb3VyY2UuaGVpZ2h0ID09PSB1bmRlZmluZWQgPyAnVW5rbm93bicgOiBgJHtyZXNvdXJjZS5oZWlnaHR9YCxcbiAgICAgICAgcmVzb3VyY2UucGVlcnMgPT09IHVuZGVmaW5lZCA/ICcwJyA6IGAke3Jlc291cmNlLnBlZXJzfWAsXG4gICAgICAgIGAke3Jlc291cmNlLm5vZGVzLmxlbmd0aH1gLFxuICAgICAgXSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXREZXNjcmliZVRhYmxlKHJlc291cmNlOiBOZXR3b3JrKTogRGVzY3JpYmVUYWJsZSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIFsnTmFtZScsIHJlc291cmNlLm5hbWVdIGFzIGNvbnN0LFxuICAgICAgWydUeXBlJywgcmVzb3VyY2UudHlwZV0gYXMgY29uc3QsXG4gICAgICBbJ0hlaWdodCcsIHJlc291cmNlLmhlaWdodCA9PT0gdW5kZWZpbmVkID8gJ1Vua25vd24nIDogYCR7cmVzb3VyY2UuaGVpZ2h0fWBdIGFzIGNvbnN0LFxuICAgICAgW1xuICAgICAgICAnTm9kZXMnLFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2xpc3QnLFxuICAgICAgICAgIHRhYmxlOiBbWydOYW1lJywgJ0xpdmUnLCAnUmVhZHknLCAnUlBDJywgJ1RDUCcsICdUZWxlbWV0cnknLCAnSGVpZ2h0JywgJ1BlZXJzJ11dLmNvbmNhdChcbiAgICAgICAgICAgIF8uc29ydEJ5KHJlc291cmNlLm5vZGVzLCAobm9kZSkgPT4gbm9kZS5uYW1lKS5tYXAoKG5vZGUpID0+IFtcbiAgICAgICAgICAgICAgbm9kZS5uYW1lLFxuICAgICAgICAgICAgICBub2RlLmxpdmUgPyAnWWVzJyA6ICdObycsXG4gICAgICAgICAgICAgIG5vZGUucmVhZHkgPyAnWWVzJyA6ICdObycsXG4gICAgICAgICAgICAgIG5vZGUucnBjQWRkcmVzcyxcbiAgICAgICAgICAgICAgbm9kZS50Y3BBZGRyZXNzLFxuICAgICAgICAgICAgICBub2RlLnRlbGVtZXRyeUFkZHJlc3MsXG4gICAgICAgICAgICAgIHJlc291cmNlLmhlaWdodCA9PT0gdW5kZWZpbmVkID8gJ1Vua25vd24nIDogYCR7cmVzb3VyY2UuaGVpZ2h0fWAsXG4gICAgICAgICAgICAgIHJlc291cmNlLnBlZXJzID09PSB1bmRlZmluZWQgPyAnMCcgOiBgJHtyZXNvdXJjZS5wZWVyc31gLFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgIF0gYXMgY29uc3QsXG4gICAgXTtcbiAgfVxufVxuIl19