From 42b2fa013a63c3781dd5e67fc41d9e95a26c0bd0 Mon Sep 17 00:00:00 2001 From: "Evgeny @ SimpleX Chat" <259188159+evgeny-simplex@users.noreply.github.com> Date: Tue, 10 Feb 2026 21:18:00 +0000 Subject: [PATCH] local preview over https --- xftp-web/vite.config.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/xftp-web/vite.config.ts b/xftp-web/vite.config.ts index 665b1f525..e2d37418d 100644 --- a/xftp-web/vite.config.ts +++ b/xftp-web/vite.config.ts @@ -6,6 +6,7 @@ import {tmpdir} from 'os' import presets from './web/servers.json' const PORT_FILE = join(tmpdir(), 'xftp-test-server.port') +const FIXTURES = resolve(import.meta.dirname, '../tests/fixtures') const __dirname = import.meta.dirname @@ -34,7 +35,7 @@ function cspPlugin(servers: string[], isDev: boolean): Plugin { // Compute fingerprint from ca.crt (SHA-256 of DER) function getFingerprint(): string { - const pem = readFileSync('../tests/fixtures/ca.crt', 'utf-8') + const pem = readFileSync(join(FIXTURES, 'ca.crt'), 'utf-8') const der = Buffer.from(pem.replace(/-----[^-]+-----/g, '').replace(/\s/g, ''), 'base64') return createHash('sha256').update(der).digest('base64') .replace(/\+/g, '-').replace(/\//g, '_') @@ -77,10 +78,16 @@ export default defineConfig(({mode}) => { plugins.push(cspPlugin(servers, mode === 'development')) + const httpsConfig = mode === 'development' ? { + key: readFileSync(join(FIXTURES, 'server.key')), + cert: readFileSync(join(FIXTURES, 'server.crt')), + } : undefined + return { root: 'web', build: {outDir: resolve(__dirname, 'dist-web'), target: 'esnext'}, - preview: {host: true}, + server: httpsConfig ? {https: httpsConfig} : {}, + preview: {host: true, https: httpsConfig}, define, worker: {format: 'es' as const}, plugins,