diff --git a/services/web/Makefile b/services/web/Makefile index bed0b27a0c..390e2faea8 100644 --- a/services/web/Makefile +++ b/services/web/Makefile @@ -423,6 +423,10 @@ lint: lint_flag_res_send_usage lint_flag_res_send_usage: bin/lint_flag_res_send_usage +lint: lint_overleafModuleImports +lint_overleafModuleImports: + node scripts/check_overleafModuleImports.js + lint: typecheck_frontend typecheck_frontend: npx -p typescript tsc --noEmit diff --git a/services/web/config/settings.defaults.js b/services/web/config/settings.defaults.js index e96178fd0a..2bd74880ac 100644 --- a/services/web/config/settings.defaults.js +++ b/services/web/config/settings.defaults.js @@ -881,6 +881,7 @@ module.exports = { sourceEditorComponents: [], pdfLogEntryComponents: [], pdfLogEntriesComponents: [], + pdfPreviewPromotions: [], diagnosticActions: [], sourceEditorCompletionSources: [], sourceEditorSymbolPalette: [], diff --git a/services/web/scripts/check_overleafModuleImports.js b/services/web/scripts/check_overleafModuleImports.js new file mode 100644 index 0000000000..7af34008c6 --- /dev/null +++ b/services/web/scripts/check_overleafModuleImports.js @@ -0,0 +1,26 @@ +function getOverleafModuleImports(settings) { + return Object.keys(settings.overleafModuleImports).sort().join(',') +} + +const CE_CONFIG = require('../config/settings.defaults') +const PRO_CONFIG = require('../config/settings.overrides.server-pro') +const SAAS_CONFIG = require('../config/settings.webpack') + +function main() { + const CE = getOverleafModuleImports(CE_CONFIG) + const PRO = getOverleafModuleImports(CE_CONFIG.mergeWith(PRO_CONFIG)) + const SAAS = getOverleafModuleImports(CE_CONFIG.mergeWith(SAAS_CONFIG)) + + if (CE !== PRO) { + throw new Error( + 'settings.defaults is missing overleafModuleImports defined in settings.overrides.server-pro' + ) + } + if (CE !== SAAS) { + throw new Error( + 'settings.defaults is missing overleafModuleImports defined in settings.webpack' + ) + } +} + +main()