@@ -7,7 +7,7 @@ import {DatePipe} from './date_pipe';
|
||||
import {DecimalPipe, PercentPipe, CurrencyPipe} from './number_pipe';
|
||||
|
||||
import {CONST_EXPR} from 'angular2/src/core/facade/lang';
|
||||
import {Binding, OpaqueToken} from 'angular2/src/core/di';
|
||||
import {Provider, OpaqueToken} from 'angular2/src/core/di';
|
||||
|
||||
const DEFAULT_PIPES_LIST = CONST_EXPR([
|
||||
AsyncPipe,
|
||||
@@ -23,5 +23,5 @@ const DEFAULT_PIPES_LIST = CONST_EXPR([
|
||||
|
||||
export const DEFAULT_PIPES_TOKEN: OpaqueToken = CONST_EXPR(new OpaqueToken("Default Pipes"));
|
||||
|
||||
export const DEFAULT_PIPES: Binding =
|
||||
CONST_EXPR(new Binding(DEFAULT_PIPES_TOKEN, {toValue: DEFAULT_PIPES_LIST}));
|
||||
export const DEFAULT_PIPES: Provider =
|
||||
CONST_EXPR(new Provider(DEFAULT_PIPES_TOKEN, {toValue: DEFAULT_PIPES_LIST}));
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
import {Type} from 'angular2/src/core/facade/lang';
|
||||
import {ResolvedFactory, resolveBinding, ResolvedBinding_} from 'angular2/src/core/di/binding';
|
||||
import {Key, ResolvedBinding, Binding} from 'angular2/src/core/di';
|
||||
import {PipeMetadata} from '../metadata/directives';
|
||||
|
||||
export class PipeBinding extends ResolvedBinding_ {
|
||||
constructor(public name: string, public pure: boolean, key: Key,
|
||||
resolvedFactories: ResolvedFactory[], multiBinding: boolean) {
|
||||
super(key, resolvedFactories, multiBinding);
|
||||
}
|
||||
|
||||
static createFromType(type: Type, metadata: PipeMetadata): PipeBinding {
|
||||
var binding = new Binding(type, {toClass: type});
|
||||
var rb = resolveBinding(binding);
|
||||
return new PipeBinding(metadata.name, metadata.pure, rb.key, rb.resolvedFactories,
|
||||
rb.multiBinding);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
import {Type} from 'angular2/src/core/facade/lang';
|
||||
import {ResolvedFactory, resolveProvider, ResolvedProvider_} from 'angular2/src/core/di/provider';
|
||||
import {Key, ResolvedProvider, Provider} from 'angular2/src/core/di';
|
||||
import {PipeMetadata} from '../metadata/directives';
|
||||
|
||||
export class PipeProvider extends ResolvedProvider_ {
|
||||
constructor(public name: string, public pure: boolean, key: Key,
|
||||
resolvedFactories: ResolvedFactory[], multiBinding: boolean) {
|
||||
super(key, resolvedFactories, multiBinding);
|
||||
}
|
||||
|
||||
static createFromType(type: Type, metadata: PipeMetadata): PipeProvider {
|
||||
var provider = new Provider(type, {toClass: type});
|
||||
var rb = resolveProvider(provider);
|
||||
return new PipeProvider(metadata.name, metadata.pure, rb.key, rb.resolvedFactories,
|
||||
rb.multiProvider);
|
||||
}
|
||||
}
|
||||
@@ -5,17 +5,17 @@ import {
|
||||
Injectable,
|
||||
OptionalMetadata,
|
||||
SkipSelfMetadata,
|
||||
Binding,
|
||||
Provider,
|
||||
Injector,
|
||||
bind
|
||||
} from 'angular2/src/core/di';
|
||||
import {PipeBinding} from './pipe_binding';
|
||||
import {PipeProvider} from './pipe_provider';
|
||||
import * as cd from 'angular2/src/core/change_detection/pipes';
|
||||
|
||||
export class ProtoPipes {
|
||||
static fromBindings(bindings: PipeBinding[]): ProtoPipes {
|
||||
var config: {[key: string]: PipeBinding} = {};
|
||||
bindings.forEach(b => config[b.name] = b);
|
||||
static fromProviders(providers: PipeProvider[]): ProtoPipes {
|
||||
var config: {[key: string]: PipeProvider} = {};
|
||||
providers.forEach(b => config[b.name] = b);
|
||||
return new ProtoPipes(config);
|
||||
}
|
||||
|
||||
@@ -23,14 +23,14 @@ export class ProtoPipes {
|
||||
/**
|
||||
* Map of {@link PipeMetadata} names to {@link PipeMetadata} implementations.
|
||||
*/
|
||||
public config: {[key: string]: PipeBinding}) {
|
||||
public config: {[key: string]: PipeProvider}) {
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
get(name: string): PipeBinding {
|
||||
var binding = this.config[name];
|
||||
if (isBlank(binding)) throw new BaseException(`Cannot find pipe '${name}'.`);
|
||||
return binding;
|
||||
get(name: string): PipeProvider {
|
||||
var provider = this.config[name];
|
||||
if (isBlank(provider)) throw new BaseException(`Cannot find pipe '${name}'.`);
|
||||
return provider;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user