{"id":15292496,"url":"https://github.com/apexcaptain/cdktf-injector","last_synced_at":"2025-08-25T21:04:18.848Z","repository":{"id":36986932,"uuid":"463562079","full_name":"ApexCaptain/cdktf-injector","owner":"ApexCaptain","description":"Dependency Injection for CDKTF(Cloud Development Kit for Terraform) powered by projen.","archived":false,"fork":false,"pushed_at":"2024-02-12T03:37:35.000Z","size":3748,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-09T02:58:15.938Z","etag":null,"topics":["cdk","cdktf","dependency","dependency-injection","di","injection","injector","terraform"],"latest_commit_sha":null,"homepage":"https://apexcaptain.github.io/cdktf-injector/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ApexCaptain.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-25T14:26:29.000Z","updated_at":"2025-02-13T12:46:08.000Z","dependencies_parsed_at":"2025-04-08T18:43:43.143Z","dependency_job_id":null,"html_url":"https://github.com/ApexCaptain/cdktf-injector","commit_stats":{"total_commits":150,"total_committers":2,"mean_commits":75.0,"dds":0.48,"last_synced_commit":"ede8f529367e286c5e79f4abc882efb5811954bc"},"previous_names":[],"tags_count":140,"template":false,"template_full_name":null,"purl":"pkg:github/ApexCaptain/cdktf-injector","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ApexCaptain%2Fcdktf-injector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ApexCaptain%2Fcdktf-injector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ApexCaptain%2Fcdktf-injector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ApexCaptain%2Fcdktf-injector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ApexCaptain","download_url":"https://codeload.github.com/ApexCaptain/cdktf-injector/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ApexCaptain%2Fcdktf-injector/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272131793,"owners_count":24878986,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-25T02:00:12.092Z","response_time":1107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cdk","cdktf","dependency","dependency-injection","di","injection","injector","terraform"],"created_at":"2024-09-30T16:18:22.989Z","updated_at":"2025-08-25T21:04:18.821Z","avatar_url":"https://github.com/ApexCaptain.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- I.O Sheilds --\u003e\r\n\r\n[![npm version][npm-image]][npm-url]\r\n[![Release][release-image]][release-url]\r\n[![License][license-image]][license-url]\r\n\r\n# Dependency Injection for CDKTF\r\n\r\n`cdktf-injector` is a dependency injection library for [CDKTF][cdktf] ([AWS Cloud Development Kit][cdk] for [Terraform]).\r\n\r\nIf you are not familiar with [cdktf] and [terraform] yet or haven't heard of them before, this library may not be that so useful. That's totally cool, but I recommend you to have a look what they ([cdktf] and [terraform]) are or at least what's the concept of [IaC]. Those are really amazing.\r\n\r\n**There are two prerequisites for cdktf-injector**\r\n\r\n- [Terraform][terraform] - You need to install [terraform] on your dev env and it should be accessible on cli path. If you're using `devcontainer` you may paste following commands to your `Dockerfile`.\r\n\r\n  ```docker\r\n  ...\r\n\r\n  # Pass terraform version as an argument\r\n  ARG TERRAFORM_VERSION=1.1.7\r\n\r\n  # Install Terraform\r\n  RUN wget https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_amd64.zip \u0026\u0026 \\\r\n      unzip ./terraform_${TERRAFORM_VERSION}_linux_amd64.zip -d /usr/local/bin/ \u0026\u0026 \\\r\n      rm terraform_${TERRAFORM_VERSION}_linux_amd64.zip\r\n\r\n  ...\r\n  ```\r\n\r\n- [cdktf] - A library for defining [Terraform] resources using programming constructs. Click [here](https://github.com/hashicorp/terraform-cdk/blob/main/docs/getting-started/typescript.md) to get started. Or, simply type following lines.\r\n  ```sh\r\n  mkdir your-project-name\r\n  cd your-project-name\r\n  npx cdktf-cli init --template=\"typescript\" --local\r\n  ```\r\n  \u003cbr\u003e\r\n\r\n## Features\r\n\r\n- **No decorator**\r\n- **No need to declare custom classes**\r\n- **No need to explicitly write dependencies**\r\n\r\n\u003cbr\u003e\r\n\r\n## Installation\r\n\r\n### Using [npm](https://www.npmjs.com/)\r\n\r\n```sh\r\nnpm install cdktf-injector --save\r\n```\r\n\r\n### Using [yarn](https://yarnpkg.com/)\r\n\r\n```sh\r\nyarn add cdktf-injector\r\n```\r\n\r\n\u003e **Note** : [cdktf] supports multiple languages, such as `TypeScript`, `Python`, `Java`, `C#` and `Go`. Howerver according to [Typescript restriction of jsii](https://aws.github.io/jsii/user-guides/lib-author/typescript-restrictions/), which is I originally wanted to use to power my lib and what [cdktf] depends on, it does not allow using `Parameterized Types(aka: Generics)`. And as far as I know, there is no other decent way to implement dependency injection without using generic or decorator. In brief, `cdktf-injector` is currently availiable only in [Node.js](https://nodejs.org/ko/) env. I'm looking forward to making this lib supports multiple languages soon.\r\n\r\n\u003cbr\u003e\r\n\r\n## Documentation\r\n\r\n- ### [Necessity](https://github.com/ApexCaptain/cdktf-injector/blob/main/markdown/necessity.md)\r\n- ### [Examples](https://github.com/ApexCaptain/cdktf-injector/blob/main/markdown/examples.md)\r\n- ### [Cross-Stack References](https://github.com/ApexCaptain/cdktf-injector/blob/main/markdown/cross-stack-references.md)\r\n- ### [Dependency Issues](https://github.com/ApexCaptain/cdktf-injector/blob/main/markdown/dependency-issues.md)\r\n- ### [API](https://apexcaptain.github.io/cdktf-injector/)\r\n\r\n\u003c!-- External Links --\u003e\r\n\r\n[cdktf]: https://www.terraform.io/cdktf\r\n[cdk]: https://docs.aws.amazon.com/cdk/v2/guide/home.html\r\n[terraform]: https://www.terraform.io/\r\n[iac]: https://en.wikipedia.org/wiki/Infrastructure_as_code\r\n[aws]: https://aws.amazon.com/\r\n[hcl]: https://www.terraform.io/language/syntax/configuration\r\n\r\n\u003c!-- I.O Sheilds Links --\u003e\r\n\r\n[npm-image]: https://img.shields.io/npm/v/cdktf-injector.svg?color=CB0000\u0026label=npm\u0026style=plastic\u0026logo=npm\r\n[npm-url]: https://www.npmjs.com/package/cdktf-injector\r\n[release-image]: https://github.com/ApexCaptain/cdktf-injector/actions/workflows/release.yml/badge.svg\r\n[release-url]: https://github.com/ApexCaptain/cdktf-injector/actions/workflows/release.yml\r\n[license-image]: https://img.shields.io/github/license/ApexCaptain/cdktf-injector.svg?color=E2AC00\u0026label=License\u0026style=plastic\u0026logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAHSSURBVDiNpZLLa1NREMa%2FmXvzaG2lKDW2EdNqi6Ckxq5Kdy0UsnQTs1CrWxcidFPEnYumG%2FFfUHRloC5cBTU%2Bdi6Cr1QUYh9wqS3RWmqoNzf3zrgIN2DahkK%2B1Zw5v%2Flm5nCANkV%2BoC%2BiR6uQayHXeEBJa9N%2BdWKIHO85AGjQmApPWKVm5j%2BDWr5vxv1m3OOIQioE7hZImQEA3CuQP1zPrTOMM95McPLHfQBg32BuYXQxtxMtzOcTyY5pi7SHh7nfs7nfs%2FWwO9QxbdH8ywvJ3E60kFkY%2FeLXmX6wuNYzVdzoHFcJ3QWQC09YpUom9g4Aum6vft%2BLaUyQSl0dhKKUzWYdgqymL6ZPA0DgXC3uN9iPqa%2FgynU1nccAYDtdDz02rtSfmBor7sdQ9U0k%2Fmkpcicx8PO9z35YOZIYOVWew7b5tlY0PwbG7ZvF5d7Zkdjm52bGJJfHzsfKaVWkZYPhrRg4i22IBB0%2BJvVBXB6Ln%2Fx1WRXYxQQ49IgITwGq6V8CSEHdshZm45bf7SDMnqo%2Bi%2F6uZGKvWzHc6vIgatuAmhPV%2FPFLTDwIALKFlG7RkjGgBQAQleXQ5PqTlgZOvq8C4JB%2F9r42PiuU1Ou8YZnNNW3pH9Tv3ULkpzpnAAAAAElFTkSuQmCC\r\n[license-url]: https://github.com/ApexCaptain/cdktf-injector/blob/main/LICENSE\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapexcaptain%2Fcdktf-injector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapexcaptain%2Fcdktf-injector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapexcaptain%2Fcdktf-injector/lists"}