UNPKG

heat-sfdx-metadata

Version:

![MIT License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat) [![npm version](https://badge.fury.io/js/heat-sfdx-metadata.svg)](https://badge.fury.io/js/heat-sfdx-metadata) [![Code Climate](https://codeclimate.com/github/takahitomiyamoto/hea

195 lines 8.47 kB
"use strict"; 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 __asyncValues = (this && this.__asyncValues) || function (o) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var m = o[Symbol.asyncIterator], i; return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } }; Object.defineProperty(exports, "__esModule", { value: true }); exports.callListMetadata = callListMetadata; /** * @name call-list-metadata.ts * @description callListMetadata */ const heat_sfdx_common_1 = require("heat-sfdx-common"); const utility_calls_1 = require("../../utility-calls"); const common_1 = require("../../common"); /** * @name _getMetadataTypeMembers */ const _getMetadataTypeMembers = (config, path) => { if (!(0, heat_sfdx_common_1.existsSync)(path)) { if (config.verbose) { console.info(`----- NO FILE: ${path}`); } return ['']; } const resultString = (0, heat_sfdx_common_1.readFileSyncUtf8)(path); const result = JSON.parse(resultString); const members = result.members; members.sort(); return members; }; /** * @name _getOutput */ const _getOutput = (folder, prefix, metadataType) => { return folder ? `${prefix}.${metadataType}.${folder}.json` : `${prefix}.${metadataType}.json`; }; /** * @name _storeMetadataTypeMembers */ const _storeMetadataTypeMembers = (config, path, metadataType, folder) => { const listMetadataString = (0, heat_sfdx_common_1.readFileSyncUtf8)(path); const listMetadataObj = JSON.parse(listMetadataString); const listMetadataObjResult = listMetadataObj.result.filter((member) => { return config.manageableStates.includes(member.manageableState); }); const fullNames = listMetadataObjResult.map((member) => { return member.fullName; }); if (0 === fullNames.length) { return; } fullNames.sort(); const name = []; name.push(metadataType); const metadataTypeMembers = { members: fullNames, name: name }; const output = _getOutput(folder, config.prefix.metadataTypeMembers, metadataType); (0, heat_sfdx_common_1.writeFileSyncUtf8)(output, JSON.stringify(metadataTypeMembers)); if (config.verbose) { console.info(output); } }; const _listMetadataInclude = (authorization, config) => { const metadataTypeMembers = config.include[config.metadataType]; const result = metadataTypeMembers.map((m) => { return { fullName: m, type: config.metadataType }; }); return JSON.stringify({ result: result }); }; /** * @name _listMetadata */ function _listMetadata(authorization, config, metadataType, folder) { return __awaiter(this, void 0, void 0, function* () { var _a; const _config = { metadataType: metadataType, folder: folder, asOfVersion: config.asOfVersion, include: config.include, exclude: config.exclude }; const includeKey = _config.include ? Object.keys(_config.include) : []; let listMetadataResult = (includeKey === null || includeKey === void 0 ? void 0 : includeKey.includes(metadataType)) ? _listMetadataInclude(authorization, _config) : yield (0, utility_calls_1.listMetadata)(authorization, _config); if (null === JSON.parse(listMetadataResult)) { const noDataMetadataType = folder ? `${metadataType} - ${folder}` : metadataType; if (config.verbose) { console.info(`----- NO DATA: ${noDataMetadataType}`); } } else { const output = _getOutput(folder, config.prefix.listMetadata, metadataType); const excludeKey = _config.exclude ? Object.keys(_config.exclude) : []; const metadataTypeMembersExclude = _config.exclude[metadataType]; if (excludeKey.includes(metadataType)) { const resultArray = (_a = JSON.parse(listMetadataResult)) === null || _a === void 0 ? void 0 : _a.result; const listMetadataResultArray = resultArray.filter((r) => { return !metadataTypeMembersExclude.includes(r.fullName); }); listMetadataResult = JSON.stringify({ result: listMetadataResultArray }); } (0, heat_sfdx_common_1.writeFileSyncUtf8)(output, listMetadataResult); if (config.verbose) { console.info(output); } _storeMetadataTypeMembers(config, output, metadataType, folder); } }); } /** * @name _repeatListMetadata */ function _repeatListMetadata(authorization, config, input, inFolder) { return __awaiter(this, void 0, void 0, function* () { var _a, e_1, _b, _c, _d, e_2, _e, _f; const metadataTypesString = (0, heat_sfdx_common_1.readFileSyncUtf8)(input); const metadataTypes = JSON.parse(metadataTypesString); try { for (var _g = true, metadataTypes_1 = __asyncValues(metadataTypes), metadataTypes_1_1; metadataTypes_1_1 = yield metadataTypes_1.next(), _a = metadataTypes_1_1.done, !_a; _g = true) { _c = metadataTypes_1_1.value; _g = false; let metadataType = _c; let folders = []; if (inFolder) { folders = _getMetadataTypeMembers(config, `${config.prefix.metadataTypeMembers}.${common_1.METADATA_TYPE2FOLDER_MAP[metadataType]}.json`); } else { folders.push(''); } try { for (var _h = true, folders_1 = (e_2 = void 0, __asyncValues(folders)), folders_1_1; folders_1_1 = yield folders_1.next(), _d = folders_1_1.done, !_d; _h = true) { _f = folders_1_1.value; _h = false; let folder = _f; yield _listMetadata(authorization, config, metadataType, folder); } } catch (e_2_1) { e_2 = { error: e_2_1 }; } finally { try { if (!_h && !_d && (_e = folders_1.return)) yield _e.call(folders_1); } finally { if (e_2) throw e_2.error; } } } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (!_g && !_a && (_b = metadataTypes_1.return)) yield _b.call(metadataTypes_1); } finally { if (e_1) throw e_1.error; } } }); } /** * @name callListMetadata * @description call listMetadata() and xxx */ function callListMetadata(authorization, config) { return __awaiter(this, void 0, void 0, function* () { // listMetadata (no folder) yield _repeatListMetadata(authorization, config, config.metadataTypesNoFolder, false); // listMetadata (folder) yield _repeatListMetadata(authorization, config, config.metadataTypesFolder, false); // listMetadata (in folder) yield _repeatListMetadata(authorization, config, config.metadataTypesInFolder, true); }); } //# sourceMappingURL=call-list-metadata.js.map