UNPKG

8.4 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const operators_1 = require("rxjs/operators");
4const CRUD_1 = require("./CRUD");
5class ResourceType {
6 constructor({ plugin, name, names }) {
7 this.plugin = plugin;
8 this.name = name;
9 this.names = names;
10 }
11 // Filter resources for return by getResources$. Passed the options given by
12 // CRUDCLI#getOptions or CRUDCLI#getAutocompleteOptions.
13 filterResources(resources, _options) {
14 return resources;
15 }
16 getResource$({ name, client, options, }) {
17 return client
18 .getResource$({
19 plugin: this.plugin.name,
20 resourceType: this.name,
21 name,
22 options,
23 })
24 .pipe(operators_1.map((resource) => resource));
25 }
26 async getResource({ name, client, options, }) {
27 return this.getResource$({
28 name,
29 client,
30 options,
31 })
32 .pipe(operators_1.take(1))
33 .toPromise();
34 }
35 async createMasterResourceAdapter(_options) {
36 return Promise.reject(new Error('Not Implemented'));
37 }
38 // CRUD for this ResourceType.
39 getCRUD() {
40 return new CRUD_1.CRUD({ resourceType: this });
41 }
42 // Format the resource information into a table, the first element in the
43 // array will be the header. Must always return an array with at least one
44 // element (the header).
45 getListTable(resources) {
46 return [['Name']].concat(resources.map((resource) => [resource.baseName]));
47 }
48 // Format the resource information into a vertical table. Nested tables
49 // can also be used as a value.
50 getDescribeTable(resource) {
51 return [['Name', resource.baseName]];
52 }
53}
54exports.ResourceType = ResourceType;
55
56//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlJlc291cmNlVHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDhDQUEyQztBQUMzQyxpQ0FBOEI7QUFzQzlCLE1BQWEsWUFBWTtJQWF2QixZQUFtQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUF1QjtRQUM3RCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsNEVBQTRFO0lBQzVFLHdEQUF3RDtJQUNqRCxlQUFlLENBQUMsU0FBa0MsRUFBRSxRQUF5QjtRQUNsRixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU0sWUFBWSxDQUFDLEVBQ2xCLElBQUksRUFDSixNQUFNLEVBQ04sT0FBTyxHQUM4QjtRQUNyQyxPQUFPLE1BQU07YUFDVixZQUFZLENBQUM7WUFDWixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJO1lBQ3hCLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUN2QixJQUFJO1lBQ0osT0FBTztTQUNSLENBQUM7YUFDRCxJQUFJLENBQUMsZUFBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFnQyxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRU0sS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUN2QixJQUFJLEVBQ0osTUFBTSxFQUNOLE9BQU8sR0FDOEI7UUFDckMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3ZCLElBQUk7WUFDSixNQUFNO1lBQ04sT0FBTztTQUNSLENBQUM7YUFDQyxJQUFJLENBQUMsZ0JBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNiLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFTSxLQUFLLENBQUMsMkJBQTJCLENBQ3RDLFFBQXNDO1FBRXRDLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELDhCQUE4QjtJQUN2QixPQUFPO1FBQ1osT0FBTyxJQUFJLFdBQUksQ0FBQyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCx5RUFBeUU7SUFDekUsMEVBQTBFO0lBQzFFLHdCQUF3QjtJQUNqQixZQUFZLENBQUMsU0FBa0M7UUFDcEQsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCx1RUFBdUU7SUFDdkUsK0JBQStCO0lBQ3hCLGdCQUFnQixDQUFDLFFBQWtCO1FBQ3hDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7QUE3RUQsb0NBNkVDIiwiZmlsZSI6Im5lby1vbmUtc2VydmVyLXBsdWdpbi9zcmMvUmVzb3VyY2VUeXBlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ1JVRCB9IGZyb20gJy4vQ1JVRCc7XG5pbXBvcnQgeyBNYXN0ZXJSZXNvdXJjZUFkYXB0ZXIgfSBmcm9tICcuL01hc3RlclJlc291cmNlQWRhcHRlcic7XG5pbXBvcnQgeyBQbHVnaW4gfSBmcm9tICcuL1BsdWdpbic7XG5pbXBvcnQge1xuICBCYXNlUmVzb3VyY2UsXG4gIEJhc2VSZXNvdXJjZU9wdGlvbnMsXG4gIEJpbmFyeSxcbiAgQ2xpZW50LFxuICBEZXNjcmliZVRhYmxlLFxuICBMaXN0VGFibGUsXG4gIFBsdWdpbk1hbmFnZXIsXG4gIFBvcnRBbGxvY2F0b3IsXG59IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlVHlwZU9wdGlvbnMge1xuICByZWFkb25seSBwbHVnaW46IFBsdWdpbjtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBuYW1lczoge1xuICAgIHJlYWRvbmx5IGNhcGl0YWw6IHN0cmluZztcbiAgICByZWFkb25seSBjYXBpdGFsUGx1cmFsOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgbG93ZXI6IHN0cmluZztcbiAgICByZWFkb25seSBsb3dlclBsdXJhbDogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hc3RlclJlc291cmNlQWRhcHRlck9wdGlvbnMge1xuICByZWFkb25seSBwbHVnaW5NYW5hZ2VyOiBQbHVnaW5NYW5hZ2VyO1xuICByZWFkb25seSBkYXRhUGF0aDogc3RyaW5nO1xuICByZWFkb25seSBiaW5hcnk6IEJpbmFyeTtcbiAgcmVhZG9ubHkgcG9ydEFsbG9jYXRvcjogUG9ydEFsbG9jYXRvcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRSZXNvdXJjZSRPcHRpb25zPFJlc291cmNlT3B0aW9ucyBleHRlbmRzIEJhc2VSZXNvdXJjZU9wdGlvbnM+IHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBjbGllbnQ6IENsaWVudDtcbiAgcmVhZG9ubHkgb3B0aW9uczogUmVzb3VyY2VPcHRpb25zO1xufVxuXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VUeXBlPFxuICBSZXNvdXJjZSBleHRlbmRzIEJhc2VSZXNvdXJjZSA9IEJhc2VSZXNvdXJjZSxcbiAgUmVzb3VyY2VPcHRpb25zIGV4dGVuZHMgQmFzZVJlc291cmNlT3B0aW9ucyA9IEJhc2VSZXNvdXJjZU9wdGlvbnNcbj4ge1xuICBwdWJsaWMgcmVhZG9ubHkgcGx1Z2luOiBQbHVnaW47XG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lczoge1xuICAgIHJlYWRvbmx5IGNhcGl0YWw6IHN0cmluZztcbiAgICByZWFkb25seSBjYXBpdGFsUGx1cmFsOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgbG93ZXI6IHN0cmluZztcbiAgICByZWFkb25seSBsb3dlclBsdXJhbDogc3RyaW5nO1xuICB9O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcih7IHBsdWdpbiwgbmFtZSwgbmFtZXMgfTogUmVzb3VyY2VUeXBlT3B0aW9ucykge1xuICAgIHRoaXMucGx1Z2luID0gcGx1Z2luO1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5uYW1lcyA9IG5hbWVzO1xuICB9XG5cbiAgLy8gRmlsdGVyIHJlc291cmNlcyBmb3IgcmV0dXJuIGJ5IGdldFJlc291cmNlcyQuIFBhc3NlZCB0aGUgb3B0aW9ucyBnaXZlbiBieVxuICAvLyBDUlVEQ0xJI2dldE9wdGlvbnMgb3IgQ1JVRENMSSNnZXRBdXRvY29tcGxldGVPcHRpb25zLlxuICBwdWJsaWMgZmlsdGVyUmVzb3VyY2VzKHJlc291cmNlczogUmVhZG9ubHlBcnJheTxSZXNvdXJjZT4sIF9vcHRpb25zOiBSZXNvdXJjZU9wdGlvbnMpOiBSZWFkb25seUFycmF5PFJlc291cmNlPiB7XG4gICAgcmV0dXJuIHJlc291cmNlcztcbiAgfVxuXG4gIHB1YmxpYyBnZXRSZXNvdXJjZSQoe1xuICAgIG5hbWUsXG4gICAgY2xpZW50LFxuICAgIG9wdGlvbnMsXG4gIH06IEdldFJlc291cmNlJE9wdGlvbnM8UmVzb3VyY2VPcHRpb25zPik6IE9ic2VydmFibGU8UmVzb3VyY2UgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gY2xpZW50XG4gICAgICAuZ2V0UmVzb3VyY2UkKHtcbiAgICAgICAgcGx1Z2luOiB0aGlzLnBsdWdpbi5uYW1lLFxuICAgICAgICByZXNvdXJjZVR5cGU6IHRoaXMubmFtZSxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgIH0pXG4gICAgICAucGlwZShtYXAoKHJlc291cmNlKSA9PiByZXNvdXJjZSBhcyBSZXNvdXJjZSB8IHVuZGVmaW5lZCkpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFJlc291cmNlKHtcbiAgICBuYW1lLFxuICAgIGNsaWVudCxcbiAgICBvcHRpb25zLFxuICB9OiBHZXRSZXNvdXJjZSRPcHRpb25zPFJlc291cmNlT3B0aW9ucz4pOiBQcm9taXNlPFJlc291cmNlIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVzb3VyY2UkKHtcbiAgICAgIG5hbWUsXG4gICAgICBjbGllbnQsXG4gICAgICBvcHRpb25zLFxuICAgIH0pXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNyZWF0ZU1hc3RlclJlc291cmNlQWRhcHRlcihcbiAgICBfb3B0aW9uczogTWFzdGVyUmVzb3VyY2VBZGFwdGVyT3B0aW9ucyxcbiAgKTogUHJvbWlzZTxNYXN0ZXJSZXNvdXJjZUFkYXB0ZXI8UmVzb3VyY2UsIFJlc291cmNlT3B0aW9ucz4+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCdOb3QgSW1wbGVtZW50ZWQnKSk7XG4gIH1cblxuICAvLyBDUlVEIGZvciB0aGlzIFJlc291cmNlVHlwZS5cbiAgcHVibGljIGdldENSVUQoKTogQ1JVRDxSZXNvdXJjZSwgUmVzb3VyY2VPcHRpb25zPiB7XG4gICAgcmV0dXJuIG5ldyBDUlVEKHsgcmVzb3VyY2VUeXBlOiB0aGlzIH0pO1xuICB9XG5cbiAgLy8gRm9ybWF0IHRoZSByZXNvdXJjZSBpbmZvcm1hdGlvbiBpbnRvIGEgdGFibGUsIHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZVxuICAvLyBhcnJheSB3aWxsIGJlIHRoZSBoZWFkZXIuIE11c3QgYWx3YXlzIHJldHVybiBhbiBhcnJheSB3aXRoIGF0IGxlYXN0IG9uZVxuICAvLyBlbGVtZW50ICh0aGUgaGVhZGVyKS5cbiAgcHVibGljIGdldExpc3RUYWJsZShyZXNvdXJjZXM6IFJlYWRvbmx5QXJyYXk8UmVzb3VyY2U+KTogTGlzdFRhYmxlIHtcbiAgICByZXR1cm4gW1snTmFtZSddXS5jb25jYXQocmVzb3VyY2VzLm1hcCgocmVzb3VyY2UpID0+IFtyZXNvdXJjZS5iYXNlTmFtZV0pKTtcbiAgfVxuXG4gIC8vIEZvcm1hdCB0aGUgcmVzb3VyY2UgaW5mb3JtYXRpb24gaW50byBhIHZlcnRpY2FsIHRhYmxlLiBOZXN0ZWQgdGFibGVzXG4gIC8vIGNhbiBhbHNvIGJlIHVzZWQgYXMgYSB2YWx1ZS5cbiAgcHVibGljIGdldERlc2NyaWJlVGFibGUocmVzb3VyY2U6IFJlc291cmNlKTogRGVzY3JpYmVUYWJsZSB7XG4gICAgcmV0dXJuIFtbJ05hbWUnLCByZXNvdXJjZS5iYXNlTmFtZV1dO1xuICB9XG59XG4iXX0=