27 lines
		
	
	
		
			731 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			731 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
// #docplaster
 | 
						|
// #docregion
 | 
						|
import { OpaqueToken } from '@angular/core';
 | 
						|
 | 
						|
import { Hero }        from './hero';
 | 
						|
import { HeroService } from './hero.service';
 | 
						|
 | 
						|
// #docregion runners-up
 | 
						|
export const RUNNERS_UP = new OpaqueToken('RunnersUp');
 | 
						|
// #docregion runners-up
 | 
						|
 | 
						|
// #docregion factory-synopsis
 | 
						|
export function runnersUpFactory(take: number) {
 | 
						|
  return (winner: Hero, heroService: HeroService): string => {
 | 
						|
    /* ... */
 | 
						|
// #enddocregion factory-synopsis
 | 
						|
    return heroService
 | 
						|
          .getAllHeroes()
 | 
						|
          .filter((hero) => hero.name !== winner.name)
 | 
						|
          .map(hero => hero.name)
 | 
						|
          .slice(0, Math.max(0, take))
 | 
						|
          .join(', ');
 | 
						|
// #docregion factory-synopsis
 | 
						|
  };
 | 
						|
};
 | 
						|
// #enddocregion factory-synopsis
 |