mirror of
https://github.com/directus/directus.git
synced 2026-01-31 12:48:23 -05:00
* Update typescript-eslint monorepo to v5 * Fix linter warnings Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
77 lines
2.2 KiB
TypeScript
77 lines
2.2 KiB
TypeScript
import { WriteStream } from 'fs';
|
|
import { Argv } from 'yargs';
|
|
import { CLIError } from './core/exceptions';
|
|
import { CommandHelp, GeneralHelp } from './help';
|
|
|
|
export type Options = {
|
|
format: string;
|
|
};
|
|
|
|
export type TableStyle = 'compact' | 'minimal' | 'markdown';
|
|
|
|
export type TableCellAlignment = 'left' | 'center' | 'right';
|
|
|
|
export type TableOptions = {
|
|
head?: string[];
|
|
headFormat?: (text: string) => string;
|
|
style?: TableStyle;
|
|
widths?: (number | null)[];
|
|
alignments?: TableCellAlignment[];
|
|
wrap?: boolean;
|
|
truncate?: boolean;
|
|
};
|
|
|
|
export type TextLayoutOptions = {
|
|
style: (text: string) => string;
|
|
padding: [number, number, number, number];
|
|
alignment: TableCellAlignment;
|
|
removeIndent: boolean;
|
|
};
|
|
|
|
export type OutputColumn = {
|
|
text: string;
|
|
options?: Partial<TextLayoutOptions>;
|
|
};
|
|
|
|
export type Style = (text: string) => string;
|
|
|
|
export interface IUIComposer {
|
|
configure(opts: { indent?: number; width?: number }): void;
|
|
header(name: string, style?: Style): Promise<void>;
|
|
skip(lines?: number): Promise<void>;
|
|
markdown(src: string): string;
|
|
line(value: string): Promise<void>;
|
|
text(text: string): Promise<void>;
|
|
rows(data: OutputColumn[][]): Promise<void>;
|
|
figlet(text: string): Promise<void>;
|
|
table(value: string[][], options?: TableOptions): Promise<void>;
|
|
section(name: string, wrapper?: (builder: IUIComposer) => Promise<void>, style?: Style): Promise<void>;
|
|
wrap(wrapper: (builder: IUIComposer) => Promise<void>, verticalPadding?: number): Promise<void>;
|
|
error(error: Error): Promise<void>;
|
|
json(value: any, style?: TableStyle): Promise<void>;
|
|
get(): Promise<string>;
|
|
clear(): Promise<void>;
|
|
}
|
|
|
|
export type FormatData = {
|
|
help?: GeneralHelp | CommandHelp;
|
|
text: string[];
|
|
errors: Error[];
|
|
value?: any;
|
|
};
|
|
|
|
export interface IOutputFormat<O = any> {
|
|
registerOptions(options: Argv): Argv<O>;
|
|
format(data: FormatData, options: O): Promise<string>;
|
|
}
|
|
|
|
export interface IOutput {
|
|
registerFormat(name: string, format: IOutputFormat): void;
|
|
help(value: CommandHelp | GeneralHelp): Promise<void>;
|
|
text(value: string): Promise<void>;
|
|
value<T>(value: T): Promise<void>;
|
|
error(value: CLIError): Promise<void>;
|
|
compose(builder: (ui: IUIComposer) => Promise<void>): Promise<void>;
|
|
flush(stream: WriteStream): Promise<void>;
|
|
}
|