import {ParsedType} from "./ParsedType"; import {TypeOperator} from "./TypeOperator"; import {TypeEnum} from "./TypeEnum"; describe("ParsedType", () => { it("should define type definition structure", () => { const a: ParsedType = { _type: TypeEnum.ANY, }; const b: ParsedType = { _type: TypeEnum.STRING_LITERAL_TYPE, value: "string" }; const c: ParsedType = { _type: TypeEnum.NUMBER_LITERAL_TYPE, value: 4 }; const d: ParsedType = { _type: TypeEnum.IDENTIFIER_TYPE, name: "Syncer" }; const e: ParsedType = { _type: TypeEnum.NAMESPACE_IDENTIFIER_TYPE, namespace: "core", name: "Syncer" }; const f: ParsedType = { _type: TypeEnum.OBJECT_TYPE, items: [ { _type: TypeEnum.OBJECT_TYPE_ITEM, key: { _type: TypeEnum.STRING_LITERAL_TYPE, value: "foo" }, value: { _type: TypeEnum.NUMBER_LITERAL_TYPE, value: 2 } } ] }; const g: ParsedType = { _type: TypeEnum.ARRAY_TYPE, item: { _type: TypeEnum.STRING } }; const h: ParsedType = { _type: TypeEnum.TUPLE_TYPE, items: [ { _type: TypeEnum.STRING }, { _type: TypeEnum.BOOLEAN } ] }; const z: ParsedType = { _type: TypeEnum.TYPE_EXPRESSION, operator: TypeOperator.OR, operands: [{ _type: TypeEnum.STRING_LITERAL_TYPE, value: "foo" }, { _type: TypeEnum.STRING_LITERAL_TYPE, value: "bar" }] }; }); });