UNPKG

@grnsft/if

Version:

Impact Framework

71 lines 6.3 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.checkIfFileIsYaml = exports.saveYamlFileAs = exports.openYamlFileAsObject = void 0; const fs = __importStar(require("fs/promises")); const path = __importStar(require("path")); const YAML = __importStar(require("js-yaml")); const utils_1 = require("@grnsft/if-core/utils"); const { ReadFileError, WriteFileError } = utils_1.ERRORS; /** * Reads and parses `yaml` file to object. */ const openYamlFileAsObject = async (filePath) => { try { const yamlFileBuffer = await fs.readFile(filePath, 'utf8'); return YAML.load(yamlFileBuffer); } catch (error) { throw new ReadFileError(error.message); } }; exports.openYamlFileAsObject = openYamlFileAsObject; /** * Saves given `yaml` dump as a file. */ const saveYamlFileAs = async (object, pathToFile) => { try { const dirPath = path.dirname(pathToFile); await fs.mkdir(dirPath, { recursive: true }); const yamlString = YAML.dump(object, { noRefs: true }); return await fs.writeFile(pathToFile, yamlString); } catch (error) { throw new WriteFileError(error.message); } }; exports.saveYamlFileAs = saveYamlFileAs; /** * Checks if given `fileName` is yaml. */ const checkIfFileIsYaml = (fileName) => { const yamlFileTypes = ['yaml', 'yml']; const splittedParts = fileName.split('.'); const lastIndex = splittedParts.length - 1; const extension = splittedParts[lastIndex]; return yamlFileTypes.includes(extension); }; exports.checkIfFileIsYaml = checkIfFileIsYaml; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWFtbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vdXRpbC95YW1sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQWtDO0FBQ2xDLDJDQUE2QjtBQUU3Qiw4Q0FBZ0M7QUFDaEMsaURBQTZDO0FBRTdDLE1BQU0sRUFBQyxhQUFhLEVBQUUsY0FBYyxFQUFDLEdBQUcsY0FBTSxDQUFDO0FBRS9DOztHQUVHO0FBQ0ksTUFBTSxvQkFBb0IsR0FBRyxLQUFLLEVBQUssUUFBZ0IsRUFBYyxFQUFFO0lBQzVFLElBQUk7UUFDRixNQUFNLGNBQWMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQU0sQ0FBQztLQUN2QztJQUFDLE9BQU8sS0FBVSxFQUFFO1FBQ25CLE1BQU0sSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ3hDO0FBQ0gsQ0FBQyxDQUFDO0FBUlcsUUFBQSxvQkFBb0Isd0JBUS9CO0FBRUY7O0dBRUc7QUFDSSxNQUFNLGNBQWMsR0FBRyxLQUFLLEVBQUUsTUFBVyxFQUFFLFVBQWtCLEVBQUUsRUFBRTtJQUN0RSxJQUFJO1FBQ0YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDM0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUVyRCxPQUFPLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7S0FDbkQ7SUFBQyxPQUFPLEtBQVUsRUFBRTtRQUNuQixNQUFNLElBQUksY0FBYyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUN6QztBQUNILENBQUMsQ0FBQztBQVZXLFFBQUEsY0FBYyxrQkFVekI7QUFFRjs7R0FFRztBQUNJLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxRQUFnQixFQUFFLEVBQUU7SUFDcEQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEMsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQyxNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUMzQyxNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFM0MsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzNDLENBQUMsQ0FBQztBQVBXLFFBQUEsaUJBQWlCLHFCQU81QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzL3Byb21pc2VzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5cbmltcG9ydCAqIGFzIFlBTUwgZnJvbSAnanMteWFtbCc7XG5pbXBvcnQge0VSUk9SU30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3V0aWxzJztcblxuY29uc3Qge1JlYWRGaWxlRXJyb3IsIFdyaXRlRmlsZUVycm9yfSA9IEVSUk9SUztcblxuLyoqXG4gKiBSZWFkcyBhbmQgcGFyc2VzIGB5YW1sYCBmaWxlIHRvIG9iamVjdC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9wZW5ZYW1sRmlsZUFzT2JqZWN0ID0gYXN5bmMgPFQ+KGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPFQ+ID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB5YW1sRmlsZUJ1ZmZlciA9IGF3YWl0IGZzLnJlYWRGaWxlKGZpbGVQYXRoLCAndXRmOCcpO1xuXG4gICAgcmV0dXJuIFlBTUwubG9hZCh5YW1sRmlsZUJ1ZmZlcikgYXMgVDtcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIHRocm93IG5ldyBSZWFkRmlsZUVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICB9XG59O1xuXG4vKipcbiAqIFNhdmVzIGdpdmVuIGB5YW1sYCBkdW1wIGFzIGEgZmlsZS5cbiAqL1xuZXhwb3J0IGNvbnN0IHNhdmVZYW1sRmlsZUFzID0gYXN5bmMgKG9iamVjdDogYW55LCBwYXRoVG9GaWxlOiBzdHJpbmcpID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBkaXJQYXRoID0gcGF0aC5kaXJuYW1lKHBhdGhUb0ZpbGUpO1xuICAgIGF3YWl0IGZzLm1rZGlyKGRpclBhdGgsIHtyZWN1cnNpdmU6IHRydWV9KTtcbiAgICBjb25zdCB5YW1sU3RyaW5nID0gWUFNTC5kdW1wKG9iamVjdCwge25vUmVmczogdHJ1ZX0pO1xuXG4gICAgcmV0dXJuIGF3YWl0IGZzLndyaXRlRmlsZShwYXRoVG9GaWxlLCB5YW1sU3RyaW5nKTtcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIHRocm93IG5ldyBXcml0ZUZpbGVFcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgfVxufTtcblxuLyoqXG4gKiBDaGVja3MgaWYgZ2l2ZW4gYGZpbGVOYW1lYCBpcyB5YW1sLlxuICovXG5leHBvcnQgY29uc3QgY2hlY2tJZkZpbGVJc1lhbWwgPSAoZmlsZU5hbWU6IHN0cmluZykgPT4ge1xuICBjb25zdCB5YW1sRmlsZVR5cGVzID0gWyd5YW1sJywgJ3ltbCddO1xuICBjb25zdCBzcGxpdHRlZFBhcnRzID0gZmlsZU5hbWUuc3BsaXQoJy4nKTtcbiAgY29uc3QgbGFzdEluZGV4ID0gc3BsaXR0ZWRQYXJ0cy5sZW5ndGggLSAxO1xuICBjb25zdCBleHRlbnNpb24gPSBzcGxpdHRlZFBhcnRzW2xhc3RJbmRleF07XG5cbiAgcmV0dXJuIHlhbWxGaWxlVHlwZXMuaW5jbHVkZXMoZXh0ZW5zaW9uKTtcbn07XG4iXX0=