UNPKG

@compas/code-gen

Version:

Generate various boring parts of your server

40 lines (35 loc) 1.25 kB
import { AnyType } from "../../builders/index.js"; import { structureNamedTypes } from "./structure.js"; /** * Get a list of query enabled objects in the structure. * * @param {import("../generate").GenerateContext} generateContext * @returns {(import("../types").NamedType<import("../generated/common/types").ExperimentalObjectDefinition>)[]} */ export function structureModels(generateContext) { /** * @type {(import("../types").NamedType<import("../generated/common/types").ExperimentalObjectDefinition>)[]} */ const result = []; for (const namedType of structureNamedTypes(generateContext.structure)) { if (namedType.type === "object" && namedType.enableQueries) { result.push(namedType); } } return result; } /** * Return a new generic any type for custom query parts * * @returns {import("../../builders/AnyType").AnyType} */ export function modelQueryPartType() { return new AnyType().implementations({ jsPostgres: { validatorImport: `import { isQueryPart } from "@compas/store";`, validatorExpression: `isQueryPart($value$)`, validatorInputType: `(any|import("@compas/store").QueryPart<any>)`, validatorOutputType: `import("@compas/store").QueryPart<any>`, }, }); }