UNPKG

@kazura/node-util

Version:
142 lines (134 loc) 4.32 kB
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 };