
Research
/Security News
Malicious npm Packages Target WhatsApp Developers with Remote Kill Switch
Two npm packages masquerading as WhatsApp developer libraries include a kill switch that deletes all files if the phone number isn’t whitelisted.
common-path-prefix
Advanced tools
Computes the longest prefix string that is common to each path, excluding the base component
The 'common-path-prefix' npm package is a utility that helps in finding the longest common path prefix from an array of file paths. This can be particularly useful in scenarios where you need to determine the shared directory structure among multiple files.
Finding Common Path Prefix
This feature allows you to find the longest common path prefix from an array of file paths. In the provided code sample, the common prefix for the given paths is '/foo/bar'.
const commonPathPrefix = require('common-path-prefix');
const paths = ['/foo/bar/baz', '/foo/bar/qux', '/foo/bar/quux'];
const prefix = commonPathPrefix(paths);
console.log(prefix); // Output: '/foo/bar'
The 'path' module is a core Node.js module that provides utilities for working with file and directory paths. While it does not directly offer a method to find the common path prefix, it provides various methods to manipulate and analyze paths, which can be used in conjunction to achieve similar results.
Lodash is a utility library that provides a wide range of functions for common programming tasks. While it does not specifically focus on path manipulation, it includes methods for working with arrays and strings that can be used to implement similar functionality.
Computes the longest prefix string that is common to each path, excluding the base component. Tested with Node.js 8 and above.
npm install common-path-prefix
The module has one default export, the commonPathPrefix
function:
const commonPathPrefix = require('common-path-prefix')
Call commonPathPrefix()
with an array of paths (strings) and an optional separator character:
const paths = ['templates/main.handlebars', 'templates/_partial.handlebars']
commonPathPrefix(paths, '/') // returns 'templates/'
If the separator is not provided the first /
or \
found in the first path string is used. This means the module works correctly no matter the platform:
commonPathPrefix(['templates/main.handlebars', 'templates/_partial.handlebars']) // returns 'templates/'
commonPathPrefix(['templates\\main.handlebars', 'templates\\_partial.handlebars']) // returns 'templates\\'
You can provide any separator, for example:
commonPathPrefix(['foo$bar', 'foo$baz'], '$') // returns 'foo$''
An empty string is returned if no common prefix exists:
commonPathPrefix(['foo/bar', 'baz/qux']) // returns ''
Note that the following does have a common prefix:
commonPathPrefix(['/foo/bar', '/baz/qux']) // returns '/'
FAQs
Computes the longest prefix string that is common to each path, excluding the base component
We found that common-path-prefix demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
/Security News
Two npm packages masquerading as WhatsApp developer libraries include a kill switch that deletes all files if the phone number isn’t whitelisted.
Research
/Security News
Socket uncovered 11 malicious Go packages using obfuscated loaders to fetch and execute second-stage payloads via C2 domains.
Security News
TC39 advances 11 JavaScript proposals, with two moving to Stage 4, bringing better math, binary APIs, and more features one step closer to the ECMAScript spec.