Skip to content

Commit 18d0b3b

Browse files
committed
add isTSEnum() method. not used yet.
1 parent 2a6780d commit 18d0b3b

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

src/Metadata.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,13 @@ export function getNormalizedType(type: DefinitionType): DefinitionType {
3030
: type;
3131
}
3232

33+
// TODO: see test: "should support TypeScript enums"
34+
function isTSEnum(_enum: any) {
35+
const keys = Object.keys(_enum);
36+
const numericFields = keys.filter(k => /\d+/.test(k));
37+
return (numericFields.length === (keys.length / 2) && _enum[_enum[numericFields[0]]] == numericFields[0]);
38+
}
39+
3340
export const Metadata = {
3441

3542
addField(metadata: any, index: number, name: string, type: DefinitionType, descriptor?: PropertyDescriptor) {

test/Schema.test.ts

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -366,16 +366,10 @@ describe("Type: Schema", () => {
366366
state.players.set("alice", new Player().assign({ items: new SetSchema<Item>([Item.SWORD, Item.SHIELD]) }));
367367
state.players.set("bob", new Player().assign({ items: new SetSchema<Item>([Item.BOW, Item.POTION]) }));
368368

369-
const decoded = new State();
370-
decoded.decode(state.encodeAll());
371-
decoded.decode(state.encode());
372-
373-
assert.strictEqual(2, decoded.players.size);
374-
state.players.delete("bob")
375-
376-
decoded.decode(state.encode());
369+
const decodedState = new State();
370+
decodedState.decode(state.encode());
377371

378-
assert.strictEqual(1, decoded.players.size);
372+
assert.strictEqual(2, decodedState.players.size);
379373
assertDeepStrictEqualEncodeAll(state);
380374
});
381375
});

0 commit comments

Comments
 (0)