UNPKG

@ghii/yaml-loader

Version:

A Funny yaml loader for ghii configuration manager

68 lines 2.8 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; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.yamlLoader = void 0; const js_yaml_1 = __importDefault(require("js-yaml")); const fs = __importStar(require("fs")); const util_1 = require("util"); const path_1 = __importDefault(require("path")); const stat = (0, util_1.promisify)(fs.stat); const readFile = (0, util_1.promisify)(fs.readFile); function yamlLoader({ throwOnError, logger = (err, message) => console.log(message, err), }, ...filePathToken) { const sourcePath = path_1.default.join(...filePathToken); if (!fs.existsSync(sourcePath)) { logger({ msg: 'not exist' }, `${sourcePath} 404`); if (throwOnError) throw new Error(`${sourcePath} 404`); } return async function yamlFileLoader() { try { const fstat = await stat(sourcePath); if (fstat.isFile()) { const yamlContent = await readFile(sourcePath, { encoding: 'utf8' }); return js_yaml_1.default.load(yamlContent); } const msg = `Source ${sourcePath} is not a file`; logger({ msg }, msg); if (throwOnError) { throw new Error(msg); } return {}; } catch (err) { const msg = `FILE DELETED OR A DIRECTORY-> ${sourcePath} 404: ${err instanceof Error ? err.message : ''}`; logger(err, msg); if (throwOnError) throw new Error(msg); return {}; } }; } exports.default = yamlLoader; exports.yamlLoader = yamlLoader; //# sourceMappingURL=yaml-loader.js.map