@kazura/node-util
Version:
142 lines (134 loc) • 4.32 kB
TypeScript
import { PackageJson } from 'pkg-types';
import { DdddOcr, MODEL_TYPE, CHARSET_RANGE } from 'ddddocr-node';
import { LogSeverityLevel } from 'ddddocr-node/dist/type';
import { ValidTotpConfig, TotpConfig } from 'time2fa';
import { WorkerOptions as WorkerOptions$1 } from 'worker_threads';
declare class Ocr extends DdddOcr {
static MODEL_TYPE: typeof MODEL_TYPE;
static CHARSET_RANGE: typeof CHARSET_RANGE;
static create(logSeverityLevel?: LogSeverityLevel): Ocr;
}
declare class GitUtil {
readonly repositoryPath: string;
constructor(repositoryPath: string);
private changeDirectory;
getBranchName(): Promise<string>;
getShortCommitId(): Promise<string>;
getCommitId(): Promise<string>;
getUserName(): Promise<string>;
getUserEmail(): Promise<string>;
add(file: string): Promise<void>;
addAll(): Promise<void>;
commit(message: string): Promise<void>;
commitAll(message: string): Promise<void>;
submodulesUpdateInit(): Promise<void>;
pullRebaseOrigin(): Promise<void>;
pullNoRebaseOrigin(): Promise<void>;
checkout(branch: string): Promise<void>;
checkoutOrigin(branch: string): Promise<void>;
pushOrigin(localBranch: string, remoteBranch?: string): Promise<void>;
}
declare class TotpBase {
readonly config: ValidTotpConfig;
constructor(config?: TotpConfig);
generateSecret(): string;
generatePasscodes(secret: string): string;
validate(passcode: string, secret: string): boolean;
generateUrl(issuer: string, user: string, secret: string): string;
}
declare const Totp: TotpBase;
interface WorkerOptions extends WorkerOptions$1 {
/**
* 最大并发数 (默认为 CPU 核心数 - 1)
*/
max?: number;
}
declare class Worker<Args extends any[], Ret = any> {
private filename;
private options;
/**
* 工作线程池
*/
private pool;
/**
* 空闲的线程
*/
private idlePool;
/**
* 等待的任务
*/
private queue;
constructor(filename: string | URL, options?: WorkerOptions);
run(...args: Args): Promise<Ret>;
/**
* 停止所有工作线程
*/
stop(): void;
/**
* 获取可用的工作线程
* @returns
*/
private getAvailableWorker;
/**
* 分配完成的工作线程
* @param worker
* @returns
*/
private assignDoneWorker;
}
/**
* 任务工作者
*
* @example
* ```typescript
* class Demo extends TaskWorker<[number, number], number> {
* public async doWork(a: number, b: number): Promise<number> {
* return a + b
* }
*
* new Demo()
*
* ```
*
*/
declare abstract class TaskWorker<Args extends any[], Ret = any> {
readonly workerData: any;
constructor();
abstract doWork(...args: Args): Ret | Promise<Ret>;
}
interface LookupFileOptions {
/**
* 如果设置为 true,则表示只返回文件的完整路径,而不返回文件内容。如果未指定或设置为 false,则返回文件的内容。
*/
pathOnly?: boolean;
/**
* 查找文件时的根目录。只有当父目录与 rootDir 匹配或是根目录时,函数才会继续向上查找文件。
*/
rootDir?: string;
/**
* 用于检查文件是否符合特定条件。只有当文件满足这个条件时,函数才会返回结果。
* @param file
* @returns
*/
predicate?: (file: string) => boolean;
}
/**
* 用于在文件系统中查找特定文件
* @param dir 要在其中查找文件的起始目录。
* @param formats 要查找的文件的数组。函数将遍历这些格式,直到找到匹配的文件为止。
* @param options
* @returns
*/
declare function lookupFile(dir: string, formats: string[], options?: LookupFileOptions): string | undefined;
declare function getPkgJson(root: string): PackageJson;
declare function getPkgName(name: string): string;
/**
* 将指定内容写入文件
* @param filename
* @param content
*/
declare function writeFile(filename: string, content: string | Uint8Array): void;
declare function md5(text: string): string;
declare function getHash(text: string): string;
export { GitUtil, Ocr, TaskWorker, Totp, TotpBase, Worker, getHash, getPkgJson, getPkgName, lookupFile, md5, writeFile };
export type { LookupFileOptions, WorkerOptions };