syphonx-core
Version:
SyphonX is a template-driven solution for extracting data from HTML in a highly efficient way. It combines the power of jQuery, Regular Expressions, and Javascript into a declarative template-driven format that extracts and reshapes HTML data into JSON.
50 lines (49 loc) • 1.87 kB
TypeScript
import { Template } from "./template.js";
import { DocumentLoadState, ExtractResult, ExtractState, Select, Transform, YieldLocator, YieldNavigate, YieldParams, YieldScreenshot } from "./package/index.js";
export interface NavigateResult {
status?: number;
}
export interface HostOptions {
template: Template;
url?: string;
params?: Record<string, unknown>;
unwrap?: boolean;
debug?: boolean;
extractHtml?: boolean;
maxYields?: number;
retries?: number;
retryDelay?: number[];
onExtract?: (state: ExtractState, script: string) => Promise<ExtractState>;
onGoback?: (options: {
timeout?: number;
waitUntil?: DocumentLoadState;
}) => Promise<NavigateResult>;
onHtml?: () => Promise<string>;
onLocator?: (options: YieldLocator) => Promise<unknown>;
onNavigate?: (options: YieldNavigate & {
timeout?: number;
waitUntil?: DocumentLoadState;
}) => Promise<NavigateResult>;
onReload?: (options: {
timeout?: number;
waitUntil?: DocumentLoadState;
}) => Promise<NavigateResult>;
onScreenshot?: (options: YieldScreenshot) => Promise<void>;
onYield?: (params: YieldParams) => Promise<void>;
}
export declare function host({ maxYields, retries, retryDelay, ...options }: HostOptions): Promise<ExtractResult>;
export declare function expandTemplateUrl(url: string, params?: Record<string, unknown>): string;
export declare function invokeAsyncMethod(obj: {}, method: string, args?: unknown[]): Promise<unknown>;
export interface AttemptOptions {
retries: number;
}
export declare const script = "";
export type EvaluateArg = ExtractState | {
select: Select[];
} | {
transform: Transform[];
} | {
sync: ExtractState;
};
export type EvaluateResult = ExtractState;
export type EvaluateFunction = (arg: EvaluateArg) => Promise<EvaluateResult>;