Minify: Move `getTar()` to `static.js`

`static.js` is the only file that uses it.
pull/4765/head
Richard Hansen 2021-02-11 13:43:10 -05:00 committed by John McLear
parent 996dc81825
commit 7f4a7156e2
2 changed files with 24 additions and 21 deletions

View File

@ -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);

View File

@ -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) => {