create-abi
Version:
Interactive CLI for create Abi.js projects.
50 lines (47 loc) • 1.84 kB
text/typescript
import { Program, Definition as Definition$1 } from './core.cjs';
import 'yargs';
type Definition = Definition$1 & {
destination: string;
runtime: Runtime;
force?: boolean;
install?: boolean;
git?: boolean;
dryRun?: boolean;
};
type EnsureRequired<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
type UserDefinition = Partial<Definition>;
declare const defaultDefinition: {
readonly destination: "./abi-app";
readonly runtime: "node";
readonly force: undefined;
readonly install: undefined;
readonly git: undefined;
readonly yes: undefined;
readonly no: undefined;
readonly dryRun: undefined;
};
type Runtime = 'node' | 'deno' | 'bun';
type Input = Required<Omit<Definition, 'yes' | 'no'>> & {
outDir: string;
packageName: string;
};
declare function defineDefinition(definition: UserDefinition): Definition;
declare class Application extends Program<Definition, Input> {
configure(): void;
parse(args: string[]): Definition;
validate(definition: Definition): Input;
interact(definition: Definition): Promise<Input>;
execute(input: Input): Promise<number>;
prepareDir(input: Input): Promise<void>;
runCreate(input: Input): Promise<void>;
start(input: Input): Promise<boolean>;
end(input: Input, ranInstall: boolean): void;
updatePackageJson(input: Input): void;
runInstall(input: Input): Promise<boolean>;
runGit(input: Input): Promise<void>;
copyShared(input: Input): void;
copyStarter(input: Input, templatePath?: string): void;
}
declare function app(name?: string, version?: string): Application;
declare const _default: Application;
export { Application, type Definition, type EnsureRequired, type Input, type Runtime, type UserDefinition, app, _default as default, defaultDefinition, defineDefinition };