UNPKG

@jahed/terraform

Version:

A wrapper which downloads and runs Terraform locally via npm.

31 lines (30 loc) 1.28 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.extractArchive = extractArchive; const fflate_1 = __importDefault(require("fflate")); const promises_1 = __importDefault(require("node:fs/promises")); const node_path_1 = __importDefault(require("node:path")); const debug_1 = require("./debug"); async function extractArchive({ outputs, buffer, outdir, }) { (0, debug_1.debug)("extracting", { outdir }); const { [outputs.originalFilename]: fileContent } = await new Promise((resolve, reject) => { fflate_1.default.unzip(buffer, { filter: (file) => file.name === outputs.originalFilename, }, (error, unzipped) => { if (error) { reject(error); return; } resolve(unzipped); }); }); if (!fileContent) { throw new Error(`expected zip to contain a terraform executable. (${outputs.originalFilename})`); } const filePath = node_path_1.default.resolve(outdir, outputs.versionedFilename); await promises_1.default.writeFile(filePath, fileContent); return filePath; }