UNPKG

projen

Version:

CDK for software projects

97 lines (96 loc) 3.04 kB
import { Component } from "../component"; import { DependencyType } from "../dependencies"; import type { Project } from "../project"; /** * Options for `AwsCdkDeps` */ export interface AwsCdkDepsCommonOptions { /** * Minimum version of the AWS CDK to depend on. * * @default "2.189.1" */ readonly cdkVersion: string; /** * Version range of the AWS CDK CLI to depend on. * * Can be either a specific version, or an NPM version range. * * By default, the latest 2.x version will be installed; you can use this * option to restrict it to a specific version or version range. * * @default "^2" */ readonly cdkCliVersion?: string; /** * Minimum version of the `constructs` library to depend on. * * @default - for CDK 1.x the default is "3.2.27", for CDK 2.x the default is * "10.5.1". */ readonly constructsVersion?: string; /** * Use pinned version instead of caret version for CDK. * * You can use this to prevent mixed versions for your CDK dependencies and to prevent auto-updates. * If you use experimental features this will let you define the moment you include breaking changes. */ readonly cdkVersionPinning?: boolean; } export interface AwsCdkDepsOptions extends AwsCdkDepsCommonOptions { /** * The type of dependency to use for runtime AWS CDK and `constructs` modules. * * For libraries, use peer dependencies and for apps use runtime dependencies. */ readonly dependencyType: DependencyType; } /** * Language-specific AWS CDK package names. */ export interface AwsCdkPackageNames { /** * Fully qualified name of the core framework package for CDKv2 */ readonly coreV2: string; /** * Fully qualified name of the constructs library package */ readonly constructs: string; } /** * Manages dependencies on the AWS CDK. */ export declare abstract class AwsCdkDeps extends Component { /** * The dependency requirement for AWS CDK (e.g. `^2.0.0`). */ readonly cdkVersion: string; /** * The dependency requirement for the CDK CLI (e.g. '^2.3.4'). * * Will return `^2` if the version was unspecified by the user. */ readonly cdkCliVersion: string; /** * The minimum version of the AWS CDK (e.g. `2.0.0`). */ readonly cdkMinimumVersion: string; /** * The major version of the AWS CDK (e.g. 1, 2, ...) */ readonly cdkMajorVersion: number; private readonly dependencyType; private readonly _packageNames; constructor(project: Project, options: AwsCdkDepsOptions); preSynthesize(): void; private addConstructsDependency; /** * Adds a dependency on the AWS CDK framework (`aws-cdk-lib` for V2). */ private addFrameworkDependency; /** * Return a configuration object with information about package naming in various languages */ protected abstract packageNames(): AwsCdkPackageNames; }