diff options
Diffstat (limited to 'src/web-routes.js')
-rw-r--r-- | src/web-routes.js | 98 |
1 files changed, 88 insertions, 10 deletions
diff --git a/src/web-routes.js b/src/web-routes.js index efd86ca1..762b26c3 100644 --- a/src/web-routes.js +++ b/src/web-routes.js @@ -8,25 +8,77 @@ const codeSrcPath = __dirname; const codeRootPath = path.resolve(codeSrcPath, '..'); function getNodeDependencyRootPath(dependencyName) { - const packageJSON = - import.meta.resolve(dependencyName + '/package.json'); - - return path.dirname(fileURLToPath(packageJSON)); + return ( + path.dirname( + fileURLToPath( + import.meta.resolve(dependencyName)))); } export const stationaryCodeRoutes = [ { - from: path.join(codeSrcPath, 'static'), - to: ['static.root'], + from: path.join(codeSrcPath, 'static', 'css'), + to: ['staticCSS.root'], + statically: 'copy', + }, + + { + from: path.join(codeSrcPath, 'static', 'js'), + to: ['staticJS.root'], + statically: 'copy', + }, + + { + from: path.join(codeSrcPath, 'static', 'misc'), + to: ['staticMisc.root'], + statically: 'copy', }, { from: path.join(codeSrcPath, 'util'), - to: ['util.root'], + to: ['staticSharedUtil.root'], + statically: 'copy', }, ]; -export const dependencyRoutes = []; +function quickNodeDependency({ + name, + path: subpath = '', +}) { + const root = getNodeDependencyRootPath(name); + + return [ + { + from: + (subpath + ? path.join(root, subpath) + : root), + + to: ['staticLib.path', name], + + statically: 'copy', + }, + ]; +} + +export const dependencyRoutes = [ + quickNodeDependency({ + name: 'chroma-js', + }), + + quickNodeDependency({ + name: 'compress-json', + path: '..', // exit dist, access bundle.js + }), + + quickNodeDependency({ + name: 'flexsearch', + }), + + quickNodeDependency({ + name: 'msgpackr', + path: 'dist', + }), +].flat(); export const allStaticWebRoutes = [ ...stationaryCodeRoutes, @@ -40,9 +92,35 @@ export async function identifyDynamicWebRoutes({ }) { const routeFunctions = [ () => Promise.resolve([ - {from: path.resolve(mediaPath), to: ['media.root']}, - {from: path.resolve(mediaCachePath), to: ['thumb.root']}, + { + from: path.resolve(mediaPath), + to: ['media.root'], + statically: 'symlink', + }, + + { + from: path.resolve(mediaCachePath), + to: ['thumb.root'], + statically: 'symlink', + }, ]), + + () => { + if (!wikiCachePath) return []; + + const from = + path.resolve(path.join(wikiCachePath, 'search')); + + return ( + readdir(from).then( + () => [ + { + from, + to: ['searchData.root'], + statically: 'copy', + }], + () => [])); + }, ]; const routeCheckPromises = |