t-comm
Version:
专业、稳定、纯粹的工具库
82 lines (81 loc) • 2.54 kB
TypeScript
/** 工蜂用户信息 */
export interface TGitUser {
id: number;
username: string;
name?: string;
[k: string]: unknown;
}
/**
* 根据用户 ID 获取工蜂用户信息
*
* 对应工蜂 API:GET /api/v3/users/:id
*
* 应用场景:Webhook payload 中 `author.username` 可能不是标准 RTX,
* 此时可以通过 `author_id` 反查拿到准确的 username。
*
* @param {object} options 输入配置
* @param {number | string} options.userId 用户 ID
* @param {string} options.privateToken 密钥
* @param {string} [options.baseUrl] baseUrl
* @returns {Promise<TGitUser | null>} 用户信息,失败或缺字段返回 null
* @example
*
* getUserById({
* userId: 12345,
* privateToken: 'xxxxx',
* }).then((user) => {
* console.log(user?.username);
* })
*/
export declare function getUserById({ userId, privateToken, baseUrl, }: {
userId: number | string;
privateToken: string;
baseUrl?: string;
}): Promise<TGitUser | null>;
/**
* 根据用户名(英文名 / RTX)获取工蜂用户信息
*
* 对应工蜂 API:GET /api/v3/users?search=:username
* 搜索接口可能返回多条结果,本函数会精确匹配 `username`,不命中返回 null。
*
* @param {object} options 输入配置
* @param {string} options.username 用户名
* @param {string} options.privateToken 密钥
* @param {string} [options.baseUrl] baseUrl
* @returns {Promise<number | null>} 用户 ID
* @example
*
* getUserIdByUsername({
* username: 'novlan1',
* privateToken: 'xxxxx',
* }).then((userId) => {
* console.log(userId); // 未命中返回 null
* })
*/
export declare function getUserIdByUsername({ username, privateToken, baseUrl, }: {
username: string;
privateToken: string;
baseUrl?: string;
}): Promise<number | null>;
/**
* 批量将用户名列表转换为用户 ID 列表(跳过找不到的)
*
* @param {object} options 输入配置
* @param {string[]} options.usernames 用户名数组
* @param {string} options.privateToken 密钥
* @param {string} [options.baseUrl] baseUrl
* @returns {Promise<string[]>} 用户 ID 字符串数组(顺序与输入保持一致,跳过缺失项)
* @example
*
* resolveUserIds({
* usernames: ['novlan1', 'someone'],
* privateToken: 'xxxxx',
* }).then((ids) => {
* console.log(ids); // [ '1234', '5678' ]
* })
*/
export declare function resolveUserIds({ usernames, privateToken, baseUrl, }: {
usernames: string[];
privateToken: string;
baseUrl?: string;
}): Promise<string[]>;