terraform-generator
Advanced tools
Comparing version 3.1.0 to 3.2.0
import { TerraformVersion, Attribute, Argument } from '..'; | ||
import { ArgumentsToStringFn } from '../TerraformGeneratorUtils'; | ||
export default abstract class Block { | ||
@@ -6,2 +7,3 @@ readonly blockType: string; | ||
private readonly arguments; | ||
private readonly customArgumentToString; | ||
/** | ||
@@ -14,3 +16,3 @@ * Construct block. | ||
*/ | ||
constructor(type: string, names: string[], args?: Record<string, any>); | ||
constructor(type: string, names: string[], args?: Record<string, any>, customArgumentToString?: ArgumentsToStringFn); | ||
/** | ||
@@ -17,0 +19,0 @@ * Get arguments. |
@@ -15,3 +15,3 @@ "use strict"; | ||
*/ | ||
constructor(type, names, args) { | ||
constructor(type, names, args, customArgumentToString) { | ||
this.validateIdentifier(type); | ||
@@ -24,2 +24,3 @@ names.forEach(name => { | ||
this.arguments = args ? args : {}; | ||
this.customArgumentToString = customArgumentToString; | ||
} | ||
@@ -81,3 +82,3 @@ /** | ||
str += '{\n'; | ||
str += TerraformGeneratorUtils_1.default.argumentsToString(version, this.arguments); | ||
str += TerraformGeneratorUtils_1.default.argumentsToString(version, this.arguments, this.customArgumentToString); | ||
str += '}\n\n'; | ||
@@ -84,0 +85,0 @@ return str; |
"use strict"; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const __1 = require(".."); | ||
const TerraformGeneratorUtils_1 = __importDefault(require("../TerraformGeneratorUtils")); | ||
class Variable extends __1.Block { | ||
@@ -13,3 +17,10 @@ /** | ||
constructor(name, args) { | ||
super('variable', [name], args); | ||
super('variable', [name], args, (version, key, value) => { | ||
if (version === '0.12' && key === 'type' && typeof value === 'string') { | ||
return `${key} = ${value}\n`; | ||
} | ||
else { | ||
return TerraformGeneratorUtils_1.default.argumentToString(version, key, value); | ||
} | ||
}); | ||
this.name = name; | ||
@@ -16,0 +27,0 @@ } |
import { TerraformVersion } from '.'; | ||
export declare type ArgumentsToStringFn = (version: TerraformVersion, key: string, value: any) => string; | ||
export default class TerraformGeneratorUtils { | ||
static argumentsToString(version: TerraformVersion, args: Record<string, any>): string; | ||
static argumentsToString(version: TerraformVersion, args: Record<string, any>, customArgumentToString?: ArgumentsToStringFn): string; | ||
static isObjectArgument(value: any): boolean; | ||
@@ -5,0 +6,0 @@ static argumentToString(version: TerraformVersion, key: string, value: any): string; |
@@ -5,6 +5,11 @@ "use strict"; | ||
class TerraformGeneratorUtils { | ||
static argumentsToString(version, args) { | ||
static argumentsToString(version, args, customArgumentToString) { | ||
let str = ''; | ||
for (const key in args) { | ||
str += this.argumentToString(version, key, args[key]); | ||
if (customArgumentToString) { | ||
str += customArgumentToString(version, key, args[key]); | ||
} | ||
else { | ||
str += this.argumentToString(version, key, args[key]); | ||
} | ||
} | ||
@@ -11,0 +16,0 @@ return str; |
{ | ||
"name": "terraform-generator", | ||
"version": "3.1.0", | ||
"version": "3.2.0", | ||
"author": "Chang Zhe Jiet", | ||
@@ -5,0 +5,0 @@ "description": "Generate Terraform configurations with Node.js.", |
49672
1264