From 8fbc2d596a7894e6a07be358b9da2788e3d4a2fb Mon Sep 17 00:00:00 2001 From: abose Date: Wed, 15 Jan 2025 01:47:41 +0530 Subject: [PATCH] build: minify extensions framework --- gulpfile.js/index.js | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/gulpfile.js/index.js b/gulpfile.js/index.js index 5786c9b584..d7f5e1bb02 100644 --- a/gulpfile.js/index.js +++ b/gulpfile.js/index.js @@ -789,12 +789,49 @@ function _renameExtensionConcatAsExtensionJSInDist(extensionName) { }); } +const minifyableExtensions = ["CloseOthers", "CodeFolding", "DebugCommands", "Git", + "HealthData", "JavaScriptCodeHints", "JavaScriptRefactoring", "QuickView"]; +// extensions that nned not be minified either coz they are single file extensions or some other reason. +const nonMinifyExtensions = ["CSSAtRuleCodeHints", "CSSCodeHints", + "CSSPseudoSelectorHints", "DarkTheme", "HandlebarsSupport", "HTMLCodeHints", "HtmlEntityCodeHints", + "InlineColorEditor", "InlineTimingFunctionEditor", "JavaScriptQuickEdit", "JSLint", + "LightTheme", "MDNDocs", "Phoenix-prettier", "PrefsCodeHints", "SVGCodeHints", "UrlCodeHints" +]; async function makeConcatExtensions() { - await makeExtensionConcatJS("Git"); + let content = JSON.parse(fs.readFileSync(`src/extensions/default/DefaultExtensions.json`, + "utf8")); + const allExtensions = [...content.defaultExtensionsList, ...content.desktopOnly]; + + // 3) Validate no unknown extensions are present + const knownExtensions = [ + ...minifyableExtensions, + ...nonMinifyExtensions + ]; + + const unknownExtensions = allExtensions.filter( + (ext) => !knownExtensions.includes(ext) + ); + + if (unknownExtensions.length > 0) { + throw new Error( + `New extension(s) detected: ${unknownExtensions.join(", ")}. ` + + `Please add them to either minifyableExtensions or ` + + `nonMinifyExtensions array.` + ); + } + + // 4) Run concatenation for all concat-enabled extensions + for (const extension of minifyableExtensions) { + await makeExtensionConcatJS(extension); + } + + console.log("All extensions concatenated and minified!"); } async function _renameConcatExtensionsinDist() { - await _renameExtensionConcatAsExtensionJSInDist("Git"); + for (const extension of minifyableExtensions) { + await _renameExtensionConcatAsExtensionJSInDist(extension); + } } function createCacheManifest(srcFolder) {