Files
notification-elements-demo/node_modules/common-path-prefix/index.js
Giuliano Silvestro 5d0c9ec7eb Initial commit: notification-elements-demo app
Interactive Angular 19 demo for @sda/notification-elements-ui with
6 sections: Bell & Feed, Notification Center, Inbox, Comments &
Threads, Mention Input, and Full-Featured layout. Includes mock
data, dark mode toggle, and real-time event log.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 21:49:19 +10:00

34 lines
843 B
JavaScript

'use strict'
const { sep: DEFAULT_SEPARATOR } = require('path')
const determineSeparator = paths => {
for (const path of paths) {
const match = /(\/|\\)/.exec(path)
if (match !== null) return match[0]
}
return DEFAULT_SEPARATOR
}
module.exports = function commonPathPrefix (paths, sep = determineSeparator(paths)) {
const [first = '', ...remaining] = paths
if (first === '' || remaining.length === 0) return ''
const parts = first.split(sep)
let endOfPrefix = parts.length
for (const path of remaining) {
const compare = path.split(sep)
for (let i = 0; i < endOfPrefix; i++) {
if (compare[i] !== parts[i]) {
endOfPrefix = i
}
}
if (endOfPrefix === 0) return ''
}
const prefix = parts.slice(0, endOfPrefix).join(sep)
return prefix.endsWith(sep) ? prefix : prefix + sep
}