UNPKG

package-xml

Version:

Build a Salesforce Package.xml file from a src directory

87 lines (82 loc) 2.58 kB
var fs = require('fs-extra') var metadata_map = require('./metadata_map.json') var _ = require('lodash') var _path = require('path') function getDirectoryContents(dir) { return new Promise(function (resolve, reject) { var contents = [] if (dir) { fs.walk(dir) .on('data', function (item) { contents.push(item) }) .on('end', function () { resolve(contents) }) .on('error', function (err) { throw err }) } else { resolve(contents) } }) } function getMetadataTypeNames() { return _.uniq(_.flatten(Object.keys(metadata_map).map(key => { return metadata_map[key].map(val => { return val.type }) }))).sort() } function getMetadataTypes() { return _.flatten(Object.keys(metadata_map).map(key => { metadata_map[key].forEach(i => { i.dir = key }) return metadata_map[key] })) } function getFilename(path, extension) { if (path && extension) { return path.substring(path.lastIndexOf(_path.sep) + 1, path.lastIndexOf(extension) - 1) } return '' } function getFolderAndFilename(path, extension, type) { if (path && extension) { var seperator = _path.sep + 'src' + _path.sep + type + _path.sep var start = path.indexOf(seperator) + seperator.length; var end = path.lastIndexOf(extension) - 1 if(end > start){ var ret = path.substring(start, end) ret = ret.replace(/\\/g, "/"); return ret } else { var ret = path.substring(start) ret = ret.replace(/\\/g, "/"); return ret } } return '' } function getFolderAndFilenameWithExt(path, type) { if (path) { var seperator = _path.sep + 'src' + _path.sep + type + _path.sep var start = path.indexOf(seperator) + seperator.length; var end = path.length var ret = path.substring(start, end) ret = ret.replace(/\\/g, "/"); return ret } return '' } function escape(str){ return /\\/.exec(str) ? str.replace(/\\/g, '\\\\') : str } module.exports = { escape: escape, getDirectoryContents: getDirectoryContents, getMetadataTypeNames: getMetadataTypeNames, getMetadataTypes: getMetadataTypes, getFilename: getFilename, getFolderAndFilename: getFolderAndFilename, getFolderAndFilenameWithExt: getFolderAndFilenameWithExt }