@cran/gql.jm
Version:
Cran/GraphQL Join Monster Utilities
27 lines (26 loc) • 1.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.withSqlResolverRaw = void 0;
const gql_core_1 = require("@cran/gql.core");
function withSqlResolverRaw(name = "sqlResolverRaw") {
return (0, gql_core_1.createDirective)(name, {
query: "text!",
field: "text",
value: "text",
}, {
[gql_core_1.MapperKind.COMPOSITE_FIELD]([directive,], field) {
field.resolve = async function resolver(source, args, context, info) {
const sql = new gql_core_1.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 gql_core_1.Executable("sqlResolverRawValue", directive.value)(result, args, context, info) : result;
};
},
});
}
exports.withSqlResolverRaw = withSqlResolverRaw;