Updating rx-dom typings to be module style instead of ambient style (#14105)

* transitioning from ambient style typings to module style typings

* adding some notes to test file

* merging redundant definitions

* updating version to match the current rx-dom version

* adding lint config
This commit is contained in:
Pat Sissons
2017-01-19 09:29:50 -08:00
committed by Mohamed Hegazy
parent 450a426995
commit 461eb31187
3 changed files with 115 additions and 101 deletions

199
rx-dom/index.d.ts vendored
View File

@@ -1,142 +1,141 @@
// Type definitions for RxJS v2.5.3
// Type definitions for RxJS 7.0
// Project: https://github.com/Reactive-Extensions/RxJS-DOM
// Definitions by: oliver Weichhold <https://github.com/oliverw>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/// <reference types="rx" />
import * as Rx from 'rx';
declare module Rx.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<any>;
responseType?: string;
url?: string;
user?: string;
declare module 'rx' {
namespace DOM {
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<any>;
responseType?: string;
url?: string;
user?: string;
}
export interface AjaxSuccessResponse {
response: any;
status: number;
responseType: string;
xhr: XMLHttpRequest;
originalEvent: Event;
interface AjaxSuccessResponse {
response: any;
status: number;
responseType: string;
xhr: XMLHttpRequest;
originalEvent: Event;
}
export interface AjaxErrorResponse {
type: string;
status: number;
xhr: XMLHttpRequest;
originalEvent: Event;
interface AjaxErrorResponse {
type: string;
status: number;
xhr: XMLHttpRequest;
originalEvent: Event;
}
export interface JsonpSettings {
async?: boolean;
jsonp?: string;
jsonpCallback?: string;
url?: string;
interface JsonpSettings {
async?: boolean;
jsonp?: string;
jsonpCallback?: string;
url?: string;
}
export interface JsonpSuccessResponse {
response: any;
status: number;
responseType: string;
originalEvent: Event;
interface JsonpSuccessResponse {
response: any;
status: number;
responseType: string;
originalEvent: Event;
}
export interface JsonpErrorResponse {
type: string;
status: number;
originalEvent: Event;
interface JsonpErrorResponse {
type: string;
status: number;
originalEvent: Event;
}
export interface GeolocationOptions {
enableHighAccuracy?: boolean;
timeout?: number;
maximumAge?: number;
interface GeolocationOptions {
enableHighAccuracy?: boolean;
timeout?: number;
maximumAge?: number;
}
// Events
function fromEvent<T>(element:any, eventName:string, selector?:Function, useCapture?:boolean):Rx.Observable<T>;
function fromEvent<T>(element: any, eventName: string, selector?: Function, useCapture?: boolean): Rx.Observable<T>;
function ready():Rx.Observable<any>;
function ready(): Rx.Observable<any>;
// Event Shortcuts
function blur(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<FocusEvent>;
function change(element: Element, selector?:Function):Rx.Observable<Event>;
function click(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<MouseEvent>;
function contextmenu(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<MouseEvent>;
function dblclick(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<MouseEvent>;
function error(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<Event>;
function focus(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<FocusEvent>;
function focusin(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<MouseEvent>;
function focusout(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<MouseEvent>;
function keydown(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<KeyboardEvent>;
function keypress(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<KeyboardEvent>;
function keyup(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<KeyboardEvent>;
function load(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<UIEvent>;
function mousedown(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<MouseEvent>;
function mouseenter(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<MouseEvent>;
function mouseleave(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<MouseEvent>;
function mousemove(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<MouseEvent>;
function mouseout(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<MouseEvent>;
function mouseover(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<MouseEvent>;
function mouseup(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<MouseEvent>;
function resize(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<UIEvent>;
function scroll(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<UIEvent>;
function select(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<Event>;
function submit(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<Event>;
function unload(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<Event>;
function blur(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<FocusEvent>;
function change(element: Element, selector?: Function): Rx.Observable<Event>;
function click(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<MouseEvent>;
function contextmenu(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<MouseEvent>;
function dblclick(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<MouseEvent>;
function error(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<Event>;
function focus(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<FocusEvent>;
function focusin(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<MouseEvent>;
function focusout(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<MouseEvent>;
function keydown(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<KeyboardEvent>;
function keypress(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<KeyboardEvent>;
function keyup(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<KeyboardEvent>;
function load(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<UIEvent>;
function mousedown(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<MouseEvent>;
function mouseenter(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<MouseEvent>;
function mouseleave(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<MouseEvent>;
function mousemove(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<MouseEvent>;
function mouseout(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<MouseEvent>;
function mouseover(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<MouseEvent>;
function mouseup(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<MouseEvent>;
function resize(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<UIEvent>;
function scroll(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<UIEvent>;
function select(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<Event>;
function submit(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<Event>;
function unload(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<Event>;
// Pointer Events
function pointerdown(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<PointerEvent>;
function pointerenter(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<PointerEvent>;
function pointerleave(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<PointerEvent>;
function pointermove(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<PointerEvent>;
function pointerout(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<PointerEvent>;
function pointerover(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<PointerEvent>;
function pointerup(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<PointerEvent>;
function pointerdown(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<PointerEvent>;
function pointerenter(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<PointerEvent>;
function pointerleave(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<PointerEvent>;
function pointermove(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<PointerEvent>;
function pointerout(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<PointerEvent>;
function pointerover(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<PointerEvent>;
function pointerup(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<PointerEvent>;
// Touch Events
function touchcancel(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<TouchEvent>;
function touchend(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<TouchEvent>;
function touchmove(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<TouchEvent>;
function touchstart(element: Element, selector?:Function, useCapture?:boolean):Rx.Observable<TouchEvent>;
function touchcancel(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<TouchEvent>;
function touchend(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<TouchEvent>;
function touchmove(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<TouchEvent>;
function touchstart(element: Element, selector?: Function, useCapture?: boolean): Rx.Observable<TouchEvent>;
// Ajax
function ajax(url:string):Rx.Observable<AjaxSuccessResponse>;
function ajax(settings:AjaxSettings):Rx.Observable<AjaxSuccessResponse>;
function get(url:string):Rx.Observable<AjaxSuccessResponse>;
function getJSON(url:string):Rx.Observable<string>;
function post(url:string, body:any):Rx.Observable<AjaxSuccessResponse>;
function jsonpRequest(url:string):Rx.Observable<string>;
function jsonpRequest(settings:JsonpSettings):Rx.Observable<JsonpSuccessResponse>;
function ajax(settingsOrUrl: AjaxSettings | string): Rx.Observable<AjaxSuccessResponse>;
function get(url: string): Rx.Observable<AjaxSuccessResponse>;
function getJSON(url: string): Rx.Observable<string>;
function post(url: string, body: any): Rx.Observable<AjaxSuccessResponse>;
function jsonpRequest(url: string): Rx.Observable<string>;
function jsonpRequest(settings: JsonpSettings): Rx.Observable<JsonpSuccessResponse>;
// Server-Sent Events
function fromEventSource<T>(url:string, openObservable?:Rx.Observer<T>):Rx.Observable<T>;
function fromEventSource<T>(url: string, openObservable?: Rx.Observer<T>): Rx.Observable<T>;
// Web Sockets
function fromWebSocket(url:string, protocol:string, openObserver?:Rx.Observer<Event>, closingObserver?:Rx.Observer<CloseEvent>):Rx.Subject<MessageEvent>;
function fromWebSocket(url: string, protocol: string, openObserver?: Rx.Observer<Event>, closingObserver?: Rx.Observer<CloseEvent>): Rx.Subject<MessageEvent>;
// Web Workers
function fromWebWorker(url:string):Rx.Subject<string>;
function fromWebWorker(url: string): Rx.Subject<string>;
// Mutation Observers
function fromMutationObserver(target:Node, options:MutationObserverInit):Rx.Observable<MutationEvent>;
function fromMutationObserver(target: Node, options: MutationObserverInit): Rx.Observable<MutationEvent>;
// Geolocation
export module geolocation {
function getCurrentPosition(geolocationOptions?:GeolocationOptions):Rx.Observable<Position>;
function watchPosition(geolocationOptions?:GeolocationOptions):Rx.Observable<Position>;
namespace geolocation {
function getCurrentPosition(geolocationOptions?: GeolocationOptions): Rx.Observable<Position>;
function watchPosition(geolocationOptions?: GeolocationOptions): Rx.Observable<Position>;
}
}
}
declare module "rx-dom" {
export default Rx.DOM;
}
export = Rx;

View File

@@ -1,2 +1,9 @@
import * as Rx from 'rx';
import * as DOM from 'rx-dom';
import * as DOM from 'rx-dom';
// Rx and DOM should both be the same reference
// before rx-dom import, Rx will not contain the DOM namespace
// after rx-dom import, Rx will contain the DOM namespace
// this is the standard approach for importing rx + rx-dom
import { Observable, Subject, DOM as rxdom } from 'rx-dom';

8
rx-dom/tslint.json Normal file
View File

@@ -0,0 +1,8 @@
{
"extends": "../tslint.json",
"rules": {
// this package augments Rx with namespace level functions
// it would be particualrly strange to type these functions differently
"forbidden-types": false
}
}