154 breaking releases

new 0.157.0 Apr 23, 2024
0.155.0 Apr 5, 2024
0.153.0 Mar 30, 2024
0.109.0 Dec 31, 2023
0.82.0 Nov 30, 2023

#22 in Template engine

Download history 34/week @ 2023-12-28 31/week @ 2024-01-04 39/week @ 2024-01-11 23/week @ 2024-02-01 25/week @ 2024-02-08 461/week @ 2024-02-15 990/week @ 2024-02-22 356/week @ 2024-02-29 656/week @ 2024-03-07 643/week @ 2024-03-14 400/week @ 2024-03-21 622/week @ 2024-03-28 337/week @ 2024-04-04 17/week @ 2024-04-11

1,540 downloads per month

MIT/Apache

745KB
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
~299K SLoC