From 7f4a7156e261e42a7dd22ff167d445e8fec5045b Mon Sep 17 00:00:00 2001 From: Richard Hansen Date: Thu, 11 Feb 2021 13:43:10 -0500 Subject: [PATCH] Minify: Move `getTar()` to `static.js` `static.js` is the only file that uses it. --- src/node/hooks/express/static.js | 25 ++++++++++++++++++++++++- src/node/utils/Minify.js | 20 -------------------- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/src/node/hooks/express/static.js b/src/node/hooks/express/static.js index 00f0798ea..5908312e7 100644 --- a/src/node/hooks/express/static.js +++ b/src/node/hooks/express/static.js @@ -1,10 +1,33 @@ 'use strict'; +const fs = require('fs'); const minify = require('../../utils/Minify'); +const path = require('path'); const plugins = require('../../../static/js/pluginfw/plugin_defs'); +const settings = require('../../utils/Settings'); const CachingMiddleware = require('../../utils/caching_middleware'); const Yajsml = require('etherpad-yajsml'); +// Rewrite tar to include modules with no extensions and proper rooted paths. +const getTar = () => { + const prefixLocalLibraryPath = (path) => { + if (path.charAt(0) === '$') { + return path.slice(1); + } else { + return `ep_etherpad-lite/static/js/${path}`; + } + }; + const tarJson = fs.readFileSync(path.join(settings.root, 'src/node/utils/tar.json'), 'utf8'); + const tar = {}; + for (const [key, relativeFiles] of Object.entries(JSON.parse(tarJson))) { + const files = relativeFiles.map(prefixLocalLibraryPath); + tar[prefixLocalLibraryPath(key)] = files + .concat(files.map((p) => p.replace(/\.js$/, ''))) + .concat(files.map((p) => `${p.replace(/\.js$/, '')}/index.js`)); + } + return tar; +}; + exports.expressCreateServer = (hookName, args, cb) => { // Cache both minified and static. const assetCache = new CachingMiddleware(); @@ -26,7 +49,7 @@ exports.expressCreateServer = (hookName, args, cb) => { }); const StaticAssociator = Yajsml.associators.StaticAssociator; - const associations = Yajsml.associators.associationsForSimpleMapping(minify.getTar()); + const associations = Yajsml.associators.associationsForSimpleMapping(getTar()); const associator = new StaticAssociator(associations); jsServer.setAssociator(associator); diff --git a/src/node/utils/Minify.js b/src/node/utils/Minify.js index 3b7a89c19..8f49abec4 100644 --- a/src/node/utils/Minify.js +++ b/src/node/utils/Minify.js @@ -48,26 +48,6 @@ const LIBRARY_WHITELIST = [ 'unorm', ]; -// Rewrite tar to include modules with no extensions and proper rooted paths. -exports.getTar = () => { - const prefixLocalLibraryPath = (path) => { - if (path.charAt(0) === '$') { - return path.slice(1); - } else { - return `ep_etherpad-lite/static/js/${path}`; - } - }; - const tarJson = fs.readFileSync(path.join(__dirname, 'tar.json'), 'utf8'); - const tar = {}; - for (const [key, relativeFiles] of Object.entries(JSON.parse(tarJson))) { - const files = relativeFiles.map(prefixLocalLibraryPath); - tar[prefixLocalLibraryPath(key)] = files - .concat(files.map((p) => p.replace(/\.js$/, ''))) - .concat(files.map((p) => `${p.replace(/\.js$/, '')}/index.js`)); - } - return tar; -}; - // What follows is a terrible hack to avoid loop-back within the server. // TODO: Serve files from another service, or directly from the file system. const requestURI = (url, method, headers, callback) => {