HCL2JSON
This is a WebAssembly wrapper for https://github.com/tmccombs/hcl2json
Usage
yarn add @cdktf/hcl2json
Parse HCL strings
import { parse } from '@cdktf/hcl2json'
const hcl = `
variable "name" {
description = "Name to be used on all the resources as identifier"
type = string
default = ""
}
`
(async () => {
const json = await parse('my-filename.tf', hcl)
console.log(json)
})()
{
"variable": {
"name": [
{
"default": "",
"description": "Name to be used on all the resources as identifier",
"type": "${string}"
}
]
}
}
Parse an entire directory
import { convertFiles } from "@cdktf/hcl2json";
(async () => {
const json = await convertFiles("/your/terraform/code");
console.log(json);
})();
Parse an expression
import { getReferencesInExpression } from "@cdktf/hcl2json";
(async () => {
const variables = await getReferencesInExpression(
"main.tf",
"This is a ${var.input} embedded"
);
console.log(variables);
})();
Development
With yarn build
a Typescript compile is triggered and a Go build with a WASM target is performed.