@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
46 lines (45 loc) • 1.85 kB
TypeScript
import { SettingsService } from '@sprucelabs/spruce-skill-utils';
import { DirectoryTemplateCode, Templates } from '@sprucelabs/spruce-templates';
import LintService from '../services/LintService';
import { FileDescription, GeneratedFile, UpgradeMode } from '../types/cli.types';
import { GraphicsInterface } from '../types/cli.types';
export default abstract class AbstractWriter {
protected templates: Templates;
protected ui: GraphicsInterface;
private linter?;
private upgradeMode;
private fileDescriptions;
private shouldConfirmBeforeWriting;
private firstFileWriteMessage?;
private hasShownFirstWriteMessage;
private settings;
protected isLintEnabled: boolean;
constructor(options: WriterOptions);
protected lint(file: string): Promise<void>;
protected writeDirectoryTemplate(options: WriteDirectoryTemplateOptions): Promise<WriteResults>;
protected writeFileIfChangedMixinResults(destination: string, contents: string, description: string, results?: WriteResults, cwd?: string): Promise<WriteResults>;
private isFileDifferent;
private cleanFilename;
private shouldOverwriteIfChanged;
private getFileDescription;
private shouldAskForOverwrite;
protected resolveFilenameWithFallback(dirOrFile: string, fallbackFileName: string): string;
}
export type WriteResults = GeneratedFile[];
export interface WriterOptions {
templates: Templates;
term: GraphicsInterface;
upgradeMode?: UpgradeMode;
fileDescriptions: FileDescription[];
linter?: LintService;
settings: SettingsService;
}
export interface WriteDirectoryTemplateOptions {
destinationDir: string;
code: DirectoryTemplateCode;
filesToWrite?: string[];
filesToSkip?: string[];
context: any;
shouldConfirmBeforeWriting?: boolean;
firstFileWriteMessage?: string;
}