import path from 'path'; function standardize(p: string): string { return p.replace(/\\/g, '/').replace(/\/{2,}/, '/'); } function normalize(p: string): string { return standardize(path.normalize(standardize(p))); } function join(...paths: string[]): string { return standardize(path.join(...paths.map(standardize))); } function resolve(...pathSegments: string[]): string { return standardize(path.resolve(...pathSegments.map(standardize))); } function isAbsolute(p: string): boolean { return path.isAbsolute(standardize(p)); } function relative(from: string, to: string): string { const p = standardize(path.relative(standardize(from), standardize(to))); return /^\.{1,2}\//.test(p) ? p : p ? './' + p : '.'; } function dirname(fp: string): string { const p = standardize(path.dirname(standardize(fp))); return /\/$/.test(p) ? p : p + '/'; } function extname(p: string): string { return path.extname(p); } function basename(p: string, ext?: string): string { return path.basename(p, ext); } const path2 = { standardize, normalize, join, resolve, isAbsolute, relative, dirname, extname, basename }; export default path2;