aws-cdk
Version:
AWS CDK CLI, the command line tool for CDK apps
130 lines (129 loc) • 4.28 kB
TypeScript
import type { IoHelper } from '../../api-private';
export interface CliInitOptions {
/**
* Template name to initialize
* @default undefined
*/
readonly type?: string;
/**
* Programming language for the project
* @default - Optional/auto-detected if template supports only one language, otherwise required
*/
readonly language?: string;
/**
* @default true
*/
readonly canUseNetwork?: boolean;
/**
* @default false
*/
readonly generateOnly?: boolean;
/**
* @default process.cwd()
*/
readonly workDir?: string;
/**
* @default undefined
*/
readonly stackName?: string;
/**
* @default undefined
*/
readonly migrate?: boolean;
/**
* Override the built-in CDK version
* @default undefined
*/
readonly libVersion?: string;
/**
* Path to a local custom template directory
* @default undefined
*/
readonly fromPath?: string;
/**
* Path to a specific template within a multi-template repository.
* This parameter requires --from-path to be specified.
* @default undefined
*/
readonly templatePath?: string;
readonly ioHelper: IoHelper;
}
/**
* Initialize a CDK package in the current directory
*/
export declare function cliInit(options: CliInitOptions): Promise<void>;
interface TemplateInitInfo {
readonly description: string;
readonly aliases?: string[];
}
declare enum TemplateType {
BUILT_IN = "builtin",
CUSTOM = "custom"
}
export declare class InitTemplate {
private readonly basePath;
readonly name: string;
readonly languages: string[];
static fromName(templatesDir: string, name: string): Promise<InitTemplate>;
static fromPath(templatePath: string): Promise<InitTemplate>;
readonly description?: string;
readonly aliases: Set<string>;
readonly templateType: TemplateType;
constructor(basePath: string, name: string, languages: string[], initInfo: TemplateInitInfo | null, templateType: TemplateType);
/**
* @param name - the name that is being checked
* @returns ``true`` if ``name`` is the name of this template or an alias of it.
*/
hasName(name: string): boolean;
/**
* Creates a new instance of this ``InitTemplate`` for a given language to a specified folder.
*
* @param language - the language to instantiate this template with
* @param targetDirectory - the directory where the template is to be instantiated into
* @param stackName - the name of the stack to create
* @default undefined
* @param libVersion - the version of the CDK library to use
* @default undefined
*/
install(ioHelper: IoHelper, language: string, targetDirectory: string, stackName?: string, libVersion?: string): Promise<void>;
private installFiles;
private installProcessed;
/**
* Copy template files without processing placeholders (for custom templates)
*/
private installFilesWithoutProcessing;
/**
* Adds context variables to `cdk.json` in the generated project directory to
* enable future behavior for new projects.
*/
private applyFutureFlags;
addMigrateContext(projectDir: string): Promise<void>;
}
export declare function expandPlaceholders(template: string, language: string, project: ProjectInfo): string;
interface ProjectInfo {
/** The value used for %name% */
readonly name: string;
readonly stackName?: string;
readonly versions: Versions;
}
export declare function availableInitTemplates(): Promise<InitTemplate[]>;
export declare function availableInitLanguages(): Promise<string[]>;
/**
* Print available templates to the user
* @param ioHelper - IO helper for user interaction
* @param language - Programming language filter
* @default undefined
*/
export declare function printAvailableTemplates(ioHelper: IoHelper, language?: string): Promise<void>;
interface Versions {
['aws-cdk']: string;
['aws-cdk-lib']: string;
constructs: string;
}
/**
* Return the currently recommended flags for `aws-cdk-lib`.
*
* These have been built into the CLI at build time.
*/
export declare function currentlyRecommendedAwsCdkLibFlags(): Promise<any>;
export {};