1 | import { CLIOption } from './CRUDBase';
|
2 | import { CRUDResourceBase } from './CRUDResourceBase';
|
3 | import { ResourceType } from './ResourceType';
|
4 | import { BaseResource, BaseResourceOptions } from './types';
|
5 |
|
6 | export interface DescribeCRUDOptions<Resource extends BaseResource, ResourceOptions extends BaseResourceOptions> {
|
7 | readonly resourceType: ResourceType<Resource, ResourceOptions>;
|
8 | readonly help?: string;
|
9 | readonly aliases?: ReadonlyArray<string>;
|
10 | readonly options?: ReadonlyArray<CLIOption>;
|
11 | readonly autocomplete?: ReadonlyArray<string>;
|
12 | readonly hidden?: boolean;
|
13 | }
|
14 |
|
15 | export class DescribeCRUD<
|
16 | Resource extends BaseResource = BaseResource,
|
17 | ResourceOptions extends BaseResourceOptions = BaseResourceOptions
|
18 | > extends CRUDResourceBase<Resource, ResourceOptions> {
|
19 | public constructor({
|
20 | resourceType,
|
21 | help = `Describe ${resourceType.names.lower} <name>`,
|
22 | aliases,
|
23 | options,
|
24 | autocomplete,
|
25 | hidden,
|
26 | }: DescribeCRUDOptions<Resource, ResourceOptions>) {
|
27 | super({
|
28 | name: 'describe',
|
29 | resourceType,
|
30 | help,
|
31 | aliases,
|
32 | options,
|
33 | autocomplete,
|
34 | hidden,
|
35 | });
|
36 | }
|
37 | }
|