I had build a Angularjs provider in typescript wondering is there any better way of doing the same,my sample provider create an abstraction of console logger,the interface is just to keep the compiler happy , and I register the provider as in the code below
module ec{
export interface ILoggerService{
warn(message:string):void;
info(message:string):void;
error(message:string):void;
debug(message:string):void;
log(message:string,exception?:any):void;
}
}
module ec.providers {
export class loggerService {
private loggerState:boolean = false;
public start =() =>{
this.loggerState = true;
}
public $get =['$log',($log:ng.ILogService) =>{
return {
warn:(message) =>{
if(this.loggerState)
$log.warn(message);
},
info:(message) =>{
if(this.loggerState)
$log.info(message);
},
error:(message) =>{
if(this.loggerState)
$log.error(message);
},
debug:(message) =>{
if(this.loggerState)
$log.debug(message);
},
log:(message,exception) =>{
if(this.loggerState)
$log.log(message,exception);
}
}
}]
}
}
module ec{
var app =angular.module('foo',[]).config(['loggerServiceProvider', (loggerServiceProvider)=>{
if(location.hostname =='localhost') {
loggerProvider.start();
}
}]);
app.provider(providers);
}
start?