1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const operators_1 = require("rxjs/operators");
|
4 | const CRUDBase_1 = require("./CRUDBase");
|
5 | class CRUDResourceBase extends CRUDBase_1.CRUDBase {
|
6 | constructor({ name, names, resourceType, help, aliases, extraArgs, options, autocomplete, hidden, }) {
|
7 | const commandBase = `${name} ${resourceType.name} <name>`;
|
8 | const command = extraArgs === undefined ? commandBase : `${commandBase} ${extraArgs.join(' ')}`;
|
9 | super({
|
10 | name,
|
11 | names,
|
12 | command,
|
13 | resourceType,
|
14 | help,
|
15 | aliases,
|
16 | options,
|
17 | autocomplete,
|
18 | hidden,
|
19 | });
|
20 | }
|
21 | async getCLIName({ baseName }) {
|
22 | return Promise.resolve(baseName);
|
23 | }
|
24 | async getCLIAutocomplete(options) {
|
25 | const { cli } = options;
|
26 | try {
|
27 | const resourceOptions = await this.getCLIAutocompleteResourceOptions(options);
|
28 | const resources = await cli.client
|
29 | .getResources$({
|
30 | plugin: this.resourceType.plugin.name,
|
31 | resourceType: this.resourceType.name,
|
32 | options: resourceOptions,
|
33 | })
|
34 | .pipe(operators_1.take(1))
|
35 | .toPromise()
|
36 | .then((results) => results.map((result) => result.baseName));
|
37 | return [...new Set(resources.concat(this.autocomplete))];
|
38 | }
|
39 | catch (error) {
|
40 | this.resourceType.plugin.monitor.logError({
|
41 | name: 'neo_crud_get_cli_autocomplete_error',
|
42 | message: 'Failed to fetch cli autocomplete.',
|
43 | error,
|
44 | });
|
45 | return this.autocomplete;
|
46 | }
|
47 | }
|
48 | // Extract options that will be passed to ResourceType#filterResources.
|
49 | async getCLIAutocompleteResourceOptions({ cli }) {
|
50 | return this.getCLIResourceOptions({ cli, args: {}, options: {} });
|
51 | }
|
52 | // Function to execute before the command. Useful if you want to do things
|
53 | // like call other commands, e.g. `activate <name>` before activating another
|
54 | // name.
|
55 | async preExecCLI(_options) {
|
56 | return Promise.resolve();
|
57 | }
|
58 | // Function to execute after the command is complete. Useful if you want to do
|
59 | // things like call other commands, e.g. `activate <name>` after starting
|
60 | // <name>
|
61 | async postExecCLI(_options) {
|
62 | return Promise.resolve();
|
63 | }
|
64 | }
|
65 | exports.CRUDResourceBase = CRUDResourceBase;
|
66 |
|
67 | //# sourceMappingURL=data:application/json;charset=utf8;base64,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RSxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzQixDQUFDO0NBQ0Y7QUFoRkQsNENBZ0ZDIiwiZmlsZSI6Im5lby1vbmUtc2VydmVyLXBsdWdpbi9zcmMvQ1JVRFJlc291cmNlQmFzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDTElPcHRpb24sIENSVURCYXNlLCBOYW1lc0luIH0gZnJvbSAnLi9DUlVEQmFzZSc7XG5pbXBvcnQgeyBSZXNvdXJjZVR5cGUgfSBmcm9tICcuL1Jlc291cmNlVHlwZSc7XG5pbXBvcnQgeyBCYXNlUmVzb3VyY2UsIEJhc2VSZXNvdXJjZU9wdGlvbnMsIEludGVyYWN0aXZlQ0xJIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhlY0NMSU9wdGlvbnM8UmVzb3VyY2VPcHRpb25zIGV4dGVuZHMgQmFzZVJlc291cmNlT3B0aW9ucz4ge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNsaTogSW50ZXJhY3RpdmVDTEk7XG4gIHJlYWRvbmx5IG9wdGlvbnM6IFJlc291cmNlT3B0aW9ucztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRDTElBdXRvY29tcGxldGVPcHRpb25zIHtcbiAgcmVhZG9ubHkgY2xpOiBJbnRlcmFjdGl2ZUNMSTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDUlVEUmVzb3VyY2VPcHRpb25zPFJlc291cmNlIGV4dGVuZHMgQmFzZVJlc291cmNlLCBSZXNvdXJjZU9wdGlvbnMgZXh0ZW5kcyBCYXNlUmVzb3VyY2VPcHRpb25zPiB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgbmFtZXM/OiBOYW1lc0luO1xuICByZWFkb25seSByZXNvdXJjZVR5cGU6IFJlc291cmNlVHlwZTxSZXNvdXJjZSwgUmVzb3VyY2VPcHRpb25zPjtcbiAgcmVhZG9ubHkgaGVscDogc3RyaW5nO1xuICByZWFkb25seSBhbGlhc2VzPzogUmVhZG9ubHlBcnJheTxzdHJpbmc+O1xuICByZWFkb25seSBleHRyYUFyZ3M/OiBSZWFkb25seUFycmF5PHN0cmluZz47XG4gIHJlYWRvbmx5IG9wdGlvbnM/OiBSZWFkb25seUFycmF5PENMSU9wdGlvbj47XG4gIHJlYWRvbmx5IGF1dG9jb21wbGV0ZT86IFJlYWRvbmx5QXJyYXk8c3RyaW5nPjtcbiAgcmVhZG9ubHkgaGlkZGVuPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRDTElOYW1lT3B0aW9uczxSZXNvdXJjZU9wdGlvbnMgZXh0ZW5kcyBCYXNlUmVzb3VyY2VPcHRpb25zPiB7XG4gIHJlYWRvbmx5IGJhc2VOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNsaTogSW50ZXJhY3RpdmVDTEk7XG4gIHJlYWRvbmx5IG9wdGlvbnM6IFJlc291cmNlT3B0aW9ucztcbn1cblxuZXhwb3J0IGNsYXNzIENSVURSZXNvdXJjZUJhc2U8XG4gIFJlc291cmNlIGV4dGVuZHMgQmFzZVJlc291cmNlID0gQmFzZVJlc291cmNlLFxuICBSZXNvdXJjZU9wdGlvbnMgZXh0ZW5kcyBCYXNlUmVzb3VyY2VPcHRpb25zID0gQmFzZVJlc291cmNlT3B0aW9uc1xuPiBleHRlbmRzIENSVURCYXNlPFJlc291cmNlLCBSZXNvdXJjZU9wdGlvbnM+IHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHtcbiAgICBuYW1lLFxuICAgIG5hbWVzLFxuICAgIHJlc291cmNlVHlwZSxcbiAgICBoZWxwLFxuICAgIGFsaWFzZXMsXG4gICAgZXh0cmFBcmdzLFxuICAgIG9wdGlvbnMsXG4gICAgYXV0b2NvbXBsZXRlLFxuICAgIGhpZGRlbixcbiAgfTogQ1JVRFJlc291cmNlT3B0aW9uczxSZXNvdXJjZSwgUmVzb3VyY2VPcHRpb25zPikge1xuICAgIGNvbnN0IGNvbW1hbmRCYXNlID0gYCR7bmFtZX0gJHtyZXNvdXJjZVR5cGUubmFtZX0gPG5hbWU+YDtcbiAgICBjb25zdCBjb21tYW5kID0gZXh0cmFBcmdzID09PSB1bmRlZmluZWQgPyBjb21tYW5kQmFzZSA6IGAke2NvbW1hbmRCYXNlfSAke2V4dHJhQXJncy5qb2luKCcgJyl9YDtcblxuICAgIHN1cGVyKHtcbiAgICAgIG5hbWUsXG4gICAgICBuYW1lcyxcbiAgICAgIGNvbW1hbmQsXG4gICAgICByZXNvdXJjZVR5cGUsXG4gICAgICBoZWxwLFxuICAgICAgYWxpYXNlcyxcbiAgICAgIG9wdGlvbnMsXG4gICAgICBhdXRvY29tcGxldGUsXG4gICAgICBoaWRkZW4sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0Q0xJTmFtZSh7IGJhc2VOYW1lIH06IEdldENMSU5hbWVPcHRpb25zPFJlc291cmNlT3B0aW9ucz4pOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoYmFzZU5hbWUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldENMSUF1dG9jb21wbGV0ZShvcHRpb25zOiBHZXRDTElBdXRvY29tcGxldGVPcHRpb25zKTogUHJvbWlzZTxSZWFkb25seUFycmF5PHN0cmluZz4+IHtcbiAgICBjb25zdCB7IGNsaSB9ID0gb3B0aW9ucztcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzb3VyY2VPcHRpb25zID0gYXdhaXQgdGhpcy5nZXRDTElBdXRvY29tcGxldGVSZXNvdXJjZU9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAgIGNvbnN0IHJlc291cmNlcyA9IGF3YWl0IGNsaS5jbGllbnRcbiAgICAgICAgLmdldFJlc291cmNlcyQoe1xuICAgICAgICAgIHBsdWdpbjogdGhpcy5yZXNvdXJjZVR5cGUucGx1Z2luLm5hbWUsXG4gICAgICAgICAgcmVzb3VyY2VUeXBlOiB0aGlzLnJlc291cmNlVHlwZS5uYW1lLFxuICAgICAgICAgIG9wdGlvbnM6IHJlc291cmNlT3B0aW9ucyxcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnRvUHJvbWlzZSgpXG4gICAgICAgIC50aGVuKChyZXN1bHRzKSA9PiByZXN1bHRzLm1hcCgocmVzdWx0KSA9PiByZXN1bHQuYmFzZU5hbWUpKTtcblxuICAgICAgcmV0dXJuIFsuLi5uZXcgU2V0KHJlc291cmNlcy5jb25jYXQodGhpcy5hdXRvY29tcGxldGUpKV07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMucmVzb3VyY2VUeXBlLnBsdWdpbi5tb25pdG9yLmxvZ0Vycm9yKHtcbiAgICAgICAgbmFtZTogJ25lb19jcnVkX2dldF9jbGlfYXV0b2NvbXBsZXRlX2Vycm9yJyxcbiAgICAgICAgbWVzc2FnZTogJ0ZhaWxlZCB0byBmZXRjaCBjbGkgYXV0b2NvbXBsZXRlLicsXG4gICAgICAgIGVycm9yLFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB0aGlzLmF1dG9jb21wbGV0ZTtcbiAgICB9XG4gIH1cblxuICAvLyBFeHRyYWN0IG9wdGlvbnMgdGhhdCB3aWxsIGJlIHBhc3NlZCB0byBSZXNvdXJjZVR5cGUjZmlsdGVyUmVzb3VyY2VzLlxuICBwdWJsaWMgYXN5bmMgZ2V0Q0xJQXV0b2NvbXBsZXRlUmVzb3VyY2VPcHRpb25zKHsgY2xpIH06IEdldENMSUF1dG9jb21wbGV0ZU9wdGlvbnMpOiBQcm9taXNlPFJlc291cmNlT3B0aW9ucz4ge1xuICAgIHJldHVybiB0aGlzLmdldENMSVJlc291cmNlT3B0aW9ucyh7IGNsaSwgYXJnczoge30sIG9wdGlvbnM6IHt9IH0pO1xuICB9XG5cbiAgLy8gRnVuY3Rpb24gdG8gZXhlY3V0ZSBiZWZvcmUgdGhlIGNvbW1hbmQuIFVzZWZ1bCBpZiB5b3Ugd2FudCB0byBkbyB0aGluZ3NcbiAgLy8gbGlrZSBjYWxsIG90aGVyIGNvbW1hbmRzLCBlLmcuIGBhY3RpdmF0ZSA8bmFtZT5gIGJlZm9yZSBhY3RpdmF0aW5nIGFub3RoZXJcbiAgLy8gbmFtZS5cbiAgcHVibGljIGFzeW5jIHByZUV4ZWNDTEkoX29wdGlvbnM6IEV4ZWNDTElPcHRpb25zPFJlc291cmNlT3B0aW9ucz4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cblxuICAvLyBGdW5jdGlvbiB0byBleGVjdXRlIGFmdGVyIHRoZSBjb21tYW5kIGlzIGNvbXBsZXRlLiBVc2VmdWwgaWYgeW91IHdhbnQgdG8gZG9cbiAgLy8gdGhpbmdzIGxpa2UgY2FsbCBvdGhlciBjb21tYW5kcywgZS5nLiBgYWN0aXZhdGUgPG5hbWU+YCBhZnRlciBzdGFydGluZ1xuICAvLyA8bmFtZT5cbiAgcHVibGljIGFzeW5jIHBvc3RFeGVjQ0xJKF9vcHRpb25zOiBFeGVjQ0xJT3B0aW9uczxSZXNvdXJjZU9wdGlvbnM+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG59XG4iXX0=
|