| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- /// <reference types="node" />
- import { BaseConfig, BaseConfigOptions, PackageJson, ParsedArgs } from '@ionic/cli-framework';
- import { PromptModule } from '@ionic/cli-framework-prompts';
- import { IClient, IConfig, IIntegration, ILogger, IMultiProjectConfig, IProject, IProjectConfig, ISession, IShell, InfoItem, IntegrationName, IonicContext, IonicEnvironmentFlags, ProjectIntegration, ProjectPersonalizationDetails, ProjectType } from '../../definitions';
- import { BaseException } from '../errors';
- import type { Integration as CapacitorIntegration } from '../integrations/capacitor';
- import type { Integration as CordovaIntegration } from '../integrations/cordova';
- import type { Integration as EnterpriseIntegration } from '../integrations/enterprise';
- export interface ProjectDetailsResultBase {
- readonly type?: ProjectType;
- readonly errors: readonly ProjectDetailsError[];
- }
- export interface ProjectDetailsSingleAppResult extends ProjectDetailsResultBase {
- readonly context: 'app';
- }
- export interface ProjectDetailsMultiAppResult extends ProjectDetailsResultBase {
- readonly context: 'multiapp';
- readonly id?: string;
- }
- export interface ProjectDetailsUnknownResult extends ProjectDetailsResultBase {
- readonly context: 'unknown';
- }
- export declare type ProjectDetailsResult = (ProjectDetailsSingleAppResult | ProjectDetailsMultiAppResult | ProjectDetailsUnknownResult) & {
- readonly configPath: string;
- };
- export declare type ProjectDetailsErrorCode = 'ERR_INVALID_PROJECT_FILE' | 'ERR_INVALID_PROJECT_TYPE' | 'ERR_MISSING_PROJECT_TYPE' | 'ERR_MULTI_MISSING_CONFIG' | 'ERR_MULTI_MISSING_ID';
- export declare class ProjectDetailsError extends BaseException {
- /**
- * Unique code for this error.
- */
- readonly code: ProjectDetailsErrorCode;
- constructor(msg: string,
- /**
- * Unique code for this error.
- */
- code: ProjectDetailsErrorCode,
- /**
- * The underlying error that caused this error.
- */
- cause?: Error);
- }
- export interface ProjectDetailsDeps {
- readonly rootDirectory: string;
- readonly args?: ParsedArgs;
- readonly e: ProjectDeps;
- }
- export declare class ProjectDetails {
- readonly rootDirectory: string;
- protected readonly e: ProjectDeps;
- protected readonly args: ParsedArgs;
- constructor({ rootDirectory, args, e }: ProjectDetailsDeps);
- getIdFromArgs(): Promise<string | undefined>;
- getIdFromPathMatch(config: IMultiProjectConfig): Promise<string | undefined>;
- getIdFromDefaultProject(config: IMultiProjectConfig): Promise<string | undefined>;
- getTypeFromConfig(config: IProjectConfig): Promise<ProjectType | undefined>;
- getTypeFromDetection(): Promise<ProjectType | undefined>;
- protected determineSingleApp(config: IProjectConfig): Promise<ProjectDetailsSingleAppResult>;
- protected determineMultiApp(config: IMultiProjectConfig): Promise<ProjectDetailsMultiAppResult>;
- processResult(result: ProjectDetailsResult): void;
- readConfig(p: string): Promise<{
- [key: string]: any;
- }>;
- /**
- * Gather project details from specified configuration.
- *
- * This method will always resolve with a result object, with an array of
- * errors. Use `processResult()` to log warnings & errors.
- */
- result(): Promise<ProjectDetailsResult>;
- }
- export declare function createProjectFromDetails(details: ProjectDetailsResult, deps: ProjectDeps): Promise<IProject>;
- export declare function findProjectDirectory(cwd: string): Promise<string | undefined>;
- export interface CreateProjectFromDirectoryOptions {
- logErrors?: boolean;
- }
- export declare function createProjectFromDirectory(rootDirectory: string, args: ParsedArgs, deps: ProjectDeps, { logErrors }?: CreateProjectFromDirectoryOptions): Promise<IProject | undefined>;
- export interface ProjectConfigOptions extends BaseConfigOptions {
- readonly type?: ProjectType;
- }
- export declare class ProjectConfig extends BaseConfig<IProjectConfig> {
- protected readonly type?: ProjectType;
- constructor(p: string, { type, ...options }?: ProjectConfigOptions);
- provideDefaults(c: Partial<Readonly<IProjectConfig>>): IProjectConfig;
- }
- export declare class MultiProjectConfig extends BaseConfig<IMultiProjectConfig> {
- provideDefaults(c: Partial<Readonly<IMultiProjectConfig>>): IMultiProjectConfig;
- }
- export interface ProjectDeps {
- readonly client: IClient;
- readonly config: IConfig;
- readonly flags: IonicEnvironmentFlags;
- readonly log: ILogger;
- readonly prompt: PromptModule;
- readonly session: ISession;
- readonly shell: IShell;
- readonly ctx: IonicContext;
- }
- export declare abstract class Project implements IProject {
- readonly details: ProjectDetailsResult;
- protected readonly e: ProjectDeps;
- readonly rootDirectory: string;
- abstract readonly type: ProjectType;
- protected originalConfigFile?: {
- [key: string]: any;
- };
- constructor(details: ProjectDetailsResult, e: ProjectDeps);
- get filePath(): string;
- get directory(): string;
- get pathPrefix(): string[];
- get config(): ProjectConfig;
- abstract detected(): Promise<boolean>;
- abstract requireBuildRunner(): Promise<import('../build').BuildRunner<any>>;
- abstract requireServeRunner(): Promise<import('../serve').ServeRunner<any>>;
- abstract requireGenerateRunner(): Promise<import('../generate').GenerateRunner<any>>;
- getBuildRunner(): Promise<import('../build').BuildRunner<any> | undefined>;
- getServeRunner(): Promise<import('../serve').ServeRunner<any> | undefined>;
- getGenerateRunner(): Promise<import('../generate').GenerateRunner<any> | undefined>;
- requireAppflowId(): Promise<string>;
- get packageJsonPath(): string;
- getPackageJson(pkgName?: string, { logErrors }?: {
- logErrors?: boolean;
- }): Promise<[PackageJson | undefined, string | undefined]>;
- requirePackageJson(pkgName?: string): Promise<PackageJson>;
- getSourceDir(): Promise<string>;
- getDefaultDistDir(): Promise<string>;
- getDistDir(): Promise<string>;
- getInfo(): Promise<InfoItem[]>;
- personalize(details: ProjectPersonalizationDetails): Promise<void>;
- setPrimaryTheme(_themeColor: string): Promise<void>;
- writeThemeColor(variablesPath: string, themeColor: string): Promise<void>;
- setAppResources(appIcon: Buffer, splash: Buffer): Promise<void>;
- createIntegration(name: 'capacitor'): Promise<CapacitorIntegration>;
- createIntegration(name: 'cordova'): Promise<CordovaIntegration>;
- createIntegration(name: 'enterprise'): Promise<EnterpriseIntegration>;
- createIntegration(name: IntegrationName): Promise<CapacitorIntegration | CordovaIntegration | EnterpriseIntegration>;
- getIntegration(name: IntegrationName): Required<ProjectIntegration> | undefined;
- requireIntegration(name: IntegrationName): Required<ProjectIntegration>;
- protected getIntegrations(): Promise<IIntegration<ProjectIntegration>[]>;
- }
- export declare function prettyProjectName(type?: string): string;
- export declare function isValidProjectId(projectId: string): boolean;
|