UNPKG

@cran/gql.jm

Version:

Cran/GraphQL Join Monster Utilities

24 lines (23 loc) 850 B
import { markComposite } from "./withSqlComposite"; import { MapperKind, createDirective, getExtension } from "@cran/gql.core"; export function withSqlTable(name = "sqlTable") { return createDirective(name, { name: "text!", key: "[text!]", fetch: "[text!]", }, { [MapperKind.COMPOSITE_TYPE]([directive,], composite) { Object.assign(getExtension(composite, "joinMonster", {}), { sqlTable: directive.name, uniqueKey: directive.key || "id", alwaysFetch: directive.fetch, }); if ("getFields" in composite) { const fields = composite.getFields(); for (const fieldName in fields) { markComposite(fields[fieldName], fieldName); } } }, }); }