
BREAKING CHANGE (maybe) Well as long as our customers use public API this should not be a breaking change, but we have changed import structure as well as internal names, so it could be breaking. import: angular2/annotations => angular2/metadata Classes: *Annotations => *Metadata renderer.DirectiveMetadata => renderer.RendererDirectiveMetadata renderer.ElementBinder => renderer.RendererElementBinder impl.Directive => impl.DirectiveMetadata impl.Component => impl.ComponentMetadata impl.View => impl.ViewMetadata Closes #3660
29 lines
961 B
TypeScript
29 lines
961 B
TypeScript
import {isBlank, isPresent, BaseException, CONST, Type} from 'angular2/src/facade/lang';
|
|
import {Injectable, OptionalMetadata, SkipSelfMetadata, Binding, Injector, bind} from 'angular2/di';
|
|
import {PipeBinding} from './pipe_binding';
|
|
import * as cd from 'angular2/src/change_detection/pipes';
|
|
|
|
export class ProtoPipes {
|
|
/**
|
|
* Map of {@link PipeMetadata} names to {@link PipeMetadata} implementations.
|
|
*/
|
|
config: StringMap<string, PipeBinding> = {};
|
|
|
|
constructor(bindings: PipeBinding[]) { bindings.forEach(b => this.config[b.name] = b); }
|
|
|
|
get(name: string): PipeBinding {
|
|
var binding = this.config[name];
|
|
if (isBlank(binding)) throw new BaseException(`Cannot find pipe '${name}'.`);
|
|
return binding;
|
|
}
|
|
}
|
|
|
|
export class Pipes implements cd.Pipes {
|
|
constructor(public proto: ProtoPipes, public injector: Injector) {}
|
|
|
|
get(name: string): any {
|
|
var b = this.proto.get(name);
|
|
return this.injector.instantiateResolved(b);
|
|
}
|
|
}
|