UNPKG

naja

Version:

Modern AJAX library for Nette Framework

114 lines (113 loc) 3.75 kB
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 {};