Skip to content

A cloudformation json -> cdk typescript transpiler.

License

Notifications You must be signed in to change notification settings

iph/cdk-from-cfn

This branch is 3 commits ahead of, 169 commits behind cdklabs/cdk-from-cfn:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2c38114 · Nov 27, 2024
Nov 27, 2024
Jan 31, 2024
Nov 25, 2024
Nov 25, 2024
Jan 16, 2024
Apr 1, 2024
Nov 22, 2024
Nov 22, 2024
Sep 8, 2023
Sep 8, 2023
Apr 1, 2024
Nov 11, 2024

Repository files navigation

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

About

A cloudformation json -> cdk typescript transpiler.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 61.0%
  • Java 9.5%
  • C# 9.3%
  • Go 7.2%
  • TypeScript 6.6%
  • Python 6.3%
  • Shell 0.1%