chore(ts2dart): replace List with Array

Closes #3514
This commit is contained in:
Misko Hevery
2015-08-28 11:29:19 -07:00
committed by Miško Hevery
parent 4415855683
commit e916836261
204 changed files with 815 additions and 947 deletions

View File

@ -8,7 +8,7 @@ import {
stringify,
isArray
} from 'angular2/src/core/facade/lang';
import {List, MapWrapper, ListWrapper} from 'angular2/src/core/facade/collection';
import {MapWrapper, ListWrapper} from 'angular2/src/core/facade/collection';
import {reflector} from 'angular2/src/core/reflection/reflection';
import {Key} from './key';
import {
@ -28,7 +28,7 @@ import {resolveForwardRef} from './forward_ref';
*/
export class Dependency {
constructor(public key: Key, public optional: boolean, public lowerBoundVisibility: any,
public upperBoundVisibility: any, public properties: List<any>) {}
public upperBoundVisibility: any, public properties: any[]) {}
static fromKey(key: Key): Dependency { return new Dependency(key, false, null, null, []); }
}
@ -174,12 +174,12 @@ export class Binding {
* expect(injector.get(String)).toEqual('Value: 3');
* ```
*/
dependencies: List<any>;
dependencies: any[];
constructor(
token,
{toClass, toValue, toAlias, toFactory, deps}:
{toClass?: Type, toValue?: any, toAlias?: any, toFactory?: Function, deps?: List<any>}) {
{toClass?: Type, toValue?: any, toAlias?: any, toFactory?: Function, deps?: any[]}) {
this.token = token;
this.toClass = toClass;
this.toValue = toValue;
@ -238,7 +238,7 @@ export class ResolvedBinding {
/**
* Arguments (dependencies) to the `factory` function.
*/
public dependencies: List<Dependency>) {}
public dependencies: Dependency[]) {}
}
/**
@ -365,32 +365,30 @@ export class BindingBuilder {
* expect(injector.get(String)).toEqual('Value: 3');
* ```
*/
toFactory(factoryFunction: Function, dependencies?: List<any>): Binding {
toFactory(factoryFunction: Function, dependencies?: any[]): Binding {
return new Binding(this.token, {toFactory: factoryFunction, deps: dependencies});
}
}
function _constructDependencies(factoryFunction: Function, dependencies: List<any>):
List<Dependency> {
function _constructDependencies(factoryFunction: Function, dependencies: any[]): Dependency[] {
if (isBlank(dependencies)) {
return _dependenciesFor(factoryFunction);
} else {
var params: List<List<any>> = ListWrapper.map(dependencies, (t) => [t]);
var params: any[][] = ListWrapper.map(dependencies, (t) => [t]);
return ListWrapper.map(dependencies, (t) => _extractToken(factoryFunction, t, params));
}
}
function _dependenciesFor(typeOrFunc): List<Dependency> {
function _dependenciesFor(typeOrFunc): Dependency[] {
var params = reflector.parameters(typeOrFunc);
if (isBlank(params)) return [];
if (ListWrapper.any(params, (p) => isBlank(p))) {
throw new NoAnnotationError(typeOrFunc, params);
}
return ListWrapper.map(params, (p: List<any>) => _extractToken(typeOrFunc, p, params));
return ListWrapper.map(params, (p: any[]) => _extractToken(typeOrFunc, p, params));
}
function _extractToken(typeOrFunc, metadata /*List<any> | any*/, params: List<List<any>>):
Dependency {
function _extractToken(typeOrFunc, metadata /*any[] | any*/, params: any[][]): Dependency {
var depProps = [];
var token = null;
var optional = false;

View File

@ -1,9 +1,9 @@
import {ListWrapper, List} from 'angular2/src/core/facade/collection';
import {ListWrapper} from 'angular2/src/core/facade/collection';
import {stringify, BaseException, isBlank} from 'angular2/src/core/facade/lang';
import {Key} from './key';
import {Injector} from './injector';
function findFirstClosedCycle(keys: List<any>): List<any> {
function findFirstClosedCycle(keys: any[]): any[] {
var res = [];
for (var i = 0; i < keys.length; ++i) {
if (ListWrapper.contains(res, keys[i])) {
@ -16,7 +16,7 @@ function findFirstClosedCycle(keys: List<any>): List<any> {
return res;
}
function constructResolvingPath(keys: List<any>): string {
function constructResolvingPath(keys: any[]): string {
if (keys.length > 1) {
var reversed = findFirstClosedCycle(ListWrapper.reversed(keys));
var tokenStrs = ListWrapper.map(reversed, (k) => stringify(k.token));
@ -33,8 +33,8 @@ function constructResolvingPath(keys: List<any>): string {
export class AbstractBindingError extends BaseException {
name: string;
message: string;
keys: List<Key>;
injectors: List<Injector>;
keys: Key[];
injectors: Injector[];
constructResolvingMessage: Function;
constructor(injector: Injector, key: Key, constructResolvingMessage: Function, originalException?,
@ -63,7 +63,7 @@ export class AbstractBindingError extends BaseException {
*/
export class NoBindingError extends AbstractBindingError {
constructor(injector: Injector, key: Key) {
super(injector, key, function(keys: List<any>) {
super(injector, key, function(keys: any[]) {
var first = stringify(ListWrapper.first(keys).token);
return `No provider for ${first}!${constructResolvingPath(keys)}`;
});
@ -88,7 +88,7 @@ export class NoBindingError extends AbstractBindingError {
*/
export class CyclicDependencyError extends AbstractBindingError {
constructor(injector: Injector, key: Key) {
super(injector, key, function(keys: List<any>) {
super(injector, key, function(keys: any[]) {
return `Cannot instantiate cyclic dependency!${constructResolvingPath(keys)}`;
});
}
@ -103,7 +103,7 @@ export class CyclicDependencyError extends AbstractBindingError {
export class InstantiationError extends AbstractBindingError {
causeKey: Key;
constructor(injector: Injector, originalException, originalStack, key: Key) {
super(injector, key, function(keys: List<any>) {
super(injector, key, function(keys: any[]) {
var first = stringify(ListWrapper.first(keys).token);
return `Error during instantiation of ${first}!${constructResolvingPath(keys)}.`;
}, originalException, originalStack);
@ -136,7 +136,7 @@ export class InvalidBindingError extends BaseException {
export class NoAnnotationError extends BaseException {
name: string;
message: string;
constructor(typeOrFunc, params: List<List<any>>) {
constructor(typeOrFunc, params: any[][]) {
super();
var signature = [];
for (var i = 0, ii = params.length; i < ii; i++) {

View File

@ -1,4 +1,4 @@
import {Map, List, MapWrapper, ListWrapper} from 'angular2/src/core/facade/collection';
import {Map, MapWrapper, ListWrapper} from 'angular2/src/core/facade/collection';
import {ResolvedBinding, Binding, Dependency, BindingBuilder, bind} from './binding';
import {
AbstractBindingError,
@ -427,7 +427,7 @@ export class Injector {
*such as
* `fromResolvedBindings` and `createChildFromResolved`.
*/
static resolve(bindings: List<Type | Binding | List<any>>): List<ResolvedBinding> {
static resolve(bindings: Array<Type | Binding | any[]>): ResolvedBinding[] {
var resolvedBindings = _resolveBindings(bindings);
var flatten = _flattenBindings(resolvedBindings, new Map());
return _createListOfBindings(flatten);
@ -446,7 +446,7 @@ export class Injector {
* bindings.
* @param `depProvider`
*/
static resolveAndCreate(bindings: List<Type | Binding | List<any>>,
static resolveAndCreate(bindings: Array<Type | Binding | any[]>,
depProvider: DependencyProvider = null): Injector {
var resolvedBindings = Injector.resolve(bindings);
return Injector.fromResolvedBindings(resolvedBindings, depProvider);
@ -460,7 +460,7 @@ export class Injector {
* {@link Injector}.
* @param `depProvider`
*/
static fromResolvedBindings(bindings: List<ResolvedBinding>,
static fromResolvedBindings(bindings: ResolvedBinding[],
depProvider: DependencyProvider = null): Injector {
var bd = bindings.map(b => new BindingWithVisibility(b, Visibility.Public));
var proto = new ProtoInjector(bd);
@ -537,7 +537,7 @@ export class Injector {
* recursive list of more bindings.
* @param `depProvider`
*/
resolveAndCreateChild(bindings: List<Type | Binding | List<any>>,
resolveAndCreateChild(bindings: Array<Type | Binding | any[]>,
depProvider: DependencyProvider = null): Injector {
var resovledBindings = Injector.resolve(bindings);
return this.createChildFromResolved(resovledBindings, depProvider);
@ -551,7 +551,7 @@ export class Injector {
* @param `depProvider`
* @returns a new child {@link Injector}.
*/
createChildFromResolved(bindings: List<ResolvedBinding>,
createChildFromResolved(bindings: ResolvedBinding[],
depProvider: DependencyProvider = null): Injector {
var bd = bindings.map(b => new BindingWithVisibility(b, Visibility.Public));
var proto = new ProtoInjector(bd);
@ -801,7 +801,7 @@ export class Injector {
var INJECTOR_KEY = Key.get(Injector);
function _resolveBindings(bindings: List<Type | Binding | List<any>>): List<ResolvedBinding> {
function _resolveBindings(bindings: Array<Type | Binding | any[]>): ResolvedBinding[] {
var resolvedList = ListWrapper.createFixedSize(bindings.length);
for (var i = 0; i < bindings.length; i++) {
var unresolved = resolveForwardRef(bindings[i]);
@ -812,7 +812,7 @@ function _resolveBindings(bindings: List<Type | Binding | List<any>>): List<Reso
resolved = bind(unresolved).toClass(unresolved).resolve();
} else if (unresolved instanceof Binding) {
resolved = unresolved.resolve();
} else if (unresolved instanceof List) {
} else if (unresolved instanceof Array) {
resolved = _resolveBindings(unresolved);
} else if (unresolved instanceof BindingBuilder) {
throw new InvalidBindingError(unresolved.token);
@ -824,17 +824,16 @@ function _resolveBindings(bindings: List<Type | Binding | List<any>>): List<Reso
return resolvedList;
}
function _createListOfBindings(flattenedBindings: Map<number, ResolvedBinding>):
List<ResolvedBinding> {
function _createListOfBindings(flattenedBindings: Map<number, ResolvedBinding>): ResolvedBinding[] {
return MapWrapper.values(flattenedBindings);
}
function _flattenBindings(bindings: List<ResolvedBinding | List<any>>,
function _flattenBindings(bindings: Array<ResolvedBinding | any[]>,
res: Map<number, ResolvedBinding>): Map<number, ResolvedBinding> {
ListWrapper.forEach(bindings, function(b) {
if (b instanceof ResolvedBinding) {
res.set(b.key.id, b);
} else if (b instanceof List) {
} else if (b instanceof Array) {
_flattenBindings(b, res);
}
});