UNPKG

@cran/gql.jm

Version:

Cran/GraphQL Join Monster Utilities

28 lines (27 loc) 1.05 kB
import { Executable, getExtension } from "@cran/gql.core"; function extendJunctionInclude(includes) { return function include(args, context) { return Object.fromEntries(includes.map(function mapIncludes([field, { sqlColumn, sqlDeps, sqlExpr, },]) { return [field, { sqlColumn, sqlDeps, sqlExpr: sqlExpr instanceof Function ? sqlExpr(args, context) : undefined, },]; })); }; } export function extendJunction(field, args) { // eslint-disable-next-line no-return-assign return Object.assign(getExtension(field, "joinMonster", {}).junction = { sqlTable: new Executable("sqlTable", args.name), }, { include: extendJunctionInclude(getExtension(field, "joinMonsterIncludes", [])), where: args.where ? new Executable("where", args.where) : undefined, orderBy: args.order ? new Executable("orderBy", args.order) : undefined, }); }