naja
Version:
Modern AJAX library for Nette Framework
114 lines (113 loc) • 3.75 kB
TypeScript
import { UIHandler } from './core/UIHandler';
import { FormsHandler } from './core/FormsHandler';
import { RedirectHandler } from './core/RedirectHandler';
import { SnippetHandler } from './core/SnippetHandler';
import { HistoryHandler } from './core/HistoryHandler';
import { SnippetCache } from './core/SnippetCache';
import { ScriptLoader } from './core/ScriptLoader';
import { TypedEventListener } from './utils';
export interface Options extends Record<string, any> {
fetch?: RequestInit;
}
export interface Payload extends Record<string, any> {
}
export declare class Naja extends EventTarget {
readonly VERSION: number;
private initialized;
readonly uiHandler: UIHandler;
readonly redirectHandler: RedirectHandler;
readonly snippetHandler: SnippetHandler;
readonly formsHandler: FormsHandler;
readonly historyHandler: HistoryHandler;
readonly snippetCache: SnippetCache;
readonly scriptLoader: ScriptLoader;
private readonly extensions;
defaultOptions: Options;
constructor(uiHandler?: {
new (naja: Naja): UIHandler;
}, redirectHandler?: {
new (naja: Naja): RedirectHandler;
}, snippetHandler?: {
new (naja: Naja): SnippetHandler;
}, formsHandler?: {
new (naja: Naja): FormsHandler;
}, historyHandler?: {
new (naja: Naja): HistoryHandler;
}, snippetCache?: {
new (naja: Naja): SnippetCache;
}, scriptLoader?: {
new (naja: Naja): ScriptLoader;
});
registerExtension(extension: Extension): void;
initialize(defaultOptions?: Options): void;
prepareOptions(options?: Options): Options;
makeRequest(method: string, url: string | URL, data?: any | null, options?: Options): Promise<Payload>;
private appendToQueryString;
private transformData;
addEventListener: <K extends keyof NajaEventMap | string>(type: K, listener: TypedEventListener<Naja, K extends keyof NajaEventMap ? NajaEventMap[K] : CustomEvent>, options?: boolean | AddEventListenerOptions) => void;
removeEventListener: <K extends keyof NajaEventMap | string>(type: K, listener: TypedEventListener<Naja, K extends keyof NajaEventMap ? NajaEventMap[K] : CustomEvent>, options?: boolean | AddEventListenerOptions) => void;
}
export interface Extension {
initialize(naja: Naja): void;
}
export declare class HttpError extends Error {
readonly response: Response;
constructor(response: Response);
}
export type InitEvent = CustomEvent<{
defaultOptions: Options;
}>;
export type BeforeEvent = CustomEvent<{
request: Request;
method: string;
url: string;
data: any;
options: Options;
}>;
export type StartEvent = CustomEvent<{
request: Request;
promise: Promise<Response>;
abortController: AbortController;
options: Options;
}>;
export type AbortEvent = CustomEvent<{
request: Request;
error: Error;
options: Options;
}>;
export type PayloadEvent = CustomEvent<{
request: Request;
response: Response;
payload: Payload;
options: Options;
}>;
export type SuccessEvent = CustomEvent<{
request: Request;
response: Response;
payload: Payload;
options: Options;
}>;
export type ErrorEvent = CustomEvent<{
request: Request;
response: Response | undefined;
error: Error;
options: Options;
}>;
export type CompleteEvent = CustomEvent<{
request: Request;
response: Response | undefined;
error: Error | undefined;
payload: Payload | undefined;
options: Options;
}>;
interface NajaEventMap {
init: InitEvent;
before: BeforeEvent;
start: StartEvent;
abort: AbortEvent;
payload: PayloadEvent;
success: SuccessEvent;
error: ErrorEvent;
complete: CompleteEvent;
}
export {};