@typespec/compiler
Version:
TypeSpec Compiler Preview
51 lines • 1.64 kB
JavaScript
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