UNPKG

@alauda/doom

Version:

Doctor Doom making docs.

45 lines (44 loc) 1.48 kB
import * as prompts from '@inquirer/prompts'; import { Command } from 'commander'; import type { ContentProcessor } from '../types.js'; export declare const DEFAULT_PATH = "templates/scaffolding.yaml"; export interface ScaffoldingTemplate { repo: string; branches?: string[]; scaffoldingPath?: string; } type Prompts = Omit<typeof prompts, 'Separator'>; type PromptOptions<T extends keyof Prompts> = Prompts[T] extends (config: infer R) => any ? R : never; export interface ScaffoldingParameter<T extends keyof Prompts = keyof Prompts> { name: string; type: T; options: PromptOptions<T>; } export type ScaffoldingLayoutWriteMode = 'append' | 'write'; export interface ScaffoldingLayoutBase { processors?: ContentProcessor[]; writeMode?: ScaffoldingLayoutWriteMode; } export interface ScaffoldingLayoutMatcher extends ScaffoldingLayoutBase { match: string[]; } export interface ScaffoldingLayoutFolder extends ScaffoldingLayoutBase { type: 'folder'; matchers?: ScaffoldingLayoutMatcher[]; } export interface ScaffoldingLayoutFile extends ScaffoldingLayoutBase { type: 'file'; } export type ScaffoldingLayout = { source: string; target: string; when?: string; } & (ScaffoldingLayoutFile | ScaffoldingLayoutFolder); export interface Scaffolding { name: string; description?: string; parameters?: ScaffoldingParameter[]; layout?: ScaffoldingLayout[]; } export declare const newCommand: Command; export {};