package-xml
Advanced tools
Comparing version 1.1.1 to 1.2.0
12
index.js
@@ -31,6 +31,14 @@ #!/usr/bin/env node | ||
}) | ||
.option('m', { | ||
alias: 'managed', | ||
demand: false, | ||
default: false, | ||
describe: 'Include Managed Package Fields.', | ||
type: 'boolean' | ||
}) | ||
.argv | ||
require('./js/packageXmlGenerator')(argv.dir, argv.version, argv.name).then(markup => { | ||
var start = Date.now() | ||
require('./js/packageXmlGenerator')(argv.dir, argv.version, argv.name, argv.managed).then(markup => { | ||
return fs.outputFile(getPath(argv), markup, (err) => { | ||
console.log('Package.xml generated in ' + (Date.now() - start) + 'ms') | ||
if (err) console.log(err) | ||
@@ -37,0 +45,0 @@ }); |
var parsers = require('./parsers') | ||
var _ = require('lodash') | ||
module.exports = function getMembers(type, contents, types) { | ||
module.exports = function getMembers(type, contents, types, managed) { | ||
return _.chain( | ||
types.filter(metadata => metadata.type === type) | ||
.map(metadata => { | ||
return parsers[metadata.class](metadata, contents) | ||
return parsers[metadata.class](metadata, contents, managed) | ||
})).flatten().uniq().value() | ||
} |
@@ -8,4 +8,4 @@ var xml = require('libxmljs') | ||
module.exports = function (path, api_version, package_name) { | ||
module.exports = function (path, api_version, package_name, managed) { | ||
self.managed = managed | ||
// Get/Set path and insure it actually exists | ||
@@ -41,3 +41,3 @@ try { | ||
} catch (error) { | ||
self.api_version = "37.0" | ||
self.api_version = '37.0' | ||
} | ||
@@ -74,3 +74,3 @@ } | ||
utils.getMetadataTypeNames().forEach(function (type) { | ||
var members = require('./members')(type, contents, metadata) | ||
var members = require('./members')(type, contents, metadata, self.managed) | ||
if (members.length > 0) { | ||
@@ -77,0 +77,0 @@ // Generate the XML and add it to the thing |
@@ -39,4 +39,4 @@ const xml = require('libxmljs') | ||
} | ||
function isCustomObjectMatch(file, metadata) { | ||
return !isManagedObjectFilter(file) && isCustomObjectFilter(file) && isFileExtensionMatch(file, metadata) | ||
function isCustomObjectMatch(file, metadata, managed) { | ||
return (managed || !isManagedObjectFilter(file)) && isCustomObjectFilter(file) && isFileExtensionMatch(file, metadata) | ||
} | ||
@@ -97,10 +97,10 @@ // ==================================================================================================== | ||
} | ||
function getFileAndElement(file, metadata) { | ||
function getFileAndElement(file, metadata, managed) { | ||
return getXmlElements(file, metadata) | ||
.filter(e => unmanagedElementFilter(e)) | ||
.filter(e => managed ? true : unmanagedElementFilter(e)) | ||
.map(element => getFileAndElementName(file, metadata, element)) | ||
} | ||
function getElement(file, metadata) { | ||
function getElement(file, metadata, managed) { | ||
return getXmlElements(file, metadata) | ||
.filter(e => unmanagedElementFilter(e)) | ||
.filter(e => managed ? true : unmanagedElementFilter(e)) | ||
.map(element => element.text()) | ||
@@ -116,3 +116,3 @@ } | ||
} | ||
function MetadataFilenameParser(metadata, contents) { | ||
function MetadataFilenameParser(metadata, contents, managed) { | ||
return contents | ||
@@ -122,3 +122,3 @@ .filter(file => isBaseMatch(file, metadata)) | ||
} | ||
function MetadataFolderParser(metadata, contents) { | ||
function MetadataFolderParser(metadata, contents, managed) { | ||
return contents | ||
@@ -128,9 +128,9 @@ .filter(file => isFolderMatch(file, metadata)) | ||
} | ||
function MetadataXmlElementParser(metadata, contents) { | ||
function MetadataXmlElementParser(metadata, contents, managed) { | ||
return contents | ||
.filter(file => isMetadataXmlMatch(file, metadata)) | ||
.map(file => getFileAndElement(file, metadata)) | ||
.map(file => getFileAndElement(file, metadata, managed)) | ||
.reduce(merge, []) | ||
} | ||
function CustomLabelsParser(metadata, contents) { | ||
function CustomLabelsParser(metadata, contents, managed) { | ||
return contents | ||
@@ -141,11 +141,11 @@ .filter(file => isMetadataXmlMatch(file, metadata)) | ||
} | ||
function CustomObjectParser(metadata, contents) { | ||
function CustomObjectParser(metadata, contents, managed) { | ||
return contents | ||
.filter(file => isCustomObjectMatch(file, metadata)) | ||
.filter(file => isCustomObjectMatch(file, metadata, managed)) | ||
.map(file => getFilename(file, metadata)) | ||
} | ||
function RecordTypeParser(metadata, contents) { | ||
return this.MetadataXmlElementParser(metadata, contents) | ||
function RecordTypeParser(metadata, contents, managed) { | ||
return this.MetadataXmlElementParser(metadata, contents, managed) | ||
} | ||
function BusinessProcessParser(metadata, contents) { | ||
function BusinessProcessParser(metadata, contents, managed) { | ||
return contents | ||
@@ -156,3 +156,3 @@ .filter(file => isFileMatch(file, metadata)) | ||
} | ||
function AuraBundleParser(metadata, contents) { | ||
function AuraBundleParser(metadata, contents, managed) { | ||
return contents | ||
@@ -162,3 +162,3 @@ .filter(file => isFileMatch(file, metadata)) | ||
} | ||
function DocumentParser(metadata, contents) { | ||
function DocumentParser(metadata, contents, managed) { | ||
return contents | ||
@@ -165,0 +165,0 @@ .filter(file => isFileMatch(file, metadata)) |
{ | ||
"name": "package-xml", | ||
"version": "1.1.1", | ||
"version": "1.2.0", | ||
"description": "Build a Salesforce Package.xml file from a src directory", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -12,5 +12,7 @@ var chai = require('chai') | ||
describe('Generate a package XML', function () { | ||
this.timeout(30000); | ||
// Private variables, set in Before action | ||
// var root = '/Users/John/Github/package-xml/test/fixtures/src' | ||
var root = '/Users/John/Github/demandbase/src' | ||
var root = '/Users/John/Github/esba/src' | ||
var metadata, generator, getDirectoryContentsPromise | ||
@@ -24,10 +26,37 @@ before(function () { | ||
it('should get Custom Labels Classes', function () { | ||
it('should get Components', function () { | ||
return getDirectoryContentsPromise.then(files => { | ||
var members = getMembers('CustomLabel', files, metadata) | ||
expect(members).to.contain('DAE_BadQuery') | ||
var members = getMembers('ApexComponent', files, metadata, true) | ||
expect(members).to.contain('DocumentManager') | ||
}) | ||
}) | ||
it('should get Managed Custom object', function () { | ||
return getDirectoryContentsPromise.then(files => { | ||
var members = getMembers('CustomObject', files, metadata, true) | ||
expect(members).to.contain('HealthCloudGA__EhrPractitionerRole__c') | ||
}) | ||
}) | ||
it('should get Managed Custom object', function () { | ||
return getDirectoryContentsPromise.then(files => { | ||
var members = getMembers('CustomObject', files, metadata, false) | ||
expect(members).to.not.contain('HealthCloudGA__EhrPractitionerRole__c') | ||
}) | ||
}) | ||
it('should get Managed Custom fields', function () { | ||
return getDirectoryContentsPromise.then(files => { | ||
var members = getMembers('CustomField', files, metadata, true) | ||
expect(members).to.contain('Activity.HealthCloudGA__CarePlanGoal__c') | ||
}) | ||
}) | ||
it('should not get Managed Custom fields', function () { | ||
return getDirectoryContentsPromise.then(files => { | ||
var members = getMembers('CustomField', files, metadata, false) | ||
expect(members).to.not.contain('Activity.HealthCloudGA__CarePlanGoal__c') | ||
}) | ||
}) | ||
}) |
65707
1022