UNPKG

@sprucelabs/spruce-cli

Version:

Command line interface for building Spruce skills.

46 lines (45 loc) 1.85 kB
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; }