UNPKG

@cran/gql.jm

Version:

Cran/GraphQL Join Monster Utilities

23 lines (22 loc) 974 B
import { Executable, MapperKind, createDirective } from "@cran/gql.core"; export function withSqlResolverRaw(name = "sqlResolverRaw") { return createDirective(name, { query: "text!", field: "text", value: "text", }, { [MapperKind.COMPOSITE_FIELD]([directive,], field) { field.resolve = async function resolver(source, args, context, info) { const sql = new Executable("sqlResolverRawQuery", directive.query)(source, args, context, info); if (context.ctx?.queries) { context.ctx.queries.push(sql); } const { rows, } = await context.query(sql); const result = directive.field ? rows[0]?.[directive.field] : rows; return directive.value ? new Executable("sqlResolverRawValue", directive.value)(result, args, context, info) : result; }; }, }); }