UNPKG

@compas/code-gen

Version:

Generate various boring parts of your server

46 lines (39 loc) 1.22 kB
import { AppError } from "@compas/stdlib"; import { TypeBuilder } from "./TypeBuilder.js"; export class AnyType extends TypeBuilder { static baseData = { validator: { allowNull: false, }, }; constructor(group, name) { super("any", group, name); this.data = { ...this.data, ...AnyType.getBaseData(), }; } /** * Add specific implementations for each supported target. Not all targets are * required. The targets are resolved based on the most specific target first (e.g. * 'jsAxios' before 'js'). * * @param {import("../generated/common/types.js").StructureAnyDefinition["targets"]} targets * @returns {AnyType} */ implementations(targets) { this.data.targets = targets; if ( targets?.tsAxiosBrowser?.validatorExpression || targets?.tsAxiosReactNative?.validatorExpression || targets?.tsFetchBrowser?.validatorExpression || targets?.tsFetchReactNative?.validatorExpression ) { throw AppError.serverError({ message: "Can't have custom 'validatorExpression' for 'tsAxiosBrowser', 'tsAxiosReactNative', 'tsFetchBrowser' and 'tsFetchReactNative'.", }); } return this; } }