mirror of
https://github.com/oven-sh/bun
synced 2026-02-18 06:41:50 +00:00
67 lines
1.5 KiB
JavaScript
67 lines
1.5 KiB
JavaScript
/**
|
|
* Browser polyfill for the `"path"` module.
|
|
*
|
|
* Imported on usage in `bun build --target=browser`
|
|
*/
|
|
import * as PathModule from "path-browserify";
|
|
|
|
const bindingPosix = PathModule;
|
|
const bindingWin32 = PathModule;
|
|
|
|
// path-browserify doesn't implement toNamespacedPath
|
|
const toNamespacedPathPosix = function (a) {
|
|
return a;
|
|
};
|
|
// path-browserify doesn't implement parse
|
|
const parseFn = function () {
|
|
throw new Error("Not implemented");
|
|
};
|
|
|
|
bindingPosix.parse ??= parseFn;
|
|
bindingWin32.parse ??= parseFn;
|
|
|
|
export const posix = {
|
|
resolve: bindingPosix.resolve.bind(bindingPosix),
|
|
normalize: bindingPosix.normalize.bind(bindingPosix),
|
|
isAbsolute: bindingPosix.isAbsolute.bind(bindingPosix),
|
|
join: bindingPosix.join.bind(bindingPosix),
|
|
relative: bindingPosix.relative.bind(bindingPosix),
|
|
toNamespacedPath: toNamespacedPathPosix,
|
|
dirname: bindingPosix.dirname.bind(bindingPosix),
|
|
basename: bindingPosix.basename.bind(bindingPosix),
|
|
extname: bindingPosix.extname.bind(bindingPosix),
|
|
format: bindingPosix.format.bind(bindingPosix),
|
|
parse: bindingPosix.parse.bind(bindingPosix),
|
|
sep: "/",
|
|
delimiter: ":",
|
|
win32: undefined,
|
|
posix: undefined,
|
|
_makeLong: toNamespacedPathPosix,
|
|
};
|
|
export const win32 = {
|
|
sep: "\\",
|
|
delimiter: ";",
|
|
win32: undefined,
|
|
...posix,
|
|
posix,
|
|
};
|
|
posix.win32 = win32.win32 = win32;
|
|
posix.posix = posix;
|
|
|
|
export default posix;
|
|
export const {
|
|
resolve,
|
|
normalize,
|
|
isAbsolute,
|
|
join,
|
|
relative,
|
|
toNamespacedPath,
|
|
dirname,
|
|
basename,
|
|
extname,
|
|
format,
|
|
parse,
|
|
sep,
|
|
delimiter,
|
|
} = posix;
|