semantic-analysis
Version:
Extensible semantic Structured Data analysis library for Microdata and JSON-LD
58 lines (57 loc) • 2.08 kB
TypeScript
import { IExtractionResult } from "../../structured-data/extraction";
import Exporter, { IExportInfo } from '../Exporter';
export declare type ITaskBase = Readonly<{
url: string;
source?: string;
resolver: {
resolve: (value?: ITaskDone) => void;
reject: (reason?: ITaskFailed) => void;
};
queued: Date;
handler: Promise<IExtractionResult>;
run: Date;
done: Date;
results: IExtractionResult;
failed: Date;
error: unknown;
exportInfo?: IExportInfo;
}>;
export declare type ITask = Pick<ITaskBase, 'url' | 'source' | 'resolver' | 'queued'> & Partial<ITaskBase>;
export declare type ITaskQueued = ITask;
export declare type ITaskRunning = ITaskQueued & Pick<ITaskBase, 'handler' | 'run'>;
export declare type ITaskDone = ITaskRunning & Pick<ITaskBase, 'done' | 'results' | 'exportInfo'>;
export declare type ITaskFailed = ITaskRunning & Pick<ITaskBase, 'failed' | 'error'>;
export declare type ITaskArchived = Pick<ITaskBase, 'url' | 'queued'> & Partial<Pick<ITaskBase, 'run' | 'done' | 'failed' | 'error' | 'exportInfo'>>;
/**
* Common options for batch analyzers
*/
export interface IOptions {
rateLimit: number;
maxRunning: number;
doneCallback?: (done: ITaskDone) => void;
failedCallback?: (failed: ITaskFailed) => void;
callback?: (finished: ITask) => void;
onTaskUpdate?: (batch: IBatchState) => void;
exporter?: Exporter;
}
/**
* Conserved batch tasks state
*/
export interface IBatchState {
queued: ReadonlyArray<ITaskArchived>;
running: ReadonlyArray<ITaskArchived>;
done: ReadonlyArray<ITaskArchived>;
failed: ReadonlyArray<ITaskArchived>;
}
/**
* Common interface for batch analysis class implementation
*/
export interface IBatchAnalyzer {
readonly queued: ReadonlyArray<ITaskQueued>;
readonly running: ReadonlyArray<ITaskRunning>;
readonly done: ReadonlyArray<ITaskArchived>;
readonly failed: ReadonlyArray<ITaskArchived>;
addTask(url: string, source?: string): Promise<ITaskDone>;
state(): IBatchState;
dispose?(): void;
}