38 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
/* tslint:disable:one-line:check-open-brace*/
 | 
						|
// #docregion
 | 
						|
import { Injectable }    from 'angular2/core';
 | 
						|
import { LoggerService } from './logger.service';
 | 
						|
 | 
						|
// #docregion minimal-logger
 | 
						|
// class used as a restricting interface (hides other public members)
 | 
						|
export abstract class MinimalLogger {
 | 
						|
  logInfo: (msg: string) => void;
 | 
						|
  logs: string[];
 | 
						|
}
 | 
						|
// #enddocregion minimal-logger
 | 
						|
 | 
						|
/*
 | 
						|
// Transpiles to:
 | 
						|
// #docregion minimal-logger-transpiled
 | 
						|
  var MinimalLogger = (function () {
 | 
						|
    function MinimalLogger() {}
 | 
						|
    return MinimalLogger;
 | 
						|
  }());
 | 
						|
  exports("MinimalLogger", MinimalLogger);
 | 
						|
// #enddocregion minimal-logger-transpiled
 | 
						|
 */
 | 
						|
 | 
						|
// #docregion date-logger-service
 | 
						|
@Injectable()
 | 
						|
// #docregion date-logger-service-signature
 | 
						|
export class DateLoggerService extends LoggerService implements MinimalLogger
 | 
						|
// #enddocregion date-logger-service-signature
 | 
						|
{
 | 
						|
  logInfo(msg: any)  { super.logInfo(stamp(msg)); }
 | 
						|
  logDebug(msg: any) { super.logInfo(stamp(msg)); }
 | 
						|
  logError(msg: any) { super.logError(stamp(msg)); }
 | 
						|
}
 | 
						|
 | 
						|
function stamp(msg: any) { return msg + ' at ' + new Date(); }
 | 
						|
// #enddocregion date-logger-service
 |