@@ -15,9 +15,9 @@ interface _IMobservableStatic {
1515
1616 observable ( target : Object , key : string ) ; // decorator / annotation
1717
18- sideEffect ( func : Mobservable . Lambda , scope ? ) : Mobservable . Lambda ;
18+ sideEffect ( func : Mobservable . Lambda , options ?: Mobservable . IMakeReactiveOptions ) : Mobservable . Lambda ;
1919
20- observeUntilInvalid < T > ( func : ( ) => T , onInvalidate : Mobservable . Lambda ) : [ T , Mobservable . Lambda ] ;
20+ observeUntilInvalid < T > ( func : ( ) => T , onInvalidate : Mobservable . Lambda , context ?: Mobservable . IContextInfo ) : [ T , Mobservable . Lambda ] ;
2121
2222 transaction < T > ( action : ( ) => T ) : T ;
2323
@@ -29,6 +29,14 @@ interface _IMobservableStatic {
2929 reactiveMixin : Object ;
3030
3131 debugLevel : number ;
32+
33+ extras : {
34+ getDependencyTree ( thing :any , property ?:string ) : Mobservable . IDependencyTree ;
35+
36+ getObserverTree ( thing :any , property ?:string ) : Mobservable . IObserverTree ;
37+
38+ trackTransitions ( extensive ?:boolean , onReport ?:( lines :Mobservable . ITransitionEvent ) => void ) : Mobservable . Lambda ;
39+ }
3240}
3341
3442interface IMakeReactive {
@@ -45,12 +53,22 @@ declare module Mobservable {
4553 interface IMakeReactiveOptions {
4654 as ?: string /* "auto" | "reference" | TODO: see #8 "structure" */
4755 scope ?: Object ,
56+ context ?: Object ,
4857 recurse ?: boolean ;
58+ name ?: string ;
4959 // protected: boolean TODO: see #9
5060 }
5161
62+ export interface IContextInfoStruct {
63+ object : Object ;
64+ name : string ;
65+ }
66+
67+ export type IContextInfo = IContextInfoStruct | string ;
68+
5269 interface Lambda {
5370 ( ) : void ;
71+ name ?: string ;
5472 }
5573
5674 interface IObservable {
@@ -88,6 +106,30 @@ declare module Mobservable {
88106 removed : T [ ] ;
89107 addedCount : number ;
90108 }
109+
110+ interface IDependencyTree {
111+ id : number ;
112+ name : string ;
113+ context : any ;
114+ dependencies ?: IDependencyTree [ ] ;
115+ }
116+
117+ interface IObserverTree {
118+ id : number ;
119+ name : string ;
120+ context : any ;
121+ observers ?: IObserverTree [ ] ;
122+ listeners ?: number ; // amount of functions manually attached using an .observe method
123+ }
124+
125+ interface ITransitionEvent {
126+ id : number ;
127+ name : string ;
128+ context : Object ;
129+ state : string ;
130+ changed : boolean ;
131+ newValue : string ;
132+ }
91133}
92134
93135declare module "mobservable" {
0 commit comments