From bda13226d71ab65bbdbfab6553a10eb3da41f97c Mon Sep 17 00:00:00 2001 From: Innei Date: Sat, 29 Apr 2023 21:50:22 +0800 Subject: [PATCH] fix: remove require cache after install deps Signed-off-by: Innei --- src/modules/dependency/dependency.controller.ts | 6 ++++-- src/modules/dependency/dependency.module.ts | 2 ++ src/modules/serverless/serverless.service.ts | 9 ++++----- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/modules/dependency/dependency.controller.ts b/src/modules/dependency/dependency.controller.ts index 0a77716b..2a0319f9 100644 --- a/src/modules/dependency/dependency.controller.ts +++ b/src/modules/dependency/dependency.controller.ts @@ -10,11 +10,13 @@ import { ApiName } from '~/common/decorators/openapi.decorator' import { DATA_DIR } from '~/constants/path.constant' import { installPKG } from '~/utils' +import { ServerlessService } from '../serverless/serverless.service' + @ApiController('dependencies') @Auth() @ApiName export class DependencyController { - constructor() {} + constructor(private readonly servierlessService: ServerlessService) {} @Get('/graph') @HTTPDecorators.Bypass @@ -45,7 +47,7 @@ export class DependencyController { if (exitCode != 0) { subscriber.next(chalk.red(`Error: Exit code: ${exitCode}\n`)) } - + this.servierlessService.cleanRequireCache() subscriber.next(chalk.green('任务完成,可关闭此窗口。')) subscriber.complete() }) diff --git a/src/modules/dependency/dependency.module.ts b/src/modules/dependency/dependency.module.ts index 588825c2..61207624 100644 --- a/src/modules/dependency/dependency.module.ts +++ b/src/modules/dependency/dependency.module.ts @@ -1,9 +1,11 @@ import { Module } from '@nestjs/common' +import { ServerlessModule } from '../serverless/serverless.module' import { DependencyController } from './dependency.controller' @Module({ controllers: [DependencyController], providers: [], + imports: [ServerlessModule], }) export class DependencyModule {} diff --git a/src/modules/serverless/serverless.service.ts b/src/modules/serverless/serverless.service.ts index d2b3e990..603b6ff3 100644 --- a/src/modules/serverless/serverless.service.ts +++ b/src/modules/serverless/serverless.service.ts @@ -355,7 +355,7 @@ export class ServerlessService implements OnModuleInit { } @Interval(5 * 60 * 1000) - private cleanup() { + public cleanRequireCache() { const { requireModuleIdSet, scopeContextLRU, scopeModuleLRU } = this.cleanableScope Array.from(requireModuleIdSet.values()).forEach((id) => { @@ -455,9 +455,7 @@ export class ServerlessService implements OnModuleInit { // 2. if application third part lib - const allowedThirdPartLibs: UniqueArray< - (keyof typeof PKG.dependencies)[] - > = [ + const allowedThirdPartLibs: string[] = [ '@babel/core', '@babel/types', '@babel/plugin-transform-typescript', @@ -482,7 +480,8 @@ export class ServerlessService implements OnModuleInit { 'snakecase-keys', 'ua-parser-js', 'xss', - ] + ] as UniqueArray<(keyof typeof PKG.dependencies)[]> + // .concat([''] as any[]) const trustPackagePrefixes = ['@innei/', '@mx-space/', 'mx-function-']