heat-sfdx-metadata
Version:
 [](https://badge.fury.io/js/heat-sfdx-metadata) [;
exports.extractMetadataTypes = void 0;
/**
* @name extract-metadata-types.ts
* @description extractMetadataTypes
*/
const heat_sfdx_common_1 = require("heat-sfdx-common");
const common_1 = require("../../common");
/**
* @name _getXmlName
*/
const _getXmlName = (object, folder) => {
if (folder) {
return common_1.METADATA_TYPE2FOLDER_MAP[object.xmlName];
}
else {
return object.xmlName;
}
};
/**
* @name _getChildXmlNames
*/
const _getChildXmlNames = (object, folder) => {
if (!object.childXmlNames) {
return [];
}
return object.childXmlNames;
};
/**
* @name _extractMetadataTypes
*/
const _extractMetadataTypes = (config, metadataObjects, path, inFolder, folder) => {
const objects = metadataObjects;
const metadataTypesObj = objects.filter((object) => inFolder === object.inFolder);
// xmlName
let metadataTypes = metadataTypesObj.map((object) => _getXmlName(object, folder));
metadataTypes.sort();
// childXmlNames
let childMetadataTypes = [];
if (config.child) {
metadataTypesObj.forEach((object) => {
childMetadataTypes = childMetadataTypes.concat(_getChildXmlNames(object, folder));
});
metadataTypes = metadataTypes.concat(childMetadataTypes);
metadataTypes.sort();
}
(0, heat_sfdx_common_1.writeFileSyncUtf8)(path, JSON.stringify(metadataTypes));
};
/**
* @name extractMetadataTypesNoFolder
* @description extractMetadataTypes (no folder)
*/
const extractMetadataTypesNoFolder = (metadataObjects, config) => {
_extractMetadataTypes(config, metadataObjects, config.metadataTypesNoFolder, false, false);
};
/**
* @name extractMetadataTypesFolder
* @description extractMetadataTypes (folder)
*/
const extractMetadataTypesFolder = (metadataObjects, config) => {
_extractMetadataTypes(config, metadataObjects, config.metadataTypesFolder, true, true);
};
/**
* @name extractMetadataTypesInFolder
* @description extractMetadataTypes (in folder)
*/
const extractMetadataTypesInFolder = (metadataObjects, config) => {
_extractMetadataTypes(config, metadataObjects, config.metadataTypesInFolder, true, false);
};
/**
* @name extractMetadataTypes
* @description extract metadataTypes from metadataObjects.
*/
const extractMetadataTypes = (metadataObjects, config) => {
// extractMetadataTypes (no folder)
extractMetadataTypesNoFolder(metadataObjects, config);
// extractMetadataTypes (folder)
extractMetadataTypesFolder(metadataObjects, config);
// extractMetadataTypes (in folder)
extractMetadataTypesInFolder(metadataObjects, config);
};
exports.extractMetadataTypes = extractMetadataTypes;
//# sourceMappingURL=extract-metadata-types.js.map