import {generate, LineArg} from "./generator"; export function generateCheckMaybe (name : string, generated : boolean|undefined) { generate({ checkName : name, generated : generated, imports : [ { alias : "NullOrUndefinedCheck", path : "../sync/check/generic/null-or-undefined" }, { alias : "check", path : generated ? `../generated/sync/check/${name}` : `../sync/check/${name}` } ], writeDirectory : "sync/check/maybe", lineCallback : (args : LineArg) : string[] => { const resultLines : string[] = []; resultLines.push(`export type Maybe${args.functionName}ErrorCodeType = ${args.functionRet.replace("undefined|", "").replace("|undefined", "")};`); resultLines.push(`export function checkMaybe${args.functionName}${args.genericArg} (${args.functionArg.trim()}) : undefined|Maybe${args.functionName}ErrorCodeType {`); resultLines.push(` return NullOrUndefinedCheck.checkNullOrUndefinedOr(`); resultLines.push(` mixed,`); if (args.functionArgNames.length == 1) { resultLines.push(` check.check${args.functionName}`); } else { resultLines.push(` () => {`); resultLines.push(` return check.check${args.functionName}(${args.functionArgNames.join(", ")})`); resultLines.push(` }`); } resultLines.push(` );`); resultLines.push(`}`); return resultLines; }, }) }