chore(facade): add enum index lookup support
This commit is contained in:
parent
8e3e45097a
commit
b691da26af
@ -54,6 +54,11 @@ dynamic deserializeEnum(num val, Map<num, dynamic> values) {
|
|||||||
return values[val];
|
return values[val];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String resolveEnumToken(enumValue, val) {
|
||||||
|
// turn Enum.Token -> Token
|
||||||
|
return val.toString().replaceFirst(new RegExp('^.+\\.'),'');
|
||||||
|
}
|
||||||
|
|
||||||
class StringWrapper {
|
class StringWrapper {
|
||||||
static String fromCharCode(int code) {
|
static String fromCharCode(int code) {
|
||||||
return new String.fromCharCode(code);
|
return new String.fromCharCode(code);
|
||||||
|
@ -195,6 +195,10 @@ export function deserializeEnum(val, values: Map<number, any>): any {
|
|||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function resolveEnumToken(enumValue, val): string {
|
||||||
|
return enumValue[val];
|
||||||
|
}
|
||||||
|
|
||||||
export class StringWrapper {
|
export class StringWrapper {
|
||||||
static fromCharCode(code: number): string { return String.fromCharCode(code); }
|
static fromCharCode(code: number): string { return String.fromCharCode(code); }
|
||||||
|
|
||||||
@ -468,4 +472,4 @@ export function isPrimitive(obj: any): boolean {
|
|||||||
|
|
||||||
export function hasConstructor(value: Object, type: Type): boolean {
|
export function hasConstructor(value: Object, type: Type): boolean {
|
||||||
return value.constructor === type;
|
return value.constructor === type;
|
||||||
}
|
}
|
||||||
|
@ -5,9 +5,15 @@ import {
|
|||||||
RegExpMatcherWrapper,
|
RegExpMatcherWrapper,
|
||||||
StringWrapper,
|
StringWrapper,
|
||||||
CONST_EXPR,
|
CONST_EXPR,
|
||||||
hasConstructor
|
hasConstructor,
|
||||||
|
resolveEnumToken
|
||||||
} from 'angular2/src/facade/lang';
|
} from 'angular2/src/facade/lang';
|
||||||
|
|
||||||
|
enum UsefulEnum {
|
||||||
|
MyToken,
|
||||||
|
MyOtherToken
|
||||||
|
}
|
||||||
|
|
||||||
class MySuperclass {}
|
class MySuperclass {}
|
||||||
class MySubclass extends MySuperclass {}
|
class MySubclass extends MySuperclass {}
|
||||||
|
|
||||||
@ -124,6 +130,16 @@ export function main() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('resolveEnumToken', () => {
|
||||||
|
it("should resolve a token given an enum and index values", () => {
|
||||||
|
var token = UsefulEnum.MyToken;
|
||||||
|
expect(resolveEnumToken(UsefulEnum, token)).toEqual('MyToken');
|
||||||
|
|
||||||
|
token = UsefulEnum.MyOtherToken;
|
||||||
|
expect(resolveEnumToken(UsefulEnum, token)).toEqual('MyOtherToken');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe('hasConstructor', () => {
|
describe('hasConstructor', () => {
|
||||||
it("should be true when the type matches",
|
it("should be true when the type matches",
|
||||||
() => { expect(hasConstructor(new MySuperclass(), MySuperclass)).toEqual(true); });
|
() => { expect(hasConstructor(new MySuperclass(), MySuperclass)).toEqual(true); });
|
||||||
|
Loading…
x
Reference in New Issue
Block a user