From 5b0ec7e09937bdcc71dff171ead4567206767884 Mon Sep 17 00:00:00 2001 From: Behind The Math Date: Sat, 10 Mar 2018 23:33:41 -0500 Subject: [PATCH] Add Typescript definitions --- pjax.d.ts | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 pjax.d.ts diff --git a/pjax.d.ts b/pjax.d.ts new file mode 100644 index 0000000..ac73f3b --- /dev/null +++ b/pjax.d.ts @@ -0,0 +1,67 @@ +export = class Pjax { + constructor(options?: Partial); + + static switches: { + [key: string]: Switch + }; + + static isSupported: () => boolean; + + log: VoidFunction; + + getElements(el: Element | Document): NodeListOf; + + parseDOM(el: Element | Document): void; + + refresh: ElementFunction; + + reload: VoidFunction; + + attachLink(el: HTMLAnchorElement): void; + + attachForm(el: HTMLFormElement): void; + + forEachSelectors(cb: ElementFunction, context: Pjax, DOMcontext?: Element | Document): void; + + switchesSelectors(selectors: string[], fromEl: Element | Document, toEl: Element | Document, options: IOptions): void; + + latestChance(href: string): void; + + onSwitch: VoidFunction; + + loadContent(html: string, options: IOptions): void; + + abortRequest(request: XMLHttpRequest): void; + + doRequest(location: string, options: IOptions | null, + callback: (requestText: string, request: XMLHttpRequest, href: string) => void): XMLHttpRequest; + + handleResponse(requestText: string, request: XMLHttpRequest, href: string): void; + + loadUrl(href: string, options?: IOptions): void; + + afterAllSwitches: VoidFunction; +} + +export interface StringKeyedObject { + [key: string]: T +} + +export interface IOptions { + elements: string; + selectors: string[]; + switches: StringKeyedObject; + switchesOptions: StringKeyedObject; + history: boolean; + analytics: Function | false; + scrollTo: number | number[] | false; + scrollRestoration: boolean; + cacheBust: boolean; + debug: boolean; + timeout: number + currentUrlFullReload: boolean; +} + +export type Switch = (oldEl: Element, newEl: Element, options?: IOptions, switchesOptions?: StringKeyedObject) => void; + +export type ElementFunction = (el: Element) => void;