name: import-conventions description: Import conventions and ordering rules. Use when writing imports or organizing import statements. Enforces explicit named imports, never wildcards.
Import Conventions
Explicit Named Imports
ALWAYS use explicit named imports. NEVER use wildcard imports.
// CORRECT
import {Stack, Duration, RemovalPolicy} from 'aws-cdk-lib';
import {Bucket, BucketEncryption, BlockPublicAccess} from 'aws-cdk-lib/aws-s3';
import {Function, Runtime, Code} from 'aws-cdk-lib/aws-lambda';
// INCORRECT - Never do this
import * as cdk from 'aws-cdk-lib';
import * as s3 from 'aws-cdk-lib/aws-s3';
Import Order
Organize imports in this order:
- Node.js built-in modules
- External dependencies (
@aws-sdk/*, third-party) - AWS CDK (
constructs,aws-cdk-lib) - Internal monorepo packages (
@cdk-constructs/*) - Local imports (
./,../)
import {readFileSync} from 'fs';
import {SecretsManagerClient} from '@aws-sdk/client-secrets-manager';
import {Construct} from 'constructs';
import {Stack, Duration} from 'aws-cdk-lib';
import {Bucket} from 'aws-cdk-lib/aws-s3';
import {Account, Region, Environment} from '@cdk-constructs/aws';
import {CodeArtifactStackProps} from '@cdk-constructs/codeartifact';
import {MyLocalType} from './types/my-types';
Workspace Package Imports
When importing from workspace packages, use the package name:
// CORRECT
import {Account, Region} from '@cdk-constructs/aws';
import {createCodeArtifact} from '@cdk-constructs/codeartifact';
// INCORRECT - Don't use relative paths to packages
import {Account} from '../../packages/aws/src';