generated from tailored/router-template
	add check port and change process
This commit is contained in:
		
							
								
								
									
										18
									
								
								assistant-module/src/https/create-sign.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								assistant-module/src/https/create-sign.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| import { createCert } from '@kevisual/router/sign'; | ||||
| import { writeFileSync } from 'fs'; | ||||
| import path from 'path'; | ||||
| const pemDir = path.join(process.cwd(), 'router-app', 'pem'); | ||||
|  | ||||
| const { key, cert } = createCert([ | ||||
|   { | ||||
|     name: 'commonName', | ||||
|     value: 'localhost', | ||||
|   }, | ||||
|   { | ||||
|     name: 'organizationName', | ||||
|     value: 'kevisual', | ||||
|   }, | ||||
| ]); | ||||
|  | ||||
| writeFileSync(path.join(pemDir, 'https-key.pem'), key); | ||||
| writeFileSync(path.join(pemDir, 'https-cert.pem'), cert); | ||||
| @@ -1,32 +1,40 @@ | ||||
| import { ChildProcess, fork } from 'child_process'; | ||||
|  | ||||
| export const runProcess = (appPath: string) => { | ||||
|   const process = fork(appPath); | ||||
|   process.on('exit', (code) => { | ||||
|     console.log(`Process exited with code ${code}`); | ||||
|   }); | ||||
|  | ||||
|   process.on('message', (message) => { | ||||
|     console.log('Message from child:', message); | ||||
|   }); | ||||
|  | ||||
|   // Example of sending a message to the child process | ||||
|   // process.send({ hello: 'world' }); | ||||
| }; | ||||
| import { ChildProcess, fork, ForkOptions } from 'child_process'; | ||||
| class BaseProcess { | ||||
|   private process: ChildProcess; | ||||
|   status: 'running' | 'stopped' | 'error' = 'stopped'; | ||||
|   appPath: string; | ||||
|   constructor(appPath: string) { | ||||
|   args: any[] = []; | ||||
|   opts: ForkOptions = {}; | ||||
|   /* | ||||
|    * 重启次数, 默认0, TODO, 错误检测,当重启次数超过一定次数,则认为进程已崩溃 | ||||
|    */ | ||||
|   restartCount: number = 0; | ||||
|   constructor(appPath?: string, args?: any[], opts?: ForkOptions) { | ||||
|     this.appPath = appPath; | ||||
|     this.args = args || []; | ||||
|     this.opts = opts || {}; | ||||
|     // this.createProcess(appPath); | ||||
|   } | ||||
|   createProcess(appPath: string = this.appPath) { | ||||
|   createProcess(appPath: string = this.appPath, args: any[] = [], opts: ForkOptions = {}) { | ||||
|     if (this.process) { | ||||
|       this.process.kill(); | ||||
|     } | ||||
|     this.appPath = appPath; | ||||
|     this.process = fork(appPath); | ||||
|     this.appPath = appPath || this.appPath; | ||||
|     this.args = args || this.args; | ||||
|     this.opts = { | ||||
|       ...this.opts, | ||||
|       ...opts, | ||||
|     }; | ||||
|  | ||||
|     this.process = fork(appPath, args, { | ||||
|       stdio: 'inherit', | ||||
|       ...this.opts, | ||||
|       env: { | ||||
|         ...process.env, | ||||
|         NODE_ENV_PARENT: 'fork', | ||||
|         ...this.opts?.env, | ||||
|       }, | ||||
|     }); | ||||
|     return this; | ||||
|   } | ||||
|   kill(signal?: NodeJS.Signals | number) { | ||||
| @@ -62,6 +70,10 @@ class BaseProcess { | ||||
|   public onDisconnect(callback: () => void) { | ||||
|     this.process.on('disconnect', callback); | ||||
|   } | ||||
|   restart() { | ||||
|     this.kill(); | ||||
|     this.createProcess(); | ||||
|   } | ||||
| } | ||||
| export class AssistantProcess extends BaseProcess { | ||||
|   constructor(appPath: string) { | ||||
|   | ||||
| @@ -14,11 +14,11 @@ export const defaultApiProxy = [ | ||||
| ]; | ||||
| /** | ||||
|  * 创建api代理 | ||||
|  * @param api  | ||||
|  * @param api | ||||
|  * @param paths ['/api/router', '/v1' ] | ||||
|  * @returns  | ||||
|  * @returns | ||||
|  */ | ||||
| export const createApiProxy = (api: string, paths: string[] = ['/api/router', '/v1']) => { | ||||
| export const createApiProxy = (api: string, paths: string[] = ['/api/router', '/v1', '/resources']) => { | ||||
|   const pathList = paths.map((item) => { | ||||
|     return { | ||||
|       path: item, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user