import { Observable } from 'rxjs'; import { CLIOption } from './CRUDBase'; import { CRUDResource, Request$Options } from './CRUDResource'; import { ResourceType } from './ResourceType'; import { BaseResource, BaseResourceOptions, ExecuteTaskListResponse } from './types'; export interface DeleteCRUDOptions { readonly resourceType: ResourceType; readonly help?: string; readonly aliases?: ReadonlyArray; readonly options?: ReadonlyArray; readonly autocomplete?: ReadonlyArray; readonly hidden?: boolean; } export class DeleteCRUD< Resource extends BaseResource, ResourceOptions extends BaseResourceOptions > extends CRUDResource { public constructor({ resourceType, help = `Deletes the ${resourceType.names.lower} called `, aliases, options, autocomplete, hidden, }: DeleteCRUDOptions) { super({ name: 'delete', resourceType, help, aliases, options, autocomplete, hidden, }); } public request$({ name, cancel$, options, client, }: Request$Options): Observable { return client.deleteResource$({ plugin: this.resourceType.plugin.name, resourceType: this.resourceType.name, name, options, cancel$, }); } }