@flxbl-io/sfp
Version:
sfp is a CLI tool to help you manage your Salesforce projects in an artifact centric model
177 lines • 14.3 kB
JavaScript
;
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;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.PROFILE_PERMISSIONSET_EXTENSION = exports.UNSPLITED_METADATA = exports.METADATA_INFO = exports.MetadataInfo = exports.SOURCE_EXTENSION_REGEX = void 0;
//TODO: Replace with SDR
const _ = __importStar(require("lodash"));
const path = __importStar(require("path"));
const fs = __importStar(require("fs-extra"));
exports.SOURCE_EXTENSION_REGEX = /\.[a-zA-Z]+-meta\.xml/;
const SPLITED_TYPES = {
CustomField: {
suffix: 'field',
folder: 'fields',
},
BusinessProcess: {
suffix: 'businessProcess',
folder: 'businessProcesses',
},
CompactLayout: {
suffix: 'compactLayout',
folder: 'compactLayouts',
},
FieldSet: {
suffix: 'fieldSet',
folder: 'fieldSets',
},
RecordType: {
suffix: 'recordType',
folder: 'recordTypes',
},
ListView: {
suffix: 'listView',
folder: 'listViews',
},
SharingReason: {
suffix: 'sharingReason',
folder: 'sharingReasons',
},
ValidationRule: {
suffix: 'validationRule',
folder: 'validationRules',
},
WebLink: {
suffix: 'webLink',
folder: 'webLinks',
},
};
class MetadataInfo {
static loadMetadataInfo() {
let metadataInfo = {};
let resourcePath = path.join(__dirname, '..', '..', '..', 'resources', 'metadatainfo.json');
const fileData = fs.readFileSync(resourcePath, 'utf8');
let metadataInfoJSON = JSON.parse(fileData);
metadataInfoJSON.metadataObjects.forEach((metadata) => {
let metadataDescribe = metadata;
if (_.isNil(metadata.suffix)) {
if (metadata.xmlName === 'AuraDefinitionBundle') {
metadata.suffix = 'cmp';
metadataDescribe.suffix = 'cmp';
}
else if (metadata.xmlName == 'LightningComponentBundle') {
metadata.suffix = 'js';
metadataDescribe.suffix = 'js';
}
}
metadataDescribe.sourceExtension = `.${metadata.suffix}-meta.xml`;
if (metadata.inFolder) {
let folderExtensionPrefix = metadata.suffix;
if (_.isNil(metadata.suffix)) {
folderExtensionPrefix = metadata.xmlName.charAt(0).toLowerCase + metadata.xmlName.slice(1);
}
metadataDescribe.folderExtension = `.${folderExtensionPrefix}Folder-meta.xml`;
}
//Generate Describe of cheildItems if exists
if (!_.isNil(metadata.childXmlNames)) {
metadata.childXmlNames.forEach((element) => {
let splitedElement = SPLITED_TYPES[element];
if (!_.isNil(splitedElement)) {
let childDescribe = {};
childDescribe.directoryName = SPLITED_TYPES[element].folder;
childDescribe.suffix = SPLITED_TYPES[element].suffix;
childDescribe.xmlName = element;
childDescribe.inFolder = false;
childDescribe.metaFile = false;
childDescribe.isChildComponent = true;
childDescribe.sourceExtension = `.${SPLITED_TYPES[element].suffix}-meta.xml`;
metadataInfo[childDescribe.xmlName] = childDescribe;
}
});
}
metadataInfo[metadataDescribe.xmlName] = metadataDescribe;
});
return metadataInfo;
}
static getMetadataName(metadataFile, validateSourceExtension = true) {
let matcher = metadataFile.match(exports.SOURCE_EXTENSION_REGEX);
let extension = '';
if (matcher) {
extension = matcher[0];
}
else {
extension = path.parse(metadataFile).ext;
}
//SfPowerKit.ux.log(extension);
let metadataName = '';
const auraRegExp = new RegExp('aura');
const lwcRegExp = new RegExp('lwc');
const staticResourceRegExp = new RegExp('staticresources');
const experienceBundleRegExp = new RegExp('experiences');
const documentRegExp = new RegExp('documents');
if (auraRegExp.test(metadataFile) && (exports.SOURCE_EXTENSION_REGEX.test(metadataFile) || !validateSourceExtension)) {
metadataName = exports.METADATA_INFO.AuraDefinitionBundle.xmlName;
}
else if (lwcRegExp.test(metadataFile) &&
(exports.SOURCE_EXTENSION_REGEX.test(metadataFile) || !validateSourceExtension)) {
metadataName = exports.METADATA_INFO.LightningComponentBundle.xmlName;
}
else if (staticResourceRegExp.test(metadataFile) &&
(exports.SOURCE_EXTENSION_REGEX.test(metadataFile) || !validateSourceExtension)) {
metadataName = exports.METADATA_INFO.StaticResource.xmlName;
}
else if (experienceBundleRegExp.test(metadataFile) &&
(exports.SOURCE_EXTENSION_REGEX.test(metadataFile) || !validateSourceExtension)) {
metadataName = exports.METADATA_INFO.ExperienceBundle.xmlName;
}
else if (documentRegExp.test(metadataFile) &&
(exports.SOURCE_EXTENSION_REGEX.test(metadataFile) || !validateSourceExtension)) {
metadataName = exports.METADATA_INFO.Document.xmlName;
}
else {
let keys = Object.keys(exports.METADATA_INFO);
for (let i = 0; i < keys.length; i++) {
let metaDescribe = exports.METADATA_INFO[keys[i]];
if (metaDescribe.sourceExtension === extension ||
('.' + metaDescribe.suffix === extension && !validateSourceExtension) ||
metaDescribe.folderExtension === extension) {
metadataName = metaDescribe.xmlName;
break;
}
}
}
return metadataName;
}
}
exports.MetadataInfo = MetadataInfo;
exports.METADATA_INFO = MetadataInfo.loadMetadataInfo();
exports.UNSPLITED_METADATA = [
exports.METADATA_INFO.Workflow,
exports.METADATA_INFO.SharingRules,
exports.METADATA_INFO.CustomLabels,
exports.METADATA_INFO.Profile,
exports.METADATA_INFO.PermissionSet,
];
exports.PROFILE_PERMISSIONSET_EXTENSION = [exports.METADATA_INFO.Profile, exports.METADATA_INFO.PermissionSet];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0YWRhdGFJbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvcmUvbWV0YWRhdGEvTWV0YWRhdGFJbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0JBQXdCO0FBQ3hCLDBDQUE0QjtBQUM1QiwyQ0FBNkI7QUFDN0IsNkNBQStCO0FBRWxCLFFBQUEsc0JBQXNCLEdBQUcsdUJBQXVCLENBQUM7QUFDOUQsTUFBTSxhQUFhLEdBQUc7SUFDbEIsV0FBVyxFQUFFO1FBQ1QsTUFBTSxFQUFFLE9BQU87UUFDZixNQUFNLEVBQUUsUUFBUTtLQUNuQjtJQUNELGVBQWUsRUFBRTtRQUNiLE1BQU0sRUFBRSxpQkFBaUI7UUFDekIsTUFBTSxFQUFFLG1CQUFtQjtLQUM5QjtJQUNELGFBQWEsRUFBRTtRQUNYLE1BQU0sRUFBRSxlQUFlO1FBQ3ZCLE1BQU0sRUFBRSxnQkFBZ0I7S0FDM0I7SUFDRCxRQUFRLEVBQUU7UUFDTixNQUFNLEVBQUUsVUFBVTtRQUNsQixNQUFNLEVBQUUsV0FBVztLQUN0QjtJQUNELFVBQVUsRUFBRTtRQUNSLE1BQU0sRUFBRSxZQUFZO1FBQ3BCLE1BQU0sRUFBRSxhQUFhO0tBQ3hCO0lBQ0QsUUFBUSxFQUFFO1FBQ04sTUFBTSxFQUFFLFVBQVU7UUFDbEIsTUFBTSxFQUFFLFdBQVc7S0FDdEI7SUFDRCxhQUFhLEVBQUU7UUFDWCxNQUFNLEVBQUUsZUFBZTtRQUN2QixNQUFNLEVBQUUsZ0JBQWdCO0tBQzNCO0lBQ0QsY0FBYyxFQUFFO1FBQ1osTUFBTSxFQUFFLGdCQUFnQjtRQUN4QixNQUFNLEVBQUUsaUJBQWlCO0tBQzVCO0lBQ0QsT0FBTyxFQUFFO1FBQ0wsTUFBTSxFQUFFLFNBQVM7UUFDakIsTUFBTSxFQUFFLFVBQVU7S0FDckI7Q0FDSixDQUFDO0FBeURGLE1BQWEsWUFBWTtJQUNyQixNQUFNLENBQUMsZ0JBQWdCO1FBQ25CLElBQUksWUFB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