A helper to generate different guard clauses.
const typeCheckAst = genertateTypeCheck("string")({ name: "ponies" });
Generated Code:
if (typeof ponies !== "string") {
throw new Error(
"ponies should be a string, but got " + ponies + "(" + typeof ponies + ")"
);
}
const typeCheckAst = generateTypeCheck("number", { selector: "x" })({
name: "point"
});
Generated Code:
if (typeof point.x !== "number") {
throw new Error(
"point.x should be a number, but got " +
point.x +
"(" +
typeof point.x +
")"
);
}
const typeCheckAst = generateIsOneOfCheck(["option1", "option2"])({
name: "argName"
});
Generated Code:
if (!["option1", "option2"].some(x => x === argName)) {
return new Error(
"argName should be one of ['option1', 'option2'], but got " + argName
);
}