diff options
-rw-r--r-- | src/bun.js/node/types.zig | 10 | ||||
-rw-r--r-- | src/js/node/path.posix.ts (renamed from src/js/node/path.posix.js) | 0 | ||||
-rw-r--r-- | src/js/node/path.ts (renamed from src/js/node/path.js) | 0 | ||||
-rw-r--r-- | src/js/node/path.win32.ts (renamed from src/js/node/path.win32.js) | 0 | ||||
-rw-r--r-- | src/js/out/modules/node/path.js | 60 | ||||
-rw-r--r-- | src/js/out/modules/node/path.posix.js | 50 | ||||
-rw-r--r-- | src/js/out/modules/node/path.win32.js | 48 | ||||
-rw-r--r-- | src/js/private.d.ts | 1 | ||||
-rw-r--r-- | test/js/node/path/path.test.js | 6 |
9 files changed, 166 insertions, 9 deletions
diff --git a/src/bun.js/node/types.zig b/src/bun.js/node/types.zig index 03e45f471..d1c92e970 100644 --- a/src/bun.js/node/types.zig +++ b/src/bun.js/node/types.zig @@ -1738,23 +1738,23 @@ pub const Path = struct { var name_with_ext = JSC.ZigString.Empty; var insert_separator = true; - if (path_object.get(globalThis, "dir")) |prop| { + if (path_object.getTruthy(globalThis, "dir")) |prop| { prop.toZigString(&dir, globalThis); insert_separator = !dir.isEmpty(); - } else if (path_object.get(globalThis, "root")) |prop| { + } else if (path_object.getTruthy(globalThis, "root")) |prop| { prop.toZigString(&dir, globalThis); } - if (path_object.get(globalThis, "base")) |prop| { + if (path_object.getTruthy(globalThis, "base")) |prop| { prop.toZigString(&name_with_ext, globalThis); } else { var had_ext = false; - if (path_object.get(globalThis, "ext")) |prop| { + if (path_object.getTruthy(globalThis, "ext")) |prop| { prop.toZigString(&ext, globalThis); had_ext = !ext.isEmpty(); } - if (path_object.get(globalThis, "name")) |prop| { + if (path_object.getTruthy(globalThis, "name")) |prop| { if (had_ext) { prop.toZigString(&name_, globalThis); } else { diff --git a/src/js/node/path.posix.js b/src/js/node/path.posix.ts index e94da9cea..e94da9cea 100644 --- a/src/js/node/path.posix.js +++ b/src/js/node/path.posix.ts diff --git a/src/js/node/path.js b/src/js/node/path.ts index 7c20d520b..7c20d520b 100644 --- a/src/js/node/path.js +++ b/src/js/node/path.ts diff --git a/src/js/node/path.win32.js b/src/js/node/path.win32.ts index 1c8bda4ba..1c8bda4ba 100644 --- a/src/js/node/path.win32.js +++ b/src/js/node/path.win32.ts diff --git a/src/js/out/modules/node/path.js b/src/js/out/modules/node/path.js index bea7f4149..e9af36285 100644 --- a/src/js/out/modules/node/path.js +++ b/src/js/out/modules/node/path.js @@ -1 +1,59 @@ -var y=(i)=>{return import.meta.require(i)};var g=function(i){var m=k({basename:i.basename.bind(i),dirname:i.dirname.bind(i),extname:i.extname.bind(i),format:i.format.bind(i),isAbsolute:i.isAbsolute.bind(i),join:i.join.bind(i),normalize:i.normalize.bind(i),parse:i.parse.bind(i),relative:i.relative.bind(i),resolve:i.resolve.bind(i),toNamespacedPath:i.toNamespacedPath.bind(i),sep:i.sep,delimiter:i.delimiter});return m.default=m,m},k=(i)=>Object.assign(Object.create(null),i),f=g(Bun._Path()),q=g(Bun._Path(!1)),v=g(Bun._Path(!0));f.win32=v;f.posix=q;var{basename:A,dirname:B,extname:C,format:D,isAbsolute:E,join:F,normalize:G,parse:H,relative:I,resolve:J,toNamespacedPath:K,sep:L,delimiter:N,__esModule:O}=f;f[Symbol.for("CommonJS")]=0;f.__esModule=!0;var Q=f;export{v as win32,K as toNamespacedPath,L as sep,J as resolve,I as relative,q as posix,H as parse,G as normalize,F as join,E as isAbsolute,D as format,C as extname,B as dirname,N as delimiter,Q as default,k as createModule,A as basename,O as __esModule}; +var bound = function(obj) { + var result = createModule({ + basename: obj.basename.bind(obj), + dirname: obj.dirname.bind(obj), + extname: obj.extname.bind(obj), + format: obj.format.bind(obj), + isAbsolute: obj.isAbsolute.bind(obj), + join: obj.join.bind(obj), + normalize: obj.normalize.bind(obj), + parse: obj.parse.bind(obj), + relative: obj.relative.bind(obj), + resolve: obj.resolve.bind(obj), + toNamespacedPath: obj.toNamespacedPath.bind(obj), + sep: obj.sep, + delimiter: obj.delimiter + }); + return result.default = result, result; +}, createModule = (obj) => Object.assign(Object.create(null), obj), path = bound(Bun._Path()), posix = bound(Bun._Path(!1)), win32 = bound(Bun._Path(!0)); +path.win32 = win32; +path.posix = posix; +var { + basename, + dirname, + extname, + format, + isAbsolute, + join, + normalize, + parse, + relative, + resolve, + toNamespacedPath, + sep, + delimiter, + __esModule +} = path; +path[Symbol.for("CommonJS")] = 0; +path.__esModule = !0; +var path_default = path; +export { + win32, + toNamespacedPath, + sep, + resolve, + relative, + posix, + parse, + normalize, + join, + isAbsolute, + format, + extname, + dirname, + delimiter, + path_default as default, + createModule, + basename, + __esModule +}; diff --git a/src/js/out/modules/node/path.posix.js b/src/js/out/modules/node/path.posix.js index 9588492d7..e60e44ca0 100644 --- a/src/js/out/modules/node/path.posix.js +++ b/src/js/out/modules/node/path.posix.js @@ -1 +1,49 @@ -var d=(e)=>{return import.meta.require(e)};var r=function(e){return{basename:e.basename.bind(e),dirname:e.dirname.bind(e),extname:e.extname.bind(e),format:e.format.bind(e),isAbsolute:e.isAbsolute.bind(e),join:e.join.bind(e),normalize:e.normalize.bind(e),parse:e.parse.bind(e),relative:e.relative.bind(e),resolve:e.resolve.bind(e),toNamespacedPath:e.toNamespacedPath.bind(e),sep:e.sep,delimiter:e.delimiter}},i=r(Bun._Path(!1));i[Symbol.for("CommonJS")]=0;var{basename:s,dirname:c,extname:f,format:g,isAbsolute:k,join:m,normalize:q,parse:t,relative:v,resolve:w,toNamespacedPath:x,sep:y,delimiter:z}=i,B=i;export{x as toNamespacedPath,y as sep,w as resolve,v as relative,t as parse,q as normalize,m as join,k as isAbsolute,g as format,f as extname,c as dirname,z as delimiter,B as default,s as basename}; +var bound = function(obj) { + return { + basename: obj.basename.bind(obj), + dirname: obj.dirname.bind(obj), + extname: obj.extname.bind(obj), + format: obj.format.bind(obj), + isAbsolute: obj.isAbsolute.bind(obj), + join: obj.join.bind(obj), + normalize: obj.normalize.bind(obj), + parse: obj.parse.bind(obj), + relative: obj.relative.bind(obj), + resolve: obj.resolve.bind(obj), + toNamespacedPath: obj.toNamespacedPath.bind(obj), + sep: obj.sep, + delimiter: obj.delimiter + }; +}, path = bound(Bun._Path(!1)); +path[Symbol.for("CommonJS")] = 0; +var { + basename, + dirname, + extname, + format, + isAbsolute, + join, + normalize, + parse, + relative, + resolve, + toNamespacedPath, + sep, + delimiter +} = path, path_posix_default = path; +export { + toNamespacedPath, + sep, + resolve, + relative, + parse, + normalize, + join, + isAbsolute, + format, + extname, + dirname, + delimiter, + path_posix_default as default, + basename +}; diff --git a/src/js/out/modules/node/path.win32.js b/src/js/out/modules/node/path.win32.js index 8d6a0d1d4..d4a7a15ac 100644 --- a/src/js/out/modules/node/path.win32.js +++ b/src/js/out/modules/node/path.win32.js @@ -1 +1,47 @@ -var s=(i)=>{return import.meta.require(i)};var r=function(i){return{basename:i.basename.bind(i),dirname:i.dirname.bind(i),extname:i.extname.bind(i),format:i.format.bind(i),isAbsolute:i.isAbsolute.bind(i),join:i.join.bind(i),normalize:i.normalize.bind(i),parse:i.parse.bind(i),relative:i.relative.bind(i),resolve:i.resolve.bind(i),toNamespacedPath:i.toNamespacedPath.bind(i),sep:i.sep,delimiter:i.delimiter}},e=r(Bun._Path(!0)),{basename:c,dirname:d,extname:f,format:g,isAbsolute:k,join:l,normalize:m,parse:n,relative:q,resolve:v,toNamespacedPath:w,sep:x,delimiter:y}=e,A=e;export{w as toNamespacedPath,x as sep,v as resolve,q as relative,n as parse,m as normalize,l as join,k as isAbsolute,g as format,f as extname,d as dirname,y as delimiter,A as default,c as basename}; +var bound = function(obj) { + return { + basename: obj.basename.bind(obj), + dirname: obj.dirname.bind(obj), + extname: obj.extname.bind(obj), + format: obj.format.bind(obj), + isAbsolute: obj.isAbsolute.bind(obj), + join: obj.join.bind(obj), + normalize: obj.normalize.bind(obj), + parse: obj.parse.bind(obj), + relative: obj.relative.bind(obj), + resolve: obj.resolve.bind(obj), + toNamespacedPath: obj.toNamespacedPath.bind(obj), + sep: obj.sep, + delimiter: obj.delimiter + }; +}, path = bound(Bun._Path(!0)), { + basename, + dirname, + extname, + format, + isAbsolute, + join, + normalize, + parse, + relative, + resolve, + toNamespacedPath, + sep, + delimiter +} = path, path_win32_default = path; +export { + toNamespacedPath, + sep, + resolve, + relative, + parse, + normalize, + join, + isAbsolute, + format, + extname, + dirname, + delimiter, + path_win32_default as default, + basename +}; diff --git a/src/js/private.d.ts b/src/js/private.d.ts index 9ca25935d..eae2047fb 100644 --- a/src/js/private.d.ts +++ b/src/js/private.d.ts @@ -95,6 +95,7 @@ declare module "bun" { }; function fs(): BunFS; function _Os(): typeof import("node:os"); + function _Path(isWindows?: boolean): typeof import("node:path"); function jest(): typeof import("bun:test"); var main: string; var tty: Array<{ hasColors: boolean }>; diff --git a/test/js/node/path/path.test.js b/test/js/node/path/path.test.js index 8f5a76da7..03037c2e9 100644 --- a/test/js/node/path/path.test.js +++ b/test/js/node/path/path.test.js @@ -1,6 +1,6 @@ const { file } = import.meta; -import { describe, it, expect } from "bun:test"; +import { describe, it, expect, test } from "bun:test"; import path from "node:path"; import assert from "assert"; import { hideFromStackTrace } from "harness"; @@ -586,3 +586,7 @@ it("path.parse", () => { name: "another_dir", }); }); + +test("path.format works for vite's example", () => { + expect(path.format({ root: "", dir: "", name: "index", base: undefined, ext: ".css" })).toBe("index.css"); +}); |