refactor(share): 更新获取服务器地址相关策略

pull/13/head
moonrailgun 4 years ago
parent 5698ab88a1
commit b0a7465238

@ -5,6 +5,7 @@ import _isNil from 'lodash/isNil';
import _isFunction from 'lodash/isFunction';
import { config } from '../config';
import { getErrorHook, tokenGetter } from '../manager/request';
import { getServerUrl } from '../manager/server';
export type CommonRequestResult<T> =
| ({
@ -22,7 +23,7 @@ class RequestError extends Error {}
*/
export function createRequest() {
const ins = axios.create({
baseURL: config.serverUrl,
baseURL: getServerUrl(),
});
ins.interceptors.request.use(async (val) => {

@ -1,11 +1,12 @@
import { io, Socket } from 'socket.io-client';
import { config } from '../config';
import _isNil from 'lodash/isNil';
import { getServerUrl } from '../manager/server';
let socket: Socket;
class SocketEventError extends Error {
name: 'SocketEventError';
name = 'SocketEventError';
}
type SocketEventRespones<T = unknown> =
@ -55,7 +56,7 @@ export function createSocket(token: string): Promise<AppSocket> {
}
return new Promise((resolve, reject) => {
socket = io(config.serverUrl, {
socket = io(getServerUrl(), {
transports: ['websocket'],
auth: {
token,

@ -3,7 +3,6 @@
*/
export const config = {
serverUrl: 'http://127.0.0.1:11000',
color: [
'#333333',
'#2c3e50',

@ -26,6 +26,7 @@ export { useMountedState } from './hooks/useMountedState';
// manager
export { getStorage, setStorage, useStorage } from './manager/storage';
export { setTokenGetter } from './manager/request';
export { setServerUrl } from './manager/server';
// model
export { loginWithEmail, registerWithEmail } from './model/user';

@ -0,0 +1,9 @@
import { buildRegFn } from './buildRegFn';
/**
*
*/
export const [getServerUrl, setServerUrl] = buildRegFn<() => string>(
'serverUrl',
() => 'http://127.0.0.1:11000'
);

@ -1,4 +1,9 @@
import { buildStorage, setStorage, setTokenGetter } from 'pawchat-shared';
import {
buildStorage,
setServerUrl,
setStorage,
setTokenGetter,
} from 'pawchat-shared';
import { getUserJWT } from './utils/jwt-helper';
const webStorage = buildStorage(window.localStorage);
@ -7,3 +12,9 @@ setStorage(() => webStorage);
setTokenGetter(async () => {
return await getUserJWT();
});
if (window.localStorage.getItem('serverUrl')) {
setServerUrl(() => window.localStorage.getItem('serverUrl'));
} else if (process.env.SERVER_URL) {
setServerUrl(() => process.env.SERVER_URL);
}

@ -3,6 +3,7 @@
*/
import type { Configuration, WebpackPluginInstance } from 'webpack';
import { DefinePlugin } from 'webpack';
import type WebpackDevServer from 'webpack-dev-server';
import path from 'path';
import HtmlWebpackPlugin from 'html-webpack-plugin';
@ -93,6 +94,12 @@ const config: Configuration = {
extensions: ['.tsx', '.ts', '.js', '.css'],
},
plugins: [
new DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify(process.env.NODE_ENV),
SERVER_URL: JSON.stringify(process.env.SERVER_URL),
},
}),
new HtmlWebpackPlugin({
title: 'PawChat',
inject: true,

Loading…
Cancel
Save