UNPKG

haystack-codegen

Version:

Project Haystack Core code generation tools

34 lines (33 loc) 1.03 kB
"use strict"; /* * Copyright (c) 2021, J2 Innovations. All Rights Reserved */ Object.defineProperty(exports, "__esModule", { value: true }); exports.TypeGuardNode = void 0; const util_1 = require("../nodes/util"); /** * Generates a type guard for a type. */ class TypeGuardNode { def; name; newLines = 1; types = ['HNamespace']; constructor(def, name) { this.def = def; this.name = name; } generateCode(out) { out('/**'); out(` * Returns true if the value is a ${this.def}.`); out(' *'); out(' * @param value The value to test.'); out(' * @param namespace The namespace to validate against.'); out(' * @returns true if the value matches.'); out(' */'); out(`export function is${(0, util_1.capitalizeFirstChar)(this.def)}(value: unknown, namespace: HNamespace): value is ${this.name} {`); out(` return namespace.isValid('${this.def}', value)`); out('}'); } } exports.TypeGuardNode = TypeGuardNode;