aboutsummaryrefslogtreecommitdiff
path: root/viewer/src/plugins/devServer.js
diff options
context:
space:
mode:
authorpacien2022-09-04 18:18:27 +0200
committerpacien2022-09-04 18:18:27 +0200
commit11bbbae2850b9c45da697a8ed9626495a50a38c0 (patch)
treeff2713118f8b45d36905bfea2933f08d8e70066d /viewer/src/plugins/devServer.js
parente93f7b1eb84c083d67567115284c0002a3a7d5fc (diff)
parent8349be992b46b77dee921f484cfbff8b758ff756 (diff)
downloadldgallery-11bbbae2850b9c45da697a8ed9626495a50a38c0.tar.gz
Merge branch 'develop': release v2.1v2.1
GitHub: related to #315
Diffstat (limited to 'viewer/src/plugins/devServer.js')
-rw-r--r--viewer/src/plugins/devServer.js53
1 files changed, 53 insertions, 0 deletions
diff --git a/viewer/src/plugins/devServer.js b/viewer/src/plugins/devServer.js
new file mode 100644
index 0000000..2cccbbb
--- /dev/null
+++ b/viewer/src/plugins/devServer.js
@@ -0,0 +1,53 @@
1/* ldgallery - A static generator which turns a collection of tagged
2-- pictures into a searchable web gallery.
3--
4-- Copyright (C) 2019-2022 Guillaume FOUET
5--
6-- This program is free software: you can redistribute it and/or modify
7-- it under the terms of the GNU Affero General Public License as
8-- published by the Free Software Foundation, either version 3 of the
9-- License, or (at your option) any later version.
10--
11-- This program is distributed in the hope that it will be useful,
12-- but WITHOUT ANY WARRANTY; without even the implied warranty of
13-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14-- GNU Affero General Public License for more details.
15--
16-- You should have received a copy of the GNU Affero General Public License
17-- along with this program. If not, see <https://www.gnu.org/licenses/>.
18*/
19
20/*
21-- Create a file .env.development.local in the project to customize your DevServer
22-- VUE_APP_DEVSERVER_CONFIG_PATH=<http_url> will use the dev_proxyconfig
23-- VUE_APP_DEVSERVER_CONFIG_PATH=<fs_path> will use the dev_fsconfig
24*/
25
26const devReady = Boolean(process.env.VUE_APP_DEVSERVER_CONFIG_PATH);
27const devIsProxy = devReady && Boolean(process.env.VUE_APP_DEVSERVER_CONFIG_PATH?.match(/^https?:\/\//i));
28const devLocalpath = `^/${process.env.VUE_APP_DATA_URL}`;
29const devProxyconfig = {
30 [devLocalpath]: {
31 target: process.env.VUE_APP_DEVSERVER_CONFIG_PATH,
32 pathRewrite: { [devLocalpath]: '' },
33 },
34};
35
36function devFsConfig(middlewares, devServer) {
37 devServer.app.get(`${devLocalpath}*`, (req, res) => {
38 const fs = require('fs');
39 const url = req.url.slice(process.env.VUE_APP_DATA_URL?.length);
40 const paramIdx = url.indexOf('?');
41 const filepath = paramIdx < 0 ? url : url.substring(0, paramIdx);
42 const fullpath = `${process.env.VUE_APP_DEVSERVER_CONFIG_PATH}${decodeURIComponent(filepath)}`;
43 const file = fs.readFileSync(fullpath);
44 res.end(file);
45 });
46 return middlewares;
47}
48
49module.exports = {
50 port: process.env.VUE_APP_DEVSERVER_PORT,
51 proxy: devReady && devIsProxy ? devProxyconfig : undefined,
52 setupMiddlewares: devReady && !devIsProxy ? devFsConfig : undefined,
53};