# @evops/hcl-terraform-parser

> HLC parser for Terraform HLC modules

Latest version **1.0.0** (published 2020-12-22) · MIT license · 0 weekly downloads

## Install

```sh
npm install @evops/hcl-terraform-parser
pnpm add @evops/hcl-terraform-parser
yarn add @evops/hcl-terraform-parser
bun add @evops/hcl-terraform-parser
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2020-12-22 |
| First published | 2020-12-22 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 6 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 6 |
| Author | Stanislaw Wozniak |
| Maintainers | swozniak-evops |
| Keywords | terraform, hlc, parser |

## Links

- npm: https://www.npmjs.com/package/@evops/hcl-terraform-parser
- Repository: https://github.com/eu-evops/terraform-hcl-parser-node
- Homepage: https://github.com/eu-evops/terraform-hcl-parser-node#readme
- Issues: https://github.com/eu-evops/terraform-hcl-parser-node/issues
- npm.io page: https://npm.io/package/@evops/hcl-terraform-parser

## Alternatives

- [babylon](https://npm.io/package/babylon.md) — 5.1M weekly downloads
- [csscolorparser](https://npm.io/package/csscolorparser.md) — 3.7M weekly downloads
- [expr-eval-fork](https://npm.io/package/expr-eval-fork.md) — 1.5M weekly downloads
- [@leeoniya/ufuzzy](https://npm.io/package/@leeoniya/ufuzzy.md) — 247.7K weekly downloads
- [xml-parser](https://npm.io/package/xml-parser.md) — 78.4K weekly downloads

## Recent versions

- 1.0.0 (latest) — 2020-12-22

## README

![Go](https://github.com/eu-evops/terraform-hcl-terraform-parser-node/workflows/Go/badge.svg)

# Terraform HCL Parser for Node.js

Using gopherjs to transpile Hashicorp's HCL into javascript.

Inspired by [anhldbk/hcl-parser](https://github.com/anhldbk/hcl-parser)

# Usage

```javascript
const fs = require('fs');
const parser = require('@evops/hcl-terraform-parser');

const content = fs.readFileSync('main.tf');
const hclFile = parser.parse(content);

```

`hclFile` is a JSON object with following structure:

```javascript
{
  path: '<virtual>',
  variables: {
    test: {
      name: 'test',
      default: 'Default value',
      required: false,
      pos: [Object]
    }
  },
  outputs: { test: { name: 'test', pos: [Object] } },
  required_providers: { test: { version_constraints: [Array] } },
  provider_configs: { test: { name: 'test' } },
  managed_resources: {
    'test_resource.test': {
      mode: 'managed',
      type: 'test_resource',
      name: 'test',
      provider: [Object],
      pos: [Object]
    }
  },
  data_resources: {
    'data.test_data.test': {
      mode: 'data',
      type: 'test_data',
      name: 'test',
      provider: [Object],
      pos: [Object]
    }
  },
  module_calls: {
    storage: { name: 'storage', source: './modules/storage', pos: [Object] }
  }
}
```


Credits:
* Fabian Ponce [FabianPonce](https://github.com/FabianPonce) for recommending `terraform-config-inspect`

---
_Source: https://npm.io/package/@evops/hcl-terraform-parser · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
