From 4f541748da7e773ef0d8081e412bdb2429c545e3 Mon Sep 17 00:00:00 2001 From: abearxiong Date: Wed, 14 Jan 2026 00:14:25 +0800 Subject: [PATCH] fix --- src/command/login.ts | 6 +++--- src/command/ls-token.ts | 4 ++-- src/command/sync/modules/base.ts | 12 +++++++++--- src/module/download/install.ts | 11 +++++++++-- src/module/get-config.ts | 4 ++++ src/module/query.ts | 6 +++--- 6 files changed, 30 insertions(+), 13 deletions(-) diff --git a/src/command/login.ts b/src/command/login.ts index c60142e..7a12c28 100644 --- a/src/command/login.ts +++ b/src/command/login.ts @@ -1,5 +1,5 @@ import { program, Command } from '@/program.ts'; -import { getConfig } from '@/module/get-config.ts'; +import { getConfig, getEnvToken } from '@/module/get-config.ts'; import inquirer from 'inquirer'; import { loginInCommand } from '@/module/login/login-by-web.ts'; import { queryLogin, storage } from '@/module/query.ts'; @@ -75,13 +75,13 @@ const loginCommand = new Command('login') program.addCommand(loginCommand); const showMe = async (show = true) => { - const token = process.env.KEVISUAL_TOKEN; + const token = getEnvToken(); const localToken = storage.getItem('token'); if (!token && !localToken) { console.log('请先登录'); return { code: 40400, message: '请先登录' }; } - let me = await queryLogin.getMe(token); + let me = await queryLogin.getMe(localToken || token); if (me?.code === 401) { me = await queryLogin.getMe(); } diff --git a/src/command/ls-token.ts b/src/command/ls-token.ts index 4fb284e..626f406 100644 --- a/src/command/ls-token.ts +++ b/src/command/ls-token.ts @@ -1,5 +1,5 @@ import { program as app, Command } from '@/program.ts'; -import { getConfig, writeConfig } from '@/module/index.ts'; +import { getConfig, getEnvToken, writeConfig } from '@/module/index.ts'; import { queryLogin, storage } from '@/module/query.ts'; import inquirer from 'inquirer'; import util from 'util'; @@ -23,7 +23,7 @@ const token = new Command('token') .action(async (opts) => { const token = storage.getItem('token'); if (opts.env) { - console.log('token in env', process.env.KEVISUAL_TOKEN); + console.log('token in env', getEnvToken()); } else { console.log('token', token); } diff --git a/src/command/sync/modules/base.ts b/src/command/sync/modules/base.ts index b695627..b33c550 100644 --- a/src/command/sync/modules/base.ts +++ b/src/command/sync/modules/base.ts @@ -103,6 +103,9 @@ export class SyncBase { const syncList = syncKeys.map((key) => { const value = sync[key]; const filepath = path.join(this.#dir, key); // 文件的路径 + if (filepath.includes('node_modules') || filepath.includes('.git')) { + return null; + } if (typeof value === 'string') { const auth = checkAuth(value, baseURL); const type = auth ? 'sync' : 'none'; @@ -123,11 +126,14 @@ export class SyncBase { type: value?.type ?? type, auth: checkAuth(value.url, baseURL), }; - }); + }).filter((item) => item); + let resultSyncList: SyncList[] = [] if (opts?.getFile) { - return this.getSyncListFile(syncList); + resultSyncList = await this.getSyncListFile(syncList); + } else { + resultSyncList = syncList; } - return syncList; + return resultSyncList; } async getCheckList() { const checkDir = this.config?.clone || {}; diff --git a/src/module/download/install.ts b/src/module/download/install.ts index c3568b2..3d133e3 100644 --- a/src/module/download/install.ts +++ b/src/module/download/install.ts @@ -6,6 +6,7 @@ import { Result } from '@kevisual/query'; import { fileIsExist } from '@/uitls/file.ts'; import { glob } from 'fast-glob'; import inquirer from 'inquirer'; +import { getEnvToken } from '../get-config.ts'; type DownloadTask = { downloadPath: string; @@ -38,7 +39,7 @@ type Options = { [key: string]: any; }; export const fetchLink = async (url: string = '', opts?: Options) => { - const token = process.env.KEVISUAL_TOKEN || storage.getItem('token'); + const token = storage.getItem('token') || getEnvToken(); const fetchURL = new URL(url); const check = opts?.check ?? false; const isKevisual = !!url.includes('kevisual'); @@ -272,8 +273,14 @@ export type AiList = { pathname?: string; url?: string; }; +/** + * AI路径的资源下载地址 + * @param url + * @param opts + * @returns + */ export const fetchAiList = async (url: string, opts?: { recursive: boolean }): Promise> => { - const token = process.env.KEVISUAL_TOKEN || storage.getItem('token'); + const token = storage.getItem('token') || getEnvToken(); const _url = new URL(url); const dir = _url.searchParams.get('dir'); if (!dir) { diff --git a/src/module/get-config.ts b/src/module/get-config.ts index c3bd639..0740470 100644 --- a/src/module/get-config.ts +++ b/src/module/get-config.ts @@ -35,3 +35,7 @@ export const writeConfig = (config: Record) => { fs.writeFileSync(configPath, JSON.stringify(config, null, 2)); return config; }; + +export const getEnvToken = () => { + return process.env.KEVISUAL_TOKEN || ''; +} \ No newline at end of file diff --git a/src/module/query.ts b/src/module/query.ts index 248b883..2aa94b8 100644 --- a/src/module/query.ts +++ b/src/module/query.ts @@ -1,5 +1,5 @@ import { Query } from '@kevisual/query/query'; -import { getConfig } from './get-config.ts'; +import { getConfig, getEnvToken } from './get-config.ts'; import { QueryLoginNode, storage } from '@kevisual/query-login/node'; const config = getConfig(); export const baseURL = config?.baseURL || 'https://kevisual.cn'; @@ -14,7 +14,7 @@ export const getHeader = async () => { const headers: Record = { 'Content-Type': 'application/json', }; - let token = process.env.KEVISUAL_TOKEN; + let token = getEnvToken(); if (!token) { token = await storage.getItem('token'); } @@ -26,7 +26,7 @@ export const getHeader = async () => { query.beforeRequest = async (config) => { if (config.headers) { - let token = process.env.KEVISUAL_TOKEN; + let token = getEnvToken(); if (!token) { token = await storage.getItem('token'); }