@vxrn/resolve 1.2.47 → 1.2.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +24 -12
- package/dist/cjs/index.js +14 -4
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/index.native.js +24 -19
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/index.test.cjs +38 -0
- package/dist/cjs/index.test.js +37 -0
- package/dist/cjs/index.test.js.map +6 -0
- package/dist/cjs/index.test.native.js +41 -0
- package/dist/cjs/index.test.native.js.map +1 -0
- package/dist/esm/index.js +15 -4
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/index.mjs +24 -11
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +26 -20
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/index.test.js +39 -0
- package/dist/esm/index.test.js.map +6 -0
- package/dist/esm/index.test.mjs +39 -0
- package/dist/esm/index.test.mjs.map +1 -0
- package/dist/esm/index.test.native.js +39 -0
- package/dist/esm/index.test.native.js.map +1 -0
- package/package.json +7 -4
- package/src/index.test.ts +66 -0
- package/src/index.tsx +39 -17
- package/types/index.d.ts +6 -0
- package/types/index.d.ts.map +1 -0
- package/types/index.test.d.ts +2 -0
- package/types/index.test.d.ts.map +1 -0
package/dist/cjs/index.cjs
CHANGED
|
@@ -35,16 +35,28 @@ __export(index_exports, {
|
|
|
35
35
|
});
|
|
36
36
|
module.exports = __toCommonJS(index_exports);
|
|
37
37
|
var import_node_module = __toESM(require("node:module"), 1),
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
38
|
+
import_node_path = require("node:path"),
|
|
39
|
+
import_node_fs = require("node:fs");
|
|
40
|
+
const resolvePath = (path, from = process.cwd()) => {
|
|
41
|
+
const require2 = import_node_module.default.createRequire(from.endsWith("/") ? from : from + "/"),
|
|
42
|
+
resolved = require2.resolve(path, {
|
|
43
|
+
paths: [from]
|
|
44
|
+
}),
|
|
45
|
+
isRelative = path.startsWith("./") || path.startsWith("../"),
|
|
46
|
+
isBuiltin = path.startsWith("node:");
|
|
47
|
+
if (isRelative || isBuiltin) return resolved;
|
|
48
|
+
try {
|
|
49
|
+
const pkgJsonPath = require2.resolve(`${path}/package.json`, {
|
|
50
|
+
paths: [from]
|
|
51
|
+
}),
|
|
52
|
+
pkgJson = JSON.parse((0, import_node_fs.readFileSync)(pkgJsonPath, "utf8")),
|
|
53
|
+
pkgDir = (0, import_node_path.dirname)(pkgJsonPath),
|
|
54
|
+
exportsImport = pkgJson.exports?.["."]?.import;
|
|
55
|
+
if (exportsImport) {
|
|
56
|
+
const importPath = typeof exportsImport == "string" ? exportsImport : exportsImport.default;
|
|
57
|
+
if (importPath) return (0, import_node_path.join)(pkgDir, importPath);
|
|
49
58
|
}
|
|
50
|
-
|
|
59
|
+
if (pkgJson.module) return (0, import_node_path.join)(pkgDir, pkgJson.module);
|
|
60
|
+
} catch {}
|
|
61
|
+
return resolved;
|
|
62
|
+
};
|
package/dist/cjs/index.js
CHANGED
|
@@ -25,12 +25,22 @@ __export(index_exports, {
|
|
|
25
25
|
resolvePath: () => resolvePath
|
|
26
26
|
});
|
|
27
27
|
module.exports = __toCommonJS(index_exports);
|
|
28
|
-
var import_node_module = __toESM(require("node:module"), 1),
|
|
29
|
-
const
|
|
28
|
+
var import_node_module = __toESM(require("node:module"), 1), import_node_path = require("node:path"), import_node_fs = require("node:fs");
|
|
29
|
+
const resolvePath = (path, from = process.cwd()) => {
|
|
30
|
+
const require2 = import_node_module.default.createRequire(from.endsWith("/") ? from : from + "/"), resolved = require2.resolve(path, { paths: [from] }), isRelative = path.startsWith("./") || path.startsWith("../"), isBuiltin = path.startsWith("node:");
|
|
31
|
+
if (isRelative || isBuiltin)
|
|
32
|
+
return resolved;
|
|
30
33
|
try {
|
|
31
|
-
|
|
34
|
+
const pkgJsonPath = require2.resolve(`${path}/package.json`, { paths: [from] }), pkgJson = JSON.parse((0, import_node_fs.readFileSync)(pkgJsonPath, "utf8")), pkgDir = (0, import_node_path.dirname)(pkgJsonPath), exportsImport = pkgJson.exports?.["."]?.import;
|
|
35
|
+
if (exportsImport) {
|
|
36
|
+
const importPath = typeof exportsImport == "string" ? exportsImport : exportsImport.default;
|
|
37
|
+
if (importPath)
|
|
38
|
+
return (0, import_node_path.join)(pkgDir, importPath);
|
|
39
|
+
}
|
|
40
|
+
if (pkgJson.module)
|
|
41
|
+
return (0, import_node_path.join)(pkgDir, pkgJson.module);
|
|
32
42
|
} catch {
|
|
33
|
-
return resolverV2(path, from);
|
|
34
43
|
}
|
|
44
|
+
return resolved;
|
|
35
45
|
};
|
|
36
46
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/index.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAmB,oCACnB,
|
|
5
|
-
"names": ["module"]
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAmB,oCACnB,mBAA8B,sBAC9B,iBAA6B;AAMtB,MAAM,cAAc,CAAC,MAAc,OAAO,QAAQ,IAAI,MAAc;AACzE,QAAMA,WAAU,mBAAAC,QAAO,cAAc,KAAK,SAAS,GAAG,IAAI,OAAO,OAAO,GAAG,GACrE,WAAWD,SAAQ,QAAQ,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,GAGlD,aAAa,KAAK,WAAW,IAAI,KAAK,KAAK,WAAW,KAAK,GAC3D,YAAY,KAAK,WAAW,OAAO;AACzC,MAAI,cAAc;AAChB,WAAO;AAIT,MAAI;AACF,UAAM,cAAcA,SAAQ,QAAQ,GAAG,IAAI,iBAAiB,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,GACvE,UAAU,KAAK,UAAM,6BAAa,aAAa,MAAM,CAAC,GACtD,aAAS,0BAAQ,WAAW,GAG5B,gBAAgB,QAAQ,UAAU,GAAG,GAAG;AAC9C,QAAI,eAAe;AAEjB,YAAM,aACJ,OAAO,iBAAkB,WAAW,gBAAgB,cAAc;AACpE,UAAI;AACF,mBAAO,uBAAK,QAAQ,UAAU;AAAA,IAElC;AAGA,QAAI,QAAQ;AACV,iBAAO,uBAAK,QAAQ,QAAQ,MAAM;AAAA,EAEtC,QAAQ;AAAA,EAER;AAEA,SAAO;AACT;",
|
|
5
|
+
"names": ["require", "module"]
|
|
6
6
|
}
|
package/dist/cjs/index.native.js
CHANGED
|
@@ -37,27 +37,32 @@ __export(index_exports, {
|
|
|
37
37
|
});
|
|
38
38
|
module.exports = __toCommonJS(index_exports);
|
|
39
39
|
var import_module = __toESM(require("module"), 1),
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
return (0, import_url.fileURLToPath)(import_meta.resolve(path, from));
|
|
44
|
-
} : "url" in import_meta ? function (path, from) {
|
|
45
|
-
return new URL(path, import_meta.url).pathname;
|
|
46
|
-
} : require.resolve,
|
|
47
|
-
resolverV2 = function (path) {
|
|
40
|
+
import_path = require("path"),
|
|
41
|
+
import_fs = require("fs"),
|
|
42
|
+
resolvePath = function (path) {
|
|
48
43
|
var from = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : process.cwd(),
|
|
49
|
-
|
|
50
|
-
|
|
44
|
+
require2 = import_module.default.createRequire(from.endsWith("/") ? from : from + "/"),
|
|
45
|
+
resolved = require2.resolve(path, {
|
|
51
46
|
paths: [from]
|
|
52
|
-
})
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
var from = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : process.cwd();
|
|
47
|
+
}),
|
|
48
|
+
isRelative = path.startsWith("./") || path.startsWith("../"),
|
|
49
|
+
isBuiltin = path.startsWith("node:");
|
|
50
|
+
if (isRelative || isBuiltin) return resolved;
|
|
57
51
|
try {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
52
|
+
var _pkgJson_exports_,
|
|
53
|
+
_pkgJson_exports,
|
|
54
|
+
pkgJsonPath = require2.resolve(`${path}/package.json`, {
|
|
55
|
+
paths: [from]
|
|
56
|
+
}),
|
|
57
|
+
pkgJson = JSON.parse((0, import_fs.readFileSync)(pkgJsonPath, "utf8")),
|
|
58
|
+
pkgDir = (0, import_path.dirname)(pkgJsonPath),
|
|
59
|
+
exportsImport = (_pkgJson_exports = pkgJson.exports) === null || _pkgJson_exports === void 0 || (_pkgJson_exports_ = _pkgJson_exports["."]) === null || _pkgJson_exports_ === void 0 ? void 0 : _pkgJson_exports_.import;
|
|
60
|
+
if (exportsImport) {
|
|
61
|
+
var importPath = typeof exportsImport == "string" ? exportsImport : exportsImport.default;
|
|
62
|
+
if (importPath) return (0, import_path.join)(pkgDir, importPath);
|
|
63
|
+
}
|
|
64
|
+
if (pkgJson.module) return (0, import_path.join)(pkgDir, pkgJson.module);
|
|
65
|
+
} catch {}
|
|
66
|
+
return resolved;
|
|
62
67
|
};
|
|
63
68
|
//# sourceMappingURL=index.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","index_exports","__export","resolvePath","module","exports","import_module","__toESM","require","
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","index_exports","__export","resolvePath","module","exports","import_module","__toESM","require","import_path","import_fs","path","from","arguments","length","process","cwd","require2","default","createRequire","endsWith","resolved","resolve","paths","isRelative","startsWith","isBuiltin","_pkgJson_exports_","_pkgJson_exports","pkgJsonPath","pkgJson","JSON","parse","readFileSync","pkgDir","dirname","exportsImport","import","importPath"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAA;EAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;IAAAC,KAAA;EAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,QAAA,CAAAD,aAAA;EAAAE,WAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAAmB,CAAAK,aAAA;AAQZ,IAAAK,aAAM,GAAcC,OAAe,CAAAC,OAAO,SAAQ,GAAI;EAAAC,WAAc,GAAAD,OAAA;EAAAE,SAAA,GAAAF,OAAA;EAAAL,WAAA,YAAAA,CAAAQ,IAAA;IACzE,IAAAC,IAAM,GAAAC,SAAU,CAAAC,MAAA,QAAAD,SAAO,cAAc,GAAAA,SAAK,EAAS,IAAGE,OAAI,CAAAC,GAAO;MAAAC,QAC3D,GAAAX,aAAW,CAAAY,OAAQ,CAAAC,aAAgB,CAAAP,IAAO,CAACQ,QAAO,IAGlD,IAAAR,IAAA,GAAaA,IAAA,GAAK;MAAAS,QAAe,GAAAJ,QAAU,CAAAK,OAAA,CAAWX,IAAA,EAAK;QAEjEY,KAAI,GACFX,IAAA;MAKA;MAAAY,UAAM,GAAAb,IAAA,CAAcc,UAAQ,UAAWd,IAAI,CAAAc,UAAA,MAAiB;MAAEC,SAAQ,GAAIf,IAAG,CACvEc,UAAU,QAAK;IAKrB,IAAAD,UAAI,IAAAE,SAAe,EAEjB,OAAAL,QAAM;IAEN;MACE,IAAAM,iBAAO;QAAAC,gBAAK;QAAAC,WAAQ,GAAAZ,QAAU,CAAAK,OAAA,IAAAX,IAAA;UAElCY,KAAA,GAGIX,IAAA;QAGN;QAAAkB,OAAQ,GAAAC,IAAA,CAAAC,KAAA,KAAAtB,SAAA,CAAAuB,YAAA,EAAAJ,WAAA;QAAAK,MAAA,OAAAzB,WAAA,CAAA0B,OAAA,EAAAN,WAAA;QAAAO,aAAA,IAAAR,gBAAA,GAAAE,OAAA,CAAAzB,OAAA,cAAAuB,gBAAA,gBAAAD,iBAAA,GAAAC,gBAAA,mBAAAD,iBAAA,uBAAAA,iBAAA,CAAAU,MAAA;MAER,IAAAD,aAAA;QAEA,IAAOE,UAAA,UAAAF,aAAA,eAAAA,aAAA,GAAAA,aAAA,CAAAlB,OAAA;QACT,IAAAoB,UAAA,E","ignoreList":[]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
var import_vitest = require("vitest"),
|
|
2
|
+
import_index = require("./index.cjs"),
|
|
3
|
+
import_node_fs = require("node:fs");
|
|
4
|
+
(0, import_vitest.describe)("resolvePath", () => {
|
|
5
|
+
(0, import_vitest.describe)("basic resolution", () => {
|
|
6
|
+
(0, import_vitest.it)("resolves node builtins", () => {
|
|
7
|
+
(0, import_vitest.expect)((0, import_index.resolvePath)("node:path")).toBe("node:path"), (0, import_vitest.expect)((0, import_index.resolvePath)("node:fs")).toBe("node:fs");
|
|
8
|
+
}), (0, import_vitest.it)("resolves npm packages", () => {
|
|
9
|
+
const path = (0, import_index.resolvePath)("vitest");
|
|
10
|
+
(0, import_vitest.expect)(path).toBeTruthy(), (0, import_vitest.expect)((0, import_node_fs.existsSync)(path)).toBe(!0);
|
|
11
|
+
}), (0, import_vitest.it)("resolves relative paths from cwd", () => {
|
|
12
|
+
const path = (0, import_index.resolvePath)("./package.json");
|
|
13
|
+
(0, import_vitest.expect)(path).toContain("package.json"), (0, import_vitest.expect)((0, import_node_fs.existsSync)(path)).toBe(!0);
|
|
14
|
+
});
|
|
15
|
+
}), (0, import_vitest.describe)("respects from parameter", () => {
|
|
16
|
+
(0, import_vitest.it)("resolves relative paths from specified directory", () => {
|
|
17
|
+
const path = (0, import_index.resolvePath)("./package.json", process.cwd());
|
|
18
|
+
(0, import_vitest.expect)(path).toBe(process.cwd() + "/package.json"), (0, import_vitest.expect)((0, import_node_fs.existsSync)(path)).toBe(!0);
|
|
19
|
+
}), (0, import_vitest.it)("resolves npm packages from specified directory", () => {
|
|
20
|
+
const path = (0, import_index.resolvePath)("vitest", process.cwd());
|
|
21
|
+
(0, import_vitest.expect)(path).toContain("vitest");
|
|
22
|
+
});
|
|
23
|
+
}), (0, import_vitest.describe)("ESM entry point detection", () => {
|
|
24
|
+
(0, import_vitest.it)('returns ESM entry when exports["."].import is a string', () => {
|
|
25
|
+
const path = (0, import_index.resolvePath)("@vxrn/resolve", process.cwd());
|
|
26
|
+
(0, import_vitest.expect)(path).toBeTruthy();
|
|
27
|
+
}), (0, import_vitest.it)('returns ESM entry when exports["."].import.default exists', () => {
|
|
28
|
+
const path = (0, import_index.resolvePath)("vitest", process.cwd());
|
|
29
|
+
(0, import_vitest.expect)(path).toContain("dist/index.js"), (0, import_vitest.expect)(path).not.toContain(".cjs");
|
|
30
|
+
}), (0, import_vitest.it)("falls back to module field when exports not available", () => {
|
|
31
|
+
const path = (0, import_index.resolvePath)("vitest", process.cwd());
|
|
32
|
+
(0, import_vitest.expect)(path).toBeTruthy();
|
|
33
|
+
}), (0, import_vitest.it)("falls back to main/require.resolve when no ESM entry", () => {
|
|
34
|
+
const path = (0, import_index.resolvePath)("resolve", process.cwd());
|
|
35
|
+
(0, import_vitest.expect)(path).toContain("resolve");
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
});
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
var import_vitest = require("vitest"), import_index = require("./index"), import_node_fs = require("node:fs");
|
|
2
|
+
(0, import_vitest.describe)("resolvePath", () => {
|
|
3
|
+
(0, import_vitest.describe)("basic resolution", () => {
|
|
4
|
+
(0, import_vitest.it)("resolves node builtins", () => {
|
|
5
|
+
(0, import_vitest.expect)((0, import_index.resolvePath)("node:path")).toBe("node:path"), (0, import_vitest.expect)((0, import_index.resolvePath)("node:fs")).toBe("node:fs");
|
|
6
|
+
}), (0, import_vitest.it)("resolves npm packages", () => {
|
|
7
|
+
const path = (0, import_index.resolvePath)("vitest");
|
|
8
|
+
(0, import_vitest.expect)(path).toBeTruthy(), (0, import_vitest.expect)((0, import_node_fs.existsSync)(path)).toBe(!0);
|
|
9
|
+
}), (0, import_vitest.it)("resolves relative paths from cwd", () => {
|
|
10
|
+
const path = (0, import_index.resolvePath)("./package.json");
|
|
11
|
+
(0, import_vitest.expect)(path).toContain("package.json"), (0, import_vitest.expect)((0, import_node_fs.existsSync)(path)).toBe(!0);
|
|
12
|
+
});
|
|
13
|
+
}), (0, import_vitest.describe)("respects from parameter", () => {
|
|
14
|
+
(0, import_vitest.it)("resolves relative paths from specified directory", () => {
|
|
15
|
+
const path = (0, import_index.resolvePath)("./package.json", process.cwd());
|
|
16
|
+
(0, import_vitest.expect)(path).toBe(process.cwd() + "/package.json"), (0, import_vitest.expect)((0, import_node_fs.existsSync)(path)).toBe(!0);
|
|
17
|
+
}), (0, import_vitest.it)("resolves npm packages from specified directory", () => {
|
|
18
|
+
const path = (0, import_index.resolvePath)("vitest", process.cwd());
|
|
19
|
+
(0, import_vitest.expect)(path).toContain("vitest");
|
|
20
|
+
});
|
|
21
|
+
}), (0, import_vitest.describe)("ESM entry point detection", () => {
|
|
22
|
+
(0, import_vitest.it)('returns ESM entry when exports["."].import is a string', () => {
|
|
23
|
+
const path = (0, import_index.resolvePath)("@vxrn/resolve", process.cwd());
|
|
24
|
+
(0, import_vitest.expect)(path).toBeTruthy();
|
|
25
|
+
}), (0, import_vitest.it)('returns ESM entry when exports["."].import.default exists', () => {
|
|
26
|
+
const path = (0, import_index.resolvePath)("vitest", process.cwd());
|
|
27
|
+
(0, import_vitest.expect)(path).toContain("dist/index.js"), (0, import_vitest.expect)(path).not.toContain(".cjs");
|
|
28
|
+
}), (0, import_vitest.it)("falls back to module field when exports not available", () => {
|
|
29
|
+
const path = (0, import_index.resolvePath)("vitest", process.cwd());
|
|
30
|
+
(0, import_vitest.expect)(path).toBeTruthy();
|
|
31
|
+
}), (0, import_vitest.it)("falls back to main/require.resolve when no ESM entry", () => {
|
|
32
|
+
const path = (0, import_index.resolvePath)("resolve", process.cwd());
|
|
33
|
+
(0, import_vitest.expect)(path).toContain("resolve");
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/index.test.ts"],
|
|
4
|
+
"mappings": "AAAA,oBAAqC,mBACrC,eAA4B,oBAC5B,iBAA2B;AAAA,IAE3B,wBAAS,eAAe,MAAM;AAC5B,8BAAS,oBAAoB,MAAM;AACjC,0BAAG,0BAA0B,MAAM;AACjC,oCAAO,0BAAY,WAAW,CAAC,EAAE,KAAK,WAAW,OACjD,0BAAO,0BAAY,SAAS,CAAC,EAAE,KAAK,SAAS;AAAA,IAC/C,CAAC,OAED,kBAAG,yBAAyB,MAAM;AAChC,YAAM,WAAO,0BAAY,QAAQ;AACjC,gCAAO,IAAI,EAAE,WAAW,OACxB,0BAAO,2BAAW,IAAI,CAAC,EAAE,KAAK,EAAI;AAAA,IACpC,CAAC,OAED,kBAAG,oCAAoC,MAAM;AAC3C,YAAM,WAAO,0BAAY,gBAAgB;AACzC,gCAAO,IAAI,EAAE,UAAU,cAAc,OACrC,0BAAO,2BAAW,IAAI,CAAC,EAAE,KAAK,EAAI;AAAA,IACpC,CAAC;AAAA,EACH,CAAC,OAED,wBAAS,2BAA2B,MAAM;AACxC,0BAAG,oDAAoD,MAAM;AAE3D,YAAM,WAAO,0BAAY,kBAAkB,QAAQ,IAAI,CAAC;AACxD,gCAAO,IAAI,EAAE,KAAK,QAAQ,IAAI,IAAI,eAAe,OACjD,0BAAO,2BAAW,IAAI,CAAC,EAAE,KAAK,EAAI;AAAA,IACpC,CAAC,OAED,kBAAG,kDAAkD,MAAM;AACzD,YAAM,WAAO,0BAAY,UAAU,QAAQ,IAAI,CAAC;AAChD,gCAAO,IAAI,EAAE,UAAU,QAAQ;AAAA,IACjC,CAAC;AAAA,EACH,CAAC,OAED,wBAAS,6BAA6B,MAAM;AAC1C,0BAAG,0DAA0D,MAAM;AAEjE,YAAM,WAAO,0BAAY,iBAAiB,QAAQ,IAAI,CAAC;AAEvD,gCAAO,IAAI,EAAE,WAAW;AAAA,IAC1B,CAAC,OAED,kBAAG,6DAA6D,MAAM;AAEpE,YAAM,WAAO,0BAAY,UAAU,QAAQ,IAAI,CAAC;AAChD,gCAAO,IAAI,EAAE,UAAU,eAAe,OACtC,sBAAO,IAAI,EAAE,IAAI,UAAU,MAAM;AAAA,IACnC,CAAC,OAED,kBAAG,yDAAyD,MAAM;AAEhE,YAAM,WAAO,0BAAY,UAAU,QAAQ,IAAI,CAAC;AAChD,gCAAO,IAAI,EAAE,WAAW;AAAA,IAC1B,CAAC,OAED,kBAAG,wDAAwD,MAAM;AAE/D,YAAM,WAAO,0BAAY,WAAW,QAAQ,IAAI,CAAC;AACjD,gCAAO,IAAI,EAAE,UAAU,SAAS;AAAA,IAClC,CAAC;AAAA,EACH,CAAC;AACH,CAAC;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var import_vitest = require("vitest"),
|
|
4
|
+
import_index = require("./index.native.js"),
|
|
5
|
+
import_fs = require("fs");
|
|
6
|
+
(0, import_vitest.describe)("resolvePath", function () {
|
|
7
|
+
(0, import_vitest.describe)("basic resolution", function () {
|
|
8
|
+
(0, import_vitest.it)("resolves node builtins", function () {
|
|
9
|
+
(0, import_vitest.expect)((0, import_index.resolvePath)("node:path")).toBe("node:path"), (0, import_vitest.expect)((0, import_index.resolvePath)("node:fs")).toBe("node:fs");
|
|
10
|
+
}), (0, import_vitest.it)("resolves npm packages", function () {
|
|
11
|
+
var path = (0, import_index.resolvePath)("vitest");
|
|
12
|
+
(0, import_vitest.expect)(path).toBeTruthy(), (0, import_vitest.expect)((0, import_fs.existsSync)(path)).toBe(!0);
|
|
13
|
+
}), (0, import_vitest.it)("resolves relative paths from cwd", function () {
|
|
14
|
+
var path = (0, import_index.resolvePath)("./package.json");
|
|
15
|
+
(0, import_vitest.expect)(path).toContain("package.json"), (0, import_vitest.expect)((0, import_fs.existsSync)(path)).toBe(!0);
|
|
16
|
+
});
|
|
17
|
+
}), (0, import_vitest.describe)("respects from parameter", function () {
|
|
18
|
+
(0, import_vitest.it)("resolves relative paths from specified directory", function () {
|
|
19
|
+
var path = (0, import_index.resolvePath)("./package.json", process.cwd());
|
|
20
|
+
(0, import_vitest.expect)(path).toBe(process.cwd() + "/package.json"), (0, import_vitest.expect)((0, import_fs.existsSync)(path)).toBe(!0);
|
|
21
|
+
}), (0, import_vitest.it)("resolves npm packages from specified directory", function () {
|
|
22
|
+
var path = (0, import_index.resolvePath)("vitest", process.cwd());
|
|
23
|
+
(0, import_vitest.expect)(path).toContain("vitest");
|
|
24
|
+
});
|
|
25
|
+
}), (0, import_vitest.describe)("ESM entry point detection", function () {
|
|
26
|
+
(0, import_vitest.it)('returns ESM entry when exports["."].import is a string', function () {
|
|
27
|
+
var path = (0, import_index.resolvePath)("@vxrn/resolve", process.cwd());
|
|
28
|
+
(0, import_vitest.expect)(path).toBeTruthy();
|
|
29
|
+
}), (0, import_vitest.it)('returns ESM entry when exports["."].import.default exists', function () {
|
|
30
|
+
var path = (0, import_index.resolvePath)("vitest", process.cwd());
|
|
31
|
+
(0, import_vitest.expect)(path).toContain("dist/index.js"), (0, import_vitest.expect)(path).not.toContain(".cjs");
|
|
32
|
+
}), (0, import_vitest.it)("falls back to module field when exports not available", function () {
|
|
33
|
+
var path = (0, import_index.resolvePath)("vitest", process.cwd());
|
|
34
|
+
(0, import_vitest.expect)(path).toBeTruthy();
|
|
35
|
+
}), (0, import_vitest.it)("falls back to main/require.resolve when no ESM entry", function () {
|
|
36
|
+
var path = (0, import_index.resolvePath)("resolve", process.cwd());
|
|
37
|
+
(0, import_vitest.expect)(path).toContain("resolve");
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=index.test.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["import_vitest","require","import_index","import_fs","describe","it","expect","resolvePath","toBe","path","toBeTruthy","existsSync","toContain","process","cwd","not"],"sources":["../../src/index.test.ts"],"sourcesContent":[null],"mappings":"AAAA;;AAE2B,IAE3BA,aAAA,GAAAC,OAAA,CAAS;EAAAC,YAAqB,GAAAD,OAAA;EAAAE,SAAA,GAAAF,OAAA;AAC5B,IAAAD,aAAA,CAAAI,QAAA,eAAS,cAAoB;EAC3B,IAAAJ,aAAA,CAAAI,QAAG,kCAAgC;IACjC,IAAAJ,aAAA,CAAAK,EAAA,0BAAO,cAAY;MAEpB,IAAAL,aAED,CAAAM,MAAG,MAAAJ,YAAA,CAAAK,WAAyB,EAAM,cAAAC,IAAA,mBAAAR,aAAA,CAAAM,MAAA,MAAAJ,YAAA,CAAAK,WAAA,cAAAC,IAAA;IAChC,QAAMR,aAAO,CAAAK,EAAA,yBAAY,cAAQ;MACjC,IAAAI,IAAA,OAAAP,YAAO,CAAAK,WAAM,UAAW,CACxB;MACD,IAAAP,aAED,CAAAM,MAAG,EAAAG,IAAA,EAAAC,UAAA,QAAAV,aAAoC,CAAAM,MAAM,MAAAH,SAAA,CAAAQ,UAAA,EAAAF,IAAA,GAAAD,IAAA;IAC3C,QAAMR,aAAO,CAAAK,EAAA,oCAAY,EAAgB;MACzC,IAAAI,IAAA,OAAAP,YAAO,CAAAK,WAAM,kBAAwB;MAEtC,IAAAP,aAAA,CAAAM,MAAA,EAAAG,IAAA,EAAAG,SAAA,sBAAAZ,aAAA,CAAAM,MAAA,MAAAH,SAAA,CAAAQ,UAAA,EAAAF,IAAA,GAAAD,IAAA;IACF;EAGC,QAAAR,aAAA,CAAAI,QAAG;IAED,IAAAJ,aAAM,CAAAK,EAAO,oDAAsC,cAAK;MACxD,IAAAI,IAAA,OAAAP,YAAO,CAAAK,WAAW,kBAAgB,EAAAM,OAAA,CAAAC,GAAe;MAElD,IAAAd,aAED,CAAAM,MAAG,EAAAG,IAAA,EAAAD,IAAA,CAAAK,OAAA,CAAAC,GAAA,2BAAkDd,aAAM,CAAAM,MAAA,MAAAH,SAAA,CAAAQ,UAAA,EAAAF,IAAA,GAAAD,IAAA;IACzD,QAAMR,aAAO,CAAAK,EAAA,kDAAmC;MAChD,IAAAI,IAAA,OAAAP,YAAO,CAAAK,WAAM,UAAU,EAAQM,OAAA,CAAAC,GAAA;MAChC,IAAAd,aAAA,CAAAM,MAAA,EAAAG,IAAA,EAAAG,SAAA;IACF;EAGC,QAAAZ,aAAA,CAAAI,QAAG;IAED,IAAAJ,aAAM,CAAAK,EAAO,0DAA0C;MAEvD,IAAAI,IAAA,OAAAP,YAAO,CAAAK,WAAM,iBAAW,EAAAM,OAAA,CAAAC,GAAA;MACzB,IAAAd,aAED,CAAAM,MAAG,EAAAG,IAAA,EAAAC,UAAA;IAED,QAAMV,aAAO,CAAAK,EAAA,6DAAmC;MAChD,IAAAI,IAAA,OAAAP,YAAO,CAAAK,WAAM,UAAU,EAAAM,OAAe,CAAAC,GAAA,EACtC;MACD,IAAAd,aAED,CAAAM,MAAG,EAAAG,IAAA,EAAAG,SAAA,uBAAAZ,aAAA,CAAAM,MAAyD,EAAAG,IAAM,EAAAM,GAAA,CAAAH,SAAA;IAEhE,QAAMZ,aAAO,CAAAK,EAAA,yDAAmC;MAChD,IAAAI,IAAA,OAAAP,YAAO,CAAAK,WAAM,UAAW,EAAAM,OAAA,CAAAC,GAAA;MACzB,IAAAd,aAED,CAAAM,MAAG,EAAAG,IAAA,EAAAC,UAAA;IAED,QAAMV,aAAO,CAAAK,EAAA,wDAAoC;MACjD,IAAAI,IAAA,OAAAP,YAAO,CAAAK,WAAM,WAAU,EAASM,OAAA,CAAAC,GAAA;MACjC,IAAAd,aAAA,CAAAM,MAAA,EAAAG,IAAA,EAAAG,SAAA;IACF;EACF","ignoreList":[]}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,11 +1,22 @@
|
|
|
1
1
|
import module from "node:module";
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
import { readFileSync } from "node:fs";
|
|
4
|
+
const resolvePath = (path, from = process.cwd()) => {
|
|
5
|
+
const require2 = module.createRequire(from.endsWith("/") ? from : from + "/"), resolved = require2.resolve(path, { paths: [from] }), isRelative = path.startsWith("./") || path.startsWith("../"), isBuiltin = path.startsWith("node:");
|
|
6
|
+
if (isRelative || isBuiltin)
|
|
7
|
+
return resolved;
|
|
4
8
|
try {
|
|
5
|
-
|
|
9
|
+
const pkgJsonPath = require2.resolve(`${path}/package.json`, { paths: [from] }), pkgJson = JSON.parse(readFileSync(pkgJsonPath, "utf8")), pkgDir = dirname(pkgJsonPath), exportsImport = pkgJson.exports?.["."]?.import;
|
|
10
|
+
if (exportsImport) {
|
|
11
|
+
const importPath = typeof exportsImport == "string" ? exportsImport : exportsImport.default;
|
|
12
|
+
if (importPath)
|
|
13
|
+
return join(pkgDir, importPath);
|
|
14
|
+
}
|
|
15
|
+
if (pkgJson.module)
|
|
16
|
+
return join(pkgDir, pkgJson.module);
|
|
6
17
|
} catch {
|
|
7
|
-
return resolverV2(path, from);
|
|
8
18
|
}
|
|
19
|
+
return resolved;
|
|
9
20
|
};
|
|
10
21
|
export {
|
|
11
22
|
resolvePath
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/index.tsx"],
|
|
4
|
-
"mappings": "AAAA,OAAO,YAAY;AACnB,SAAS,
|
|
5
|
-
"names": []
|
|
4
|
+
"mappings": "AAAA,OAAO,YAAY;AACnB,SAAS,SAAS,YAAY;AAC9B,SAAS,oBAAoB;AAMtB,MAAM,cAAc,CAAC,MAAc,OAAO,QAAQ,IAAI,MAAc;AACzE,QAAMA,WAAU,OAAO,cAAc,KAAK,SAAS,GAAG,IAAI,OAAO,OAAO,GAAG,GACrE,WAAWA,SAAQ,QAAQ,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,GAGlD,aAAa,KAAK,WAAW,IAAI,KAAK,KAAK,WAAW,KAAK,GAC3D,YAAY,KAAK,WAAW,OAAO;AACzC,MAAI,cAAc;AAChB,WAAO;AAIT,MAAI;AACF,UAAM,cAAcA,SAAQ,QAAQ,GAAG,IAAI,iBAAiB,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,GACvE,UAAU,KAAK,MAAM,aAAa,aAAa,MAAM,CAAC,GACtD,SAAS,QAAQ,WAAW,GAG5B,gBAAgB,QAAQ,UAAU,GAAG,GAAG;AAC9C,QAAI,eAAe;AAEjB,YAAM,aACJ,OAAO,iBAAkB,WAAW,gBAAgB,cAAc;AACpE,UAAI;AACF,eAAO,KAAK,QAAQ,UAAU;AAAA,IAElC;AAGA,QAAI,QAAQ;AACV,aAAO,KAAK,QAAQ,QAAQ,MAAM;AAAA,EAEtC,QAAQ;AAAA,EAER;AAEA,SAAO;AACT;",
|
|
5
|
+
"names": ["require"]
|
|
6
6
|
}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -1,15 +1,28 @@
|
|
|
1
1
|
import module from "node:module";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
import { readFileSync } from "node:fs";
|
|
4
|
+
const resolvePath = (path, from = process.cwd()) => {
|
|
5
|
+
const require2 = module.createRequire(from.endsWith("/") ? from : from + "/"),
|
|
6
|
+
resolved = require2.resolve(path, {
|
|
7
|
+
paths: [from]
|
|
8
|
+
}),
|
|
9
|
+
isRelative = path.startsWith("./") || path.startsWith("../"),
|
|
10
|
+
isBuiltin = path.startsWith("node:");
|
|
11
|
+
if (isRelative || isBuiltin) return resolved;
|
|
12
|
+
try {
|
|
13
|
+
const pkgJsonPath = require2.resolve(`${path}/package.json`, {
|
|
14
|
+
paths: [from]
|
|
15
|
+
}),
|
|
16
|
+
pkgJson = JSON.parse(readFileSync(pkgJsonPath, "utf8")),
|
|
17
|
+
pkgDir = dirname(pkgJsonPath),
|
|
18
|
+
exportsImport = pkgJson.exports?.["."]?.import;
|
|
19
|
+
if (exportsImport) {
|
|
20
|
+
const importPath = typeof exportsImport == "string" ? exportsImport : exportsImport.default;
|
|
21
|
+
if (importPath) return join(pkgDir, importPath);
|
|
12
22
|
}
|
|
13
|
-
|
|
23
|
+
if (pkgJson.module) return join(pkgDir, pkgJson.module);
|
|
24
|
+
} catch {}
|
|
25
|
+
return resolved;
|
|
26
|
+
};
|
|
14
27
|
export { resolvePath };
|
|
15
28
|
//# sourceMappingURL=index.mjs.map
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["module","
|
|
1
|
+
{"version":3,"names":["module","dirname","join","readFileSync","resolvePath","path","from","process","cwd","require2","createRequire","endsWith","resolved","resolve","paths","isRelative","startsWith","isBuiltin","pkgJsonPath","pkgJson","JSON","parse","pkgDir","exportsImport","exports","import","importPath","default"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,MAAA,MAAY;AACnB,SAASC,OAAA,EAASC,IAAA,QAAY;AAC9B,SAASC,YAAA,QAAoB;AAMtB,MAAMC,WAAA,GAAcA,CAACC,IAAA,EAAcC,IAAA,GAAOC,OAAA,CAAQC,GAAA,CAAI,MAAc;EACzE,MAAMC,QAAA,GAAUT,MAAA,CAAOU,aAAA,CAAcJ,IAAA,CAAKK,QAAA,CAAS,GAAG,IAAIL,IAAA,GAAOA,IAAA,GAAO,GAAG;IACrEM,QAAA,GAAWH,QAAA,CAAQI,OAAA,CAAQR,IAAA,EAAM;MAAES,KAAA,EAAO,CAACR,IAAI;IAAE,CAAC;IAGlDS,UAAA,GAAaV,IAAA,CAAKW,UAAA,CAAW,IAAI,KAAKX,IAAA,CAAKW,UAAA,CAAW,KAAK;IAC3DC,SAAA,GAAYZ,IAAA,CAAKW,UAAA,CAAW,OAAO;EACzC,IAAID,UAAA,IAAcE,SAAA,EAChB,OAAOL,QAAA;EAIT,IAAI;IACF,MAAMM,WAAA,GAAcT,QAAA,CAAQI,OAAA,CAAQ,GAAGR,IAAI,iBAAiB;QAAES,KAAA,EAAO,CAACR,IAAI;MAAE,CAAC;MACvEa,OAAA,GAAUC,IAAA,CAAKC,KAAA,CAAMlB,YAAA,CAAae,WAAA,EAAa,MAAM,CAAC;MACtDI,MAAA,GAASrB,OAAA,CAAQiB,WAAW;MAG5BK,aAAA,GAAgBJ,OAAA,CAAQK,OAAA,GAAU,GAAG,GAAGC,MAAA;IAC9C,IAAIF,aAAA,EAAe;MAEjB,MAAMG,UAAA,GACJ,OAAOH,aAAA,IAAkB,WAAWA,aAAA,GAAgBA,aAAA,CAAcI,OAAA;MACpE,IAAID,UAAA,EACF,OAAOxB,IAAA,CAAKoB,MAAA,EAAQI,UAAU;IAElC;IAGA,IAAIP,OAAA,CAAQnB,MAAA,EACV,OAAOE,IAAA,CAAKoB,MAAA,EAAQH,OAAA,CAAQnB,MAAM;EAEtC,QAAQ,CAER;EAEA,OAAOY,QAAA;AACT","ignoreList":[]}
|
package/dist/esm/index.native.js
CHANGED
|
@@ -1,25 +1,31 @@
|
|
|
1
1
|
import module from "module";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
2
|
+
import { dirname, join } from "path";
|
|
3
|
+
import { readFileSync } from "fs";
|
|
4
|
+
var resolvePath = function (path) {
|
|
5
|
+
var from = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : process.cwd(),
|
|
6
|
+
require2 = module.createRequire(from.endsWith("/") ? from : from + "/"),
|
|
7
|
+
resolved = require2.resolve(path, {
|
|
8
|
+
paths: [from]
|
|
9
|
+
}),
|
|
10
|
+
isRelative = path.startsWith("./") || path.startsWith("../"),
|
|
11
|
+
isBuiltin = path.startsWith("node:");
|
|
12
|
+
if (isRelative || isBuiltin) return resolved;
|
|
13
|
+
try {
|
|
14
|
+
var _pkgJson_exports_,
|
|
15
|
+
_pkgJson_exports,
|
|
16
|
+
pkgJsonPath = require2.resolve(`${path}/package.json`, {
|
|
12
17
|
paths: [from]
|
|
13
|
-
})
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
return
|
|
20
|
-
} catch {
|
|
21
|
-
return resolverV2(path, from);
|
|
18
|
+
}),
|
|
19
|
+
pkgJson = JSON.parse(readFileSync(pkgJsonPath, "utf8")),
|
|
20
|
+
pkgDir = dirname(pkgJsonPath),
|
|
21
|
+
exportsImport = (_pkgJson_exports = pkgJson.exports) === null || _pkgJson_exports === void 0 || (_pkgJson_exports_ = _pkgJson_exports["."]) === null || _pkgJson_exports_ === void 0 ? void 0 : _pkgJson_exports_.import;
|
|
22
|
+
if (exportsImport) {
|
|
23
|
+
var importPath = typeof exportsImport == "string" ? exportsImport : exportsImport.default;
|
|
24
|
+
if (importPath) return join(pkgDir, importPath);
|
|
22
25
|
}
|
|
23
|
-
|
|
26
|
+
if (pkgJson.module) return join(pkgDir, pkgJson.module);
|
|
27
|
+
} catch {}
|
|
28
|
+
return resolved;
|
|
29
|
+
};
|
|
24
30
|
export { resolvePath };
|
|
25
31
|
//# sourceMappingURL=index.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["module","
|
|
1
|
+
{"version":3,"names":["module","dirname","join","readFileSync","resolvePath","path","from","arguments","length","process","cwd","require2","createRequire","endsWith","resolved","resolve","paths","isRelative","startsWith","isBuiltin","_pkgJson_exports_","_pkgJson_exports","pkgJsonPath","pkgJson","JSON","parse","pkgDir","exportsImport","exports","import","importPath","default"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,MAAA,MAAY;AACnB,SAASC,OAAA,EAASC,IAAA,QAAY;AAC9B,SAASC,YAAA,QAAoB;AAMtB,IAAAC,WAAM,YAAAA,CAA6BC,IAAA;EACxC,IAAAC,IAAM,GAAAC,SAAU,CAAAC,MAAO,QAAAD,SAAmB,QAAS,KAAG,IAAIA,SAAO,GAAO,GAAGE,OACrE,CAAAC,GAAA;IAAWC,QAAQ,GAAAX,MAAQ,CAAAY,aAAe,CAACN,IAAI,CAAAO,QAG/C,QAAAP,IAAa,GAAKA,IAAA,OAAW;IAAAQ,QAAS,GAAAH,QAAK,CAAAI,OAAW,CAAKV,IAC3D;MACNW,KAAI,GACFV,IAAA;IAKA;IAAAW,UAAM,GAAAZ,IAAA,CAAca,UAAQ,UAAWb,IAAI,CAAAa,UAAA,MAAiB;IAAEC,SAAQ,GAAId,IAAG,CACvEa,UAAU,QAAK;EAKrB,IAAAD,UAAI,IAAAE,SAAe,EAEjB,OAAAL,QAAM;EAEN;IACE,IAAAM,iBAAY;MAAAC,gBAAkB;MAAAC,WAAA,GAAAX,QAAA,CAAAI,OAAA,IAAAV,IAAA;QAElCW,KAAA,GAGIV,IAAA;MAGN;MAAAiB,OAAQ,GAAAC,IAAA,CAAAC,KAAA,CAAAtB,YAAA,CAAAmB,WAAA;MAAAI,MAAA,GAAAzB,OAAA,CAAAqB,WAAA;MAAAK,aAAA,IAAAN,gBAAA,GAAAE,OAAA,CAAAK,OAAA,cAAAP,gBAAA,gBAAAD,iBAAA,GAAAC,gBAAA,mBAAAD,iBAAA,uBAAAA,iBAAA,CAAAS,MAAA;IAER,IAAAF,aAAA;MAEA,IAAOG,UAAA,UAAAH,aAAA,eAAAA,aAAA,GAAAA,aAAA,CAAAI,OAAA;MACT,IAAAD,UAAA,E","ignoreList":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { resolvePath } from "./index";
|
|
3
|
+
import { existsSync } from "node:fs";
|
|
4
|
+
describe("resolvePath", () => {
|
|
5
|
+
describe("basic resolution", () => {
|
|
6
|
+
it("resolves node builtins", () => {
|
|
7
|
+
expect(resolvePath("node:path")).toBe("node:path"), expect(resolvePath("node:fs")).toBe("node:fs");
|
|
8
|
+
}), it("resolves npm packages", () => {
|
|
9
|
+
const path = resolvePath("vitest");
|
|
10
|
+
expect(path).toBeTruthy(), expect(existsSync(path)).toBe(!0);
|
|
11
|
+
}), it("resolves relative paths from cwd", () => {
|
|
12
|
+
const path = resolvePath("./package.json");
|
|
13
|
+
expect(path).toContain("package.json"), expect(existsSync(path)).toBe(!0);
|
|
14
|
+
});
|
|
15
|
+
}), describe("respects from parameter", () => {
|
|
16
|
+
it("resolves relative paths from specified directory", () => {
|
|
17
|
+
const path = resolvePath("./package.json", process.cwd());
|
|
18
|
+
expect(path).toBe(process.cwd() + "/package.json"), expect(existsSync(path)).toBe(!0);
|
|
19
|
+
}), it("resolves npm packages from specified directory", () => {
|
|
20
|
+
const path = resolvePath("vitest", process.cwd());
|
|
21
|
+
expect(path).toContain("vitest");
|
|
22
|
+
});
|
|
23
|
+
}), describe("ESM entry point detection", () => {
|
|
24
|
+
it('returns ESM entry when exports["."].import is a string', () => {
|
|
25
|
+
const path = resolvePath("@vxrn/resolve", process.cwd());
|
|
26
|
+
expect(path).toBeTruthy();
|
|
27
|
+
}), it('returns ESM entry when exports["."].import.default exists', () => {
|
|
28
|
+
const path = resolvePath("vitest", process.cwd());
|
|
29
|
+
expect(path).toContain("dist/index.js"), expect(path).not.toContain(".cjs");
|
|
30
|
+
}), it("falls back to module field when exports not available", () => {
|
|
31
|
+
const path = resolvePath("vitest", process.cwd());
|
|
32
|
+
expect(path).toBeTruthy();
|
|
33
|
+
}), it("falls back to main/require.resolve when no ESM entry", () => {
|
|
34
|
+
const path = resolvePath("resolve", process.cwd());
|
|
35
|
+
expect(path).toContain("resolve");
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/index.test.ts"],
|
|
4
|
+
"mappings": "AAAA,SAAS,UAAU,QAAQ,UAAU;AACrC,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB;AAE3B,SAAS,eAAe,MAAM;AAC5B,WAAS,oBAAoB,MAAM;AACjC,OAAG,0BAA0B,MAAM;AACjC,aAAO,YAAY,WAAW,CAAC,EAAE,KAAK,WAAW,GACjD,OAAO,YAAY,SAAS,CAAC,EAAE,KAAK,SAAS;AAAA,IAC/C,CAAC,GAED,GAAG,yBAAyB,MAAM;AAChC,YAAM,OAAO,YAAY,QAAQ;AACjC,aAAO,IAAI,EAAE,WAAW,GACxB,OAAO,WAAW,IAAI,CAAC,EAAE,KAAK,EAAI;AAAA,IACpC,CAAC,GAED,GAAG,oCAAoC,MAAM;AAC3C,YAAM,OAAO,YAAY,gBAAgB;AACzC,aAAO,IAAI,EAAE,UAAU,cAAc,GACrC,OAAO,WAAW,IAAI,CAAC,EAAE,KAAK,EAAI;AAAA,IACpC,CAAC;AAAA,EACH,CAAC,GAED,SAAS,2BAA2B,MAAM;AACxC,OAAG,oDAAoD,MAAM;AAE3D,YAAM,OAAO,YAAY,kBAAkB,QAAQ,IAAI,CAAC;AACxD,aAAO,IAAI,EAAE,KAAK,QAAQ,IAAI,IAAI,eAAe,GACjD,OAAO,WAAW,IAAI,CAAC,EAAE,KAAK,EAAI;AAAA,IACpC,CAAC,GAED,GAAG,kDAAkD,MAAM;AACzD,YAAM,OAAO,YAAY,UAAU,QAAQ,IAAI,CAAC;AAChD,aAAO,IAAI,EAAE,UAAU,QAAQ;AAAA,IACjC,CAAC;AAAA,EACH,CAAC,GAED,SAAS,6BAA6B,MAAM;AAC1C,OAAG,0DAA0D,MAAM;AAEjE,YAAM,OAAO,YAAY,iBAAiB,QAAQ,IAAI,CAAC;AAEvD,aAAO,IAAI,EAAE,WAAW;AAAA,IAC1B,CAAC,GAED,GAAG,6DAA6D,MAAM;AAEpE,YAAM,OAAO,YAAY,UAAU,QAAQ,IAAI,CAAC;AAChD,aAAO,IAAI,EAAE,UAAU,eAAe,GACtC,OAAO,IAAI,EAAE,IAAI,UAAU,MAAM;AAAA,IACnC,CAAC,GAED,GAAG,yDAAyD,MAAM;AAEhE,YAAM,OAAO,YAAY,UAAU,QAAQ,IAAI,CAAC;AAChD,aAAO,IAAI,EAAE,WAAW;AAAA,IAC1B,CAAC,GAED,GAAG,wDAAwD,MAAM;AAE/D,YAAM,OAAO,YAAY,WAAW,QAAQ,IAAI,CAAC;AACjD,aAAO,IAAI,EAAE,UAAU,SAAS;AAAA,IAClC,CAAC;AAAA,EACH,CAAC;AACH,CAAC;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { resolvePath } from "./index.mjs";
|
|
3
|
+
import { existsSync } from "node:fs";
|
|
4
|
+
describe("resolvePath", () => {
|
|
5
|
+
describe("basic resolution", () => {
|
|
6
|
+
it("resolves node builtins", () => {
|
|
7
|
+
expect(resolvePath("node:path")).toBe("node:path"), expect(resolvePath("node:fs")).toBe("node:fs");
|
|
8
|
+
}), it("resolves npm packages", () => {
|
|
9
|
+
const path = resolvePath("vitest");
|
|
10
|
+
expect(path).toBeTruthy(), expect(existsSync(path)).toBe(!0);
|
|
11
|
+
}), it("resolves relative paths from cwd", () => {
|
|
12
|
+
const path = resolvePath("./package.json");
|
|
13
|
+
expect(path).toContain("package.json"), expect(existsSync(path)).toBe(!0);
|
|
14
|
+
});
|
|
15
|
+
}), describe("respects from parameter", () => {
|
|
16
|
+
it("resolves relative paths from specified directory", () => {
|
|
17
|
+
const path = resolvePath("./package.json", process.cwd());
|
|
18
|
+
expect(path).toBe(process.cwd() + "/package.json"), expect(existsSync(path)).toBe(!0);
|
|
19
|
+
}), it("resolves npm packages from specified directory", () => {
|
|
20
|
+
const path = resolvePath("vitest", process.cwd());
|
|
21
|
+
expect(path).toContain("vitest");
|
|
22
|
+
});
|
|
23
|
+
}), describe("ESM entry point detection", () => {
|
|
24
|
+
it('returns ESM entry when exports["."].import is a string', () => {
|
|
25
|
+
const path = resolvePath("@vxrn/resolve", process.cwd());
|
|
26
|
+
expect(path).toBeTruthy();
|
|
27
|
+
}), it('returns ESM entry when exports["."].import.default exists', () => {
|
|
28
|
+
const path = resolvePath("vitest", process.cwd());
|
|
29
|
+
expect(path).toContain("dist/index.js"), expect(path).not.toContain(".cjs");
|
|
30
|
+
}), it("falls back to module field when exports not available", () => {
|
|
31
|
+
const path = resolvePath("vitest", process.cwd());
|
|
32
|
+
expect(path).toBeTruthy();
|
|
33
|
+
}), it("falls back to main/require.resolve when no ESM entry", () => {
|
|
34
|
+
const path = resolvePath("resolve", process.cwd());
|
|
35
|
+
expect(path).toContain("resolve");
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=index.test.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["describe","expect","it","resolvePath","existsSync","toBe","path","toBeTruthy","toContain","process","cwd","not"],"sources":["../../src/index.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AACrC,SAASC,WAAA,QAAmB;AAC5B,SAASC,UAAA,QAAkB;AAE3BJ,QAAA,CAAS,eAAe,MAAM;EAC5BA,QAAA,CAAS,oBAAoB,MAAM;IACjCE,EAAA,CAAG,0BAA0B,MAAM;MACjCD,MAAA,CAAOE,WAAA,CAAY,WAAW,CAAC,EAAEE,IAAA,CAAK,WAAW,GACjDJ,MAAA,CAAOE,WAAA,CAAY,SAAS,CAAC,EAAEE,IAAA,CAAK,SAAS;IAC/C,CAAC,GAEDH,EAAA,CAAG,yBAAyB,MAAM;MAChC,MAAMI,IAAA,GAAOH,WAAA,CAAY,QAAQ;MACjCF,MAAA,CAAOK,IAAI,EAAEC,UAAA,CAAW,GACxBN,MAAA,CAAOG,UAAA,CAAWE,IAAI,CAAC,EAAED,IAAA,CAAK,EAAI;IACpC,CAAC,GAEDH,EAAA,CAAG,oCAAoC,MAAM;MAC3C,MAAMI,IAAA,GAAOH,WAAA,CAAY,gBAAgB;MACzCF,MAAA,CAAOK,IAAI,EAAEE,SAAA,CAAU,cAAc,GACrCP,MAAA,CAAOG,UAAA,CAAWE,IAAI,CAAC,EAAED,IAAA,CAAK,EAAI;IACpC,CAAC;EACH,CAAC,GAEDL,QAAA,CAAS,2BAA2B,MAAM;IACxCE,EAAA,CAAG,oDAAoD,MAAM;MAE3D,MAAMI,IAAA,GAAOH,WAAA,CAAY,kBAAkBM,OAAA,CAAQC,GAAA,CAAI,CAAC;MACxDT,MAAA,CAAOK,IAAI,EAAED,IAAA,CAAKI,OAAA,CAAQC,GAAA,CAAI,IAAI,eAAe,GACjDT,MAAA,CAAOG,UAAA,CAAWE,IAAI,CAAC,EAAED,IAAA,CAAK,EAAI;IACpC,CAAC,GAEDH,EAAA,CAAG,kDAAkD,MAAM;MACzD,MAAMI,IAAA,GAAOH,WAAA,CAAY,UAAUM,OAAA,CAAQC,GAAA,CAAI,CAAC;MAChDT,MAAA,CAAOK,IAAI,EAAEE,SAAA,CAAU,QAAQ;IACjC,CAAC;EACH,CAAC,GAEDR,QAAA,CAAS,6BAA6B,MAAM;IAC1CE,EAAA,CAAG,0DAA0D,MAAM;MAEjE,MAAMI,IAAA,GAAOH,WAAA,CAAY,iBAAiBM,OAAA,CAAQC,GAAA,CAAI,CAAC;MAEvDT,MAAA,CAAOK,IAAI,EAAEC,UAAA,CAAW;IAC1B,CAAC,GAEDL,EAAA,CAAG,6DAA6D,MAAM;MAEpE,MAAMI,IAAA,GAAOH,WAAA,CAAY,UAAUM,OAAA,CAAQC,GAAA,CAAI,CAAC;MAChDT,MAAA,CAAOK,IAAI,EAAEE,SAAA,CAAU,eAAe,GACtCP,MAAA,CAAOK,IAAI,EAAEK,GAAA,CAAIH,SAAA,CAAU,MAAM;IACnC,CAAC,GAEDN,EAAA,CAAG,yDAAyD,MAAM;MAEhE,MAAMI,IAAA,GAAOH,WAAA,CAAY,UAAUM,OAAA,CAAQC,GAAA,CAAI,CAAC;MAChDT,MAAA,CAAOK,IAAI,EAAEC,UAAA,CAAW;IAC1B,CAAC,GAEDL,EAAA,CAAG,wDAAwD,MAAM;MAE/D,MAAMI,IAAA,GAAOH,WAAA,CAAY,WAAWM,OAAA,CAAQC,GAAA,CAAI,CAAC;MACjDT,MAAA,CAAOK,IAAI,EAAEE,SAAA,CAAU,SAAS;IAClC,CAAC;EACH,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { resolvePath } from "./index.native.js";
|
|
3
|
+
import { existsSync } from "fs";
|
|
4
|
+
describe("resolvePath", function () {
|
|
5
|
+
describe("basic resolution", function () {
|
|
6
|
+
it("resolves node builtins", function () {
|
|
7
|
+
expect(resolvePath("node:path")).toBe("node:path"), expect(resolvePath("node:fs")).toBe("node:fs");
|
|
8
|
+
}), it("resolves npm packages", function () {
|
|
9
|
+
var path = resolvePath("vitest");
|
|
10
|
+
expect(path).toBeTruthy(), expect(existsSync(path)).toBe(!0);
|
|
11
|
+
}), it("resolves relative paths from cwd", function () {
|
|
12
|
+
var path = resolvePath("./package.json");
|
|
13
|
+
expect(path).toContain("package.json"), expect(existsSync(path)).toBe(!0);
|
|
14
|
+
});
|
|
15
|
+
}), describe("respects from parameter", function () {
|
|
16
|
+
it("resolves relative paths from specified directory", function () {
|
|
17
|
+
var path = resolvePath("./package.json", process.cwd());
|
|
18
|
+
expect(path).toBe(process.cwd() + "/package.json"), expect(existsSync(path)).toBe(!0);
|
|
19
|
+
}), it("resolves npm packages from specified directory", function () {
|
|
20
|
+
var path = resolvePath("vitest", process.cwd());
|
|
21
|
+
expect(path).toContain("vitest");
|
|
22
|
+
});
|
|
23
|
+
}), describe("ESM entry point detection", function () {
|
|
24
|
+
it('returns ESM entry when exports["."].import is a string', function () {
|
|
25
|
+
var path = resolvePath("@vxrn/resolve", process.cwd());
|
|
26
|
+
expect(path).toBeTruthy();
|
|
27
|
+
}), it('returns ESM entry when exports["."].import.default exists', function () {
|
|
28
|
+
var path = resolvePath("vitest", process.cwd());
|
|
29
|
+
expect(path).toContain("dist/index.js"), expect(path).not.toContain(".cjs");
|
|
30
|
+
}), it("falls back to module field when exports not available", function () {
|
|
31
|
+
var path = resolvePath("vitest", process.cwd());
|
|
32
|
+
expect(path).toBeTruthy();
|
|
33
|
+
}), it("falls back to main/require.resolve when no ESM entry", function () {
|
|
34
|
+
var path = resolvePath("resolve", process.cwd());
|
|
35
|
+
expect(path).toContain("resolve");
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=index.test.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["describe","expect","it","resolvePath","existsSync","toBe","path","toBeTruthy","toContain","process","cwd","not"],"sources":["../../src/index.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AACrC,SAASC,WAAA,QAAmB;AAC5B,SAASC,UAAA,QAAkB;AAE3BJ,QAAA,CAAS,eAAe,YAAM;EAC5BA,QAAA,CAAS,oBAAoB,YAAM;IACjCE,EAAA,CAAG,0BAA0B,YAAM;MACjCD,MAAA,CAAOE,WAAA,CAAY,WAAW,CAAC,EAAEE,IAAA,CAAK,WAAW,GACjDJ,MAAA,CAAOE,WAAA,CAAY,SAAS,CAAC,EAAEE,IAAA,CAAK,SAAS;IAC/C,CAAC,GAEDH,EAAA,CAAG,yBAAyB,YAAM;MAChC,IAAAI,IAAM,GAAAH,WAAO,SAAY;MACzBF,MAAA,CAAOK,IAAI,EAAEC,UAAA,CAAW,GACxBN,MAAA,CAAOG,UAAA,CAAWE,IAAI,CAAC,EAAED,IAAA,CAAK,EAAI;IACpC,CAAC,GAEDH,EAAA,CAAG,oCAAoC,YAAM;MAC3C,IAAAI,IAAM,GAAAH,WAAO,iBAAY;MACzBF,MAAA,CAAOK,IAAI,EAAEE,SAAA,CAAU,cAAc,GACrCP,MAAA,CAAOG,UAAA,CAAWE,IAAI,CAAC,EAAED,IAAA,CAAK,EAAI;IACpC,CAAC;EACH,CAAC,GAEDL,QAAA,CAAS,2BAA2B,YAAM;IACxCE,EAAA,CAAG,oDAAoD,YAAM;MAE3D,IAAAI,IAAM,GAAAH,WAAO,iBAAY,EAAAM,OAAkB,CAAAC,GAAQ,GAAI;MACvDT,MAAA,CAAOK,IAAI,EAAED,IAAA,CAAKI,OAAA,CAAQC,GAAA,CAAI,IAAI,eAAe,GACjDT,MAAA,CAAOG,UAAA,CAAWE,IAAI,CAAC,EAAED,IAAA,CAAK,EAAI;IACpC,CAAC,GAEDH,EAAA,CAAG,kDAAkD,YAAM;MACzD,IAAAI,IAAM,GAAAH,WAAO,SAAY,EAAAM,OAAU,CAAAC,GAAQ,GAAI;MAC/CT,MAAA,CAAOK,IAAI,EAAEE,SAAA,CAAU,QAAQ;IACjC,CAAC;EACH,CAAC,GAEDR,QAAA,CAAS,6BAA6B,YAAM;IAC1CE,EAAA,CAAG,0DAA0D,YAAM;MAEjE,IAAAI,IAAM,GAAAH,WAAO,gBAAY,EAAAM,OAAiB,CAAAC,GAAQ,GAAI;MAEtDT,MAAA,CAAOK,IAAI,EAAEC,UAAA,CAAW;IAC1B,CAAC,GAEDL,EAAA,CAAG,6DAA6D,YAAM;MAEpE,IAAAI,IAAM,GAAAH,WAAO,SAAY,EAAAM,OAAU,CAAAC,GAAQ,GAAI;MAC/CT,MAAA,CAAOK,IAAI,EAAEE,SAAA,CAAU,eAAe,GACtCP,MAAA,CAAOK,IAAI,EAAEK,GAAA,CAAIH,SAAA,CAAU,MAAM;IACnC,CAAC,GAEDN,EAAA,CAAG,yDAAyD,YAAM;MAEhE,IAAAI,IAAM,GAAAH,WAAO,SAAY,EAAAM,OAAU,CAAAC,GAAQ,GAAI;MAC/CT,MAAA,CAAOK,IAAI,EAAEC,UAAA,CAAW;IAC1B,CAAC,GAEDL,EAAA,CAAG,wDAAwD,YAAM;MAE/D,IAAAI,IAAM,GAAAH,WAAO,UAAY,EAAAM,OAAW,CAAAC,GAAQ,GAAI;MAChDT,MAAA,CAAOK,IAAI,EAAEE,SAAA,CAAU,SAAS;IAClC,CAAC;EACH,CAAC;AACH,CAAC","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vxrn/resolve",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.49",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"source": "src/index.tsx",
|
|
6
6
|
"type": "module",
|
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
},
|
|
18
18
|
"files": [
|
|
19
19
|
"src",
|
|
20
|
-
"dist"
|
|
20
|
+
"dist",
|
|
21
|
+
"types"
|
|
21
22
|
],
|
|
22
23
|
"scripts": {
|
|
23
24
|
"build": "tamagui-build",
|
|
@@ -25,10 +26,12 @@
|
|
|
25
26
|
"lint": "npx biome check src",
|
|
26
27
|
"lint:fix": "npx biome check --write --unsafe src",
|
|
27
28
|
"clean": "tamagui-build clean",
|
|
28
|
-
"clean:build": "tamagui-build clean:build"
|
|
29
|
+
"clean:build": "tamagui-build clean:build",
|
|
30
|
+
"test": "vitest run --dir src"
|
|
29
31
|
},
|
|
30
32
|
"devDependencies": {
|
|
31
|
-
"@tamagui/build": "^1.
|
|
33
|
+
"@tamagui/build": "^1.144.0",
|
|
34
|
+
"vitest": "^4.0.6"
|
|
32
35
|
},
|
|
33
36
|
"publishConfig": {
|
|
34
37
|
"access": "public"
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest'
|
|
2
|
+
import { resolvePath } from './index'
|
|
3
|
+
import { existsSync } from 'node:fs'
|
|
4
|
+
|
|
5
|
+
describe('resolvePath', () => {
|
|
6
|
+
describe('basic resolution', () => {
|
|
7
|
+
it('resolves node builtins', () => {
|
|
8
|
+
expect(resolvePath('node:path')).toBe('node:path')
|
|
9
|
+
expect(resolvePath('node:fs')).toBe('node:fs')
|
|
10
|
+
})
|
|
11
|
+
|
|
12
|
+
it('resolves npm packages', () => {
|
|
13
|
+
const path = resolvePath('vitest')
|
|
14
|
+
expect(path).toBeTruthy()
|
|
15
|
+
expect(existsSync(path)).toBe(true)
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
it('resolves relative paths from cwd', () => {
|
|
19
|
+
const path = resolvePath('./package.json')
|
|
20
|
+
expect(path).toContain('package.json')
|
|
21
|
+
expect(existsSync(path)).toBe(true)
|
|
22
|
+
})
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
describe('respects from parameter', () => {
|
|
26
|
+
it('resolves relative paths from specified directory', () => {
|
|
27
|
+
// Use process.cwd() which is the repo root when running tests
|
|
28
|
+
const path = resolvePath('./package.json', process.cwd())
|
|
29
|
+
expect(path).toBe(process.cwd() + '/package.json')
|
|
30
|
+
expect(existsSync(path)).toBe(true)
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
it('resolves npm packages from specified directory', () => {
|
|
34
|
+
const path = resolvePath('vitest', process.cwd())
|
|
35
|
+
expect(path).toContain('vitest')
|
|
36
|
+
})
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
describe('ESM entry point detection', () => {
|
|
40
|
+
it('returns ESM entry when exports["."].import is a string', () => {
|
|
41
|
+
// Most @tamagui packages have this pattern
|
|
42
|
+
const path = resolvePath('@vxrn/resolve', process.cwd())
|
|
43
|
+
// Should resolve to ESM if available
|
|
44
|
+
expect(path).toBeTruthy()
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
it('returns ESM entry when exports["."].import.default exists', () => {
|
|
48
|
+
// vitest has nested structure: { import: { types: "...", default: "..." } }
|
|
49
|
+
const path = resolvePath('vitest', process.cwd())
|
|
50
|
+
expect(path).toContain('dist/index.js')
|
|
51
|
+
expect(path).not.toContain('.cjs')
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
it('falls back to module field when exports not available', () => {
|
|
55
|
+
// Some packages only have "module" field
|
|
56
|
+
const path = resolvePath('vitest', process.cwd())
|
|
57
|
+
expect(path).toBeTruthy()
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
it('falls back to main/require.resolve when no ESM entry', () => {
|
|
61
|
+
// resolve package is CJS-only (no exports field, just main)
|
|
62
|
+
const path = resolvePath('resolve', process.cwd())
|
|
63
|
+
expect(path).toContain('resolve')
|
|
64
|
+
})
|
|
65
|
+
})
|
|
66
|
+
})
|
package/src/index.tsx
CHANGED
|
@@ -1,24 +1,46 @@
|
|
|
1
1
|
import module from 'node:module'
|
|
2
|
-
import {
|
|
2
|
+
import { dirname, join } from 'node:path'
|
|
3
|
+
import { readFileSync } from 'node:fs'
|
|
3
4
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Resolves a module path from the specified directory.
|
|
7
|
+
* For npm packages, returns the ESM entry point when available.
|
|
8
|
+
*/
|
|
9
|
+
export const resolvePath = (path: string, from = process.cwd()): string => {
|
|
10
|
+
const require = module.createRequire(from.endsWith('/') ? from : from + '/')
|
|
11
|
+
const resolved = require.resolve(path, { paths: [from] })
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
// For relative paths or node: builtins, just return the resolved path
|
|
14
|
+
const isRelative = path.startsWith('./') || path.startsWith('../')
|
|
15
|
+
const isBuiltin = path.startsWith('node:')
|
|
16
|
+
if (isRelative || isBuiltin) {
|
|
17
|
+
return resolved
|
|
18
|
+
}
|
|
16
19
|
|
|
17
|
-
|
|
18
|
-
// We might be able to use resolverV2 directly, but here we'll still try to use the original implementation first in case there're any issues with the new one.
|
|
20
|
+
// For npm packages, try to find ESM entry point from package.json
|
|
19
21
|
try {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
const pkgJsonPath = require.resolve(`${path}/package.json`, { paths: [from] })
|
|
23
|
+
const pkgJson = JSON.parse(readFileSync(pkgJsonPath, 'utf8'))
|
|
24
|
+
const pkgDir = dirname(pkgJsonPath)
|
|
25
|
+
|
|
26
|
+
// Check exports["."].import first (most accurate for ESM)
|
|
27
|
+
const exportsImport = pkgJson.exports?.['.']?.import
|
|
28
|
+
if (exportsImport) {
|
|
29
|
+
// Handle nested structure like { import: { types: "...", default: "..." } }
|
|
30
|
+
const importPath =
|
|
31
|
+
typeof exportsImport === 'string' ? exportsImport : exportsImport.default
|
|
32
|
+
if (importPath) {
|
|
33
|
+
return join(pkgDir, importPath)
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Fall back to module field
|
|
38
|
+
if (pkgJson.module) {
|
|
39
|
+
return join(pkgDir, pkgJson.module)
|
|
40
|
+
}
|
|
41
|
+
} catch {
|
|
42
|
+
// Fall back to resolved path if we can't read package.json
|
|
23
43
|
}
|
|
44
|
+
|
|
45
|
+
return resolved
|
|
24
46
|
}
|
package/types/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAIA;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,EAAE,aAAoB,KAAG,MAqChE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}
|