Skip to content

Instantly share code, notes, and snippets.

@crissdev
Last active September 20, 2017 10:34
Show Gist options
  • Save crissdev/56fda2b80011093e0171 to your computer and use it in GitHub Desktop.
Save crissdev/56fda2b80011093e0171 to your computer and use it in GitHub Desktop.
Typescript definition file for RxJS-DOM
///<reference path="../rx/rx.d.ts"/>
declare module Rx {
declare module DOM {
export interface AjaxSettings {
async?: boolean;
body?: string;
// This options does not seem to be used in the code yet
// contentType?: string;
crossDomain?: boolean;
headers?: any;
method?: string;
password?: string;
progressObserver?: Rx.Observer;
responseType?: string;
url?: string;
user?: string;
}
export interface AjaxSuccessResponse {
response: any;
status: number;
responseType: string;
xhr: XMLHttpRequest;
originalEvent: Event;
}
export interface AjaxErrorResponse {
type: string;
status: number;
xhr: XMLHttpRequest;
originalEvent: Event;
}
export interface JsonpSettings {
async?: boolean;
jsonp?: string;
jsonpCallback?: string;
url?: string;
}
export interface JsonpSuccessResponse {
response: any;
status: number;
responseType: string;
originalEvent: Event;
}
export interface JsonpErrorResponse {
type: string;
status: number;
originalEvent: Event;
}
export interface GeolocationOptions {
enableHighAccuracy?: boolean;
timeout?: number;
maximumAge?: number;
}
// Events
function fromEvent(element:any, eventName:string, selector?:Function, useCapture?:boolean):Rx.Observable;
function ready():Rx.Observable;
// Event Shortcuts
function blur(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function change(element:any, selector?:Function):Rx.Observable;
function click(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function contextmenu(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function dblclick(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function error(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function focus(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function focusin(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function focusout(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function keydown(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function keypress(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function keyup(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function load(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function mousedown(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function mouseenter(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function mouseleave(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function mousemove(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function mouseout(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function mouseover(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function mouseup(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function resize(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function scroll(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function select(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function submit(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function unload(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
// Pointer Events
function pointerdown(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function pointerenter(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function pointerleave(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function pointermove(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function pointerout(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function pointerover(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function pointerup(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
// Touch Events
function touchcancel(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function touchend(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function touchmove(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
function touchstart(element:any, selector?:Function, useCapture?:boolean):Rx.Observable;
// Ajax
function ajax(url:string):Rx.Observable<AjaxSuccessResponse | AjaxErrorResponse>;
function ajax(settings:AjaxSettings):Rx.Observable<AjaxSuccessResponse | AjaxErrorResponse>;
function get(url:string):Rx.Observable<AjaxSuccessResponse | AjaxErrorResponse>;
function getJSON(url:string):Rx.Observable;
function post(url:string, body:any):Rx.Observable<AjaxSuccessResponse | AjaxErrorResponse>;
function jsonpRequest(url:string):Rx.Observable;
function jsonpRequest(settings:JsonpSettings):Rx.Observable<JsonpSuccessResponse | JsonpErrorResponse>;
// Server-Sent Events
function fromEventSource(url:string, openObservable?:Rx.Observer):Rx.Observable;
// Web Sockets
function fromWebSocket(url:string, protocol:string, openObserver?:Rx.Observer, closingObserver?:Rx.Observer):Rx.Subject;
// Web Workers
function fromWebWorker(url:string):Rx.Subject;
// Mutation Observers
function fromMutationObserver(target:Node, options:MutationObserverInit):Rx.Observable;
// Geolocation
export module geolocation {
function getCurrentPosition(geolocationOptions?:GeolocationOptions):Rx.Observable;
function watchPosition(geolocationOptions?:GeolocationOptions):Rx.Observable;
}
}
}
declare module "rx.DOM" {
export = Rx.DOM;
}
@doubleppereira
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment