path.ts•1.26 kB
export function resolve(...args: any[]) {
  return args.join('/')
}
export function join(...args: any[]) {
  return args.join('/')
}
export function parse(path: string) {
  const base = basename(path)
  const dir = dirname(path)
  const [name, ext] = base.split('.')
  return { root: '/', dir, base, ext, name }
}
export function basename(path: string) {
  const parts = path.split('/')
  return parts[parts.length - 1]
}
export function dirname(path: string) {
  const parts = path.split('/')
  return parts.slice(0, -1).join('/')
}
export const sep = '/'
export const delimiter = ':'
export function normalize(path: string) {
  // Simple normalization - remove duplicate slashes and resolve . and ..
  const parts = path.split('/').filter((part) => part !== '' && part !== '.')
  const normalized: string[] = []
  for (const part of parts) {
    if (part === '..') {
      normalized.pop()
    } else {
      normalized.push(part)
    }
  }
  const result = normalized.join('/')
  return path.startsWith('/') ? '/' + result : result
}
export const posix = {
  sep,
}
/**
 * A poor man's shim for the "path" module
 */
const path = {
  basename,
  delimiter,
  dirname,
  join,
  normalize,
  parse,
  posix,
  resolve,
  sep,
}
export default path