UNPKG

@geek-fun/serverlessinsight

Version:

Full life cycle cross providers serverless application management for your fast-growing business.

41 lines (40 loc) 1.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseYaml = void 0; const node_fs_1 = require("node:fs"); const functionParser_1 = require("./functionParser"); const eventParser_1 = require("./eventParser"); const databaseParser_1 = require("./databaseParser"); const tagParser_1 = require("./tagParser"); const yaml_1 = require("yaml"); const validator_1 = require("../validator"); const bucketParser_1 = require("./bucketParser"); const tableParser_1 = require("./tableParser"); const validateExistence = (path) => { if (!(0, node_fs_1.existsSync)(path)) { throw new Error(`File does not exist at path: ${path}`); } }; const transformYaml = (iacJson) => { return { service: iacJson.service, version: iacJson.version, provider: iacJson.provider, vars: iacJson.vars, stages: iacJson.stages, functions: (0, functionParser_1.parseFunction)(iacJson.functions), events: (0, eventParser_1.parseEvent)(iacJson.events), databases: (0, databaseParser_1.parseDatabase)(iacJson.databases), tables: (0, tableParser_1.parseTable)(iacJson.tables), tags: (0, tagParser_1.parseTag)(iacJson.tags), buckets: (0, bucketParser_1.parseBucket)(iacJson.buckets), }; }; const parseYaml = (iacLocation) => { validateExistence(iacLocation); const yamlContent = (0, node_fs_1.readFileSync)(iacLocation, 'utf8'); const iacJson = (0, yaml_1.parse)(yamlContent); (0, validator_1.validateYaml)(iacJson); return transformYaml(iacJson); }; exports.parseYaml = parseYaml;