@neo-one/server-plugin
Version:
NEO•ONE Server plugin API.
61 lines (59 loc) • 9.69 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const operators_1 = require("rxjs/operators");
const CRUDBase_1 = require("./CRUDBase");
class CRUDResourceBase extends CRUDBase_1.CRUDBase {
constructor({ name, names, resourceType, help, aliases, extraArgs, options, autocomplete, hidden, }) {
const commandBase = `${name} ${resourceType.name} <name>`;
const command = extraArgs === undefined ? commandBase : `${commandBase} ${extraArgs.join(' ')}`;
super({
name,
names,
command,
resourceType,
help,
aliases,
options,
autocomplete,
hidden,
});
}
async getCLIName({ baseName }) {
return Promise.resolve(baseName);
}
async getCLIAutocomplete(options) {
const { cli } = options;
try {
const resourceOptions = await this.getCLIAutocompleteResourceOptions(options);
const resources = await cli.client
.getResources$({
plugin: this.resourceType.plugin.name,
resourceType: this.resourceType.name,
options: resourceOptions,
})
.pipe(operators_1.take(1))
.toPromise()
.then((results) => results.map((result) => result.baseName));
return [...new Set(resources.concat(this.autocomplete))];
}
catch (error) {
this.resourceType.plugin.monitor.logError({
name: 'neo_crud_get_cli_autocomplete_error',
message: 'Failed to fetch cli autocomplete.',
error,
});
return this.autocomplete;
}
}
async getCLIAutocompleteResourceOptions({ cli }) {
return this.getCLIResourceOptions({ cli, args: {}, options: {} });
}
async preExecCLI(_options) {
return Promise.resolve();
}
async postExecCLI(_options) {
return Promise.resolve();
}
}
exports.CRUDResourceBase = CRUDResourceBase;
//# sourceMappingURL=data:application/json;charset=utf8;base64,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cGx1Z2luL3NyYy9DUlVEUmVzb3VyY2VCYXNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENMSU9wdGlvbiwgQ1JVREJhc2UsIE5hbWVzSW4gfSBmcm9tICcuL0NSVURCYXNlJztcbmltcG9ydCB7IFJlc291cmNlVHlwZSB9IGZyb20gJy4vUmVzb3VyY2VUeXBlJztcbmltcG9ydCB7IEJhc2VSZXNvdXJjZSwgQmFzZVJlc291cmNlT3B0aW9ucywgSW50ZXJhY3RpdmVDTEkgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBFeGVjQ0xJT3B0aW9uczxSZXNvdXJjZU9wdGlvbnMgZXh0ZW5kcyBCYXNlUmVzb3VyY2VPcHRpb25zPiB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgY2xpOiBJbnRlcmFjdGl2ZUNMSTtcbiAgcmVhZG9ubHkgb3B0aW9uczogUmVzb3VyY2VPcHRpb25zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldENMSUF1dG9jb21wbGV0ZU9wdGlvbnMge1xuICByZWFkb25seSBjbGk6IEludGVyYWN0aXZlQ0xJO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENSVURSZXNvdXJjZU9wdGlvbnM8UmVzb3VyY2UgZXh0ZW5kcyBCYXNlUmVzb3VyY2UsIFJlc291cmNlT3B0aW9ucyBleHRlbmRzIEJhc2VSZXNvdXJjZU9wdGlvbnM+IHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBuYW1lcz86IE5hbWVzSW47XG4gIHJlYWRvbmx5IHJlc291cmNlVHlwZTogUmVzb3VyY2VUeXBlPFJlc291cmNlLCBSZXNvdXJjZU9wdGlvbnM+O1xuICByZWFkb25seSBoZWxwOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFsaWFzZXM/OiByZWFkb25seSBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgZXh0cmFBcmdzPzogcmVhZG9ubHkgc3RyaW5nW107XG4gIHJlYWRvbmx5IG9wdGlvbnM/OiByZWFkb25seSBDTElPcHRpb25bXTtcbiAgcmVhZG9ubHkgYXV0b2NvbXBsZXRlPzogcmVhZG9ubHkgc3RyaW5nW107XG4gIHJlYWRvbmx5IGhpZGRlbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0Q0xJTmFtZU9wdGlvbnM8UmVzb3VyY2VPcHRpb25zIGV4dGVuZHMgQmFzZVJlc291cmNlT3B0aW9ucz4ge1xuICByZWFkb25seSBiYXNlTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBjbGk6IEludGVyYWN0aXZlQ0xJO1xuICByZWFkb25seSBvcHRpb25zOiBSZXNvdXJjZU9wdGlvbnM7XG59XG5cbmV4cG9ydCBjbGFzcyBDUlVEUmVzb3VyY2VCYXNlPFxuICBSZXNvdXJjZSBleHRlbmRzIEJhc2VSZXNvdXJjZSA9IEJhc2VSZXNvdXJjZSxcbiAgUmVzb3VyY2VPcHRpb25zIGV4dGVuZHMgQmFzZVJlc291cmNlT3B0aW9ucyA9IEJhc2VSZXNvdXJjZU9wdGlvbnNcbj4gZXh0ZW5kcyBDUlVEQmFzZTxSZXNvdXJjZSwgUmVzb3VyY2VPcHRpb25zPiB7XG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcih7XG4gICAgbmFtZSxcbiAgICBuYW1lcyxcbiAgICByZXNvdXJjZVR5cGUsXG4gICAgaGVscCxcbiAgICBhbGlhc2VzLFxuICAgIGV4dHJhQXJncyxcbiAgICBvcHRpb25zLFxuICAgIGF1dG9jb21wbGV0ZSxcbiAgICBoaWRkZW4sXG4gIH06IENSVURSZXNvdXJjZU9wdGlvbnM8UmVzb3VyY2UsIFJlc291cmNlT3B0aW9ucz4pIHtcbiAgICBjb25zdCBjb21tYW5kQmFzZSA9IGAke25hbWV9ICR7cmVzb3VyY2VUeXBlLm5hbWV9IDxuYW1lPmA7XG4gICAgY29uc3QgY29tbWFuZCA9IGV4dHJhQXJncyA9PT0gdW5kZWZpbmVkID8gY29tbWFuZEJhc2UgOiBgJHtjb21tYW5kQmFzZX0gJHtleHRyYUFyZ3Muam9pbignICcpfWA7XG5cbiAgICBzdXBlcih7XG4gICAgICBuYW1lLFxuICAgICAgbmFtZXMsXG4gICAgICBjb21tYW5kLFxuICAgICAgcmVzb3VyY2VUeXBlLFxuICAgICAgaGVscCxcbiAgICAgIGFsaWFzZXMsXG4gICAgICBvcHRpb25zLFxuICAgICAgYXV0b2NvbXBsZXRlLFxuICAgICAgaGlkZGVuLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldENMSU5hbWUoeyBiYXNlTmFtZSB9OiBHZXRDTElOYW1lT3B0aW9uczxSZXNvdXJjZU9wdGlvbnM+KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGJhc2VOYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRDTElBdXRvY29tcGxldGUob3B0aW9uczogR2V0Q0xJQXV0b2NvbXBsZXRlT3B0aW9ucyk6IFByb21pc2U8cmVhZG9ubHkgc3RyaW5nW10+IHtcbiAgICBjb25zdCB7IGNsaSB9ID0gb3B0aW9ucztcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzb3VyY2VPcHRpb25zID0gYXdhaXQgdGhpcy5nZXRDTElBdXRvY29tcGxldGVSZXNvdXJjZU9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAgIGNvbnN0IHJlc291cmNlcyA9IGF3YWl0IGNsaS5jbGllbnRcbiAgICAgICAgLmdldFJlc291cmNlcyQoe1xuICAgICAgICAgIHBsdWdpbjogdGhpcy5yZXNvdXJjZVR5cGUucGx1Z2luLm5hbWUsXG4gICAgICAgICAgcmVzb3VyY2VUeXBlOiB0aGlzLnJlc291cmNlVHlwZS5uYW1lLFxuICAgICAgICAgIG9wdGlvbnM6IHJlc291cmNlT3B0aW9ucyxcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnRvUHJvbWlzZSgpXG4gICAgICAgIC50aGVuKChyZXN1bHRzKSA9PiByZXN1bHRzLm1hcCgocmVzdWx0KSA9PiByZXN1bHQuYmFzZU5hbWUpKTtcblxuICAgICAgcmV0dXJuIFsuLi5uZXcgU2V0KHJlc291cmNlcy5jb25jYXQodGhpcy5hdXRvY29tcGxldGUpKV07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMucmVzb3VyY2VUeXBlLnBsdWdpbi5tb25pdG9yLmxvZ0Vycm9yKHtcbiAgICAgICAgbmFtZTogJ25lb19jcnVkX2dldF9jbGlfYXV0b2NvbXBsZXRlX2Vycm9yJyxcbiAgICAgICAgbWVzc2FnZTogJ0ZhaWxlZCB0byBmZXRjaCBjbGkgYXV0b2NvbXBsZXRlLicsXG4gICAgICAgIGVycm9yLFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB0aGlzLmF1dG9jb21wbGV0ZTtcbiAgICB9XG4gIH1cblxuICAvLyBFeHRyYWN0IG9wdGlvbnMgdGhhdCB3aWxsIGJlIHBhc3NlZCB0byBSZXNvdXJjZVR5cGUjZmlsdGVyUmVzb3VyY2VzLlxuICBwdWJsaWMgYXN5bmMgZ2V0Q0xJQXV0b2NvbXBsZXRlUmVzb3VyY2VPcHRpb25zKHsgY2xpIH06IEdldENMSUF1dG9jb21wbGV0ZU9wdGlvbnMpOiBQcm9taXNlPFJlc291cmNlT3B0aW9ucz4ge1xuICAgIHJldHVybiB0aGlzLmdldENMSVJlc291cmNlT3B0aW9ucyh7IGNsaSwgYXJnczoge30sIG9wdGlvbnM6IHt9IH0pO1xuICB9XG5cbiAgLy8gRnVuY3Rpb24gdG8gZXhlY3V0ZSBiZWZvcmUgdGhlIGNvbW1hbmQuIFVzZWZ1bCBpZiB5b3Ugd2FudCB0byBkbyB0aGluZ3NcbiAgLy8gbGlrZSBjYWxsIG90aGVyIGNvbW1hbmRzLCBlLmcuIGBhY3RpdmF0ZSA8bmFtZT5gIGJlZm9yZSBhY3RpdmF0aW5nIGFub3RoZXJcbiAgLy8gbmFtZS5cbiAgcHVibGljIGFzeW5jIHByZUV4ZWNDTEkoX29wdGlvbnM6IEV4ZWNDTElPcHRpb25zPFJlc291cmNlT3B0aW9ucz4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cblxuICAvLyBGdW5jdGlvbiB0byBleGVjdXRlIGFmdGVyIHRoZSBjb21tYW5kIGlzIGNvbXBsZXRlLiBVc2VmdWwgaWYgeW91IHdhbnQgdG8gZG9cbiAgLy8gdGhpbmdzIGxpa2UgY2FsbCBvdGhlciBjb21tYW5kcywgZS5nLiBgYWN0aXZhdGUgPG5hbWU+YCBhZnRlciBzdGFydGluZ1xuICAvLyA8bmFtZT5cbiAgcHVibGljIGFzeW5jIHBvc3RFeGVjQ0xJKF9vcHRpb25zOiBFeGVjQ0xJT3B0aW9uczxSZXNvdXJjZU9wdGlvbnM+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG59XG4iXX0=