UNPKG

@typespec/compiler

Version:

TypeSpec Compiler Preview

51 lines 1.64 kB
import { Numeric } from "../../core/numeric.js"; import { defineKit } from "../define-kit.js"; defineKit({ literal: { create(value) { if (typeof value === "string") { return this.literal.createString(value); } else if (typeof value === "number") { return this.literal.createNumeric(value); } else { return this.literal.createBoolean(value); } }, createString(value) { return this.program.checker.createType({ kind: "String", value, }); }, createNumeric(value) { const valueAsString = String(value); return this.program.checker.createType({ kind: "Number", value, valueAsString, numericValue: Numeric(valueAsString), }); }, createBoolean(value) { return this.program.checker.createType({ kind: "Boolean", value, }); }, isBoolean(type) { return type.entityKind === "Type" && type.kind === "Boolean"; }, isString(type) { return type.entityKind === "Type" && type.kind === "String"; }, isNumeric(type) { return type.entityKind === "Type" && type.kind === "Number"; }, is(type) { return (this.literal.isBoolean(type) || this.literal.isNumeric(type) || this.literal.isString(type)); }, }, }); //# sourceMappingURL=literal.js.map