token cache
This commit is contained in:
@@ -1,12 +1,44 @@
|
||||
import { program as app, Command } from '@/program.ts';
|
||||
import { getConfig, query, writeConfig } from '@/module/index.ts';
|
||||
import inquirer from 'inquirer';
|
||||
import util from 'util';
|
||||
|
||||
import { saveToken, switchToken, deleteToken, getTokenList } from './login.ts';
|
||||
const token = new Command('token').description('show token').action(async () => {
|
||||
const config = getConfig();
|
||||
console.log('token', config.token);
|
||||
});
|
||||
const tokenList = new Command('list')
|
||||
.description('show token list')
|
||||
.option('-r --remove <number>', 'remove token by number')
|
||||
.action(async (opts) => {
|
||||
const res = await getTokenList();
|
||||
if (res.code !== 200) {
|
||||
console.error('get token list failed', res.message || '');
|
||||
return;
|
||||
}
|
||||
console.log(util.inspect(res.data.value, { colors: true, depth: 4 }));
|
||||
|
||||
const list = res.data.value || [];
|
||||
if (opts.remove) {
|
||||
const index = Number(opts.remove) - 1;
|
||||
if (index < 0 || index >= list.length) {
|
||||
console.log('index out of range');
|
||||
return;
|
||||
}
|
||||
const removeBase = list.splice(index, 1);
|
||||
const baseURL = removeBase[0];
|
||||
if (baseURL.baseURL) {
|
||||
const res = await deleteToken(baseURL?.baseURL);
|
||||
if (res.code !== 200) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
console.log('delete token success', 'delete', baseURL);
|
||||
return;
|
||||
}
|
||||
});
|
||||
token.addCommand(tokenList);
|
||||
app.addCommand(token);
|
||||
|
||||
const baseURL = new Command('baseURL')
|
||||
@@ -20,7 +52,7 @@ const baseURL = new Command('baseURL')
|
||||
.option('-c, --clear', 'clear baseURL')
|
||||
.action(async (opts) => {
|
||||
const config = getConfig();
|
||||
let list = config.baseURLList || [];
|
||||
let list = (config.baseURLList as Array<string>) || [];
|
||||
const quineList = (list: string[]) => {
|
||||
const newList = new Set(list);
|
||||
return Array.from(newList);
|
||||
@@ -49,20 +81,23 @@ const baseURL = new Command('baseURL')
|
||||
console.log('index out of range');
|
||||
return;
|
||||
}
|
||||
list.splice(index, 1);
|
||||
const removeBase = list.splice(index, 1);
|
||||
list = quineList(list);
|
||||
showList(list);
|
||||
writeConfig({ ...config, baseURLList: list });
|
||||
removeBase[0] && deleteToken(removeBase[0]);
|
||||
return;
|
||||
}
|
||||
if (opts.set) {
|
||||
const isNumber = !isNaN(Number(opts.set));
|
||||
let baseURL = '';
|
||||
if (isNumber) {
|
||||
const index = Number(opts.set) - 1;
|
||||
if (index < 0 || index >= list.length) {
|
||||
console.log('index out of range');
|
||||
return;
|
||||
}
|
||||
baseURL = list[index];
|
||||
writeConfig({ ...config, baseURL: list[index] });
|
||||
console.log('set baseURL success:', list[index]);
|
||||
} else {
|
||||
@@ -72,9 +107,11 @@ const baseURL = new Command('baseURL')
|
||||
console.log('invalid baseURL:', opts.set);
|
||||
return;
|
||||
}
|
||||
baseURL = opts.set;
|
||||
writeConfig({ ...config, baseURL: opts.set });
|
||||
console.log('set baseURL success:', opts.set);
|
||||
}
|
||||
baseURL && switchToken(baseURL);
|
||||
return;
|
||||
}
|
||||
if (opts.list) {
|
||||
@@ -100,6 +137,7 @@ const setBaseURL = new Command('set').description('set baseURL').action(async ()
|
||||
]);
|
||||
const baseURL = answers.baseURL;
|
||||
writeConfig({ ...config, baseURL });
|
||||
baseURL && switchToken(baseURL);
|
||||
});
|
||||
|
||||
baseURL.addCommand(setBaseURL);
|
||||
|
||||
Reference in New Issue
Block a user