Skip to content

Commit ce974f1

Browse files
author
Thomas Scholtes
committed
service interface
1 parent bd539fa commit ce974f1

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

client/services.d.ts

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
declare module "services" {
2+
import Track = require('models/track');
3+
4+
export interface DragTrack {
5+
(e: JQuery, getTrack: (id: number) => Track.Attributes);
6+
}
7+
8+
export interface Player {
9+
play(track: Track.Attributes);
10+
}
11+
12+
export interface TrackContextMenu {
13+
(el: JQuery, getTrack: (id: number) => Track.Attributes);
14+
}
15+
16+
export var globalProvider: Provider;
17+
export interface Provider {
18+
player: Player;
19+
trackContextMenu: TrackContextMenu;
20+
dragTrack: DragTrack;
21+
22+
get(name: "track-context-menu"): TrackContextMenu;
23+
get(name: "player"): Player;
24+
get(name: "drag-track"): DragTrack;
25+
get(name: string): any;
26+
}
27+
28+
export function
29+
service<T>(name: string, init: (...any) => T): Service<T>;
30+
export function
31+
service<T>(deps: string[], init: (...any) => T): Service<T>;
32+
export function
33+
service<T>(name: string, deps: string[], init: (...any) => T): Service<T>;
34+
35+
interface Service<T> {
36+
name?: string;
37+
deps: string[];
38+
init(...any): T;
39+
}
40+
}

0 commit comments

Comments
 (0)