UNPKG

create-zephyr-apps

Version:

A CLI tool to create web applications using Zephyr.

64 lines 2.46 kB
import type { PackageManager, ResolvedCliOptions } from './cli.js'; import { type TemplateRepository } from './templates.js'; export type ScaffoldStage = 'prepare' | 'fetch-template' | 'copy-template' | 'git' | 'install' | 'build' | 'inspect'; export interface CommandResult { exitCode: number; stdout: string; stderr: string; } export interface CommandRunnerOptions { cwd: string; timeoutMs?: number; } export type CommandRunner = (command: string, args: string[], options: CommandRunnerOptions) => Promise<CommandResult>; export interface CommandReceipt { stage: ScaffoldStage; command: string; args: string[]; cwd: string; exitCode: number; } export interface ScaffoldFailureReceipt { stage: ScaffoldStage; message: string; exitCode: number; stderr?: string; } export interface ResolvedPackageVersion { name: string; version: string; source: 'workspace' | 'installed'; } export interface ScaffoldReceipt { success: boolean; directory: string; projectType: ResolvedCliOptions['projectType']; template: string | null; templateRepository: string; templateRevision: string; packageManager: { name: PackageManager; version: string | null; }; createdFiles: string[]; artifacts: string[]; resolvedPackageVersions: ResolvedPackageVersion[]; commands: CommandReceipt[]; failures: ScaffoldFailureReceipt[]; } export interface ScaffoldDependencies { runCommand?: CommandRunner; repositories?: Partial<Record<ResolvedCliOptions['projectType'], TemplateRepository>>; onProgress?: (stage: ScaffoldStage, message: string) => void; removeTemporaryDirectory?: (directory: string) => Promise<void>; } export declare class ScaffoldFailure extends Error { readonly exitCode: number; readonly receipt: ScaffoldReceipt; constructor(message: string, exitCode: number, receipt: ScaffoldReceipt); } export declare const TEMPLATE_FETCH_TIMEOUT_MS: number; export declare function defaultCommandRunner(command: string, args: string[], options: CommandRunnerOptions): Promise<CommandResult>; export declare function scaffoldProject(options: ResolvedCliOptions, dependencies?: ScaffoldDependencies): Promise<ScaffoldReceipt>; export declare function detectPackageManager(outputDirectory: string, invocationDirectory: string, environment: NodeJS.ProcessEnv): Promise<PackageManager>; //# sourceMappingURL=scaffold.d.ts.map