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
							 |