Monorepo structure, subpackage organization, and dependency rules. Use when creating new packages, understanding project layout, or organizing code.
This is a CDK monorepo using npm workspaces. All packages share a synchronized aws-cdk-lib version.
cdk-constructs-library/
āāā package.json # Root package (@cdk-constructs/cdk) - core utilities, types, enums
āāā tsconfig.json # Root TypeScript config (builds src/)
āāā tsconfig.app.json # CDK app TypeScript config (builds bin/, lib/)
āāā tsconfig.build.json # Workspace build references
āāā packages/
ā āāā aws/ # @cdk-constructs/aws - AWS account, region, environment enums
ā āāā codeartifact/ # @cdk-constructs/codeartifact - CodeArtifact constructs
ā āāā api-gateway/ # @cdk-constructs/api-gateway - API Gateway & Lambda constructs
ā āāā aurora/ # @cdk-constructs/aurora - Aurora database constructs
ā āāā cloudwatch/ # @cdk-constructs/cloudwatch - CloudWatch monitoring
ā āāā eks/ # @cdk-constructs/eks - EKS utilities and VPC constants
ā āāā waf/ # @cdk-constructs/waf - WAF configurations
āāā src/ # Root package source (type-driven development)
ā āāā constructs/ # Shared base constructs and utilities
ā āāā enums/ # Shared enums
ā āāā types/ # Shared types (types, not interfaces)
ā āāā util/ # Shared utilities
āāā bin/ # CDK app entry point
ā āāā app.ts # Main CDK application
ā āāā environment.ts # Environment configurations
āāā lib/ # CDK stack implementations
ā āāā stacks/ # Stack classes for testing
āāā docs/ # Documentation
āāā scripts/ # Build and maintenance scripts
āāā test/ # Test files
type declarations, not interfacesrc/types, src/enums, src/constructs, etc.@cdk-constructs/api-gateway)aws-cdk-lib versionEach subpackage follows this standard structure for full organization:
packages/{package-name}/
āāā package.json # Package config with workspace dependencies
āāā tsconfig.json # Extends ../../tsconfig-strict.json
āāā src/
ā āāā index.ts # Public exports
ā āāā types/ # Package-specific types (type-driven development)
ā āāā enums/ # Package-specific enums
ā āāā constructs/ # CDK construct implementations
ā āāā util/ # Package-specific utilities
āāā test/ # Test files and example stacks
āāā docs/ # Package documentation (optional)
āāā README.md # Package documentation
Organization Principles:
src/types/ - All data structures using type declarations (not interface)src/enums/ - Enumeration definitions (e.g., AWS regions, accounts)src/constructs/ - CDK construct factory functionssrc/util/ - Helper functions and utilities@cdk-constructs/cdk (root)
āāā @cdk-constructs/aws (no dependencies on other packages)
āāā @cdk-constructs/codeartifact (depends on: aws)
āāā @cdk-constructs/api-gateway (depends on: cdk)
āāā @cdk-constructs/aurora (depends on: cdk)
āāā @cdk-constructs/eks (depends on: cdk)
āāā @cdk-constructs/waf (depends on: cdk)
āāā @cdk-constructs/cloudwatch (depends on: cdk, api-gateway)
Rules: