diff options
Diffstat (limited to 'lib/utils/split-package-names.js')
-rw-r--r-- | lib/utils/split-package-names.js | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/utils/split-package-names.js b/lib/utils/split-package-names.js new file mode 100644 index 000000000..bb6e449ba --- /dev/null +++ b/lib/utils/split-package-names.js @@ -0,0 +1,23 @@ +'use strict' + +const splitPackageNames = (path) => { + return path.split('/') + // combine scoped parts + .reduce((parts, part) => { + if (parts.length === 0) + return [part] + + const lastPart = parts[parts.length - 1] + // check if previous part is the first part of a scoped package + if (lastPart[0] === '@' && !lastPart.includes('/')) + parts[parts.length - 1] += '/' + part + else + parts.push(part) + + return parts + }, []) + .join('/node_modules/') + .replace(/(\/node_modules)+/, '/node_modules') +} + +module.exports = splitPackageNames |