UNPKG

@sap/cf-tools

Version:
126 lines 4.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseRawDictData = exports.padQuerySpace = exports.getSpaceGuidThrowIfUndefined = exports.cfGetConfigFileField = exports.cfGetConfigFileJson = exports.isUpsType = exports.cfGetConfigFilePath = exports.getTags = exports.getOrgGUID = exports.getSpaceFieldGUID = exports.getDescription = exports.getLabel = exports.getName = exports.getGuid = exports.padQuery = exports.ensureQuery = exports.dataContentAsObject = void 0; const _ = require("lodash"); const os = require("os"); const fs = require("fs"); const path = require("path"); const comment_json_1 = require("comment-json"); const messages_1 = require("./messages"); const types_1 = require("./types"); async function dataContentAsObject(filePath) { try { return _.reduce(_.split(await fs.promises.readFile(filePath, { encoding: "utf8" }), os.EOL), (data, line) => { const parts = _.split(line, "="); if (_.size(parts) > 1) { data[_.trim(parts[0])] = _.trim(parts[1]); } return data; }, {}); } catch (error) { return {}; } } exports.dataContentAsObject = dataContentAsObject; function ensureQuery(query) { query = query || {}; _.defaults(query, { filters: [] }); _.defaults(query, { per_page: types_1.CF_PAGE_SIZE }); return query; } exports.ensureQuery = ensureQuery; function padQuery(query, otherFilters) { query = ensureQuery(query); _.each(otherFilters, (other) => { const filter = _.find(query.filters, ["key", other.key]); if (!_.size(filter === null || filter === void 0 ? void 0 : filter.value)) { query.filters = _.concat(query.filters, [other]); } }); return query; } exports.padQuery = padQuery; function getGuid(resource) { return _.get(resource, "guid", ""); } exports.getGuid = getGuid; function getName(resource) { return _.get(resource, "name", ""); } exports.getName = getName; function getLabel(resource) { return _.get(resource, "label", ""); } exports.getLabel = getLabel; function getDescription(resource) { return _.get(resource, "description", ""); } exports.getDescription = getDescription; function getSpaceFieldGUID(spaceField) { return _.get(spaceField, "GUID", ""); } exports.getSpaceFieldGUID = getSpaceFieldGUID; function getOrgGUID(resource) { return _.get(resource, ["relationships", "organization", "data", "guid"], ""); } exports.getOrgGUID = getOrgGUID; function getTags(resource) { return _.get(resource, "tags", []); } exports.getTags = getTags; function cfGetConfigFilePath(target) { const relatives = target ? ["targets", `${target}.config.json`] : [`config.json`]; return path.join(_.get(process, "env.CF_HOME", os.homedir()), ".cf", ...relatives); } exports.cfGetConfigFilePath = cfGetConfigFilePath; function isUpsType(resource) { return _.get(resource, "type", types_1.eServiceTypes.managed) === types_1.eServiceTypes.user_provided; } exports.isUpsType = isUpsType; async function cfGetConfigFileJson(target) { try { return (0, comment_json_1.parse)(await fs.promises.readFile(cfGetConfigFilePath(target), { encoding: "utf8" })); } catch (error) { } } exports.cfGetConfigFileJson = cfGetConfigFileJson; async function cfGetConfigFileField(field, target) { return _.get(await cfGetConfigFileJson(target), `${field}`); } exports.cfGetConfigFileField = cfGetConfigFileField; async function getSpaceGuidThrowIfUndefined() { const space = getSpaceFieldGUID(await cfGetConfigFileField("SpaceFields")); if (!space) { throw new Error(messages_1.messages.cf_setting_not_set); } return space; } exports.getSpaceGuidThrowIfUndefined = getSpaceGuidThrowIfUndefined; async function padQuerySpace(query, otherFilters) { query = padQuery(query, otherFilters); const filter = _.find(query.filters, ["key", types_1.eFilters.space_guids]); if (!_.size(filter === null || filter === void 0 ? void 0 : filter.value)) { query.filters = _.concat(query.filters, [ { key: types_1.eFilters.space_guids, value: await getSpaceGuidThrowIfUndefined() }, ]); } return query; } exports.padQuerySpace = padQuerySpace; function parseRawDictData(data) { const result = {}; _.each(_.compact(_.split(data, "\n")), (item) => { item = _.replace(_.trim(item), /^['"]|['"]$/g, ""); const sep = _.indexOf(item, ":"); if (sep > -1) { const key = _.toLower(_.trim(_.join(_.slice(item, 0, sep), ""))); const value = _.trim(_.join(_.slice(item, sep + 1), "")); result[`${key}`] = value; } }); return result; } exports.parseRawDictData = parseRawDictData; //# sourceMappingURL=utils.js.map