| name | common-tasks |
| description | Step-by-step guides for common development tasks like adding constructs, creating packages, and using workspace packages. Use when performing routine development tasks. |
Common Tasks
Adding a New Construct to an Existing Package
- Create the construct in
packages/{package}/src/constructs/
- Create types in
packages/{package}/src/types/
- Export from
packages/{package}/src/index.ts
- Create test file in
packages/{package}/test/
- Create example stack in
packages/{package}/test/
- Update package README
Creating a New Subpackage
- Create directory:
mkdir -p packages/{name}/src
- Create
package.json with correct dependencies
- Create
tsconfig.json extending ../../tsconfig-strict.json
- Create
src/index.ts with exports
- Add to
tsconfig.build.json references (in dependency order)
- Update root README packages table
- Create package README
- Create test folder with test files
- Create docs folder with documentation
Using Root Package Types
Import shared types from @cdk-constructs/cdk:
import {
EnvironmentConfig,
} from '@cdk-constructs/cdk';
Using Workspace Packages
Import from workspace packages:
import {Account, Region, Environment} from '@cdk-constructs/aws';
import {createCodeArtifact} from '@cdk-constructs/codeartifact';
Adding Integration Test Stack
- Create stack class in
lib/stacks/{stack-name}-stack.ts
- Add environment configuration to
bin/environment.ts
- Import and instantiate in
bin/app.ts
Formatting Code
npm run format
npm run format:check
npm run format:fix
Key Reminders
- New constructs go in subpackages, not the root package
- Always use explicit imports, never wildcards
- Match CDK versions across all packages
- Include environment in resource names to prevent collisions
- Gate expensive features to production environments
- Export everything from
src/index.ts
- Create test files for all constructs
- Add JSDoc comments to all public APIs
- Run lint and format before committing
- Follow dependency order when adding packages