Skip to content

fearphage/hcl2-parser

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HCL v2 parser for JS

This is a HCL version 2 parser for JavaScript, there are several other JS parsers for HCL but none that support the newer HCL v2 syntax

It wraps the very helpful tmccombs/hcl2json and calls the convert package in order to parse HCL input strings to JSON strings. The Go code in parser.go is converted to JS using GopherJS

TypeScript definitions are included

Reference

The module exports the following functions:

function parseToString(input: string): string
function parseToObject(input: string): any

Usage

Install as normal with NPM

npm install hcl2-parser

Importing into your project

// Good old fashioned Node.js CommonJS require
const hcl = require("hcl2-parser")

// Import with ES6 or TypeScript
import * as hcl = from "hcl2-parser"

Simple example of usage

const hcl = require("hcl2-parser")

const hclString = `
# Create a resource group
variable "azureRegion" {
  type = string
  default = "uksouth"
}
resource "azurerm_resource_group" "example" {
  name     = "example-resources"
  location = var.azureRegion
}
`

// Parse into a JSON string
stringResult = hcl.parseToString(hclString)
console.log(stringResult)

// Parse into an object, the actual result is in array index 0 for reasons I don't understand
objectResult = hcl.parseToObject(hclString)
console.log(objectResult[0].resource.azurerm_resource_group)

About

HCLv2 parser for JavaScript

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • JavaScript 42.3%
  • Go 34.6%
  • Dockerfile 20.7%
  • Shell 2.4%