159 breaking releases
0.162.0 | May 30, 2024 |
---|---|
0.160.0 | May 2, 2024 |
0.153.0 | Mar 30, 2024 |
0.109.0 | Dec 31, 2023 |
0.82.0 | Nov 30, 2023 |
#35 in Template engine
83 downloads per month
750KB
9K
SLoC
cdk-from-cfn
In a world where people want to use the full extent of the cdk, there was no product that would transform all your JSON/YAML into beautiful typescript...until now.
cdk-from-cfn
will take your JSON/YAML and output the equivalent typescript.
User Guide
$ cargo build --release
$ ./target/release/cdk-from-cfn [INPUT] [OUTPUT]
INPUT
is the input file path (STDIN by default).OUTPUT
is the output file path; if not specified, output will be printed on your command line (STDOUT by default).
Cargo Features
Name | Enabled by default | Description |
---|---|---|
typescript |
✔️ | Enables support for TypeScript output |
golang |
✔️ | Enables support for Go output |
java |
✔️ | Enables support for Java output |
Python |
✔️ | Enables support for Python output |
csharp |
✔️ | Enables support for C# output |
You can enable experimental languages (not enabled by default) by enabling the relevant feature:
$ cargo build --release --features=<feature-name>
Finished release [optimized] target(s) in 0.17s
If you want to disable on-by-default languages, you can pass --no-default-features
:
$ cargo build --release --no-default-features --features=golang
Finished release [optimized] target(s) in 0.17s
Implemented
- Fn::FindInMap
- Fn::Join
- Fn::Sub
- Ref
- Fn::And
- Fn::Equals
- Fn::If
- Fn::Not
- Fn::Or
- Fn::GetAtt
- Fn::Base64 support
- Fn::ImportValue support
- Fn::Select support
- Resource ordering based on dependencies
- Conditions are emitted in ts but not attached to resource conditions
- Metadata emission for updates to asgs / lambda functions.
- Emission of outputs / exports
- Fn::GetAZs support
- Adding depends-on, and ordering based on it too.
- Deletion policy
- Fn::Cidr support
Remaining
There are known unsupported features. Working on them in priority order:
- Create policy
- ssm metadata references
- secretsmanager references
Dependencies
~11–15MB
~300K SLoC