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.jsonwith correct dependencies - Create
tsconfig.jsonextending../../tsconfig-strict.json - Create
src/index.tswith exports - Add to
tsconfig.build.jsonreferences (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,
// Add other shared types as they're created
} 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
# Format all files
npm run format
# Check formatting
npm run format:check
# Format and fix linting
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