recogn-parse
Version:
recogn-parse 提供了 识别--解析 的机制,使用者只需要添加识别器 和 解析器,然后就可以对事件进行识别和解析,适合用所有具备 识别--解析 流程的场景中,如:加载并显示各种模型、预览文件等
179 lines • 5.97 kB
TypeScript
/**
* 识别解析
*
* @remarks
* 这是一个 `识别—解析` 工具,用户可以注册识别器 和 解析器,对于输入资源,它会先用用注册的识别器进行识别,识别出类型之后,再调用用户注册的对应类型的解析器进行解析,这是它的基本机制,同时它具备一些更具通用性、扩展性、复用性 和 易用性 的机制,比如:支持前置识别器、后置识别器、前置解析器、后置解析器、一进多出、异步识别、异步解析 等等。
*
* @packageDocumentation
*/
import { Recognizer, FormatJudgeResult, JudgeInfo, Judger, RecognResult } from "./Recognizer";
import { Resolver, Parser } from "./Resolver";
export * from "./Recognizer";
export * from "./Resolver";
/**
* 识别解析出的信息
*/
export interface ParseInfo {
/**
* 识别出的信息
*/
recogn: JudgeInfo;
/**
* 解析出的信息
*/
parse: any;
}
/**
* 识别解析信息的集合
* @remarks
* 是 类型 和 识别解析出的信息的映射
*/
export interface RecognParseInfo {
/**
* key 是类型,value 是识别和解析的信息
*/
[type: string]: ParseInfo;
}
/**
* 识别解析的结果
* @remarks
* 可以是同步 或 异步的 识别解析信息的集合
*/
export type RecognParseResult = RecognParseInfo | null | Promise<RecognParseInfo | null>;
/**
* 异步识别解析的结果
*/
export type RecognParseResult_Async = Promise<RecognParseInfo>;
/**
* 鉴定器和解析器对
*/
export interface RecognParser<Options = any> {
judger?: Judger<Options> | null;
parser?: Parser<Options> | null;
}
/**
* 识别解析选项
*/
export interface TypeRecognParsers<Options = any> {
/**
* key 是类型,value 是 鉴定器和解析器对
*/
[type: string]: RecognParser<Options>;
}
/**
* resolve 方法的选项
*/
export interface ResolveOptions {
/**
* 指定的类型
*/
type?: string | null;
/**
* 指定鉴定器的名字
*/
recogn?: string | null;
/**
* 指定解析的类型
*/
parse?: string | null;
/**
* 跳过识别
*/
noRecogn?: boolean | null;
}
/**
* 识别解析
* @remarks
* 是用户直接操作的主类,提供了完整的 `识别-解析` 机制
*/
export declare class RecognParse<TOptions = any> {
/**
* @internal
*/
protected _recognizer?: Recognizer<TOptions> | null;
/**
* 识别器
*/
get recognizer(): Recognizer<TOptions>;
set recognizer(value: Recognizer<TOptions>);
/**
* 前置鉴定器
*/
get preJudgers(): Judger<TOptions>[];
set preJudgers(value: Judger<TOptions>[]);
/**
* 后置鉴定器
*/
get postJudgers(): Judger<TOptions>[];
set postJudgers(value: Judger<TOptions>[]);
/**
* @internal
*/
protected _resolver?: Resolver<TOptions> | null;
/**
* 解决者
*/
get resolver(): Resolver<TOptions>;
set resolver(value: Resolver<TOptions>);
/**
* 前置解析器
*/
get preParses(): import("./Resolver").Parse<TOptions>[];
set preParses(value: import("./Resolver").Parse<TOptions>[]);
/**
* 后置解析器
*/
get postParses(): import("./Resolver").Parse<TOptions>[];
set postParses(value: import("./Resolver").Parse<TOptions>[]);
/**
* 给指定类型添加鉴定解析器
* @param type - 类型
* @param judgerParser - 包含鉴定器 和 解析器
*/
add(type: string, judgerParser: RecognParser<TOptions>): void;
/**
* 批量添加鉴定解析器
* @param recognParsers - 类型 和 鉴定器和解析器对的映射
*/
addRecognParsers(recognParsers: TypeRecognParsers<TOptions>): void;
/**
* 移除指定类型的鉴定器和解析器
* @param type - 类型
*/
remove(type: string[] | string): void;
/**
* {@inheritDoc ./Recognizer#Recognizer.recogn}
*/
recogn(target: any, targetOptions?: any, name?: string | null): RecognResult;
/**
* {@inheritDoc ./Recognizer#Recognizer.recognAsync}
*/
recognAsync(target: any, targetOptions?: any, name?: string | null): Promise<JudgeInfo[]>;
/**
* 识别并解析 target
*
* @param target - 识别解析的目标
* @param targetOpts - 目标选项,主要包含的是与目标相关的选项,大多数场景可能是服务于解析目标的,往往不同类型的目标会有不同的选项,
* @param options - resolve 方法本身的选项,用于控制 识别解析过程的,而不是控制针对目标的具体的鉴定、解析逻辑的,通常与目标无关。
*/
resolve(target: any, targetOpts: TOptions, options?: ResolveOptions | null): RecognParseResult;
/**
* 异步识别并解析
*
* @remarks
* 只有当最终有识别结果时,才会 resolve,否则,则会 reject
*
* @param target - 识别解析的目标
* @param targetOpts - 目标选项,主要包含的是与目标相关的选项,大多数场景可能是服务于解析目标的,往往不同类型的目标会有不同的选项,
* @param options - resolve 方法本身的选项,用于控制 识别解析过程的,而不是控制针对目标的具体的鉴定、解析逻辑的,通常与目标无关。
*/
resolveAsync(target: any, targetOpts: TOptions, options?: ResolveOptions | null): RecognParseResult_Async;
/**
* 解析识别的结果
* @param judgeResult - 识别的结果
* @param target - 目标
* @param targetOptions - 目标选项,主要包含的是与目标相关的选项,大多数场景可能是服务于解析目标的,往往不同类型的目标会有不同的选项,
*/
parse(judgeResult: FormatJudgeResult, target: any, targetOptions: TOptions): RecognParseInfo | null;
}
//# sourceMappingURL=index.d.ts.map