From 3983f5b72865a8266fe94d5c62b3b30c8bcbeb78 Mon Sep 17 00:00:00 2001 From: M0ns1gn0r Date: Wed, 1 Feb 2017 20:39:59 +0100 Subject: [PATCH] Add tslint.json to "videojs". * Fix all the issues the linting uncovered. * Extend the tests for on() / off() functions. --- videojs/index.d.ts | 29 ++++++++++++----------------- videojs/tslint.json | 1 + videojs/videojs-tests.ts | 30 ++++++++++++++++++++++++------ 3 files changed, 37 insertions(+), 23 deletions(-) create mode 100644 videojs/tslint.json diff --git a/videojs/index.d.ts b/videojs/index.d.ts index 4249d0d9b9..23fcfcddb2 100644 --- a/videojs/index.d.ts +++ b/videojs/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for Video.js +// Type definitions for Video.js 5.16 // Project: https://github.com/zencoder/video-js // Definitions by: Vincent Bortone // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped @@ -7,23 +7,22 @@ // Javascript, whether the browser is playing the video through HTML5 // video, Flash, or any other supported playback technologies. -declare var videojs: videojs; +declare var videojs: videojsStatic; export = videojs; export as namespace videojs; -interface videojs { - (id: any, options?: videojs.PlayerOptions, ready?: () => void): videojs.Player; -} +type videojsStatic = + (id: any, options?: videojs.PlayerOptions, ready?: () => void) => videojs.Player; declare namespace videojs { interface PlayerOptions { techOrder?: string[]; - html5?: Object; + html5?: any; width?: number; height?: number; defaultVolume?: number; - children?: Object; + children?: string[]; controls?: boolean; src?: string; autoplay?: boolean; @@ -39,9 +38,7 @@ declare namespace videojs { play(): Player; pause(): Player; paused(): boolean; - src(newSource: string): Player; - src(newSource: Source): Player; - src(newSource: Source[]): Player; + src(newSource: string | Source | Source[]): Player; currentTime(seconds: number): Player; currentTime(): number; duration(): number; @@ -58,13 +55,11 @@ declare namespace videojs { cancelFullScreen(): Player; ready(callback: () => void ): Player; on(eventName: string, callback: (eventObject: Event) => void ): void; - off(eventName: string, callback: () => void ): void; - off(eventName: string): void; - off(): void; + off(eventName?: string, callback?: (eventObject: Event) => void ): void; dispose(): void; - addRemoteTextTrack(options : {}) : HTMLTrackElement; - removeRemoteTextTrack(track : HTMLTrackElement) : void; - poster(val?: string) : string|Player; - playbackRate(rate?: number) : number; + addRemoteTextTrack(options: {}): HTMLTrackElement; + removeRemoteTextTrack(track: HTMLTrackElement): void; + poster(val?: string): string | Player; + playbackRate(rate?: number): number; } } diff --git a/videojs/tslint.json b/videojs/tslint.json new file mode 100644 index 0000000000..2221e40e4a --- /dev/null +++ b/videojs/tslint.json @@ -0,0 +1 @@ +{ "extends": "../tslint.json" } \ No newline at end of file diff --git a/videojs/videojs-tests.ts b/videojs/videojs-tests.ts index 58300ac97a..82161f9119 100644 --- a/videojs/videojs-tests.ts +++ b/videojs/videojs-tests.ts @@ -58,17 +58,35 @@ videojs("example_video_1").ready(function(){ myPlayer.height(480); - myPlayer.size(640,480); + myPlayer.size(640, 480); myPlayer.requestFullScreen(); myPlayer.cancelFullScreen(); + testEvents(myPlayer); +}); - var myFunc = function(){ - var myPlayer: videojs.Player = this; +function testEvents(myPlayer: videojs.Player) { + const myFunc = function() { + const myPlayer: videojs.Player = this; // Do something when the event is fired }; - //myPlayer.addEvent("volumechange", myFunc); - //myPlayer.removeEvent("volumechange", myFunc); -}); + myPlayer.on("error", myFunc); + // Removes the specified listener only. + myPlayer.off("error", myFunc); + + + const myFuncWithArg = function(e: Event) { + const myPlayer: videojs.Player = this; + // Do something when the event is fired + }; + myPlayer.on("volumechange", myFuncWithArg); + // Removes all listeners for the given event type. + myPlayer.off("volumechange"); + + + myPlayer.on("loadeddata", function() { /* Some handler. */ }); + // Removes all listeners. + myPlayer.off(); +}