{"_id":"@apimda/npm-layer-version","_rev":"1-f92abe91cdbdfbedc3692c8a7d10a8fb","name":"@apimda/npm-layer-version","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@apimda/npm-layer-version","version":"1.0.0","main":"dist/index.js","dependencies":{"aws-cdk-lib":"^2.78.0","constructs":"^10.2.17"},"devDependencies":{"@jest/globals":"^29.5.0","@jest/types":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.59.0","@typescript-eslint/parser":"^5.59.0","eslint":"^8.38.0","eslint-config-prettier":"^8.3.0","husky":"^8.0.3","jest":"^29.5.0","prettier":"^2.8.7","prettier-package-json":"^2.8.0","prettier-plugin-organize-imports":"^3.2.2","ts-jest":"^29.1.0","ts-node":"^10.9.1","typescript":"^5.0.4"},"packageManager":"pnpm@8.4.0","scripts":{"build":"tsc --build","clean":"tsc --build --clean","format":"prettier --plugin-search-dir . --write . && prettier-package-json --write","preinstall":"npx only-allow pnpm","lint":"prettier --plugin-search-dir . --check . && eslint \".\"","repo-clean":"git clean -xdf","test":"jest"},"types":"./dist/index.d.ts","description":"`NpmLayerVersion` is a CDK construct to create a custom [lambda layer](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) from an NPM package.json file.","_id":"@apimda/npm-layer-version@1.0.0","_integrity":"sha512-zgytKThT6SlYJZiuEfxcw8yrTBrTJRuFrEkT+QU/ryadF9LW7797hyRZJPTg/COAk8Q8M00gBSnO1+7mb7x7bw==","_resolved":"/tmp/d97d178ce9f2e2f9bc6a1f1d91ec9e92/apimda-npm-layer-version-1.0.0.tgz","_from":"file:apimda-npm-layer-version-1.0.0.tgz","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-zgytKThT6SlYJZiuEfxcw8yrTBrTJRuFrEkT+QU/ryadF9LW7797hyRZJPTg/COAk8Q8M00gBSnO1+7mb7x7bw==","shasum":"1940c618df0b62d662c924452abb3cfb781ae357","tarball":"https://registry.npmjs.org/@apimda/npm-layer-version/-/npm-layer-version-1.0.0.tgz","fileCount":12,"unpackedSize":13703,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICiaEuAO5DKHnKBXKMdiSm5n6tMtGzi8ASKzaE9qc4PuAiEA4LSt0YLWBHpiWAVNO/qhCENlnTQZ+nG+JBH4M+qR59I="}]},"_npmUser":{"name":"sahinv","email":"sahin@vardar.io"},"directories":{},"maintainers":[{"name":"sahinv","email":"sahin@vardar.io"},{"name":"joemays","email":"jmays5150@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/npm-layer-version_1.0.0_1683378458327_0.38423644017123104"},"_hasShrinkwrap":false},"1.1.0":{"name":"@apimda/npm-layer-version","version":"1.1.0","type":"module","main":"dist/index.js","scripts":{"build":"tsc --build","clean":"tsc --build --clean","format":"prettier --plugin-search-dir . --write . && prettier-package-json --write","preinstall":"npx only-allow pnpm","lint":"prettier --plugin-search-dir . --check . && eslint \".\"","prepare":"husky install","repo-clean":"git clean -xdf","semantic-release":"semantic-release","test":"pnpm run build && vitest run"},"peerDependencies":{"aws-cdk-lib":"2.x","constructs":"10.x"},"devDependencies":{"@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.59.0","@typescript-eslint/parser":"^5.59.0","aws-cdk-lib":"^2.126.0","constructs":"^10.3.0","eslint":"^8.38.0","eslint-config-prettier":"^8.3.0","husky":"^8.0.3","lint-staged":"^13.2.2","prettier":"^2.8.7","prettier-package-json":"^2.8.0","prettier-plugin-organize-imports":"^3.2.2","semantic-release":"^23.0.2","typescript":"^5.0.4","vitest":"^0.31.1"},"keywords":["LayerVersion","aws","cdk","lambda","layer","npm"],"lint-staged":{"*":"prettier --write --ignore-unknown","package.json":"prettier-package-json --write","*.ts":"eslint"},"packageManager":"pnpm@8.5.1","release":{"branches":["release"]},"_id":"@apimda/npm-layer-version@1.1.0","gitHead":"44e5e1f45a1ab887c75b84bbe01a4459d5195161","types":"./dist/index.d.ts","description":"[![version](https://img.shields.io/npm/v/@apimda/npm-layer-version.svg?style=flat-square)](https://www.npmjs.com/package/@apimda/npm-layer-version)","_nodeVersion":"20.11.0","_npmVersion":"10.2.4","dist":{"integrity":"sha512-EhMttTGT7+b9fKrdvkG+ZcDCG5Nspys76EiVJLksJ0TLJ8I+eqYz5G5f+8Vez/vvvkbWDCagmtVM6bwUS5Rr1w==","shasum":"fdf0738cec8952451567d893759c99976192f48e","tarball":"https://registry.npmjs.org/@apimda/npm-layer-version/-/npm-layer-version-1.1.0.tgz","fileCount":7,"unpackedSize":8068,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCXTerS9GjFGYcH7EPMPl4swE0LCOfPJh4LVnj4jEL1iwIhAMBYSxs5jKCsNoO1mOx/AIn6tEUjavWXh7AU6XRdNecy"}]},"_npmUser":{"name":"sahinv","email":"sahin@vardar.io"},"directories":{},"maintainers":[{"name":"sahinv","email":"sahin@vardar.io"},{"name":"joemays","email":"jmays5150@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/npm-layer-version_1.1.0_1707327966564_0.14728246696031078"},"_hasShrinkwrap":false}},"time":{"created":"2023-05-06T13:07:38.161Z","1.0.0":"2023-05-06T13:07:38.489Z","modified":"2024-02-07T17:46:06.940Z","1.1.0":"2024-02-07T17:46:06.748Z"},"maintainers":[{"name":"sahinv","email":"sahin@vardar.io"},{"name":"joemays","email":"jmays5150@gmail.com"}],"description":"[![version](https://img.shields.io/npm/v/@apimda/npm-layer-version.svg?style=flat-square)](https://www.npmjs.com/package/@apimda/npm-layer-version)","readme":"# NpmLayerVersion\n\n[![version](https://img.shields.io/npm/v/@apimda/npm-layer-version.svg?style=flat-square)](https://www.npmjs.com/package/@apimda/npm-layer-version)\n\n`NpmLayerVersion` is a CDK construct to create a custom [lambda layer](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) from an NPM package.json file.\n\n## Usage\n\nAdd the packages to be included in a `package.json`, and the construct will make sure they're up-to-date before every deployment (i.e. `npm install`), and generate the [LayerVersion](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda.LayerVersion.html) to use in your CDK stacks.\n\n### Directory Structure\n\n`NpmLayerVersion` requires the following directory structure, as specified by [AWS Lambda layer path configuration](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html#configuration-layers-path)\n\n```\n<root>\n|- <custom code>\n|- nodejs\n   |- package.json\n   |- package-lock.json\n```\n\n### Creating an NpmLayerVersion\n\nYou can create an `NpmLayerVersion` with the following `NpmLayerVersionProps`:\n\n1. Path to the directory structure of the layer, relative to your `tsconfig.json`\n2. Custom [LayerVersionProps](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda.LayerVersionProps.html) to pass to the underlying CDK `LayerVersion` construct:\n\n```typescript\nconst layer = new NpmLayerVersion(this, 'DependencyLayer', {\n  layerPath: 'src/deploy/layer',\n  layerVersionProps: {\n    removalPolicy: UserApiStack.removalPolicy,\n    compatibleArchitectures: [lambda.Architecture.ARM_64],\n    compatibleRuntimes: [lambda.Runtime.NODEJS_16_X]\n  }\n});\n```\n\n### Using with NodejsFunction\n\n`NpmLayerVersion` provides two properties to be used when creating `NodejsFunction`s:\n\n1. `layerVersion`: the underlying CDK `LayerVersion` representing the lambda layer itself\n2. `packagedDependencies`: list of dependencies that were packaged.\n\nThe example below shows how to use this with [NodejsFunctionProps](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda_nodejs.NodejsFunctionProps.html):\n\n```typescript\nconst lambdaProps: NodejsFunctionProps = {\n  architecture: lambda.Architecture.ARM_64,\n  runtime: lambda.Runtime.NODEJS_16_X,\n  bundling: {\n    minify: false,\n    target: 'node16',\n    externalModules: layer.packagedDependencies // don't bundle layer dependencies in lambda\n  },\n  layers: [layer.layerVersion] // use lambda layer\n};\n```\n\n## Contributing\n\nWe're happy to accept contributions! Please open an issue before sending a PR to discuss proposed changes.\n","readmeFilename":"README.md","keywords":["LayerVersion","aws","cdk","lambda","layer","npm"]}