one 1.1.519 → 1.1.520
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/vite/plugins/clientTreeShakePlugin.cjs +46 -22
- package/dist/cjs/vite/plugins/clientTreeShakePlugin.js +52 -25
- package/dist/cjs/vite/plugins/clientTreeShakePlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/clientTreeShakePlugin.native.js +58 -31
- package/dist/cjs/vite/plugins/clientTreeShakePlugin.native.js.map +2 -2
- package/dist/esm/vite/plugins/clientTreeShakePlugin.js +52 -25
- package/dist/esm/vite/plugins/clientTreeShakePlugin.js.map +1 -1
- package/dist/esm/vite/plugins/clientTreeShakePlugin.mjs +46 -22
- package/dist/esm/vite/plugins/clientTreeShakePlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/clientTreeShakePlugin.native.js +46 -22
- package/dist/esm/vite/plugins/clientTreeShakePlugin.native.js.map +1 -1
- package/package.json +9 -9
- package/src/vite/plugins/clientTreeShakePlugin.ts +80 -49
- package/types/vite/plugins/clientTreeShakePlugin.d.ts.map +1 -1
@@ -58,31 +58,51 @@ const traverse = import_traverse.default.default,
|
|
58
58
|
});
|
59
59
|
async function transformTreeShakeClient(code, id) {
|
60
60
|
if (!/generateStaticParams|loader/.test(code)) return;
|
61
|
-
|
61
|
+
let ast;
|
62
|
+
try {
|
63
|
+
ast = (0, import_parser.parse)(code, {
|
62
64
|
sourceType: "module",
|
63
65
|
plugins: ["typescript", "jsx"]
|
64
|
-
})
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
66
|
+
});
|
67
|
+
} catch (error) {
|
68
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
69
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to syntax error:`, errorMessage);
|
70
|
+
return;
|
71
|
+
}
|
72
|
+
let referenced;
|
73
|
+
try {
|
74
|
+
referenced = (0, import_babel_dead_code_elimination.findReferencedIdentifiers)(ast);
|
75
|
+
} catch (error) {
|
76
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
77
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to identifier analysis error:`, errorMessage);
|
78
|
+
return;
|
79
|
+
}
|
80
|
+
const removed = {
|
81
|
+
loader: !1,
|
82
|
+
generateStaticParams: !1
|
83
|
+
};
|
84
|
+
try {
|
85
|
+
traverse(ast, {
|
86
|
+
ExportNamedDeclaration(path) {
|
87
|
+
if (path.node.declaration && path.node.declaration.type === "FunctionDeclaration") {
|
88
|
+
if (!path.node.declaration.id) return;
|
89
|
+
const functionName = path.node.declaration.id.name;
|
90
|
+
(functionName === "loader" || functionName === "generateStaticParams") && (path.remove(), removed[functionName] = !0);
|
91
|
+
} else path.node.declaration && path.node.declaration.type === "VariableDeclaration" && path.node.declaration.declarations.forEach((declarator, index) => {
|
92
|
+
if (declarator.id.type === "Identifier" && (declarator.id.name === "loader" || declarator.id.name === "generateStaticParams")) {
|
93
|
+
const declaration = path.get("declaration.declarations." + index);
|
94
|
+
Array.isArray(declaration) || (declaration.remove(), removed[declarator.id.name] = !0);
|
95
|
+
}
|
96
|
+
});
|
97
|
+
}
|
98
|
+
});
|
99
|
+
} catch (error) {
|
100
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
101
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to traversal error:`, errorMessage);
|
102
|
+
return;
|
103
|
+
}
|
84
104
|
const removedFunctions = Object.keys(removed).filter(key => removed[key]);
|
85
|
-
if (removedFunctions.length) {
|
105
|
+
if (removedFunctions.length) try {
|
86
106
|
(0, import_babel_dead_code_elimination.deadCodeElimination)(ast, referenced);
|
87
107
|
const out = generate(ast),
|
88
108
|
codeOut = out.code + `
|
@@ -93,5 +113,9 @@ async function transformTreeShakeClient(code, id) {
|
|
93
113
|
code: codeOut,
|
94
114
|
map: out.map
|
95
115
|
};
|
116
|
+
} catch (error) {
|
117
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
118
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to code generation error:`, errorMessage);
|
119
|
+
return;
|
96
120
|
}
|
97
121
|
}
|
@@ -43,37 +43,64 @@ const traverse = import_traverse.default.default, generate = import_generator.de
|
|
43
43
|
async function transformTreeShakeClient(code, id) {
|
44
44
|
if (!/generateStaticParams|loader/.test(code))
|
45
45
|
return;
|
46
|
-
|
46
|
+
let ast;
|
47
|
+
try {
|
48
|
+
ast = (0, import_parser.parse)(code, { sourceType: "module", plugins: ["typescript", "jsx"] });
|
49
|
+
} catch (error) {
|
50
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
51
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to syntax error:`, errorMessage);
|
52
|
+
return;
|
53
|
+
}
|
54
|
+
let referenced;
|
55
|
+
try {
|
56
|
+
referenced = (0, import_babel_dead_code_elimination.findReferencedIdentifiers)(ast);
|
57
|
+
} catch (error) {
|
58
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
59
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to identifier analysis error:`, errorMessage);
|
60
|
+
return;
|
61
|
+
}
|
62
|
+
const removed = {
|
47
63
|
loader: !1,
|
48
64
|
generateStaticParams: !1
|
49
65
|
};
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
if (
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
66
|
+
try {
|
67
|
+
traverse(ast, {
|
68
|
+
ExportNamedDeclaration(path) {
|
69
|
+
if (path.node.declaration && path.node.declaration.type === "FunctionDeclaration") {
|
70
|
+
if (!path.node.declaration.id) return;
|
71
|
+
const functionName = path.node.declaration.id.name;
|
72
|
+
(functionName === "loader" || functionName === "generateStaticParams") && (path.remove(), removed[functionName] = !0);
|
73
|
+
} else path.node.declaration && path.node.declaration.type === "VariableDeclaration" && path.node.declaration.declarations.forEach((declarator, index) => {
|
74
|
+
if (declarator.id.type === "Identifier" && (declarator.id.name === "loader" || declarator.id.name === "generateStaticParams")) {
|
75
|
+
const declaration = path.get("declaration.declarations." + index);
|
76
|
+
Array.isArray(declaration) || (declaration.remove(), removed[declarator.id.name] = !0);
|
77
|
+
}
|
78
|
+
});
|
79
|
+
}
|
80
|
+
});
|
81
|
+
} catch (error) {
|
82
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
83
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to traversal error:`, errorMessage);
|
84
|
+
return;
|
85
|
+
}
|
64
86
|
const removedFunctions = Object.keys(removed).filter((key) => removed[key]);
|
65
|
-
if (removedFunctions.length)
|
66
|
-
|
67
|
-
|
87
|
+
if (removedFunctions.length)
|
88
|
+
try {
|
89
|
+
(0, import_babel_dead_code_elimination.deadCodeElimination)(ast, referenced);
|
90
|
+
const out = generate(ast), codeOut = out.code + `
|
68
91
|
|
69
92
|
` + removedFunctions.map((key) => key === "loader" ? import_constants.EMPTY_LOADER_STRING : "export function generateStaticParams() {};").join(`
|
70
93
|
`);
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
94
|
+
return console.info(
|
95
|
+
` \u{1F9F9} [one] ${(0, import_node_path.relative)(process.cwd(), id)} removed ${removedFunctions.length} server-only exports`
|
96
|
+
), {
|
97
|
+
code: codeOut,
|
98
|
+
map: out.map
|
99
|
+
};
|
100
|
+
} catch (error) {
|
101
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
102
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to code generation error:`, errorMessage);
|
103
|
+
return;
|
104
|
+
}
|
78
105
|
}
|
79
106
|
//# sourceMappingURL=clientTreeShakePlugin.js.map
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../src/vite/plugins/clientTreeShakePlugin.ts"],
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA0B,yCAC1B,gBAAsB,0BACtB,kBAA0B,wCAC1B,qCAA+D,wCAC/D,mBAAkC,sBAElC,mBAAoC;AAEpC,MAAM,WAAW,gBAAAA,QAAc,SACzB,WAAW,iBAAAC,QAAc,SAElB,wBAAwB,OAC5B;AAAA,EACL,MAAM;AAAA,EAEN,SAAS;AAAA,EAET,mBAAmB,KAAK;AACtB,WAAO,IAAI,SAAS,YAAY,IAAI,SAAS,SAAS,IAAI,SAAS;AAAA,EACrE;AAAA,EAEA,WAAW;AAAA,IACT,OAAO;AAAA,IACP,MAAM,QAAQ,MAAM,IAAI,UAAU;AAOhC,aANI,KAAK,YAAY,SAAS,SAG1B,CAAC,oBAAoB,SAAK,0BAAQ,EAAE,CAAC,KAGrC,eAAe,KAAK,EAAE,IACxB,SAGU,MAAM,yBAAyB,MAAM,EAAE;AAAA,IAGrD;AAAA,EACF;AACF;AAGF,eAAsB,yBAAyB,MAAc,IAAY;AACvE,MAAI,CAAC,8BAA8B,KAAK,IAAI;AAC1C;
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA0B,yCAC1B,gBAAsB,0BACtB,kBAA0B,wCAC1B,qCAA+D,wCAC/D,mBAAkC,sBAElC,mBAAoC;AAEpC,MAAM,WAAW,gBAAAA,QAAc,SACzB,WAAW,iBAAAC,QAAc,SAElB,wBAAwB,OAC5B;AAAA,EACL,MAAM;AAAA,EAEN,SAAS;AAAA,EAET,mBAAmB,KAAK;AACtB,WAAO,IAAI,SAAS,YAAY,IAAI,SAAS,SAAS,IAAI,SAAS;AAAA,EACrE;AAAA,EAEA,WAAW;AAAA,IACT,OAAO;AAAA,IACP,MAAM,QAAQ,MAAM,IAAI,UAAU;AAOhC,aANI,KAAK,YAAY,SAAS,SAG1B,CAAC,oBAAoB,SAAK,0BAAQ,EAAE,CAAC,KAGrC,eAAe,KAAK,EAAE,IACxB,SAGU,MAAM,yBAAyB,MAAM,EAAE;AAAA,IAGrD;AAAA,EACF;AACF;AAGF,eAAsB,yBAAyB,MAAc,IAAY;AACvE,MAAI,CAAC,8BAA8B,KAAK,IAAI;AAC1C;AAGF,MAAI;AACJ,MAAI;AAEF,cAAM,qBAAM,MAAM,EAAE,YAAY,UAAU,SAAS,CAAC,cAAc,KAAK,EAAE,CAAC;AAAA,EAC5E,SAAS,OAAO;AAGd,UAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAC1E,YAAQ,KAAK,mCAAmC,EAAE,yBAAyB,YAAY;AACvF;AAAA,EACF;AAEA,MAAI;AACJ,MAAI;AACF,qBAAa,8DAA0B,GAAG;AAAA,EAC5C,SAAS,OAAO;AAEd,UAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAC1E,YAAQ,KAAK,mCAAmC,EAAE,sCAAsC,YAAY;AACpG;AAAA,EACF;AAEA,QAAM,UAAU;AAAA,IACd,QAAQ;AAAA,IACR,sBAAsB;AAAA,EACxB;AAEA,MAAI;AACF,aAAS,KAAK;AAAA,MACZ,uBAAuB,MAAM;AAC3B,YAAI,KAAK,KAAK,eAAe,KAAK,KAAK,YAAY,SAAS,uBAAuB;AACjF,cAAI,CAAC,KAAK,KAAK,YAAY,GAAI;AAC/B,gBAAM,eAAe,KAAK,KAAK,YAAY,GAAG;AAC9C,WAAI,iBAAiB,YAAY,iBAAiB,4BAChD,KAAK,OAAO,GACZ,QAAQ,YAAY,IAAI;AAAA,QAE5B,MAAO,CAAI,KAAK,KAAK,eAAe,KAAK,KAAK,YAAY,SAAS,yBACjE,KAAK,KAAK,YAAY,aAAa,QAAQ,CAAC,YAAY,UAAU;AAChE,cACE,WAAW,GAAG,SAAS,iBACtB,WAAW,GAAG,SAAS,YAAY,WAAW,GAAG,SAAS,yBAC3D;AACA,kBAAM,cAAc,KAAK,IAAI,8BAA8B,KAAK;AAChE,YAAK,MAAM,QAAQ,WAAW,MAC5B,YAAY,OAAO,GACnB,QAAQ,WAAW,GAAG,IAAI,IAAI;AAAA,UAElC;AAAA,QACF,CAAC;AAAA,MAEL;AAAA,IACF,CAAC;AAAA,EACH,SAAS,OAAO;AAEd,UAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAC1E,YAAQ,KAAK,mCAAmC,EAAE,4BAA4B,YAAY;AAC1F;AAAA,EACF;AAEA,QAAM,mBAAmB,OAAO,KAAK,OAAO,EAAE,OAAO,CAAC,QAAQ,QAAQ,GAAG,CAAC;AAE1E,MAAI,iBAAiB;AACnB,QAAI;AACF,kEAAoB,KAAK,UAAU;AAEnC,YAAM,MAAM,SAAS,GAAG,GAGlB,UACJ,IAAI,OACJ;AAAA;AAAA,IACA,iBACG,IAAI,CAAC,QACA,QAAQ,WACH,uCAGF,4CACR,EACA,KAAK;AAAA,CAAI;AAEd,qBAAQ;AAAA,QACN,6BAAkB,2BAAS,QAAQ,IAAI,GAAG,EAAE,CAAC,YAAY,iBAAiB,MAAM;AAAA,MAClF,GAEO;AAAA,QACL,MAAM;AAAA,QACN,KAAK,IAAI;AAAA,MACX;AAAA,IACF,SAAS,OAAO;AAEd,YAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAC1E,cAAQ,KAAK,mCAAmC,EAAE,kCAAkC,YAAY;AAChG;AAAA,IACF;AAEJ;",
|
5
5
|
"names": ["BabelTraverse", "BabelGenerate"]
|
6
6
|
}
|
@@ -47,46 +47,73 @@ var import_generator = __toESM(require("@babel/generator"), 1), import_parser =
|
|
47
47
|
};
|
48
48
|
async function transformTreeShakeClient(code, id) {
|
49
49
|
if (/generateStaticParams|loader/.test(code)) {
|
50
|
-
var ast
|
51
|
-
|
52
|
-
|
53
|
-
"
|
54
|
-
|
55
|
-
|
56
|
-
|
50
|
+
var ast;
|
51
|
+
try {
|
52
|
+
ast = (0, import_parser.parse)(code, {
|
53
|
+
sourceType: "module",
|
54
|
+
plugins: [
|
55
|
+
"typescript",
|
56
|
+
"jsx"
|
57
|
+
]
|
58
|
+
});
|
59
|
+
} catch (error) {
|
60
|
+
var errorMessage = error instanceof Error ? error.message : String(error);
|
61
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to syntax error:`, errorMessage);
|
62
|
+
return;
|
63
|
+
}
|
64
|
+
var referenced;
|
65
|
+
try {
|
66
|
+
referenced = (0, import_babel_dead_code_elimination.findReferencedIdentifiers)(ast);
|
67
|
+
} catch (error) {
|
68
|
+
var errorMessage1 = error instanceof Error ? error.message : String(error);
|
69
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to identifier analysis error:`, errorMessage1);
|
70
|
+
return;
|
71
|
+
}
|
72
|
+
var removed = {
|
57
73
|
loader: !1,
|
58
74
|
generateStaticParams: !1
|
59
75
|
};
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
if (
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
76
|
+
try {
|
77
|
+
traverse(ast, {
|
78
|
+
ExportNamedDeclaration(path) {
|
79
|
+
if (path.node.declaration && path.node.declaration.type === "FunctionDeclaration") {
|
80
|
+
if (!path.node.declaration.id) return;
|
81
|
+
var functionName = path.node.declaration.id.name;
|
82
|
+
(functionName === "loader" || functionName === "generateStaticParams") && (path.remove(), removed[functionName] = !0);
|
83
|
+
} else path.node.declaration && path.node.declaration.type === "VariableDeclaration" && path.node.declaration.declarations.forEach(function(declarator, index) {
|
84
|
+
if (declarator.id.type === "Identifier" && (declarator.id.name === "loader" || declarator.id.name === "generateStaticParams")) {
|
85
|
+
var declaration = path.get("declaration.declarations." + index);
|
86
|
+
Array.isArray(declaration) || (declaration.remove(), removed[declarator.id.name] = !0);
|
87
|
+
}
|
88
|
+
});
|
89
|
+
}
|
90
|
+
});
|
91
|
+
} catch (error) {
|
92
|
+
var errorMessage2 = error instanceof Error ? error.message : String(error);
|
93
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to traversal error:`, errorMessage2);
|
94
|
+
return;
|
95
|
+
}
|
74
96
|
var removedFunctions = Object.keys(removed).filter(function(key) {
|
75
97
|
return removed[key];
|
76
98
|
});
|
77
|
-
if (removedFunctions.length)
|
78
|
-
|
79
|
-
|
99
|
+
if (removedFunctions.length)
|
100
|
+
try {
|
101
|
+
(0, import_babel_dead_code_elimination.deadCodeElimination)(ast, referenced);
|
102
|
+
var out = generate(ast), codeOut = out.code + `
|
80
103
|
|
81
104
|
` + removedFunctions.map(function(key) {
|
82
|
-
|
83
|
-
|
105
|
+
return key === "loader" ? import_constants.EMPTY_LOADER_STRING : "export function generateStaticParams() {};";
|
106
|
+
}).join(`
|
84
107
|
`);
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
108
|
+
return console.info(` \u{1F9F9} [one] ${(0, import_node_path.relative)(process.cwd(), id)} removed ${removedFunctions.length} server-only exports`), {
|
109
|
+
code: codeOut,
|
110
|
+
map: out.map
|
111
|
+
};
|
112
|
+
} catch (error) {
|
113
|
+
var errorMessage3 = error instanceof Error ? error.message : String(error);
|
114
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to code generation error:`, errorMessage3);
|
115
|
+
return;
|
116
|
+
}
|
90
117
|
}
|
91
118
|
}
|
92
119
|
// Annotate the CommonJS export names for ESM import in node:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../src/vite/plugins/clientTreeShakePlugin.ts"],
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;uBAA0B,yCAC1B,gBAAsB,0BACtB,kBAA0B,wCAC1B,qCAA+D,wCAC/D,mBAAkC,sBAElC,mBAAoC,yBAE9BA,WAAWC,gBAAAA,QAAc,SACzBC,WAAWC,iBAAAA,QAAc,SAElBC,wBAAwB,WAAA;AACnC,SAAO;IACLC,MAAM;IAENC,SAAS;IAETC,mBAAmBC,KAAG;AACpB,aAAOA,IAAIH,SAAS,YAAYG,IAAIH,SAAS,SAASG,IAAIH,SAAS;IACrE;IAEAI,WAAW;MACTC,OAAO;MACP,MAAMC,QAAQC,MAAMC,IAAIC,UAAQ;AAC9B,YAAI,KAAKC,YAAYV,SAAS,SAGzB,oBAAoBW,SAAKC,0BAAQJ,EAAAA,CAAAA,KAGlC,gBAAeG,KAAKH,EAAAA,GAIxB;cAAMK,MAAM,MAAMC,yBAAyBP,MAAMC,EAAAA;AAEjD,iBAAOK;;MACT;IACF;EACF;AACF;AAEA,eAAsBC,yBAAyBP,MAAcC,IAAU;AACrE,MAAK,8BAA8BG,KAAKJ,IAAAA,
|
5
|
-
"names": ["traverse", "BabelTraverse", "generate", "BabelGenerate", "clientTreeShakePlugin", "name", "enforce", "applyToEnvironment", "env", "transform", "order", "handler", "code", "id", "settings", "environment", "test", "extname", "out", "transformTreeShakeClient", "ast", "parse", "sourceType", "plugins", "referenced", "findReferencedIdentifiers", "removed", "loader", "generateStaticParams", "ExportNamedDeclaration", "path", "node", "declaration", "type", "functionName", "remove", "declarations", "forEach", "declarator", "index", "get", "Array", "isArray", "removedFunctions", "Object", "keys", "filter", "key", "length", "deadCodeElimination", "codeOut", "map", "EMPTY_LOADER_STRING", "join", "
|
4
|
+
"mappings": "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",
|
5
|
+
"names": ["traverse", "BabelTraverse", "generate", "BabelGenerate", "clientTreeShakePlugin", "name", "enforce", "applyToEnvironment", "env", "transform", "order", "handler", "code", "id", "settings", "environment", "test", "extname", "out", "transformTreeShakeClient", "ast", "parse", "sourceType", "plugins", "error", "errorMessage", "Error", "message", "String", "console", "warn", "referenced", "findReferencedIdentifiers", "removed", "loader", "generateStaticParams", "ExportNamedDeclaration", "path", "node", "declaration", "type", "functionName", "remove", "declarations", "forEach", "declarator", "index", "get", "Array", "isArray", "removedFunctions", "Object", "keys", "filter", "key", "length", "deadCodeElimination", "codeOut", "map", "EMPTY_LOADER_STRING", "join", "info", "relative", "process", "cwd"]
|
6
6
|
}
|
@@ -20,38 +20,65 @@ const traverse = BabelTraverse.default, generate = BabelGenerate.default, client
|
|
20
20
|
async function transformTreeShakeClient(code, id) {
|
21
21
|
if (!/generateStaticParams|loader/.test(code))
|
22
22
|
return;
|
23
|
-
|
23
|
+
let ast;
|
24
|
+
try {
|
25
|
+
ast = parse(code, { sourceType: "module", plugins: ["typescript", "jsx"] });
|
26
|
+
} catch (error) {
|
27
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
28
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to syntax error:`, errorMessage);
|
29
|
+
return;
|
30
|
+
}
|
31
|
+
let referenced;
|
32
|
+
try {
|
33
|
+
referenced = findReferencedIdentifiers(ast);
|
34
|
+
} catch (error) {
|
35
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
36
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to identifier analysis error:`, errorMessage);
|
37
|
+
return;
|
38
|
+
}
|
39
|
+
const removed = {
|
24
40
|
loader: !1,
|
25
41
|
generateStaticParams: !1
|
26
42
|
};
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
if (
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
43
|
+
try {
|
44
|
+
traverse(ast, {
|
45
|
+
ExportNamedDeclaration(path) {
|
46
|
+
if (path.node.declaration && path.node.declaration.type === "FunctionDeclaration") {
|
47
|
+
if (!path.node.declaration.id) return;
|
48
|
+
const functionName = path.node.declaration.id.name;
|
49
|
+
(functionName === "loader" || functionName === "generateStaticParams") && (path.remove(), removed[functionName] = !0);
|
50
|
+
} else path.node.declaration && path.node.declaration.type === "VariableDeclaration" && path.node.declaration.declarations.forEach((declarator, index) => {
|
51
|
+
if (declarator.id.type === "Identifier" && (declarator.id.name === "loader" || declarator.id.name === "generateStaticParams")) {
|
52
|
+
const declaration = path.get("declaration.declarations." + index);
|
53
|
+
Array.isArray(declaration) || (declaration.remove(), removed[declarator.id.name] = !0);
|
54
|
+
}
|
55
|
+
});
|
56
|
+
}
|
57
|
+
});
|
58
|
+
} catch (error) {
|
59
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
60
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to traversal error:`, errorMessage);
|
61
|
+
return;
|
62
|
+
}
|
41
63
|
const removedFunctions = Object.keys(removed).filter((key) => removed[key]);
|
42
|
-
if (removedFunctions.length)
|
43
|
-
|
44
|
-
|
64
|
+
if (removedFunctions.length)
|
65
|
+
try {
|
66
|
+
deadCodeElimination(ast, referenced);
|
67
|
+
const out = generate(ast), codeOut = out.code + `
|
45
68
|
|
46
69
|
` + removedFunctions.map((key) => key === "loader" ? EMPTY_LOADER_STRING : "export function generateStaticParams() {};").join(`
|
47
70
|
`);
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
71
|
+
return console.info(
|
72
|
+
` \u{1F9F9} [one] ${relative(process.cwd(), id)} removed ${removedFunctions.length} server-only exports`
|
73
|
+
), {
|
74
|
+
code: codeOut,
|
75
|
+
map: out.map
|
76
|
+
};
|
77
|
+
} catch (error) {
|
78
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
79
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to code generation error:`, errorMessage);
|
80
|
+
return;
|
81
|
+
}
|
55
82
|
}
|
56
83
|
export {
|
57
84
|
clientTreeShakePlugin,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../src/vite/plugins/clientTreeShakePlugin.ts"],
|
4
|
-
"mappings": "AAAA,OAAO,mBAAmB;AAC1B,SAAS,aAAa;AACtB,OAAO,mBAAmB;AAC1B,SAAS,qBAAqB,iCAAiC;AAC/D,SAAS,SAAS,gBAAgB;AAElC,SAAS,2BAA2B;AAEpC,MAAM,WAAW,cAAc,SACzB,WAAW,cAAc,SAElB,wBAAwB,OAC5B;AAAA,EACL,MAAM;AAAA,EAEN,SAAS;AAAA,EAET,mBAAmB,KAAK;AACtB,WAAO,IAAI,SAAS,YAAY,IAAI,SAAS,SAAS,IAAI,SAAS;AAAA,EACrE;AAAA,EAEA,WAAW;AAAA,IACT,OAAO;AAAA,IACP,MAAM,QAAQ,MAAM,IAAI,UAAU;AAOhC,aANI,KAAK,YAAY,SAAS,SAG1B,CAAC,oBAAoB,KAAK,QAAQ,EAAE,CAAC,KAGrC,eAAe,KAAK,EAAE,IACxB,SAGU,MAAM,yBAAyB,MAAM,EAAE;AAAA,IAGrD;AAAA,EACF;AACF;AAGF,eAAsB,yBAAyB,MAAc,IAAY;AACvE,MAAI,CAAC,8BAA8B,KAAK,IAAI;AAC1C;
|
4
|
+
"mappings": "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",
|
5
5
|
"names": []
|
6
6
|
}
|
@@ -21,31 +21,51 @@ const traverse = BabelTraverse.default,
|
|
21
21
|
});
|
22
22
|
async function transformTreeShakeClient(code, id) {
|
23
23
|
if (!/generateStaticParams|loader/.test(code)) return;
|
24
|
-
|
24
|
+
let ast;
|
25
|
+
try {
|
26
|
+
ast = parse(code, {
|
25
27
|
sourceType: "module",
|
26
28
|
plugins: ["typescript", "jsx"]
|
27
|
-
})
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
29
|
+
});
|
30
|
+
} catch (error) {
|
31
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
32
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to syntax error:`, errorMessage);
|
33
|
+
return;
|
34
|
+
}
|
35
|
+
let referenced;
|
36
|
+
try {
|
37
|
+
referenced = findReferencedIdentifiers(ast);
|
38
|
+
} catch (error) {
|
39
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
40
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to identifier analysis error:`, errorMessage);
|
41
|
+
return;
|
42
|
+
}
|
43
|
+
const removed = {
|
44
|
+
loader: !1,
|
45
|
+
generateStaticParams: !1
|
46
|
+
};
|
47
|
+
try {
|
48
|
+
traverse(ast, {
|
49
|
+
ExportNamedDeclaration(path) {
|
50
|
+
if (path.node.declaration && path.node.declaration.type === "FunctionDeclaration") {
|
51
|
+
if (!path.node.declaration.id) return;
|
52
|
+
const functionName = path.node.declaration.id.name;
|
53
|
+
(functionName === "loader" || functionName === "generateStaticParams") && (path.remove(), removed[functionName] = !0);
|
54
|
+
} else path.node.declaration && path.node.declaration.type === "VariableDeclaration" && path.node.declaration.declarations.forEach((declarator, index) => {
|
55
|
+
if (declarator.id.type === "Identifier" && (declarator.id.name === "loader" || declarator.id.name === "generateStaticParams")) {
|
56
|
+
const declaration = path.get("declaration.declarations." + index);
|
57
|
+
Array.isArray(declaration) || (declaration.remove(), removed[declarator.id.name] = !0);
|
58
|
+
}
|
59
|
+
});
|
60
|
+
}
|
61
|
+
});
|
62
|
+
} catch (error) {
|
63
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
64
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to traversal error:`, errorMessage);
|
65
|
+
return;
|
66
|
+
}
|
47
67
|
const removedFunctions = Object.keys(removed).filter(key => removed[key]);
|
48
|
-
if (removedFunctions.length) {
|
68
|
+
if (removedFunctions.length) try {
|
49
69
|
deadCodeElimination(ast, referenced);
|
50
70
|
const out = generate(ast),
|
51
71
|
codeOut = out.code + `
|
@@ -56,6 +76,10 @@ async function transformTreeShakeClient(code, id) {
|
|
56
76
|
code: codeOut,
|
57
77
|
map: out.map
|
58
78
|
};
|
79
|
+
} catch (error) {
|
80
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
81
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to code generation error:`, errorMessage);
|
82
|
+
return;
|
59
83
|
}
|
60
84
|
}
|
61
85
|
export { clientTreeShakePlugin, transformTreeShakeClient };
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["BabelGenerate","parse","BabelTraverse","deadCodeElimination","findReferencedIdentifiers","extname","relative","EMPTY_LOADER_STRING","traverse","default","generate","clientTreeShakePlugin","name","enforce","applyToEnvironment","env","transform","order","handler","code","id","settings","environment","test","transformTreeShakeClient","ast","sourceType","plugins","referenced","removed","loader","generateStaticParams","ExportNamedDeclaration","path","node","declaration","type","functionName","remove","declarations","forEach","declarator","index","get","Array","isArray","removedFunctions","Object","keys","filter","key","length","out","codeOut","map","join","
|
1
|
+
{"version":3,"names":["BabelGenerate","parse","BabelTraverse","deadCodeElimination","findReferencedIdentifiers","extname","relative","EMPTY_LOADER_STRING","traverse","default","generate","clientTreeShakePlugin","name","enforce","applyToEnvironment","env","transform","order","handler","code","id","settings","environment","test","transformTreeShakeClient","ast","sourceType","plugins","error","errorMessage","Error","message","String","console","warn","referenced","removed","loader","generateStaticParams","ExportNamedDeclaration","path","node","declaration","type","functionName","remove","declarations","forEach","declarator","index","get","Array","isArray","removedFunctions","Object","keys","filter","key","length","out","codeOut","map","join","info","process","cwd"],"sources":["../../../../src/vite/plugins/clientTreeShakePlugin.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,aAAA,MAAmB;AAC1B,SAASC,KAAA,QAAa;AACtB,OAAOC,aAAA,MAAmB;AAC1B,SAASC,mBAAA,EAAqBC,yBAAA,QAAiC;AAC/D,SAASC,OAAA,EAASC,QAAA,QAAgB;AAElC,SAASC,mBAAA,QAA2B;AAEpC,MAAMC,QAAA,GAAWN,aAAA,CAAcO,OAAA;EACzBC,QAAA,GAAWV,aAAA,CAAcS,OAAA;EAElBE,qBAAA,GAAwBA,CAAA,MAC5B;IACLC,IAAA,EAAM;IAENC,OAAA,EAAS;IAETC,mBAAmBC,GAAA,EAAK;MACtB,OAAOA,GAAA,CAAIH,IAAA,KAAS,YAAYG,GAAA,CAAIH,IAAA,KAAS,SAASG,GAAA,CAAIH,IAAA,KAAS;IACrE;IAEAI,SAAA,EAAW;MACTC,KAAA,EAAO;MACP,MAAMC,QAAQC,IAAA,EAAMC,EAAA,EAAIC,QAAA,EAAU;QAOhC,OANI,KAAKC,WAAA,CAAYV,IAAA,KAAS,SAG1B,CAAC,oBAAoBW,IAAA,CAAKlB,OAAA,CAAQe,EAAE,CAAC,KAGrC,eAAeG,IAAA,CAAKH,EAAE,IACxB,SAGU,MAAMI,wBAAA,CAAyBL,IAAA,EAAMC,EAAE;MAGrD;IACF;EACF;AAGF,eAAsBI,yBAAyBL,IAAA,EAAcC,EAAA,EAAY;EACvE,IAAI,CAAC,8BAA8BG,IAAA,CAAKJ,IAAI,GAC1C;EAGF,IAAIM,GAAA;EACJ,IAAI;IAEFA,GAAA,GAAMxB,KAAA,CAAMkB,IAAA,EAAM;MAAEO,UAAA,EAAY;MAAUC,OAAA,EAAS,CAAC,cAAc,KAAK;IAAE,CAAC;EAC5E,SAASC,KAAA,EAAO;IAGd,MAAMC,YAAA,GAAeD,KAAA,YAAiBE,KAAA,GAAQF,KAAA,CAAMG,OAAA,GAAUC,MAAA,CAAOJ,KAAK;IAC1EK,OAAA,CAAQC,IAAA,CAAK,mCAAmCd,EAAE,yBAAyBS,YAAY;IACvF;EACF;EAEA,IAAIM,UAAA;EACJ,IAAI;IACFA,UAAA,GAAa/B,yBAAA,CAA0BqB,GAAG;EAC5C,SAASG,KAAA,EAAO;IAEd,MAAMC,YAAA,GAAeD,KAAA,YAAiBE,KAAA,GAAQF,KAAA,CAAMG,OAAA,GAAUC,MAAA,CAAOJ,KAAK;IAC1EK,OAAA,CAAQC,IAAA,CAAK,mCAAmCd,EAAE,sCAAsCS,YAAY;IACpG;EACF;EAEA,MAAMO,OAAA,GAAU;IACdC,MAAA,EAAQ;IACRC,oBAAA,EAAsB;EACxB;EAEA,IAAI;IACF9B,QAAA,CAASiB,GAAA,EAAK;MACZc,uBAAuBC,IAAA,EAAM;QAC3B,IAAIA,IAAA,CAAKC,IAAA,CAAKC,WAAA,IAAeF,IAAA,CAAKC,IAAA,CAAKC,WAAA,CAAYC,IAAA,KAAS,uBAAuB;UACjF,IAAI,CAACH,IAAA,CAAKC,IAAA,CAAKC,WAAA,CAAYtB,EAAA,EAAI;UAC/B,MAAMwB,YAAA,GAAeJ,IAAA,CAAKC,IAAA,CAAKC,WAAA,CAAYtB,EAAA,CAAGR,IAAA;UAC9C,CAAIgC,YAAA,KAAiB,YAAYA,YAAA,KAAiB,4BAChDJ,IAAA,CAAKK,MAAA,CAAO,GACZT,OAAA,CAAQQ,YAAY,IAAI;QAE5B,OAAWJ,IAAA,CAAKC,IAAA,CAAKC,WAAA,IAAeF,IAAA,CAAKC,IAAA,CAAKC,WAAA,CAAYC,IAAA,KAAS,yBACjEH,IAAA,CAAKC,IAAA,CAAKC,WAAA,CAAYI,YAAA,CAAaC,OAAA,CAAQ,CAACC,UAAA,EAAYC,KAAA,KAAU;UAChE,IACED,UAAA,CAAW5B,EAAA,CAAGuB,IAAA,KAAS,iBACtBK,UAAA,CAAW5B,EAAA,CAAGR,IAAA,KAAS,YAAYoC,UAAA,CAAW5B,EAAA,CAAGR,IAAA,KAAS,yBAC3D;YACA,MAAM8B,WAAA,GAAcF,IAAA,CAAKU,GAAA,CAAI,8BAA8BD,KAAK;YAC3DE,KAAA,CAAMC,OAAA,CAAQV,WAAW,MAC5BA,WAAA,CAAYG,MAAA,CAAO,GACnBT,OAAA,CAAQY,UAAA,CAAW5B,EAAA,CAAGR,IAAI,IAAI;UAElC;QACF,CAAC;MAEL;IACF,CAAC;EACH,SAASgB,KAAA,EAAO;IAEd,MAAMC,YAAA,GAAeD,KAAA,YAAiBE,KAAA,GAAQF,KAAA,CAAMG,OAAA,GAAUC,MAAA,CAAOJ,KAAK;IAC1EK,OAAA,CAAQC,IAAA,CAAK,mCAAmCd,EAAE,4BAA4BS,YAAY;IAC1F;EACF;EAEA,MAAMwB,gBAAA,GAAmBC,MAAA,CAAOC,IAAA,CAAKnB,OAAO,EAAEoB,MAAA,CAAQC,GAAA,IAAQrB,OAAA,CAAQqB,GAAG,CAAC;EAE1E,IAAIJ,gBAAA,CAAiBK,MAAA,EACnB,IAAI;IACFvD,mBAAA,CAAoBsB,GAAA,EAAKU,UAAU;IAEnC,MAAMwB,GAAA,GAAMjD,QAAA,CAASe,GAAG;MAGlBmC,OAAA,GACJD,GAAA,CAAIxC,IAAA,GACJ;AAAA;AAAA,IACAkC,gBAAA,CACGQ,GAAA,CAAKJ,GAAA,IACAA,GAAA,KAAQ,WACHlD,mBAAA,GAGF,4CACR,EACAuD,IAAA,CAAK;AAAA,CAAI;IAEd,OAAA7B,OAAA,CAAQ8B,IAAA,CACN,yBAAkBzD,QAAA,CAAS0D,OAAA,CAAQC,GAAA,CAAI,GAAG7C,EAAE,CAAC,YAAYiC,gBAAA,CAAiBK,MAAM,sBAClF,GAEO;MACLvC,IAAA,EAAMyC,OAAA;MACNC,GAAA,EAAKF,GAAA,CAAIE;IACX;EACF,SAASjC,KAAA,EAAO;IAEd,MAAMC,YAAA,GAAeD,KAAA,YAAiBE,KAAA,GAAQF,KAAA,CAAMG,OAAA,GAAUC,MAAA,CAAOJ,KAAK;IAC1EK,OAAA,CAAQC,IAAA,CAAK,mCAAmCd,EAAE,kCAAkCS,YAAY;IAChG;EACF;AAEJ","ignoreList":[]}
|
@@ -26,33 +26,53 @@ var traverse = BabelTraverse.default,
|
|
26
26
|
};
|
27
27
|
async function transformTreeShakeClient(code, id) {
|
28
28
|
if (/generateStaticParams|loader/.test(code)) {
|
29
|
-
var ast
|
29
|
+
var ast;
|
30
|
+
try {
|
31
|
+
ast = parse(code, {
|
30
32
|
sourceType: "module",
|
31
33
|
plugins: ["typescript", "jsx"]
|
32
|
-
})
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
34
|
+
});
|
35
|
+
} catch (error) {
|
36
|
+
var errorMessage = error instanceof Error ? error.message : String(error);
|
37
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to syntax error:`, errorMessage);
|
38
|
+
return;
|
39
|
+
}
|
40
|
+
var referenced;
|
41
|
+
try {
|
42
|
+
referenced = findReferencedIdentifiers(ast);
|
43
|
+
} catch (error) {
|
44
|
+
var errorMessage1 = error instanceof Error ? error.message : String(error);
|
45
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to identifier analysis error:`, errorMessage1);
|
46
|
+
return;
|
47
|
+
}
|
48
|
+
var removed = {
|
49
|
+
loader: !1,
|
50
|
+
generateStaticParams: !1
|
51
|
+
};
|
52
|
+
try {
|
53
|
+
traverse(ast, {
|
54
|
+
ExportNamedDeclaration(path) {
|
55
|
+
if (path.node.declaration && path.node.declaration.type === "FunctionDeclaration") {
|
56
|
+
if (!path.node.declaration.id) return;
|
57
|
+
var functionName = path.node.declaration.id.name;
|
58
|
+
(functionName === "loader" || functionName === "generateStaticParams") && (path.remove(), removed[functionName] = !0);
|
59
|
+
} else path.node.declaration && path.node.declaration.type === "VariableDeclaration" && path.node.declaration.declarations.forEach(function (declarator, index) {
|
60
|
+
if (declarator.id.type === "Identifier" && (declarator.id.name === "loader" || declarator.id.name === "generateStaticParams")) {
|
61
|
+
var declaration = path.get("declaration.declarations." + index);
|
62
|
+
Array.isArray(declaration) || (declaration.remove(), removed[declarator.id.name] = !0);
|
63
|
+
}
|
64
|
+
});
|
65
|
+
}
|
66
|
+
});
|
67
|
+
} catch (error) {
|
68
|
+
var errorMessage2 = error instanceof Error ? error.message : String(error);
|
69
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to traversal error:`, errorMessage2);
|
70
|
+
return;
|
71
|
+
}
|
52
72
|
var removedFunctions = Object.keys(removed).filter(function (key) {
|
53
73
|
return removed[key];
|
54
74
|
});
|
55
|
-
if (removedFunctions.length) {
|
75
|
+
if (removedFunctions.length) try {
|
56
76
|
deadCodeElimination(ast, referenced);
|
57
77
|
var out = generate(ast),
|
58
78
|
codeOut = out.code + `
|
@@ -65,6 +85,10 @@ async function transformTreeShakeClient(code, id) {
|
|
65
85
|
code: codeOut,
|
66
86
|
map: out.map
|
67
87
|
};
|
88
|
+
} catch (error) {
|
89
|
+
var errorMessage3 = error instanceof Error ? error.message : String(error);
|
90
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to code generation error:`, errorMessage3);
|
91
|
+
return;
|
68
92
|
}
|
69
93
|
}
|
70
94
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["BabelGenerate","parse","BabelTraverse","deadCodeElimination","findReferencedIdentifiers","extname","relative","EMPTY_LOADER_STRING","traverse","default","generate","clientTreeShakePlugin","name","enforce","applyToEnvironment","env","transform","order","handler","code","id","settings","environment","test","out","transformTreeShakeClient","ast","sourceType","plugins","referenced","removed","loader","generateStaticParams","ExportNamedDeclaration","path","node","declaration","type","functionName","remove","declarations","forEach","declarator","index","get","Array","isArray","removedFunctions","Object","keys","filter","key","length"],"sources":["../../../../src/vite/plugins/clientTreeShakePlugin.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,aAAA,MAAmB;AAC1B,SAASC,KAAA,QAAa;AACtB,OAAOC,aAAA,MAAmB;AAC1B,SAASC,mBAAA,EAAqBC,yBAAA,QAAiC;AAC/D,SAASC,OAAA,EAASC,QAAA,QAAgB;AAElC,SAASC,mBAAA,QAA2B;AAEpC,IAAAC,QAAM,GAAAN,aAAW,CAAAO,OAAc;EAAAC,QACzB,GAAAV,aAAW,CAAAS,OAAc;EAAAE,qBAElB,YAAAA,CAAA,EACJ;IACL,OAAM;MAENC,IAAA,yBAAS;MAETC,OAAA;MACEC,kBAAWA,CAAAC,GAAS;QACtB,OAAAA,GAAA,CAAAH,IAAA,iBAAAG,GAAA,CAAAH,IAAA,cAAAG,GAAA,CAAAH,IAAA;MAEA;MACEI,SAAO;QACPC,KAAM,OAAQ;QAOZ,MAAAC,OANSA,CAAAC,IAAA,EAAAC,EAAA,EAAYC,QAAA,EAAS;UAahC,SAAAC,WAAA,CAAAV,IAAA,kCAAAW,IAAA,CAAAlB,OAAA,CAAAe,EAAA,sBAAAG,IAAA,CAAAH,EAAA;YACF,IAAAI,GAAA,SAAAC,wBAAA,CAAAN,IAAA,EAAAC,EAAA;YACF,OAAAI,GAAA;UAGF;QACM;MACF;
|
1
|
+
{"version":3,"names":["BabelGenerate","parse","BabelTraverse","deadCodeElimination","findReferencedIdentifiers","extname","relative","EMPTY_LOADER_STRING","traverse","default","generate","clientTreeShakePlugin","name","enforce","applyToEnvironment","env","transform","order","handler","code","id","settings","environment","test","out","transformTreeShakeClient","ast","sourceType","plugins","error","errorMessage","Error","message","String","console","warn","referenced","errorMessage1","removed","loader","generateStaticParams","ExportNamedDeclaration","path","node","declaration","type","functionName","remove","declarations","forEach","declarator","index","get","Array","isArray","errorMessage2","removedFunctions","Object","keys","filter","key","length","codeOut","map"],"sources":["../../../../src/vite/plugins/clientTreeShakePlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "one",
|
3
|
-
"version": "1.1.
|
3
|
+
"version": "1.1.520",
|
4
4
|
"license": "BSD-3-Clause",
|
5
5
|
"sideEffects": [
|
6
6
|
"setup.mjs",
|
@@ -113,16 +113,16 @@
|
|
113
113
|
"@react-navigation/routers": "~7.3.2",
|
114
114
|
"@swc/core": "^1.10.4",
|
115
115
|
"@ungap/structured-clone": "^1.2.0",
|
116
|
-
"@vxrn/compiler": "1.1.
|
117
|
-
"@vxrn/resolve": "1.1.
|
118
|
-
"@vxrn/tslib-lite": "1.1.
|
119
|
-
"@vxrn/universal-color-scheme": "1.1.
|
120
|
-
"@vxrn/use-isomorphic-layout-effect": "1.1.
|
116
|
+
"@vxrn/compiler": "1.1.520",
|
117
|
+
"@vxrn/resolve": "1.1.520",
|
118
|
+
"@vxrn/tslib-lite": "1.1.520",
|
119
|
+
"@vxrn/universal-color-scheme": "1.1.520",
|
120
|
+
"@vxrn/use-isomorphic-layout-effect": "1.1.520",
|
121
121
|
"babel-dead-code-elimination": "^1.0.9",
|
122
122
|
"babel-plugin-module-resolver": "^5",
|
123
123
|
"citty": "^0.1.6",
|
124
124
|
"core-js": "^3.38.1",
|
125
|
-
"create-vxrn": "1.1.
|
125
|
+
"create-vxrn": "1.1.520",
|
126
126
|
"escape-string-regexp": "^5.0.0",
|
127
127
|
"expo-linking": "~6.3.1",
|
128
128
|
"expo-modules-core": "~2.5.0",
|
@@ -149,7 +149,7 @@
|
|
149
149
|
"vite": "^7.0.1",
|
150
150
|
"vite-plugin-barrel": "^0.4.1",
|
151
151
|
"vite-tsconfig-paths": "^5.0.1",
|
152
|
-
"vxrn": "1.1.
|
152
|
+
"vxrn": "1.1.520",
|
153
153
|
"ws": "^8.18.0",
|
154
154
|
"xxhashjs": "^0.2.2"
|
155
155
|
},
|
@@ -158,7 +158,7 @@
|
|
158
158
|
"@types/node": "^22.1.0",
|
159
159
|
"@types/react-dom": "^18.2.25",
|
160
160
|
"@types/xxhashjs": "^0.2.4",
|
161
|
-
"@vxrn/vite-plugin-metro": "1.1.
|
161
|
+
"@vxrn/vite-plugin-metro": "1.1.520",
|
162
162
|
"depcheck": "^1.4.7",
|
163
163
|
"immer": "^10.1.1",
|
164
164
|
"react-native": "~0.79.2",
|
@@ -45,70 +45,101 @@ export async function transformTreeShakeClient(code: string, id: string) {
|
|
45
45
|
return
|
46
46
|
}
|
47
47
|
|
48
|
-
|
49
|
-
|
48
|
+
let ast: any
|
49
|
+
try {
|
50
|
+
// `as any` because babel-dead-code-elimination using @types and it conflicts :/
|
51
|
+
ast = parse(code, { sourceType: 'module', plugins: ['typescript', 'jsx'] }) as any
|
52
|
+
} catch (error) {
|
53
|
+
// If there's a syntax error, skip transformation and let Vite handle the error
|
54
|
+
// This prevents the dev server from crashing on syntax errors
|
55
|
+
const errorMessage = error instanceof Error ? error.message : String(error)
|
56
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to syntax error:`, errorMessage)
|
57
|
+
return
|
58
|
+
}
|
50
59
|
|
51
|
-
|
60
|
+
let referenced: any
|
61
|
+
try {
|
62
|
+
referenced = findReferencedIdentifiers(ast)
|
63
|
+
} catch (error) {
|
64
|
+
// If finding referenced identifiers fails, skip transformation
|
65
|
+
const errorMessage = error instanceof Error ? error.message : String(error)
|
66
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to identifier analysis error:`, errorMessage)
|
67
|
+
return
|
68
|
+
}
|
52
69
|
|
53
70
|
const removed = {
|
54
71
|
loader: false,
|
55
72
|
generateStaticParams: false,
|
56
73
|
}
|
57
74
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
if (
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
} else if (path.node.declaration && path.node.declaration.type === 'VariableDeclaration') {
|
68
|
-
path.node.declaration.declarations.forEach((declarator, index) => {
|
69
|
-
if (
|
70
|
-
declarator.id.type === 'Identifier' &&
|
71
|
-
(declarator.id.name === 'loader' || declarator.id.name === 'generateStaticParams')
|
72
|
-
) {
|
73
|
-
const declaration = path.get('declaration.declarations.' + index)
|
74
|
-
if (!Array.isArray(declaration)) {
|
75
|
-
declaration.remove()
|
76
|
-
removed[declarator.id.name] = true
|
77
|
-
}
|
75
|
+
try {
|
76
|
+
traverse(ast, {
|
77
|
+
ExportNamedDeclaration(path) {
|
78
|
+
if (path.node.declaration && path.node.declaration.type === 'FunctionDeclaration') {
|
79
|
+
if (!path.node.declaration.id) return
|
80
|
+
const functionName = path.node.declaration.id.name
|
81
|
+
if (functionName === 'loader' || functionName === 'generateStaticParams') {
|
82
|
+
path.remove()
|
83
|
+
removed[functionName] = true
|
78
84
|
}
|
79
|
-
})
|
80
|
-
|
81
|
-
|
82
|
-
|
85
|
+
} else if (path.node.declaration && path.node.declaration.type === 'VariableDeclaration') {
|
86
|
+
path.node.declaration.declarations.forEach((declarator, index) => {
|
87
|
+
if (
|
88
|
+
declarator.id.type === 'Identifier' &&
|
89
|
+
(declarator.id.name === 'loader' || declarator.id.name === 'generateStaticParams')
|
90
|
+
) {
|
91
|
+
const declaration = path.get('declaration.declarations.' + index)
|
92
|
+
if (!Array.isArray(declaration)) {
|
93
|
+
declaration.remove()
|
94
|
+
removed[declarator.id.name] = true
|
95
|
+
}
|
96
|
+
}
|
97
|
+
})
|
98
|
+
}
|
99
|
+
},
|
100
|
+
})
|
101
|
+
} catch (error) {
|
102
|
+
// If traversal fails, skip transformation
|
103
|
+
const errorMessage = error instanceof Error ? error.message : String(error)
|
104
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to traversal error:`, errorMessage)
|
105
|
+
return
|
106
|
+
}
|
83
107
|
|
84
108
|
const removedFunctions = Object.keys(removed).filter((key) => removed[key])
|
85
109
|
|
86
110
|
if (removedFunctions.length) {
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
111
|
+
try {
|
112
|
+
deadCodeElimination(ast, referenced)
|
113
|
+
|
114
|
+
const out = generate(ast)
|
115
|
+
|
116
|
+
// add back in empty or filled loader and genparams
|
117
|
+
const codeOut =
|
118
|
+
out.code +
|
119
|
+
'\n\n' +
|
120
|
+
removedFunctions
|
121
|
+
.map((key) => {
|
122
|
+
if (key === 'loader') {
|
123
|
+
return EMPTY_LOADER_STRING
|
124
|
+
}
|
100
125
|
|
101
|
-
|
102
|
-
|
103
|
-
|
126
|
+
return `export function generateStaticParams() {};`
|
127
|
+
})
|
128
|
+
.join('\n')
|
104
129
|
|
105
|
-
|
106
|
-
|
107
|
-
|
130
|
+
console.info(
|
131
|
+
` 🧹 [one] ${relative(process.cwd(), id)} removed ${removedFunctions.length} server-only exports`
|
132
|
+
)
|
108
133
|
|
109
|
-
|
110
|
-
|
111
|
-
|
134
|
+
return {
|
135
|
+
code: codeOut,
|
136
|
+
map: out.map,
|
137
|
+
}
|
138
|
+
} catch (error) {
|
139
|
+
// If code generation fails, skip transformation
|
140
|
+
const errorMessage = error instanceof Error ? error.message : String(error)
|
141
|
+
console.warn(`[one] Skipping tree shaking for ${id} due to code generation error:`, errorMessage)
|
142
|
+
return
|
112
143
|
}
|
113
144
|
}
|
114
145
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"clientTreeShakePlugin.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/clientTreeShakePlugin.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAMlC,eAAO,MAAM,qBAAqB,QAAO,MA6BxC,CAAA;AAED,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;;;;;;;;;;;
|
1
|
+
{"version":3,"file":"clientTreeShakePlugin.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/clientTreeShakePlugin.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAMlC,eAAO,MAAM,qBAAqB,QAAO,MA6BxC,CAAA;AAED,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;;;;;;;;;;;eAsGtE"}
|