UNPKG

find-node-modules

Version:

Return an array of all parent node_modules directories

60 lines (43 loc) 1.23 kB
'use strict' var isSubset = require('is-subset') var modifyValues = require('modify-values') function modifyValue (val) { if (typeof val === 'string') { return val.trim() } return val } function conventionalCommitsFilter (commits) { if (!Array.isArray(commits)) { throw new TypeError('Expected an array') } var ret = [] var ignores = [] var remove = [] commits.forEach(function (commit) { if (commit.revert) { ignores.push(commit) } ret.push(commit) }) // Filter out reverted commits ret = ret.filter(function (commit) { var ignoreThis = false commit = commit.raw ? modifyValues(commit.raw, modifyValue) : modifyValues(commit, modifyValue) ignores.some(function (ignoreCommit) { var ignore = modifyValues(ignoreCommit.revert, modifyValue) ignoreThis = isSubset(commit, ignore) if (ignoreThis) { remove.push(ignoreCommit.hash) } return ignoreThis }) return !ignoreThis }) // Filter out the commits that reverted something otherwise keep the revert commits ret = ret.filter(function (commit) { return remove.indexOf(commit.hash) !== 0 }) return ret } module.exports = conventionalCommitsFilter