mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-21 23:19:09 +00:00
refactor: allow route prefix
This commit is contained in:
committed by
Carlos Valente
parent
1f998fda74
commit
6e51e5083b
@@ -2,6 +2,7 @@
|
|||||||
<html lang='en'>
|
<html lang='en'>
|
||||||
<head>
|
<head>
|
||||||
<meta charset='utf-8' />
|
<meta charset='utf-8' />
|
||||||
|
<base href="/">
|
||||||
<link rel='icon' href='/favicon.ico' />
|
<link rel='icon' href='/favicon.ico' />
|
||||||
<meta name='viewport' content='width=device-width, initial-scale=1' />
|
<meta name='viewport' content='width=device-width, initial-scale=1' />
|
||||||
<meta name='theme-color' content='#101010' />
|
<meta name='theme-color' content='#101010' />
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import serverTiming from 'server-timing';
|
|||||||
// import utils
|
// import utils
|
||||||
import { resolve } from 'path';
|
import { resolve } from 'path';
|
||||||
import { publicDir, srcDir } from './setup/index.js';
|
import { publicDir, srcDir } from './setup/index.js';
|
||||||
import { environment, isProduction } from './externals.js';
|
import { environment, isProduction, updateRouterPrefix } from './externals.js';
|
||||||
import { ONTIME_VERSION } from './ONTIME_VERSION.js';
|
import { ONTIME_VERSION } from './ONTIME_VERSION.js';
|
||||||
import { consoleSuccess, consoleHighlight, consoleError } from './utils/console.js';
|
import { consoleSuccess, consoleHighlight, consoleError } from './utils/console.js';
|
||||||
|
|
||||||
@@ -53,9 +53,12 @@ if (!canLog) {
|
|||||||
console.log(`Ontime public directory at ${publicDir.root} `);
|
console.log(`Ontime public directory at ${publicDir.root} `);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// calls an update to the client router prefix
|
||||||
|
updateRouterPrefix();
|
||||||
|
|
||||||
// Create express APP
|
// Create express APP
|
||||||
const app = express();
|
const app = express();
|
||||||
if (process.env.NODE_ENV === 'development') {
|
if (!isProduction) {
|
||||||
// log server timings to requests
|
// log server timings to requests
|
||||||
app.use(serverTiming());
|
app.use(serverTiming());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
* This file contains a list of constants that may need to be resolved at runtime
|
* This file contains a list of constants that may need to be resolved at runtime
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import { readFileSync, writeFileSync } from 'node:fs';
|
||||||
|
import { resolve } from 'node:path';
|
||||||
|
|
||||||
// =================================================
|
// =================================================
|
||||||
// resolve running environment
|
// resolve running environment
|
||||||
const env = process.env.NODE_ENV || 'production';
|
const env = process.env.NODE_ENV || 'production';
|
||||||
@@ -10,3 +13,25 @@ export const isTest = Boolean(process.env.IS_TEST);
|
|||||||
export const environment = isTest ? 'test' : env;
|
export const environment = isTest ? 'test' : env;
|
||||||
export const isDocker = env === 'docker';
|
export const isDocker = env === 'docker';
|
||||||
export const isProduction = isDocker || (env === 'production' && !isTest);
|
export const isProduction = isDocker || (env === 'production' && !isTest);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates the router prefix in the index.html file
|
||||||
|
* This is only needed in the cloud environment where the client is not at the root segment
|
||||||
|
* ie: https://cloud.getontime.com/client-hash/timer
|
||||||
|
*/
|
||||||
|
export function updateRouterPrefix(prefix: string | undefined = process.env.ROUTER_PREFIX) {
|
||||||
|
if (!prefix) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const indexFile = resolve('.', 'client', 'index.html');
|
||||||
|
try {
|
||||||
|
const data = readFileSync(indexFile, { encoding: 'utf-8', flag: 'r' }).replace(
|
||||||
|
/<base href="[^"]*">/g,
|
||||||
|
`<base href="${prefix}>"`,
|
||||||
|
);
|
||||||
|
writeFileSync(indexFile, data, { encoding: 'utf-8', flag: 'w' });
|
||||||
|
} catch (_error) {
|
||||||
|
/** unhandled */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user