@builder.io/dev-tools
Version:
Builder.io Visual CMS Devtools
61 lines (60 loc) • 2.22 kB
TypeScript
import { type ExpectStatic } from "vitest";
/**
* Check if the binary exists for the current platform.
*/
export declare function binaryExists(): boolean;
/**
* Get the binary path for the current platform.
* Returns null if the platform is not supported.
*/
export declare function getBinaryPath(): string | null;
interface CLI {
output(): string;
consumeOutput(): string;
inputText(text: string): Promise<void>;
inputEnter(text?: string): Promise<void>;
inputArrowUp(): Promise<void>;
inputArrowDown(): Promise<void>;
inputArrowRight(): Promise<void>;
inputArrowLeft(): Promise<void>;
inputCtrlC(): Promise<void>;
inputSpace(): Promise<void>;
waitUntilText(text: string, timeout?: number): Promise<void>;
waitUntilExit(): Promise<number>;
wait(ms: number): Promise<void>;
getProjectPath(): string;
writeFile(path: string, content: string): Promise<void>;
readFile(path: string): string;
exists(path: string): boolean;
readdir(path: string): string[];
fsSnapshot(path: string): Promise<Snapshot>;
fsDiff(oldSnap: Snapshot): Promise<{
added: string[];
removed: string[];
modified: string[];
}>;
npm(...args: string[]): Promise<number>;
spawn(command: string, args: string[]): Promise<number>;
}
export declare function testCLI(name: string, template: string | undefined, handler: (cli: Handler, expect: ExpectStatic) => Promise<void>, timeout?: number, skip?: boolean): void;
/**
* Command types for the CLI handler:
* - "builderio": Run via Node.js (dist/dev-tools/cli/main.cjs)
* - "create-builderio": Run via Node.js (dist/create-builderio/index.js)
* - "binary": Run via compiled pkg binary (dist/fusion-binaries/.../builder-fusion)
*/
export type CLICommand = "builderio" | "create-builderio" | "binary";
type Handler = (cmd: CLICommand, args: string[], options?: {
debug?: boolean;
}) => CLI;
export declare function createCLI(template: string | undefined, handler: (cli: Handler) => Promise<void>): Promise<void>;
/**
* A snapshot maps a file's relative path to its hash.
*/
type Snapshot = {
cwd: string;
hashes: {
[file: string]: string;
};
};
export {};