UNPKG

steadybit

Version:

Command-line interface to interact with the Steadybit API

84 lines 3.93 kB
"use strict"; // SPDX-License-Identifier: MIT // SPDX-FileCopyrightText: 2022 Steadybit GmbH var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.resolveExperimentFiles = resolveExperimentFiles; exports.writeYamlFile = writeYamlFile; exports.loadExperiment = loadExperiment; const promises_1 = __importDefault(require("fs/promises")); const js_yaml_1 = __importDefault(require("js-yaml")); const errors_1 = require("../errors"); const path_1 = __importDefault(require("path")); function resolveExperimentFiles(files, recursive) { return __awaiter(this, void 0, void 0, function* () { const results = []; for (const file of files) { try { const stat = yield promises_1.default.stat(file); if (stat.isDirectory()) { const subDirectories = []; for (const entry of yield promises_1.default.readdir(file, { withFileTypes: true })) { if (entry.isDirectory()) { subDirectories.push(path_1.default.join(file, entry.name)); } else if (entry.isFile() && (entry.name.toLowerCase().endsWith('.yaml') || entry.name.toLowerCase().endsWith('.yml'))) { results.push(path_1.default.join(file, entry.name)); } } if (recursive && subDirectories.length > 0) { results.push(...(yield resolveExperimentFiles(subDirectories, recursive))); } } else { results.push(file); } } catch (e) { if (e.code === 'ENOENT') { throw (0, errors_1.abortExecution)(`File or directory '${file}' not found.`); } else { throw e; } } } return results; }); } function writeYamlFile(file, content) { return __awaiter(this, void 0, void 0, function* () { yield promises_1.default.writeFile(file, js_yaml_1.default.dump(content), { encoding: 'utf8' }); }); } function loadExperiment(file) { return __awaiter(this, void 0, void 0, function* () { var _a, _b; let fileContent; try { fileContent = yield promises_1.default.readFile(file, { encoding: 'utf8' }); } catch (e) { throw (0, errors_1.abortExecution)("Failed to read experiment file at path '%s': %s", file, (_a = e === null || e === void 0 ? void 0 : e.message) !== null && _a !== void 0 ? _a : 'Unknown Cause'); } try { return js_yaml_1.default.load(fileContent); } catch (e) { throw (0, errors_1.abortExecution)("Failed to parse experiment file at path '%s' as YAML/JSON: %s", file, (_b = e === null || e === void 0 ? void 0 : e.message) !== null && _b !== void 0 ? _b : 'Unknown Cause'); } }); } //# sourceMappingURL=files.js.map