From 5a691bc3503e423f3ed0a9f0c645ca0ccf34533f Mon Sep 17 00:00:00 2001 From: xion Date: Fri, 21 Feb 2025 00:47:36 +0800 Subject: [PATCH] add base url list --- src/command/deploy.ts | 39 ++++++++++++----------- src/command/ls-token.ts | 68 ++++++++++++++++++++++++++++++++++++++--- src/command/publish.ts | 2 +- 3 files changed, 86 insertions(+), 23 deletions(-) diff --git a/src/command/deploy.ts b/src/command/deploy.ts index 1b748d4..25cb6be 100644 --- a/src/command/deploy.ts +++ b/src/command/deploy.ts @@ -43,30 +43,33 @@ const command = new Command('deploy') // 获取directory,如果是文件夹,获取文件夹下所有文件,如果是文件,获取文件 const stat = fs.statSync(directory); let _relativeFiles = []; + let isDirectory = false; if (stat.isDirectory()) { + isDirectory = true; const gPath = path.join(directory, '**/*'); const files = await glob(gPath, { cwd: pwd, ignore: ['node_modules/**/*'], onlyFiles: true }); _relativeFiles = files.map((file) => path.relative(directory, file)); - console.log('upload Files', _relativeFiles); - console.log('upload Files Key', key, version); - if (!yes) { - // 确认是否上传 - const confirm = await inquirer.prompt([ - { - type: 'confirm', - name: 'confirm', - message: 'Do you want to upload these files?', - }, - ]); - if (!confirm.confirm) { - return; - } - } } else if (stat.isFile()) { - _relativeFiles = [path.relative(pwd, directory)]; + const filename = path.basename(directory); + _relativeFiles = [filename]; } - - const res = await uploadFiles(_relativeFiles, directory, { key, version }); + console.log('upload Files', _relativeFiles); + console.log('upload Files Key', key, version); + if (!yes) { + // 确认是否上传 + const confirm = await inquirer.prompt([ + { + type: 'confirm', + name: 'confirm', + message: 'Do you want to upload these files?', + }, + ]); + if (!confirm.confirm) { + return; + } + } + const uploadDirectory = isDirectory ? directory : path.dirname(directory); + const res = await uploadFiles(_relativeFiles, uploadDirectory, { key, version }); if (res?.code === 200) { console.log('File uploaded successfully!'); res.data?.data?.files?.map?.((d) => { diff --git a/src/command/ls-token.ts b/src/command/ls-token.ts index f857793..061e055 100644 --- a/src/command/ls-token.ts +++ b/src/command/ls-token.ts @@ -9,10 +9,70 @@ const token = new Command('token').description('show token').action(async () => app.addCommand(token); -const baseURL = new Command('baseURL').description('show baseURL').action(async () => { - const config = getConfig(); - console.log('baseURL', config.baseURL); -}); +const baseURL = new Command('baseURL') + .alias('base') + .description('show baseURL') + .option('-a, --add ', 'add baseURL') + .option('-r, --remove ', 'remove baseURL number') + .option('-s, --set ', 'set current baseURL') + .option('-l, --list', 'list baseURL') + .option('-c, --clear', 'clear baseURL') + .action(async (opts) => { + const config = getConfig(); + let list = config.baseURLList || []; + const quineList = (list: string[]) => { + const newList = new Set(list); + return Array.from(newList); + }; + const showList = (list: string[]) => { + if (list.length === 0) { + console.log('expand baseURLList is empty'); + return; + } + console.log('----current baseURL:' + config.baseURL+'----\n'); + list.forEach((item, index) => { + console.log(`${index + 1}: ${item}`); + }); + }; + if (opts.add) { + list.push(opts.add); + list = quineList(list); + console.log('add baseURL success\n'); + writeConfig({ ...config, baseURLList: list }); + showList(list); + return; + } + if (opts.remove) { + const index = Number(opts.remove) - 1; + if (index < 0 || index >= list.length) { + console.log('index out of range'); + return; + } + list.splice(index, 1); + list = quineList(list); + showList(list); + writeConfig({ ...config, baseURLList: list }); + return; + } + if (opts.set) { + const index = Number(opts.set) - 1; + if (index < 0 || index >= list.length) { + console.log('index out of range'); + } + writeConfig({ ...config, baseURL: list[index] }); + console.log('set baseURL success:', list[index]); + return; + } + if (opts.list) { + showList(list); + return; + } + if (opts.clear) { + writeConfig({ ...config, baseURLList: [] }); + return; + } + console.log('current baseURL:', config.baseURL); + }); app.addCommand(baseURL); const setBaseURL = new Command('setBaseURL').description('set baseURL').action(async () => { diff --git a/src/command/publish.ts b/src/command/publish.ts index a5c2780..2753a59 100644 --- a/src/command/publish.ts +++ b/src/command/publish.ts @@ -36,7 +36,7 @@ async function collectFileInfo(filePath: string, baseDir = '.'): Promise // 解析 .npmignore 文件 async function loadNpmIgnore(cwd: string): Promise { const npmIgnorePath = path.join(cwd, '.npmignore'); - const ig = ignore.default(); + const ig = ignore(); try { const content = fs.readFileSync(npmIgnorePath, 'utf-8');