UNPKG

mongoose-management

Version:
21 lines (20 loc) 1.01 kB
import Prompts from '../../prompts'; import AbstractDataset from '../dataset/abstract'; import AbstractMenu from '../menu/abstract'; import { choiceValueType, levelOptionsType } from '../../types'; export default abstract class AbstractLevel<T extends AbstractDataset<P>, S extends AbstractDataset<any>, M extends AbstractMenu<T, S>, P = undefined> { protected dataset: T; protected menu: M; protected options: levelOptionsType; protected abstract promptCreate: (prompts: Prompts, dataset: T) => Promise<S>; protected abstract promptEdit: (prompts: Prompts, parent: P, dataset: T) => Promise<T>; protected prompts: Prompts; constructor(dataset: T, menu: M, options: levelOptionsType); showMenu(): Promise<choiceValueType<S>>; create(action: choiceValueType<S>['action']): Promise<S | undefined>; edit(dataset: T): Promise<boolean>; remove(dataset: T): Promise<boolean>; show(dataset: S): Promise<void>; exec(): Promise<void>; run(): Promise<boolean>; }