UNPKG

@ionic/cli-utils

Version:
55 lines (54 loc) 2.4 kB
import { PromptModule } from '@ionic/cli-framework'; import { BaseBuildOptions, BuildOptions, CommandLineInputs, CommandLineOptions, CommandMetadata, CommandMetadataOption, IConfig, ILogger, IProject, IShell, Runner } from '../definitions'; export declare const BUILD_SCRIPT = "ionic:build"; export declare const COMMON_BUILD_COMMAND_OPTIONS: ReadonlyArray<CommandMetadataOption>; export interface BuildRunnerDeps { readonly config: IConfig; readonly log: ILogger; readonly project: IProject; readonly prompt: PromptModule; readonly shell: IShell; } export declare abstract class BuildRunner<T extends BuildOptions<any>> implements Runner<T, void> { protected abstract readonly e: BuildRunnerDeps; abstract getCommandMetadata(): Promise<Partial<CommandMetadata>>; abstract createOptionsFromCommandLine(inputs: CommandLineInputs, options: CommandLineOptions): T; abstract buildProject(options: T): Promise<void>; createBaseOptionsFromCommandLine(inputs: CommandLineInputs, options: CommandLineOptions): BaseBuildOptions; determineEngineFromCommandLine(options: CommandLineOptions): string; beforeBuild(options: T): Promise<void>; run(options: T): Promise<void>; afterBuild(options: T): Promise<void>; } export declare abstract class BuildCLI<T extends object> { protected readonly e: BuildRunnerDeps; /** * The pretty name of this Build CLI. */ abstract readonly name: string; /** * The npm package of this Build CLI. */ abstract readonly pkg: string; /** * The bin program to use for this Build CLI. */ abstract readonly program: string; /** * If specified, `package.json` is inspected for this script to use instead * of `program`. */ abstract readonly script?: string; resolvedProgram: string; constructor(e: BuildRunnerDeps); /** * Build the arguments for starting this Build CLI. Called by `this.run()`. */ protected abstract buildArgs(options: T): Promise<string[]>; build(options: T): Promise<void>; protected runWrapper(options: T): Promise<void>; protected run(options: T): Promise<void>; protected resolveProgram(): Promise<string>; protected promptToInstall(): Promise<boolean>; } export declare function build(deps: BuildRunnerDeps, inputs: CommandLineInputs, options: CommandLineOptions): Promise<void>;