From 130f6f0d2f0233d20c4f6bc32f91e2e446d02e72 Mon Sep 17 00:00:00 2001 From: Innei Date: Fri, 25 Feb 2022 12:14:51 +0800 Subject: [PATCH] fix: pageproxy inject env in local proxy --- src/modules/configs/configs.service.ts | 11 ++++------- src/modules/pageproxy/pageproxy.controller.ts | 6 +++++- src/modules/pageproxy/pageproxy.service.ts | 10 ++++++++++ 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/modules/configs/configs.service.ts b/src/modules/configs/configs.service.ts index ac8a45b7..91b4ebdd 100644 --- a/src/modules/configs/configs.service.ts +++ b/src/modules/configs/configs.service.ts @@ -14,7 +14,6 @@ import cluster from 'cluster' import { cloneDeep, mergeWith } from 'lodash' import { LeanDocument } from 'mongoose' import { InjectModel } from 'nestjs-typegoose' -import { API_VERSION } from '~/app.config' import { RedisKeys } from '~/constants/cache.constant' import { EventBusEvents } from '~/constants/event.constant' import { CacheService } from '~/processors/cache/cache.service' @@ -51,12 +50,10 @@ const generateDefaultConfig: () => IConfig = () => ({ description: '哈喽~欢迎光临', }, url: { - wsUrl: 'http://127.0.0.1:2333', //todo - adminUrl: 'http://127.0.0.1:9528', - serverUrl: isDev - ? 'http://127.0.0.1:2333' - : 'http://127.0.0.1:2333/api/v' + API_VERSION, - webUrl: 'http://127.0.0.1:2323', + wsUrl: '', //todo + adminUrl: '', + serverUrl: '', + webUrl: '', }, mailOptions: {} as MailOptionsDto, commentOptions: { antiSpam: false }, diff --git a/src/modules/pageproxy/pageproxy.controller.ts b/src/modules/pageproxy/pageproxy.controller.ts index 3eb87f27..c116b5e0 100644 --- a/src/modules/pageproxy/pageproxy.controller.ts +++ b/src/modules/pageproxy/pageproxy.controller.ts @@ -166,9 +166,13 @@ export class PageProxyController { try { const entry = await fs.readFile(entryPath, 'utf8') + const injectEnv = await this.service.injectAdminEnv(entry, { + ...(await this.service.getUrlFromConfig()), + from: 'server', + }) reply .type('text/html') - .send(this.service.rewriteAdminEntryAssetPath(entry)) + .send(this.service.rewriteAdminEntryAssetPath(injectEnv)) } catch (e) { reply.code(500).send({ message: e.message, diff --git a/src/modules/pageproxy/pageproxy.service.ts b/src/modules/pageproxy/pageproxy.service.ts index d5b69564..bccf20bf 100644 --- a/src/modules/pageproxy/pageproxy.service.ts +++ b/src/modules/pageproxy/pageproxy.service.ts @@ -135,6 +135,16 @@ export class PageProxyService { '.json': 'application/json', }[ext] } + + async getUrlFromConfig() { + const config = await this.configs.waitForConfigReady() + const url = config.url + + return { + BASE_API: url.serverUrl || (isDev ? '/' : '/api/v2'), + GATEWAY: url.wsUrl || '/socket.io', + } + } } export interface IInjectableData {