{"_id":"@aws-cdk-tools/config-builder","_rev":"1-b98716de810b3d6187e7844d263fec39","name":"@aws-cdk-tools/config-builder","dist-tags":{"latest":"1.1.1"},"versions":{"1.1.0":{"name":"@aws-cdk-tools/config-builder","version":"1.1.0","description":"Helper library to build AWS CDK configs","scope":"aws-cdk-tools","main":"dist/index.js","scripts":{"test":"jest --collectCoverage","format":"prettier --write","lint":"eslint --fix","build":"esbuild src/index.ts --bundle --minify --platform=node --outfile=dist/index.js && npm run emitDeclaration","emitDeclaration":"tsc -p tsconfig.prod.json --emitDeclarationOnly --outDir dist"},"lint-staged":{"src/**/*.{js,ts,jsx,tsx}":["npm run lint"],"*.{json,.js,ts,jsx,tsx}":["npm run format"]},"keywords":["aws","cdk","config"],"author":{"name":"@aws-cdk-tools"},"license":"ISC","devDependencies":{"@types/jest":"^29.1.2","@typescript-eslint/eslint-plugin":"^5.40.0","@typescript-eslint/parser":"^5.40.0","esbuild":"^0.15.11","eslint":"^8.25.0","husky":"^8.0.1","jest":"^29.2.0","prettier":"^2.7.1","ts-jest":"^29.0.3","ts-loader":"^9.4.1","ts-node":"^10.9.1","typescript":"^4.8.4"},"dependencies":{"constructs":"^10.1.132","ts-deepmerge":"^6.1.0"},"types":"./dist/index.d.ts","gitHead":"4cb6bde03f9c8636691143f78896bac8382485e8","_id":"@aws-cdk-tools/config-builder@1.1.0","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-nZ+qdVmdGdK2ZMNaNlmCJtkeyO4husZKDLS9pTQLTy3uj+x8tLPbCKy7L/zzhwPU6aeoIiNpHFTJcyIemFU45g==","shasum":"d2d5ea6795661c5765cb6774e71c6620fd278c2d","tarball":"https://registry.npmjs.org/@aws-cdk-tools/config-builder/-/config-builder-1.1.0.tgz","fileCount":6,"unpackedSize":6309,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC9BgTJ++qp71OPtc+MphI3PQvusO96il5ij3B1g23T2wIhANT5CEOw6LeZqVMFNiNfl5mXOCIhiH8F3u8X//zLkhKr"}]},"_npmUser":{"name":"gamemasterdev","email":"one.ahmad.arifin@gmail.com"},"directories":{},"maintainers":[{"name":"gamemasterdev","email":"one.ahmad.arifin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/config-builder_1.1.0_1687416099449_0.08778442666652242"},"_hasShrinkwrap":false},"1.1.1":{"name":"@aws-cdk-tools/config-builder","version":"1.1.1","description":"Helper library to build AWS CDK configs","scope":"aws-cdk-tools","main":"dist/index.js","scripts":{"test":"jest --collectCoverage","format":"prettier --write","lint":"eslint --fix","build":"esbuild src/index.ts --bundle --minify --platform=node --outfile=dist/index.js && npm run emitDeclaration","emitDeclaration":"tsc -p tsconfig.prod.json --emitDeclarationOnly --outDir dist"},"lint-staged":{"src/**/*.{js,ts,jsx,tsx}":["npm run lint"],"*.{json,.js,ts,jsx,tsx}":["npm run format"]},"keywords":["aws","cdk","config"],"author":{"name":"@aws-cdk-tools"},"license":"ISC","devDependencies":{"@types/jest":"^29.1.2","@typescript-eslint/eslint-plugin":"^5.40.0","@typescript-eslint/parser":"^5.40.0","esbuild":"^0.15.11","eslint":"^8.25.0","husky":"^8.0.1","jest":"^29.2.0","prettier":"^2.7.1","ts-jest":"^29.0.3","ts-loader":"^9.4.1","ts-node":"^10.9.1","typescript":"^4.8.4"},"dependencies":{"constructs":"^10.1.132","ts-deepmerge":"^6.1.0"},"types":"./dist/index.d.ts","gitHead":"a2838e98fb3c3f27e1cbf5a294b49f86087ba907","_id":"@aws-cdk-tools/config-builder@1.1.1","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-hcfPaQ5T4PdAVcJCR2gqNmVU3iNf8dchLy8glvWknPtzBdY2gIYB+auJsZWMSu3lfJLv6hsNekPcB9oUEqu2Dg==","shasum":"2fd0b8b89f5ad1a067ababe8351aa55673140775","tarball":"https://registry.npmjs.org/@aws-cdk-tools/config-builder/-/config-builder-1.1.1.tgz","fileCount":6,"unpackedSize":6309,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEMCHzHINHbSFl3+8369xOiXzlTinAEIXtS8N2ZzvPNslUgCIGKM06fxZP0CKYJMoPIRNQq0asHgqT45Y95FYPK/3jTt"}]},"_npmUser":{"name":"gamemasterdev","email":"one.ahmad.arifin@gmail.com"},"directories":{},"maintainers":[{"name":"gamemasterdev","email":"one.ahmad.arifin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/config-builder_1.1.1_1697582540115_0.5819959043272984"},"_hasShrinkwrap":false}},"time":{"created":"2023-06-22T06:41:39.308Z","1.1.0":"2023-06-22T06:41:39.614Z","modified":"2023-10-17T22:42:20.629Z","1.1.1":"2023-10-17T22:42:20.482Z"},"maintainers":[{"name":"gamemasterdev","email":"one.ahmad.arifin@gmail.com"}],"description":"Helper library to build AWS CDK configs","keywords":["aws","cdk","config"],"author":{"name":"@aws-cdk-tools"},"license":"ISC","readme":"# CDK CONFIG BUILDER\n\nA tool to help build and extract configuration for different environments/accounts which come from AWS CDK `context`.\n\n## Getting Started\n\nEnsure that you have all your AWS configuration stored in a CDK context file:\n\n```\ncdk.context.json\n```\n\nYour `context` file content should be in format like the following...\n\n```json\n{\n\t\"dev\": {\n\t\t\"AccountAlias\": \"aws-account-alias\",\n\t\t\"ApplicationName\": \"demo app\"\n\t},\n\t\"prod\": {\n\t\t\"AccountAlias\": \"aws-account-alias-prod\",\n\t\t\"ApplicationName\": \"demo app prod\"\n\t}\n}\n```\n\n## Installing\n\n```bash\n> npm install --save aws-cdk-config-builder\n\n```\n\n## How to use?\n\n### 1. Basic use\n\n```typescript\nimport configration from 'aws-cdk-config-builder';\n\n// this is the cdk construct scope\nconst config = configuration.Config(this).build('dev');\n```\n\n### 2. Adding typing to the response\n\n```typescript\n// this is the cdk construct scope\nconst config = configuration.Config(this).build<ConfigType>('dev');\n\ntype ConfigType = {\n\tAccountAlias: string;\n\tApplicationName: string;\n};\n```\n\n### 3. Configuration inheritance\n\nIf you have a common properties with the same values across different environments, you may use\n`_` object as follows:\n\n```json\n{\n\t\"_\": {\n\t\t\"lambda\": {\n\t\t\t\"memorySize\": 128\n\t\t}\n\t},\n\t\"dev\": {\n\t\t\"bucket\": {\n\t\t\t\"name\": \"somebucket-1\"\n\t\t}\n\t}\n}\n```\n\nThe above will return the following value as configuration when `environment` is set as `dev`.\n\n```json\n{\n\t\"bucket\": {\n\t\t\"name\": \"somebucket-1\"\n\t},\n\t\"lambda\": {\n\t\t\"memorySize\": 128\n\t}\n}\n```\n\n#### 3.1 Overriding \n\nThe `environment` properties may override the `_` simply by doing the following...\n\n```json\n{\n\t\"_\": {\n\t\t\"lambda\": {\n\t\t\t\"memorySize\": 128\n\t\t}\n\t},\n\t\"dev\": {\n\t\t\"bucket\": {\n\t\t\t\"name\": \"somebucket-1\"\n\t\t},\n        \"lambda\": {\n\t\t\t\"memorySize\": 512\n\t\t}\n\t}\n}\n```\n\nAnd the above will result in the following configuration when `dev` is selected as `environment`...\n\n```json\n{\n\t\"bucket\": {\n\t\t\"name\": \"somebucket-1\"\n\t},\n\t\"lambda\": {\n\t\t\"memorySize\": 512\n\t}\n}\n```\n\n\n","readmeFilename":"README.md"}