// warning! This code was generated by @b08/razor // manual changes to this file will be overwritten next time the code is regenerated. import { Generator, GeneratorOptions } from "@b08/generator"; import { IdConstructorModel } from "../types"; function generateContent(type: IdConstructorModel, gen: Generator): Generator { gen = gen.append(`// methods for `); gen = gen.append((type.name).toString()); gen = gen.eol(); gen = gen.append(`export function `); gen = gen.append((type.constructorName).toString()); gen = gen.append(`(`); gen = gen.append((type.fieldName).toString()); gen = gen.append(`: `); gen = gen.append((type.fieldType).toString()); gen = gen.append(`): `); gen = gen.append((type.name).toString()); gen = gen.append(` {`); gen = gen.eol(); gen = gen.append(` return `); gen = gen.append((type.fieldName).toString()); gen = gen.append(` == null ? null : { `); gen = gen.append((type.fieldName).toString()); gen = gen.append(` };`); gen = gen.eol(); gen = gen.append(`}`); gen = gen.eol(); gen = gen.eol(); gen = gen.append(`export function is`); gen = gen.append((type.name).toString()); gen = gen.append(`(obj: any): obj is `); gen = gen.append((type.name).toString()); gen = gen.append(` {`); gen = gen.eol(); gen = gen.append(` return obj !== null && typeof obj === `); gen = gen.quote(); gen = gen.append(`object`); gen = gen.quote(); gen = gen.append(` && `); gen = gen.quote(); gen = gen.append((type.fieldName).toString()); gen = gen.quote(); gen = gen.append(` in obj;`); gen = gen.eol(); gen = gen.append(`}`); gen = gen.eol(); gen = gen.eol(); gen = gen.append(`export function `); gen = gen.append((type.constructorName).toString()); gen = gen.append(`Equals(id1: `); gen = gen.append((type.name).toString()); gen = gen.append(`, id2: `); gen = gen.append((type.name).toString()); gen = gen.append(`): boolean {`); gen = gen.eol(); gen = gen.append(` return (id1 && id1.`); gen = gen.append((type.fieldName).toString()); gen = gen.append(`) === (id2 && id2.`); gen = gen.append((type.fieldName).toString()); gen = gen.append(`);`); gen = gen.eol(); gen = gen.append(`}`); gen = gen.eol(); return gen; } function generate(type: IdConstructorModel, options: GeneratorOptions): string { return generateContent(type, new Generator(options)).toString(); } export const idMethods = { generate, generateContent };