From 9eb22ddc19eca4b3ec8415d5f891c225ec1ee0c8 Mon Sep 17 00:00:00 2001 From: Gusted Date: Wed, 24 Jul 2024 22:41:25 +0200 Subject: [PATCH] [CHORE] Proper chunking for swagger - Tell webpack to chunk the swagger-ui dependency, so it can be re-used for the forgejo-swagger.js and swagger.js files (these two files are two seperate javascript files in the output). - This saves off 400KB when Forgejo is built with the `bindata` build tag. --- web_src/js/standalone/forgejo-swagger.js | 7 ++++--- web_src/js/standalone/swagger.js | 8 +++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/web_src/js/standalone/forgejo-swagger.js b/web_src/js/standalone/forgejo-swagger.js index 896a1364c3..b7550b8396 100644 --- a/web_src/js/standalone/forgejo-swagger.js +++ b/web_src/js/standalone/forgejo-swagger.js @@ -1,7 +1,8 @@ -import SwaggerUI from 'swagger-ui-dist/swagger-ui-es-bundle.js'; -import 'swagger-ui-dist/swagger-ui.css'; - window.addEventListener('load', async () => { + const [{default: SwaggerUI}] = await Promise.all([ + import(/* webpackChunkName: "swagger-ui" */'swagger-ui-dist/swagger-ui-es-bundle.js'), + import(/* webpackChunkName: "swagger-ui" */'swagger-ui-dist/swagger-ui.css'), + ]); const url = document.getElementById('swagger-ui').getAttribute('data-source'); const ui = SwaggerUI({ diff --git a/web_src/js/standalone/swagger.js b/web_src/js/standalone/swagger.js index 00854ef5d7..ec2115ec60 100644 --- a/web_src/js/standalone/swagger.js +++ b/web_src/js/standalone/swagger.js @@ -1,7 +1,9 @@ -import SwaggerUI from 'swagger-ui-dist/swagger-ui-es-bundle.js'; -import 'swagger-ui-dist/swagger-ui.css'; - window.addEventListener('load', async () => { + const [{default: SwaggerUI}] = await Promise.all([ + import(/* webpackChunkName: "swagger-ui" */'swagger-ui-dist/swagger-ui-es-bundle.js'), + import(/* webpackChunkName: "swagger-ui" */'swagger-ui-dist/swagger-ui.css'), + ]); + const url = document.getElementById('swagger-ui').getAttribute('data-source'); const res = await fetch(url); const spec = await res.json();