From 4b3100b43ab9e86bb1bf2cd86a6978b2afef5545 Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Wed, 26 Oct 2022 20:34:47 +0800 Subject: [PATCH] Reduce size of `typescript` plugin (#13734) --- scripts/build/modify-typescript-module.mjs | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/scripts/build/modify-typescript-module.mjs b/scripts/build/modify-typescript-module.mjs index e1d90be3f..9b36300a2 100644 --- a/scripts/build/modify-typescript-module.mjs +++ b/scripts/build/modify-typescript-module.mjs @@ -173,6 +173,26 @@ function modifyTypescriptModule(text) { }) .replace("ts.createLanguageService = createLanguageService;", ""); + // `ts.scanner` + // This is a big module, most code except `ts.scanner` is not used + source.replaceSubmodule( + (text) => text.includes("ts.findPackageJson = findPackageJson;"), + "ts.scanner = ts.createScanner(99 /* ScriptTarget.Latest */, /*skipTrivia*/ true);" + ); + + // `ts.visitNode` + source.removeSubmodule((text) => text.includes("ts.visitNode = visitNode;")); + + // `ts.createGetSymbolWalker` + source.removeSubmodule((text) => + text.includes("ts.createGetSymbolWalker = createGetSymbolWalker;") + ); + + // `ts.getModuleInstanceState ` + source.removeSubmodule((text) => + text.includes("ts.getModuleInstanceState = getModuleInstanceState;") + ); + /* spell-checker: disable */ // `ts.createParenthesizerRules` source @@ -197,6 +217,12 @@ function modifyTypescriptModule(text) { "ts.createNodeConverters = () => ts.nullNodeConverters;" ); + // `ts.classifier` + source.removeSubmodule((text) => text.includes("classifier = ts.classifier")); + source.removeSubmodule((text) => + text.includes("ts.createClassifier = createClassifier;") + ); + // `ts.getScriptTargetFeatures` source .replaceAlignedCode({