@tamagui/babel-plugin-fully-specified 1.135.4 → 1.135.5
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/package.json +2 -3
- package/permanent/cjs/commonjs.js +2 -2
- package/permanent/cjs/commonjs.js.map +1 -1
- package/permanent/cjs/commonjs.mjs +71 -0
- package/permanent/cjs/commonjs.mjs.map +1 -0
- package/permanent/cjs/index.js +25 -4
- package/permanent/cjs/index.js.map +1 -1
- package/permanent/cjs/index.mjs +165 -0
- package/permanent/cjs/index.mjs.map +1 -0
- package/permanent/esm/commonjs.js +2 -2
- package/permanent/esm/commonjs.js.map +1 -1
- package/permanent/esm/commonjs.mjs +2 -2
- package/permanent/esm/commonjs.mjs.map +1 -1
- package/permanent/esm/index.js +15 -1
- package/permanent/esm/index.js.map +1 -1
- package/permanent/esm/index.mjs +13 -1
- package/permanent/esm/index.mjs.map +1 -1
- package/src/commonjs.ts +8 -3
- package/src/index.ts +34 -1
- package/src/__tests__/__snapshots__/index.test.ts.snap +0 -6
- package/src/__tests__/fixtures/force-extension/bar.js +0 -1
- package/src/__tests__/fixtures/force-extension/foo.js +0 -1
- package/src/__tests__/fixtures/multiple-extensions-exists/modules/module.cjs +0 -2
- package/src/__tests__/fixtures/multiple-extensions-exists/modules/module.js +0 -2
- package/src/__tests__/fixtures/multiple-extensions-exists/modules/module.mjs +0 -4
- package/src/__tests__/fixtures/multiple-extensions-exists/test.mjs +0 -2
- package/src/__tests__/fixtures/sample-project-1/modules/cjs-module.cjs +0 -2
- package/src/__tests__/fixtures/sample-project-1/modules/module.mjs +0 -4
- package/src/__tests__/fixtures/sample-project-1/test.mjs +0 -13
- package/src/__tests__/index.test.ts +0 -115
package/package.json
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/babel-plugin-fully-specified",
|
|
3
|
-
"version": "1.135.
|
|
3
|
+
"version": "1.135.5",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
|
-
"types": "./types/index.d.ts",
|
|
6
5
|
"main": "permanent/cjs/index.js",
|
|
7
6
|
"module": "permanent/esm/index.mjs",
|
|
8
7
|
"files": [
|
|
@@ -37,7 +36,7 @@
|
|
|
37
36
|
},
|
|
38
37
|
"devDependencies": {
|
|
39
38
|
"@babel/types": "^7.25.4",
|
|
40
|
-
"vitest": "^
|
|
39
|
+
"vitest": "^4.0.4"
|
|
41
40
|
},
|
|
42
41
|
"gitHead": "a49cc7ea6b93ba384e77a4880ae48ac4a5635c14"
|
|
43
42
|
}
|
|
@@ -18,7 +18,7 @@ __export(commonjs_exports, {
|
|
|
18
18
|
});
|
|
19
19
|
module.exports = __toCommonJS(commonjs_exports);
|
|
20
20
|
var import_node_fs = require("node:fs"), import_node_path = require("node:path");
|
|
21
|
-
function fullySpecifyCommonJS(api) {
|
|
21
|
+
function fullySpecifyCommonJS(api, options) {
|
|
22
22
|
return api.assertVersion(7), {
|
|
23
23
|
name: "babel-plugin-fully-specified-cjs",
|
|
24
24
|
visitor: {
|
|
@@ -30,7 +30,7 @@ function fullySpecifyCommonJS(api) {
|
|
|
30
30
|
if (moduleSpecifier.startsWith(".") || moduleSpecifier.startsWith("/")) {
|
|
31
31
|
const filePath = state.file.opts.filename;
|
|
32
32
|
if (!filePath) return;
|
|
33
|
-
const fileDir = (0, import_node_path.dirname)(filePath), cjsExtension = ".cjs", jsExtension = ".js";
|
|
33
|
+
const fileDir = (0, import_node_path.dirname)(filePath), cjsExtension = options.esExtensionDefault || ".cjs", jsExtension = ".js";
|
|
34
34
|
if (!(0, import_node_path.extname)(moduleSpecifier)) {
|
|
35
35
|
const resolvedPath = (0, import_node_path.resolve)(fileDir, moduleSpecifier);
|
|
36
36
|
let newModuleSpecifier = moduleSpecifier;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/commonjs.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAsC,oBACtC,mBAA0C;AAE3B,SAAR,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAsC,oBACtC,mBAA0C;AAE3B,SAAR,qBACL,KACA,SAGiB;AACjB,aAAI,cAAc,CAAC,GAEZ;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,MACP,eAAe,MAAM,OAAO;AAG1B,YAFe,KAAK,IAAI,QAAQ,EAGvB,aAAa,EAAE,MAAM,UAAU,CAAC,KACvC,KAAK,KAAK,UAAU,WAAW,GAC/B;AACA,gBAAM,MAAM,KAAK,KAAK,UAAU,CAAC;AACjC,cAAI,IAAI,SAAS,iBAAiB;AAChC,gBAAI,kBAAkB,IAAI;AAG1B,gBAAI,gBAAgB,WAAW,GAAG,KAAK,gBAAgB,WAAW,GAAG,GAAG;AACtE,oBAAM,WAAW,MAAM,KAAK,KAAK;AACjC,kBAAI,CAAC,SAAU;AAEf,oBAAM,cAAU,0BAAQ,QAAQ,GAC1B,eAAe,QAAQ,sBAAsB,QAC7C,cAAc;AAGpB,kBAAI,KAAC,0BAAQ,eAAe,GAAG;AAC7B,sBAAM,mBAAe,0BAAQ,SAAS,eAAe;AACrD,oBAAI,qBAAqB;AAGzB,oBAAI,iBAAiB,YAAY,GAAG;AAClC,wBAAM,gBAAY,0BAAQ,cAAc,UAAU,WAAW;AAC7D,0BAAI,2BAAW,SAAS,GAAG;AAEzB,oBAAK,mBAAmB,SAAS,GAAG,MAClC,sBAAsB,MAExB,sBAAsB,UAAU,cAChC,IAAI,QAAQ;AACZ;AAAA,kBACF;AAAA,gBACF;AAGA,sBAAM,iBAAiB,eAAe;AACtC,wBAAI,2BAAW,cAAc,GAAG;AAC9B,wCAAsB,cACtB,IAAI,QAAQ;AACZ;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,iBAAiB,cAA+B;AACvD,aAAO,2BAAW,YAAY,SAAK,0BAAU,YAAY,EAAE,YAAY;AACzE;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all) __defProp(target, name, {
|
|
7
|
+
get: all[name],
|
|
8
|
+
enumerable: !0
|
|
9
|
+
});
|
|
10
|
+
},
|
|
11
|
+
__copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
|
|
13
|
+
get: () => from[key],
|
|
14
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
15
|
+
});
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
19
|
+
value: !0
|
|
20
|
+
}), mod);
|
|
21
|
+
var commonjs_exports = {};
|
|
22
|
+
__export(commonjs_exports, {
|
|
23
|
+
default: () => fullySpecifyCommonJS
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(commonjs_exports);
|
|
26
|
+
var import_node_fs = require("node:fs"),
|
|
27
|
+
import_node_path = require("node:path");
|
|
28
|
+
function fullySpecifyCommonJS(api, options) {
|
|
29
|
+
return api.assertVersion(7), {
|
|
30
|
+
name: "babel-plugin-fully-specified-cjs",
|
|
31
|
+
visitor: {
|
|
32
|
+
CallExpression(path, state) {
|
|
33
|
+
if (path.get("callee").isIdentifier({
|
|
34
|
+
name: "require"
|
|
35
|
+
}) && path.node.arguments.length === 1) {
|
|
36
|
+
const arg = path.node.arguments[0];
|
|
37
|
+
if (arg.type === "StringLiteral") {
|
|
38
|
+
let moduleSpecifier = arg.value;
|
|
39
|
+
if (moduleSpecifier.startsWith(".") || moduleSpecifier.startsWith("/")) {
|
|
40
|
+
const filePath = state.file.opts.filename;
|
|
41
|
+
if (!filePath) return;
|
|
42
|
+
const fileDir = (0, import_node_path.dirname)(filePath),
|
|
43
|
+
cjsExtension = options.esExtensionDefault || ".cjs",
|
|
44
|
+
jsExtension = ".js";
|
|
45
|
+
if (!(0, import_node_path.extname)(moduleSpecifier)) {
|
|
46
|
+
const resolvedPath = (0, import_node_path.resolve)(fileDir, moduleSpecifier);
|
|
47
|
+
let newModuleSpecifier = moduleSpecifier;
|
|
48
|
+
if (isLocalDirectory(resolvedPath)) {
|
|
49
|
+
const indexPath = (0, import_node_path.resolve)(resolvedPath, "index" + jsExtension);
|
|
50
|
+
if ((0, import_node_fs.existsSync)(indexPath)) {
|
|
51
|
+
newModuleSpecifier.endsWith("/") || (newModuleSpecifier += "/"), newModuleSpecifier += "index" + cjsExtension, arg.value = newModuleSpecifier;
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
const filePathWithJs = resolvedPath + jsExtension;
|
|
56
|
+
if ((0, import_node_fs.existsSync)(filePathWithJs)) {
|
|
57
|
+
newModuleSpecifier += cjsExtension, arg.value = newModuleSpecifier;
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
function isLocalDirectory(absolutePath) {
|
|
69
|
+
return (0, import_node_fs.existsSync)(absolutePath) && (0, import_node_fs.lstatSync)(absolutePath).isDirectory();
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=commonjs.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["commonjs_exports","__export","default","fullySpecifyCommonJS","module","exports","__toCommonJS","import_node_fs","require","import_node_path","api","options","assertVersion","name","visitor","CallExpression","path","state","get","isIdentifier","node","arguments","length","arg","type","moduleSpecifier","value","startsWith","filePath","file","opts","filename","fileDir","dirname","cjsExtension","esExtensionDefault","jsExtension","extname","resolvedPath","resolve","newModuleSpecifier","isLocalDirectory","indexPath","existsSync","endsWith","filePathWithJs","absolutePath","lstatSync","isDirectory"],"sources":["../../src/commonjs.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,gBAAA;AAAAC,QAAA,CAAAD,gBAAA;EAAAE,OAAA,EAAAA,CAAA,KAAAC;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAC,YAAA,CAAAN,gBAAA;AAAA,IAAAO,cAAA,GAAsCC,OAAA;EACtCC,gBAAA,GAA0CD,OAAA;AAE3B,SAARL,qBACLO,GAAA,EACAC,OAAA,EAGiB;EACjB,OAAAD,GAAA,CAAIE,aAAA,CAAc,CAAC,GAEZ;IACLC,IAAA,EAAM;IACNC,OAAA,EAAS;MACPC,eAAeC,IAAA,EAAMC,KAAA,EAAO;QAG1B,IAFeD,IAAA,CAAKE,GAAA,CAAI,QAAQ,EAGvBC,YAAA,CAAa;UAAEN,IAAA,EAAM;QAAU,CAAC,KACvCG,IAAA,CAAKI,IAAA,CAAKC,SAAA,CAAUC,MAAA,KAAW,GAC/B;UACA,MAAMC,GAAA,GAAMP,IAAA,CAAKI,IAAA,CAAKC,SAAA,CAAU,CAAC;UACjC,IAAIE,GAAA,CAAIC,IAAA,KAAS,iBAAiB;YAChC,IAAIC,eAAA,GAAkBF,GAAA,CAAIG,KAAA;YAG1B,IAAID,eAAA,CAAgBE,UAAA,CAAW,GAAG,KAAKF,eAAA,CAAgBE,UAAA,CAAW,GAAG,GAAG;cACtE,MAAMC,QAAA,GAAWX,KAAA,CAAMY,IAAA,CAAKC,IAAA,CAAKC,QAAA;cACjC,IAAI,CAACH,QAAA,EAAU;cAEf,MAAMI,OAAA,OAAUvB,gBAAA,CAAAwB,OAAA,EAAQL,QAAQ;gBAC1BM,YAAA,GAAevB,OAAA,CAAQwB,kBAAA,IAAsB;gBAC7CC,WAAA,GAAc;cAGpB,IAAI,KAAC3B,gBAAA,CAAA4B,OAAA,EAAQZ,eAAe,GAAG;gBAC7B,MAAMa,YAAA,OAAe7B,gBAAA,CAAA8B,OAAA,EAAQP,OAAA,EAASP,eAAe;gBACrD,IAAIe,kBAAA,GAAqBf,eAAA;gBAGzB,IAAIgB,gBAAA,CAAiBH,YAAY,GAAG;kBAClC,MAAMI,SAAA,OAAYjC,gBAAA,CAAA8B,OAAA,EAAQD,YAAA,EAAc,UAAUF,WAAW;kBAC7D,QAAI7B,cAAA,CAAAoC,UAAA,EAAWD,SAAS,GAAG;oBAEpBF,kBAAA,CAAmBI,QAAA,CAAS,GAAG,MAClCJ,kBAAA,IAAsB,MAExBA,kBAAA,IAAsB,UAAUN,YAAA,EAChCX,GAAA,CAAIG,KAAA,GAAQc,kBAAA;oBACZ;kBACF;gBACF;gBAGA,MAAMK,cAAA,GAAiBP,YAAA,GAAeF,WAAA;gBACtC,QAAI7B,cAAA,CAAAoC,UAAA,EAAWE,cAAc,GAAG;kBAC9BL,kBAAA,IAAsBN,YAAA,EACtBX,GAAA,CAAIG,KAAA,GAAQc,kBAAA;kBACZ;gBACF;cACF;YACF;UACF;QACF;MACF;IACF;EACF;AACF;AAEA,SAASC,iBAAiBK,YAAA,EAA+B;EACvD,WAAOvC,cAAA,CAAAoC,UAAA,EAAWG,YAAY,SAAKvC,cAAA,CAAAwC,SAAA,EAAUD,YAAY,EAAEE,WAAA,CAAY;AACzE","ignoreList":[]}
|
package/permanent/cjs/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
1
2
|
var __defProp = Object.defineProperty;
|
|
2
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
6
|
var __export = (target, all) => {
|
|
6
7
|
for (var name in all)
|
|
7
8
|
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
@@ -11,18 +12,26 @@ var __export = (target, all) => {
|
|
|
11
12
|
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
12
13
|
return to;
|
|
13
14
|
};
|
|
14
|
-
var
|
|
15
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
16
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
17
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
18
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
19
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
20
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
|
|
21
|
+
mod
|
|
22
|
+
)), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
15
23
|
var index_exports = {};
|
|
16
24
|
__export(index_exports, {
|
|
17
25
|
default: () => FullySpecified
|
|
18
26
|
});
|
|
19
27
|
module.exports = __toCommonJS(index_exports);
|
|
20
|
-
var import_node_fs = require("node:fs"), import_node_path = require("node:path");
|
|
28
|
+
var import_node_fs = require("node:fs"), import_node_path = require("node:path"), t = __toESM(require("@babel/types"));
|
|
21
29
|
const DEFAULT_OPTIONS = {
|
|
22
30
|
ensureFileExists: !0,
|
|
23
31
|
esExtensionDefault: ".mjs",
|
|
24
32
|
tryExtensions: [".js"],
|
|
25
|
-
esExtensions: [".mjs"]
|
|
33
|
+
esExtensions: [".mjs"],
|
|
34
|
+
convertProcessEnvToImportMetaEnv: !1
|
|
26
35
|
};
|
|
27
36
|
function FullySpecified(api, rawOptions) {
|
|
28
37
|
api.assertVersion(7);
|
|
@@ -78,6 +87,18 @@ function FullySpecified(api, rawOptions) {
|
|
|
78
87
|
}
|
|
79
88
|
);
|
|
80
89
|
fullySpecifiedModuleSpecifier && (firstArgOfImportCall.value = fullySpecifiedModuleSpecifier);
|
|
90
|
+
},
|
|
91
|
+
MemberExpression: (path) => {
|
|
92
|
+
if (!options.convertProcessEnvToImportMetaEnv) return;
|
|
93
|
+
const { node } = path;
|
|
94
|
+
if (node.object.type === "MemberExpression" && node.object.object.type === "Identifier" && node.object.object.name === "process" && node.object.property.type === "Identifier" && node.object.property.name === "env") {
|
|
95
|
+
if (node.property.type === "Identifier" && node.property.name === "NODE_ENV")
|
|
96
|
+
return;
|
|
97
|
+
node.object = t.memberExpression(
|
|
98
|
+
t.metaProperty(t.identifier("import"), t.identifier("meta")),
|
|
99
|
+
t.identifier("env")
|
|
100
|
+
);
|
|
101
|
+
}
|
|
81
102
|
}
|
|
82
103
|
}
|
|
83
104
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/index.ts"],
|
|
4
|
-
"mappings": "
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf,
|
|
6
|
+
__hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: !0
|
|
11
|
+
});
|
|
12
|
+
},
|
|
13
|
+
__copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
|
|
15
|
+
get: () => from[key],
|
|
16
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
17
|
+
});
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
26
|
+
value: mod,
|
|
27
|
+
enumerable: !0
|
|
28
|
+
}) : target, mod)),
|
|
29
|
+
__toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
30
|
+
value: !0
|
|
31
|
+
}), mod);
|
|
32
|
+
var index_exports = {};
|
|
33
|
+
__export(index_exports, {
|
|
34
|
+
default: () => FullySpecified
|
|
35
|
+
});
|
|
36
|
+
module.exports = __toCommonJS(index_exports);
|
|
37
|
+
var import_node_fs = require("node:fs"),
|
|
38
|
+
import_node_path = require("node:path"),
|
|
39
|
+
t = __toESM(require("@babel/types"));
|
|
40
|
+
const DEFAULT_OPTIONS = {
|
|
41
|
+
ensureFileExists: !0,
|
|
42
|
+
esExtensionDefault: ".mjs",
|
|
43
|
+
tryExtensions: [".js"],
|
|
44
|
+
esExtensions: [".mjs"],
|
|
45
|
+
convertProcessEnvToImportMetaEnv: !1
|
|
46
|
+
};
|
|
47
|
+
function FullySpecified(api, rawOptions) {
|
|
48
|
+
api.assertVersion(7);
|
|
49
|
+
const options = {
|
|
50
|
+
...DEFAULT_OPTIONS,
|
|
51
|
+
...rawOptions
|
|
52
|
+
},
|
|
53
|
+
importDeclarationVisitor = (path, state) => {
|
|
54
|
+
const filePath = state.file.opts.filename;
|
|
55
|
+
if (!filePath) return;
|
|
56
|
+
const {
|
|
57
|
+
node
|
|
58
|
+
} = path;
|
|
59
|
+
if (node.importKind === "type") return;
|
|
60
|
+
const originalModuleSpecifier = node.source.value,
|
|
61
|
+
fullySpecifiedModuleSpecifier = getFullySpecifiedModuleSpecifier(originalModuleSpecifier, {
|
|
62
|
+
filePath,
|
|
63
|
+
options
|
|
64
|
+
});
|
|
65
|
+
fullySpecifiedModuleSpecifier && (node.source.value = fullySpecifiedModuleSpecifier);
|
|
66
|
+
},
|
|
67
|
+
exportDeclarationVisitor = (path, state) => {
|
|
68
|
+
const filePath = state.file.opts.filename;
|
|
69
|
+
if (!filePath) return;
|
|
70
|
+
const {
|
|
71
|
+
node
|
|
72
|
+
} = path;
|
|
73
|
+
if (node.exportKind === "type") return;
|
|
74
|
+
const source = node.source;
|
|
75
|
+
if (!source) return;
|
|
76
|
+
const originalModuleSpecifier = source.value,
|
|
77
|
+
fullySpecifiedModuleSpecifier = getFullySpecifiedModuleSpecifier(originalModuleSpecifier, {
|
|
78
|
+
filePath,
|
|
79
|
+
options
|
|
80
|
+
});
|
|
81
|
+
fullySpecifiedModuleSpecifier && (source.value = fullySpecifiedModuleSpecifier);
|
|
82
|
+
};
|
|
83
|
+
return {
|
|
84
|
+
name: "babel-plugin-fully-specified",
|
|
85
|
+
visitor: {
|
|
86
|
+
ImportDeclaration: importDeclarationVisitor,
|
|
87
|
+
ExportNamedDeclaration: exportDeclarationVisitor,
|
|
88
|
+
ExportAllDeclaration: exportDeclarationVisitor,
|
|
89
|
+
Import: (path, state) => {
|
|
90
|
+
const filePath = state.file.opts.filename;
|
|
91
|
+
if (!filePath) return;
|
|
92
|
+
const parent = path.parent;
|
|
93
|
+
if (parent.type !== "CallExpression") return;
|
|
94
|
+
const firstArgOfImportCall = parent.arguments[0];
|
|
95
|
+
if (firstArgOfImportCall.type !== "StringLiteral") return;
|
|
96
|
+
const originalModuleSpecifier = firstArgOfImportCall.value,
|
|
97
|
+
fullySpecifiedModuleSpecifier = getFullySpecifiedModuleSpecifier(originalModuleSpecifier, {
|
|
98
|
+
filePath,
|
|
99
|
+
options
|
|
100
|
+
});
|
|
101
|
+
fullySpecifiedModuleSpecifier && (firstArgOfImportCall.value = fullySpecifiedModuleSpecifier);
|
|
102
|
+
},
|
|
103
|
+
MemberExpression: path => {
|
|
104
|
+
if (!options.convertProcessEnvToImportMetaEnv) return;
|
|
105
|
+
const {
|
|
106
|
+
node
|
|
107
|
+
} = path;
|
|
108
|
+
if (node.object.type === "MemberExpression" && node.object.object.type === "Identifier" && node.object.object.name === "process" && node.object.property.type === "Identifier" && node.object.property.name === "env") {
|
|
109
|
+
if (node.property.type === "Identifier" && node.property.name === "NODE_ENV") return;
|
|
110
|
+
node.object = t.memberExpression(t.metaProperty(t.identifier("import"), t.identifier("meta")), t.identifier("env"));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
function getFullySpecifiedModuleSpecifier(originalModuleSpecifier, {
|
|
117
|
+
filePath,
|
|
118
|
+
options
|
|
119
|
+
}) {
|
|
120
|
+
const fileExt = (0, import_node_path.extname)(filePath),
|
|
121
|
+
fileDir = (0, import_node_path.dirname)(filePath),
|
|
122
|
+
isDirectory = isLocalDirectory((0, import_node_path.resolve)(fileDir, originalModuleSpecifier)),
|
|
123
|
+
currentModuleExtension = (0, import_node_path.extname)(originalModuleSpecifier),
|
|
124
|
+
{
|
|
125
|
+
tryExtensions,
|
|
126
|
+
esExtensions,
|
|
127
|
+
esExtensionDefault,
|
|
128
|
+
ensureFileExists
|
|
129
|
+
} = options,
|
|
130
|
+
targetModule = evaluateTargetModule({
|
|
131
|
+
moduleSpecifier: originalModuleSpecifier,
|
|
132
|
+
filenameDirectory: fileDir,
|
|
133
|
+
filenameExtension: fileExt,
|
|
134
|
+
currentModuleExtension,
|
|
135
|
+
isDirectory,
|
|
136
|
+
tryExtensions,
|
|
137
|
+
esExtensions,
|
|
138
|
+
esExtensionDefault,
|
|
139
|
+
ensureFileExists
|
|
140
|
+
});
|
|
141
|
+
return targetModule === !1 ? null : targetModule;
|
|
142
|
+
}
|
|
143
|
+
function isLocalDirectory(absoluteDirectory) {
|
|
144
|
+
return (0, import_node_fs.existsSync)(absoluteDirectory) && (0, import_node_fs.lstatSync)(absoluteDirectory).isDirectory();
|
|
145
|
+
}
|
|
146
|
+
function evaluateTargetModule({
|
|
147
|
+
moduleSpecifier,
|
|
148
|
+
currentModuleExtension,
|
|
149
|
+
isDirectory,
|
|
150
|
+
filenameDirectory,
|
|
151
|
+
filenameExtension,
|
|
152
|
+
tryExtensions,
|
|
153
|
+
esExtensions,
|
|
154
|
+
esExtensionDefault,
|
|
155
|
+
ensureFileExists
|
|
156
|
+
}) {
|
|
157
|
+
if (currentModuleExtension && !esExtensions.includes(currentModuleExtension)) return !1;
|
|
158
|
+
const targetFile = (0, import_node_path.resolve)(filenameDirectory, moduleSpecifier);
|
|
159
|
+
if (ensureFileExists) {
|
|
160
|
+
for (const extension of tryExtensions) if ((0, import_node_fs.existsSync)(targetFile + extension)) return moduleSpecifier + esExtensionDefault;
|
|
161
|
+
isDirectory && !(0, import_node_fs.existsSync)((0, import_node_path.resolve)(filenameDirectory, currentModuleExtension ? moduleSpecifier : moduleSpecifier + esExtensionDefault)) && (moduleSpecifier = `${moduleSpecifier}/index`);
|
|
162
|
+
} else return esExtensions.includes(filenameExtension), moduleSpecifier + esExtensionDefault;
|
|
163
|
+
return !1;
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["index_exports","__export","default","FullySpecified","module","exports","__toCommonJS","import_node_fs","require","import_node_path","t","__toESM","DEFAULT_OPTIONS","ensureFileExists","esExtensionDefault","tryExtensions","esExtensions","convertProcessEnvToImportMetaEnv","api","rawOptions","assertVersion","options","importDeclarationVisitor","path","state","filePath","file","opts","filename","node","importKind","originalModuleSpecifier","source","value","fullySpecifiedModuleSpecifier","getFullySpecifiedModuleSpecifier","exportDeclarationVisitor","exportKind","name","visitor","ImportDeclaration","ExportNamedDeclaration","ExportAllDeclaration","Import","parent","type","firstArgOfImportCall","arguments","MemberExpression","object","property","memberExpression","metaProperty","identifier","fileExt","extname","fileDir","dirname","isDirectory","isLocalDirectory","resolve","currentModuleExtension","targetModule","evaluateTargetModule","moduleSpecifier","filenameDirectory","filenameExtension","absoluteDirectory","existsSync","lstatSync","includes","targetFile","extension"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { existsSync, lstatSync } from "node:fs";
|
|
2
2
|
import { dirname, extname, resolve } from "node:path";
|
|
3
|
-
function fullySpecifyCommonJS(api) {
|
|
3
|
+
function fullySpecifyCommonJS(api, options) {
|
|
4
4
|
return api.assertVersion(7), {
|
|
5
5
|
name: "babel-plugin-fully-specified-cjs",
|
|
6
6
|
visitor: {
|
|
@@ -12,7 +12,7 @@ function fullySpecifyCommonJS(api) {
|
|
|
12
12
|
if (moduleSpecifier.startsWith(".") || moduleSpecifier.startsWith("/")) {
|
|
13
13
|
const filePath = state.file.opts.filename;
|
|
14
14
|
if (!filePath) return;
|
|
15
|
-
const fileDir = dirname(filePath), cjsExtension = ".cjs", jsExtension = ".js";
|
|
15
|
+
const fileDir = dirname(filePath), cjsExtension = options.esExtensionDefault || ".cjs", jsExtension = ".js";
|
|
16
16
|
if (!extname(moduleSpecifier)) {
|
|
17
17
|
const resolvedPath = resolve(fileDir, moduleSpecifier);
|
|
18
18
|
let newModuleSpecifier = moduleSpecifier;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/commonjs.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,YAAY,iBAAiB;AACtC,SAAS,SAAS,SAAS,eAAe;AAE3B,SAAR,
|
|
4
|
+
"mappings": "AAAA,SAAS,YAAY,iBAAiB;AACtC,SAAS,SAAS,SAAS,eAAe;AAE3B,SAAR,qBACL,KACA,SAGiB;AACjB,aAAI,cAAc,CAAC,GAEZ;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,MACP,eAAe,MAAM,OAAO;AAG1B,YAFe,KAAK,IAAI,QAAQ,EAGvB,aAAa,EAAE,MAAM,UAAU,CAAC,KACvC,KAAK,KAAK,UAAU,WAAW,GAC/B;AACA,gBAAM,MAAM,KAAK,KAAK,UAAU,CAAC;AACjC,cAAI,IAAI,SAAS,iBAAiB;AAChC,gBAAI,kBAAkB,IAAI;AAG1B,gBAAI,gBAAgB,WAAW,GAAG,KAAK,gBAAgB,WAAW,GAAG,GAAG;AACtE,oBAAM,WAAW,MAAM,KAAK,KAAK;AACjC,kBAAI,CAAC,SAAU;AAEf,oBAAM,UAAU,QAAQ,QAAQ,GAC1B,eAAe,QAAQ,sBAAsB,QAC7C,cAAc;AAGpB,kBAAI,CAAC,QAAQ,eAAe,GAAG;AAC7B,sBAAM,eAAe,QAAQ,SAAS,eAAe;AACrD,oBAAI,qBAAqB;AAGzB,oBAAI,iBAAiB,YAAY,GAAG;AAClC,wBAAM,YAAY,QAAQ,cAAc,UAAU,WAAW;AAC7D,sBAAI,WAAW,SAAS,GAAG;AAEzB,oBAAK,mBAAmB,SAAS,GAAG,MAClC,sBAAsB,MAExB,sBAAsB,UAAU,cAChC,IAAI,QAAQ;AACZ;AAAA,kBACF;AAAA,gBACF;AAGA,sBAAM,iBAAiB,eAAe;AACtC,oBAAI,WAAW,cAAc,GAAG;AAC9B,wCAAsB,cACtB,IAAI,QAAQ;AACZ;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,iBAAiB,cAA+B;AACvD,SAAO,WAAW,YAAY,KAAK,UAAU,YAAY,EAAE,YAAY;AACzE;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { existsSync, lstatSync } from "node:fs";
|
|
2
2
|
import { dirname, extname, resolve } from "node:path";
|
|
3
|
-
function fullySpecifyCommonJS(api) {
|
|
3
|
+
function fullySpecifyCommonJS(api, options) {
|
|
4
4
|
return api.assertVersion(7), {
|
|
5
5
|
name: "babel-plugin-fully-specified-cjs",
|
|
6
6
|
visitor: {
|
|
@@ -15,7 +15,7 @@ function fullySpecifyCommonJS(api) {
|
|
|
15
15
|
const filePath = state.file.opts.filename;
|
|
16
16
|
if (!filePath) return;
|
|
17
17
|
const fileDir = dirname(filePath),
|
|
18
|
-
cjsExtension = ".cjs",
|
|
18
|
+
cjsExtension = options.esExtensionDefault || ".cjs",
|
|
19
19
|
jsExtension = ".js";
|
|
20
20
|
if (!extname(moduleSpecifier)) {
|
|
21
21
|
const resolvedPath = resolve(fileDir, moduleSpecifier);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["existsSync","lstatSync","dirname","extname","resolve","fullySpecifyCommonJS","api","assertVersion","name","visitor","CallExpression","path","state","get","isIdentifier","node","arguments","length","arg","type","moduleSpecifier","value","startsWith","filePath","file","opts","filename","fileDir","cjsExtension","jsExtension","resolvedPath","newModuleSpecifier","isLocalDirectory","indexPath","endsWith","filePathWithJs","absolutePath","isDirectory"],"sources":["../../src/commonjs.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,SAAA,QAAiB;AACtC,SAASC,OAAA,EAASC,OAAA,EAASC,OAAA,QAAe;AAE3B,SAARC,
|
|
1
|
+
{"version":3,"names":["existsSync","lstatSync","dirname","extname","resolve","fullySpecifyCommonJS","api","options","assertVersion","name","visitor","CallExpression","path","state","get","isIdentifier","node","arguments","length","arg","type","moduleSpecifier","value","startsWith","filePath","file","opts","filename","fileDir","cjsExtension","esExtensionDefault","jsExtension","resolvedPath","newModuleSpecifier","isLocalDirectory","indexPath","endsWith","filePathWithJs","absolutePath","isDirectory"],"sources":["../../src/commonjs.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,SAAA,QAAiB;AACtC,SAASC,OAAA,EAASC,OAAA,EAASC,OAAA,QAAe;AAE3B,SAARC,qBACLC,GAAA,EACAC,OAAA,EAGiB;EACjB,OAAAD,GAAA,CAAIE,aAAA,CAAc,CAAC,GAEZ;IACLC,IAAA,EAAM;IACNC,OAAA,EAAS;MACPC,eAAeC,IAAA,EAAMC,KAAA,EAAO;QAG1B,IAFeD,IAAA,CAAKE,GAAA,CAAI,QAAQ,EAGvBC,YAAA,CAAa;UAAEN,IAAA,EAAM;QAAU,CAAC,KACvCG,IAAA,CAAKI,IAAA,CAAKC,SAAA,CAAUC,MAAA,KAAW,GAC/B;UACA,MAAMC,GAAA,GAAMP,IAAA,CAAKI,IAAA,CAAKC,SAAA,CAAU,CAAC;UACjC,IAAIE,GAAA,CAAIC,IAAA,KAAS,iBAAiB;YAChC,IAAIC,eAAA,GAAkBF,GAAA,CAAIG,KAAA;YAG1B,IAAID,eAAA,CAAgBE,UAAA,CAAW,GAAG,KAAKF,eAAA,CAAgBE,UAAA,CAAW,GAAG,GAAG;cACtE,MAAMC,QAAA,GAAWX,KAAA,CAAMY,IAAA,CAAKC,IAAA,CAAKC,QAAA;cACjC,IAAI,CAACH,QAAA,EAAU;cAEf,MAAMI,OAAA,GAAU1B,OAAA,CAAQsB,QAAQ;gBAC1BK,YAAA,GAAetB,OAAA,CAAQuB,kBAAA,IAAsB;gBAC7CC,WAAA,GAAc;cAGpB,IAAI,CAAC5B,OAAA,CAAQkB,eAAe,GAAG;gBAC7B,MAAMW,YAAA,GAAe5B,OAAA,CAAQwB,OAAA,EAASP,eAAe;gBACrD,IAAIY,kBAAA,GAAqBZ,eAAA;gBAGzB,IAAIa,gBAAA,CAAiBF,YAAY,GAAG;kBAClC,MAAMG,SAAA,GAAY/B,OAAA,CAAQ4B,YAAA,EAAc,UAAUD,WAAW;kBAC7D,IAAI/B,UAAA,CAAWmC,SAAS,GAAG;oBAEpBF,kBAAA,CAAmBG,QAAA,CAAS,GAAG,MAClCH,kBAAA,IAAsB,MAExBA,kBAAA,IAAsB,UAAUJ,YAAA,EAChCV,GAAA,CAAIG,KAAA,GAAQW,kBAAA;oBACZ;kBACF;gBACF;gBAGA,MAAMI,cAAA,GAAiBL,YAAA,GAAeD,WAAA;gBACtC,IAAI/B,UAAA,CAAWqC,cAAc,GAAG;kBAC9BJ,kBAAA,IAAsBJ,YAAA,EACtBV,GAAA,CAAIG,KAAA,GAAQW,kBAAA;kBACZ;gBACF;cACF;YACF;UACF;QACF;MACF;IACF;EACF;AACF;AAEA,SAASC,iBAAiBI,YAAA,EAA+B;EACvD,OAAOtC,UAAA,CAAWsC,YAAY,KAAKrC,SAAA,CAAUqC,YAAY,EAAEC,WAAA,CAAY;AACzE","ignoreList":[]}
|
package/permanent/esm/index.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { existsSync, lstatSync } from "node:fs";
|
|
2
2
|
import { dirname, extname, resolve } from "node:path";
|
|
3
|
+
import * as t from "@babel/types";
|
|
3
4
|
const DEFAULT_OPTIONS = {
|
|
4
5
|
ensureFileExists: !0,
|
|
5
6
|
esExtensionDefault: ".mjs",
|
|
6
7
|
tryExtensions: [".js"],
|
|
7
|
-
esExtensions: [".mjs"]
|
|
8
|
+
esExtensions: [".mjs"],
|
|
9
|
+
convertProcessEnvToImportMetaEnv: !1
|
|
8
10
|
};
|
|
9
11
|
function FullySpecified(api, rawOptions) {
|
|
10
12
|
api.assertVersion(7);
|
|
@@ -60,6 +62,18 @@ function FullySpecified(api, rawOptions) {
|
|
|
60
62
|
}
|
|
61
63
|
);
|
|
62
64
|
fullySpecifiedModuleSpecifier && (firstArgOfImportCall.value = fullySpecifiedModuleSpecifier);
|
|
65
|
+
},
|
|
66
|
+
MemberExpression: (path) => {
|
|
67
|
+
if (!options.convertProcessEnvToImportMetaEnv) return;
|
|
68
|
+
const { node } = path;
|
|
69
|
+
if (node.object.type === "MemberExpression" && node.object.object.type === "Identifier" && node.object.object.name === "process" && node.object.property.type === "Identifier" && node.object.property.name === "env") {
|
|
70
|
+
if (node.property.type === "Identifier" && node.property.name === "NODE_ENV")
|
|
71
|
+
return;
|
|
72
|
+
node.object = t.memberExpression(
|
|
73
|
+
t.metaProperty(t.identifier("import"), t.identifier("meta")),
|
|
74
|
+
t.identifier("env")
|
|
75
|
+
);
|
|
76
|
+
}
|
|
63
77
|
}
|
|
64
78
|
}
|
|
65
79
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/index.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,YAAY,iBAAiB;AACtC,SAAS,SAAS,SAAS,eAAe;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/permanent/esm/index.mjs
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { existsSync, lstatSync } from "node:fs";
|
|
2
2
|
import { dirname, extname, resolve } from "node:path";
|
|
3
|
+
import * as t from "@babel/types";
|
|
3
4
|
const DEFAULT_OPTIONS = {
|
|
4
5
|
ensureFileExists: !0,
|
|
5
6
|
esExtensionDefault: ".mjs",
|
|
6
7
|
tryExtensions: [".js"],
|
|
7
|
-
esExtensions: [".mjs"]
|
|
8
|
+
esExtensions: [".mjs"],
|
|
9
|
+
convertProcessEnvToImportMetaEnv: !1
|
|
8
10
|
};
|
|
9
11
|
function FullySpecified(api, rawOptions) {
|
|
10
12
|
api.assertVersion(7);
|
|
@@ -61,6 +63,16 @@ function FullySpecified(api, rawOptions) {
|
|
|
61
63
|
options
|
|
62
64
|
});
|
|
63
65
|
fullySpecifiedModuleSpecifier && (firstArgOfImportCall.value = fullySpecifiedModuleSpecifier);
|
|
66
|
+
},
|
|
67
|
+
MemberExpression: path => {
|
|
68
|
+
if (!options.convertProcessEnvToImportMetaEnv) return;
|
|
69
|
+
const {
|
|
70
|
+
node
|
|
71
|
+
} = path;
|
|
72
|
+
if (node.object.type === "MemberExpression" && node.object.object.type === "Identifier" && node.object.object.name === "process" && node.object.property.type === "Identifier" && node.object.property.name === "env") {
|
|
73
|
+
if (node.property.type === "Identifier" && node.property.name === "NODE_ENV") return;
|
|
74
|
+
node.object = t.memberExpression(t.metaProperty(t.identifier("import"), t.identifier("meta")), t.identifier("env"));
|
|
75
|
+
}
|
|
64
76
|
}
|
|
65
77
|
}
|
|
66
78
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["existsSync","lstatSync","dirname","extname","resolve","DEFAULT_OPTIONS","ensureFileExists","esExtensionDefault","tryExtensions","esExtensions","FullySpecified","api","rawOptions","assertVersion","options","importDeclarationVisitor","path","state","filePath","file","opts","filename","node","importKind","originalModuleSpecifier","source","value","fullySpecifiedModuleSpecifier","getFullySpecifiedModuleSpecifier","exportDeclarationVisitor","exportKind","name","visitor","ImportDeclaration","ExportNamedDeclaration","ExportAllDeclaration","Import","parent","type","firstArgOfImportCall","arguments","fileExt","fileDir","isDirectory","isLocalDirectory","currentModuleExtension","targetModule","evaluateTargetModule","moduleSpecifier","filenameDirectory","filenameExtension","absoluteDirectory","includes","targetFile","extension"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,SAAA,QAAiB;AACtC,SAASC,OAAA,EAASC,OAAA,EAASC,OAAA,QAAe;
|
|
1
|
+
{"version":3,"names":["existsSync","lstatSync","dirname","extname","resolve","t","DEFAULT_OPTIONS","ensureFileExists","esExtensionDefault","tryExtensions","esExtensions","convertProcessEnvToImportMetaEnv","FullySpecified","api","rawOptions","assertVersion","options","importDeclarationVisitor","path","state","filePath","file","opts","filename","node","importKind","originalModuleSpecifier","source","value","fullySpecifiedModuleSpecifier","getFullySpecifiedModuleSpecifier","exportDeclarationVisitor","exportKind","name","visitor","ImportDeclaration","ExportNamedDeclaration","ExportAllDeclaration","Import","parent","type","firstArgOfImportCall","arguments","MemberExpression","object","property","memberExpression","metaProperty","identifier","fileExt","fileDir","isDirectory","isLocalDirectory","currentModuleExtension","targetModule","evaluateTargetModule","moduleSpecifier","filenameDirectory","filenameExtension","absoluteDirectory","includes","targetFile","extension"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/src/commonjs.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { existsSync, lstatSync } from 'node:fs'
|
|
2
2
|
import { dirname, extname, resolve } from 'node:path'
|
|
3
3
|
|
|
4
|
-
export default function fullySpecifyCommonJS(
|
|
4
|
+
export default function fullySpecifyCommonJS(
|
|
5
|
+
api: any,
|
|
6
|
+
options: {
|
|
7
|
+
esExtensionDefault: string
|
|
8
|
+
}
|
|
9
|
+
): babel.PluginObj {
|
|
5
10
|
api.assertVersion(7)
|
|
6
11
|
|
|
7
12
|
return {
|
|
@@ -24,7 +29,7 @@ export default function fullySpecifyCommonJS(api: any): babel.PluginObj {
|
|
|
24
29
|
if (!filePath) return // Cannot determine file path
|
|
25
30
|
|
|
26
31
|
const fileDir = dirname(filePath)
|
|
27
|
-
const cjsExtension = '.cjs'
|
|
32
|
+
const cjsExtension = options.esExtensionDefault || '.cjs'
|
|
28
33
|
const jsExtension = '.js'
|
|
29
34
|
|
|
30
35
|
// Check if moduleSpecifier already has an extension
|
|
@@ -62,6 +67,6 @@ export default function fullySpecifyCommonJS(api: any): babel.PluginObj {
|
|
|
62
67
|
} satisfies babel.PluginObj
|
|
63
68
|
}
|
|
64
69
|
|
|
65
|
-
function isLocalDirectory(absolutePath) {
|
|
70
|
+
function isLocalDirectory(absolutePath: string): boolean {
|
|
66
71
|
return existsSync(absolutePath) && lstatSync(absolutePath).isDirectory()
|
|
67
72
|
}
|
package/src/index.ts
CHANGED
|
@@ -2,11 +2,13 @@ import { existsSync, lstatSync } from 'node:fs'
|
|
|
2
2
|
import { dirname, extname, resolve } from 'node:path'
|
|
3
3
|
|
|
4
4
|
import type { ConfigAPI, NodePath, PluginObj, PluginPass } from '@babel/core'
|
|
5
|
+
import * as t from '@babel/types'
|
|
5
6
|
import type {
|
|
6
7
|
ExportAllDeclaration,
|
|
7
8
|
ExportNamedDeclaration,
|
|
8
9
|
Import,
|
|
9
10
|
ImportDeclaration,
|
|
11
|
+
MemberExpression,
|
|
10
12
|
} from '@babel/types'
|
|
11
13
|
|
|
12
14
|
export interface FullySpecifiedOptions {
|
|
@@ -16,6 +18,8 @@ export interface FullySpecifiedOptions {
|
|
|
16
18
|
tryExtensions: Array<string>
|
|
17
19
|
/** List of extensions that can run in Node.js or in the Browser. */
|
|
18
20
|
esExtensions: Array<string>
|
|
21
|
+
/** Convert process.env.XYZ to import.meta.env.XYZ */
|
|
22
|
+
convertProcessEnvToImportMetaEnv?: boolean
|
|
19
23
|
}
|
|
20
24
|
|
|
21
25
|
const DEFAULT_OPTIONS = {
|
|
@@ -23,6 +27,7 @@ const DEFAULT_OPTIONS = {
|
|
|
23
27
|
esExtensionDefault: '.mjs',
|
|
24
28
|
tryExtensions: ['.js'],
|
|
25
29
|
esExtensions: ['.mjs'],
|
|
30
|
+
convertProcessEnvToImportMetaEnv: false,
|
|
26
31
|
}
|
|
27
32
|
|
|
28
33
|
export default function FullySpecified(
|
|
@@ -115,6 +120,33 @@ export default function FullySpecified(
|
|
|
115
120
|
}
|
|
116
121
|
}
|
|
117
122
|
|
|
123
|
+
/** For converting process.env to import.meta.env */
|
|
124
|
+
const memberExpressionVisitor = (path: NodePath<MemberExpression>) => {
|
|
125
|
+
if (!options.convertProcessEnvToImportMetaEnv) return
|
|
126
|
+
|
|
127
|
+
const { node } = path
|
|
128
|
+
|
|
129
|
+
// Check if this is process.env.SOMETHING
|
|
130
|
+
if (
|
|
131
|
+
node.object.type === 'MemberExpression' &&
|
|
132
|
+
node.object.object.type === 'Identifier' &&
|
|
133
|
+
node.object.object.name === 'process' &&
|
|
134
|
+
node.object.property.type === 'Identifier' &&
|
|
135
|
+
node.object.property.name === 'env'
|
|
136
|
+
) {
|
|
137
|
+
// Skip process.env.NODE_ENV - leave it as is
|
|
138
|
+
if (node.property.type === 'Identifier' && node.property.name === 'NODE_ENV') {
|
|
139
|
+
return
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// Replace process.env with import.meta.env
|
|
143
|
+
node.object = t.memberExpression(
|
|
144
|
+
t.metaProperty(t.identifier('import'), t.identifier('meta')),
|
|
145
|
+
t.identifier('env')
|
|
146
|
+
)
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
118
150
|
return {
|
|
119
151
|
name: 'babel-plugin-fully-specified',
|
|
120
152
|
visitor: {
|
|
@@ -122,6 +154,7 @@ export default function FullySpecified(
|
|
|
122
154
|
ExportNamedDeclaration: exportDeclarationVisitor,
|
|
123
155
|
ExportAllDeclaration: exportDeclarationVisitor,
|
|
124
156
|
Import: importVisitor,
|
|
157
|
+
MemberExpression: memberExpressionVisitor,
|
|
125
158
|
},
|
|
126
159
|
}
|
|
127
160
|
}
|
|
@@ -192,7 +225,7 @@ function evaluateTargetModule({
|
|
|
192
225
|
esExtensions,
|
|
193
226
|
esExtensionDefault,
|
|
194
227
|
ensureFileExists,
|
|
195
|
-
}) {
|
|
228
|
+
}: any): string | false {
|
|
196
229
|
if (currentModuleExtension && !esExtensions.includes(currentModuleExtension)) {
|
|
197
230
|
return false
|
|
198
231
|
}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
|
-
|
|
3
|
-
exports[`transforming actual files > multiple extensions exists 1`] = `
|
|
4
|
-
"// Expected to be transformed to use the \`.mjs\` extension, which is same as this file.
|
|
5
|
-
import { foo, bar } from "./modules/module.mjs";"
|
|
6
|
-
`;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const bar = 'bar'
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import { bar } from './bar'
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import foo, { bar } from './modules/module'
|
|
2
|
-
import { foo as foo2 } from './modules/module'
|
|
3
|
-
import * as someModule from './modules/module'
|
|
4
|
-
|
|
5
|
-
import { foo as cjsFoo } from './modules/cjs-module'
|
|
6
|
-
|
|
7
|
-
// Will not be transformed
|
|
8
|
-
import { foo as packageFoo } from '@my-org/my-pkg'
|
|
9
|
-
|
|
10
|
-
// These will be transformed if `includePackages` includes `@my-org/my-pkg`.
|
|
11
|
-
import { someStuff } from '@my-org/my-pkg/lib'
|
|
12
|
-
// import { someOtherStuff } from '@my-org/my-pkg/lib/index' // TODO: Fix me
|
|
13
|
-
import { exampleFunction } from '@my-org/my-pkg/lib/exampleFunction'
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import path from 'node:path'
|
|
2
|
-
import { describe, expect, test } from 'vitest'
|
|
3
|
-
import { type TransformOptions, transform, transformFileSync } from '@babel/core'
|
|
4
|
-
|
|
5
|
-
import plugin, { type FullySpecifiedOptions } from '../'
|
|
6
|
-
|
|
7
|
-
/** A helper function to get the default transform options for the plugin to test. */
|
|
8
|
-
const getTransformOptions = ({
|
|
9
|
-
pluginOptions,
|
|
10
|
-
}: { pluginOptions?: Partial<FullySpecifiedOptions> } = {}) => ({
|
|
11
|
-
plugins: [[plugin, { ensureFileExists: false, ...pluginOptions }]],
|
|
12
|
-
})
|
|
13
|
-
|
|
14
|
-
/** A test helper for calling Babel transform with the plugin to test and some default options. */
|
|
15
|
-
function getTransformResult(
|
|
16
|
-
input,
|
|
17
|
-
{
|
|
18
|
-
transformOptions,
|
|
19
|
-
pluginOptions,
|
|
20
|
-
}: {
|
|
21
|
-
transformOptions?: TransformOptions
|
|
22
|
-
pluginOptions?: Partial<FullySpecifiedOptions>
|
|
23
|
-
} = {}
|
|
24
|
-
) {
|
|
25
|
-
return transform(input, {
|
|
26
|
-
filename: 'myFile.js',
|
|
27
|
-
configFile: false,
|
|
28
|
-
...transformOptions,
|
|
29
|
-
...getTransformOptions({ pluginOptions }),
|
|
30
|
-
})
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
describe('local imports', () => {
|
|
34
|
-
test('named import', () => {
|
|
35
|
-
const example1 = "import { foo } from './foo'"
|
|
36
|
-
expect(getTransformResult(example1)?.code).toBe('import { foo } from "./foo.mjs";')
|
|
37
|
-
|
|
38
|
-
const example2 = "import { foo as bar } from './foo'"
|
|
39
|
-
expect(getTransformResult(example2)?.code).toBe(
|
|
40
|
-
'import { foo as bar } from "./foo.mjs";'
|
|
41
|
-
)
|
|
42
|
-
})
|
|
43
|
-
|
|
44
|
-
test('default import', () => {
|
|
45
|
-
const example1 = "import defaultFoo from './foo'"
|
|
46
|
-
expect(getTransformResult(example1)?.code).toBe('import defaultFoo from "./foo.mjs";')
|
|
47
|
-
|
|
48
|
-
const example2 = "import defaultFoo, { foo } from './foo'"
|
|
49
|
-
expect(getTransformResult(example2)?.code).toBe(
|
|
50
|
-
'import defaultFoo, { foo } from "./foo.mjs";'
|
|
51
|
-
)
|
|
52
|
-
})
|
|
53
|
-
|
|
54
|
-
test('namespace import', () => {
|
|
55
|
-
const example = "import * as fooModule from './foo'"
|
|
56
|
-
expect(getTransformResult(example)?.code).toBe(
|
|
57
|
-
'import * as fooModule from "./foo.mjs";'
|
|
58
|
-
)
|
|
59
|
-
})
|
|
60
|
-
|
|
61
|
-
test('side effects only import', () => {
|
|
62
|
-
const example = "import './foo'"
|
|
63
|
-
expect(getTransformResult(example)?.code).toBe('import "./foo.mjs";')
|
|
64
|
-
})
|
|
65
|
-
|
|
66
|
-
test('dynamic import()', () => {
|
|
67
|
-
const example = "const foo = await import('./foo')"
|
|
68
|
-
expect(getTransformResult(example)?.code).toBe(
|
|
69
|
-
'const foo = await import("./foo.mjs");'
|
|
70
|
-
)
|
|
71
|
-
})
|
|
72
|
-
})
|
|
73
|
-
|
|
74
|
-
describe('local re-exports', () => {
|
|
75
|
-
test('named', () => {
|
|
76
|
-
const example1 = "export { foo } from './foo'"
|
|
77
|
-
expect(getTransformResult(example1)?.code).toBe('export { foo } from "./foo.mjs";')
|
|
78
|
-
|
|
79
|
-
const example2 = "export { foo as bar } from './foo'"
|
|
80
|
-
expect(getTransformResult(example2)?.code).toBe(
|
|
81
|
-
'export { foo as bar } from "./foo.mjs";'
|
|
82
|
-
)
|
|
83
|
-
})
|
|
84
|
-
|
|
85
|
-
test('default', () => {
|
|
86
|
-
const example1 = "export { default as fooDefault } from './foo'"
|
|
87
|
-
expect(getTransformResult(example1)?.code).toBe(
|
|
88
|
-
'export { default as fooDefault } from "./foo.mjs";'
|
|
89
|
-
)
|
|
90
|
-
})
|
|
91
|
-
|
|
92
|
-
test('namespace', () => {
|
|
93
|
-
const example1 = "export * as fooModule from './foo'"
|
|
94
|
-
expect(getTransformResult(example1)?.code).toBe(
|
|
95
|
-
'export * as fooModule from "./foo.mjs";'
|
|
96
|
-
)
|
|
97
|
-
|
|
98
|
-
const example2 = "export * from './foo'"
|
|
99
|
-
expect(getTransformResult(example2)?.code).toBe('export * from "./foo.mjs";')
|
|
100
|
-
})
|
|
101
|
-
})
|
|
102
|
-
|
|
103
|
-
describe('transforming actual files', () => {
|
|
104
|
-
test('multiple extensions exists', () => {
|
|
105
|
-
const { code } =
|
|
106
|
-
transformFileSync(
|
|
107
|
-
path.join(__dirname, 'fixtures', 'multiple-extensions-exists', 'test.mjs'),
|
|
108
|
-
getTransformOptions({
|
|
109
|
-
pluginOptions: { ensureFileExists: true },
|
|
110
|
-
})
|
|
111
|
-
) || {}
|
|
112
|
-
|
|
113
|
-
expect(code).toMatchSnapshot()
|
|
114
|
-
})
|
|
115
|
-
})
|