From 373e5e09fa2c6f6944cafa56572b1807968d736c Mon Sep 17 00:00:00 2001 From: wangdl Date: Sat, 20 Jun 2026 17:28:58 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20ALLOWED=5FCREDENTIAL=5FMODES=20?= =?UTF-8?q?=E9=9B=86=E4=B8=AD=E5=88=B0=20job-definition.types.ts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 消除 Registry 中的重复运行时数组,改为从 types 文件导入。 类型定义与运行时数组同源,避免异步风险。 Co-Authored-By: Claude --- src/modules/ai-job/job-definition-registry.ts | 8 ++------ src/modules/ai-job/job-definition.types.ts | 7 ++++++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/modules/ai-job/job-definition-registry.ts b/src/modules/ai-job/job-definition-registry.ts index 5760354..38d05b4 100644 --- a/src/modules/ai-job/job-definition-registry.ts +++ b/src/modules/ai-job/job-definition-registry.ts @@ -2,7 +2,7 @@ import { Injectable, Logger, OnModuleInit } from '@nestjs/common'; import { JobDefinition, ALLOWED_QUEUE_NAMES, - AllowedCredentialMode, + ALLOWED_CREDENTIAL_MODES, } from './job-definition.types'; // ── Registry 专用错误 ── @@ -265,11 +265,7 @@ export class JobDefinitionRegistry implements OnModuleInit { throw new MissingBackoffError(def.jobType); } - // credential: allowedModes 非空且值合法 - const ALLOWED_CREDENTIAL_MODES: readonly string[] = [ - 'platform_key', - 'user_deepseek_key', - ]; + // credential: allowedModes 非空且值合法(校验数组引用自 job-definition.types.ts) if ( !def.credential.allowedModes || def.credential.allowedModes.length === 0 diff --git a/src/modules/ai-job/job-definition.types.ts b/src/modules/ai-job/job-definition.types.ts index 40bb8ed..cbb50d1 100644 --- a/src/modules/ai-job/job-definition.types.ts +++ b/src/modules/ai-job/job-definition.types.ts @@ -9,7 +9,12 @@ export const ALLOWED_QUEUE_NAMES = ['ai-interactive', 'ai-background'] as const; export type AllowedQueueName = (typeof ALLOWED_QUEUE_NAMES)[number]; /** 允许的凭据模式 */ -export type AllowedCredentialMode = 'platform_key' | 'user_deepseek_key'; +export const ALLOWED_CREDENTIAL_MODES = [ + 'platform_key', + 'user_deepseek_key', +] as const; + +export type AllowedCredentialMode = (typeof ALLOWED_CREDENTIAL_MODES)[number]; export interface JobDefinition { /** 全局唯一 jobType,与 AiJob.jobType 对应。必须匹配 /^[a-z][a-z0-9_]{1,63}$/ */