temp
This commit is contained in:
		
							
								
								
									
										33
									
								
								src/module/config.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								src/module/config.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
import { useConfig } from '@kevisual/use-config';
 | 
			
		||||
import { useFileStore } from '@kevisual/use-config/file-store';
 | 
			
		||||
export const fileStore = useFileStore('proxy-upload');
 | 
			
		||||
 | 
			
		||||
type ConfigType = {
 | 
			
		||||
  api: {
 | 
			
		||||
    /**
 | 
			
		||||
     * API host address
 | 
			
		||||
     */
 | 
			
		||||
    host: string;
 | 
			
		||||
    path?: string;
 | 
			
		||||
    port?: number;
 | 
			
		||||
  };
 | 
			
		||||
  proxy: {
 | 
			
		||||
    port?: number;
 | 
			
		||||
    /**
 | 
			
		||||
     * self domain kevisual.xiongxiao.me
 | 
			
		||||
     */
 | 
			
		||||
    domain: string;
 | 
			
		||||
    /**
 | 
			
		||||
     * resources path
 | 
			
		||||
     * https://minio.xiongxiao.me/resources
 | 
			
		||||
     */
 | 
			
		||||
    resources: string;
 | 
			
		||||
    /**
 | 
			
		||||
     * allow origin xiongxiao.me zxj.im silkyai.cn
 | 
			
		||||
     * 允许跨域访问的地址
 | 
			
		||||
     */
 | 
			
		||||
    allowOrigin: string[];
 | 
			
		||||
  };
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export const config = useConfig<ConfigType>();
 | 
			
		||||
@@ -1,7 +1,6 @@
 | 
			
		||||
import path from 'path';
 | 
			
		||||
import { redis, subscriber } from './redis/redis.ts';
 | 
			
		||||
import { useFileStore } from '@kevisual/use-config/file-store';
 | 
			
		||||
import { useConfig } from '@kevisual/use-config';
 | 
			
		||||
import { config, fileStore } from '../module/config.ts';
 | 
			
		||||
import fs from 'fs';
 | 
			
		||||
import crypto from 'crypto';
 | 
			
		||||
import { nanoid } from 'nanoid';
 | 
			
		||||
@@ -10,8 +9,7 @@ import { promisify } from 'util';
 | 
			
		||||
import { fetchApp, fetchDomain, fetchTest } from './query/get-router.ts';
 | 
			
		||||
const pipelineAsync = promisify(pipeline);
 | 
			
		||||
 | 
			
		||||
const { resources, api } = useConfig<{ resources: string; api: { host: string; path: string } }>();
 | 
			
		||||
const fileStore = useFileStore('upload');
 | 
			
		||||
const { resources } = config?.proxy || { resources: 'https://minio.xiongxiao.me/resources' };
 | 
			
		||||
const status: { [key: string]: boolean } = {};
 | 
			
		||||
const demoData = {
 | 
			
		||||
  user: 'root',
 | 
			
		||||
@@ -255,10 +253,7 @@ export const downloadUserAppFiles = async (user: string, app: string, data: type
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
  if (data.type === 'oss') {
 | 
			
		||||
    let serverPath = 'https://' + resources + '/';
 | 
			
		||||
    if(resources.includes('localhost')) {
 | 
			
		||||
      serverPath = 'http://' + resources + '/';
 | 
			
		||||
    }
 | 
			
		||||
    let serverPath = new URL(resources).href + '/';
 | 
			
		||||
    // server download file
 | 
			
		||||
    for (let i = 0; i < files.length; i++) {
 | 
			
		||||
      const file = files[i];
 | 
			
		||||
 
 | 
			
		||||
@@ -1,22 +1,17 @@
 | 
			
		||||
import { getDNS, isLocalhost } from '@/utils/dns.ts';
 | 
			
		||||
import http from 'http';
 | 
			
		||||
import { UserApp } from './get-user-app.ts';
 | 
			
		||||
import { useFileStore } from '@kevisual/use-config/file-store';
 | 
			
		||||
import { config, fileStore } from '../module/config.ts';
 | 
			
		||||
import path from 'path';
 | 
			
		||||
import fs from 'fs';
 | 
			
		||||
import { useConfig } from '@kevisual/use-config';
 | 
			
		||||
import { getContentType } from './get-content-type.ts';
 | 
			
		||||
import { sleep } from '@/utils/sleep.ts';
 | 
			
		||||
const { api, domain, allowedOrigins } = useConfig<{
 | 
			
		||||
  api: {
 | 
			
		||||
    host: string;
 | 
			
		||||
    port?: number;
 | 
			
		||||
  };
 | 
			
		||||
  domain: string;
 | 
			
		||||
  allowedOrigins: string[];
 | 
			
		||||
}>();
 | 
			
		||||
 | 
			
		||||
const fileStore = useFileStore('upload');
 | 
			
		||||
const api = config?.api || { host: 'kevisual.xiongxiao.me', path: '/api/router' };
 | 
			
		||||
const domain = config?.proxy?.domain || 'kevisual.xiongxiao.me';
 | 
			
		||||
const allowedOrigins = config?.proxy?.allowOrigin || [];
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const noProxyUrl = ['/', '/favicon.ico'];
 | 
			
		||||
export const handleRequest = async (req: http.IncomingMessage, res: http.ServerResponse) => {
 | 
			
		||||
  if (req.url === '/favicon.ico') {
 | 
			
		||||
@@ -34,7 +29,7 @@ export const handleRequest = async (req: http.IncomingMessage, res: http.ServerR
 | 
			
		||||
    let header: any = {};
 | 
			
		||||
    if (req.headers?.['Authorization']) {
 | 
			
		||||
      header.authorization = req.headers['Authorization'];
 | 
			
		||||
    } else if(req.headers?.['authorization']) {
 | 
			
		||||
    } else if (req.headers?.['authorization']) {
 | 
			
		||||
      header.authorization = req.headers['authorization'];
 | 
			
		||||
    }
 | 
			
		||||
    if (req.headers?.['Content-Type']) {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,6 @@
 | 
			
		||||
import { useConfig } from '@kevisual/use-config';
 | 
			
		||||
 | 
			
		||||
const { resources, api } = useConfig<{
 | 
			
		||||
  resources: string;
 | 
			
		||||
  api: { host: string; path: string };
 | 
			
		||||
  ƒ;
 | 
			
		||||
}>();
 | 
			
		||||
import { config } from '../config.ts';
 | 
			
		||||
 | 
			
		||||
const api = config?.api || { host: 'kevisual.xiongxiao.me', path: '/api/router' };
 | 
			
		||||
const apiPath = api.path || '/api/router';
 | 
			
		||||
export const fetchTest = async (id: string) => {
 | 
			
		||||
  const fetchUrl = 'http://' + api.host + apiPath;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user