UNPKG

@omnigraph/odata

Version:
30 lines (29 loc) 1.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createUnboundActionResolver = createUnboundActionResolver; const tslib_1 = require("tslib"); const url_join_1 = tslib_1.__importDefault(require("url-join")); const fetch_1 = require("@whatwg-node/fetch"); const promise_helpers_1 = require("@whatwg-node/promise-helpers"); const getUrlString_js_1 = require("../utils/getUrlString.js"); const handleResponseText_js_1 = require("../utils/handleResponseText.js"); function createUnboundActionResolver({ actionName, dataloaderFactory, headersFactory, endpoint, }) { return function unboundActionResolver(root, args, context, info) { const url = new URL(endpoint); url.href = (0, url_join_1.default)(url.href, '/' + actionName); const urlString = (0, getUrlString_js_1.getUrlString)(url); const method = 'POST'; const request = new fetch_1.Request(urlString, { method, headers: headersFactory({ root, args, context, info, env: process.env, }, method), body: JSON.stringify(args), }); return (0, promise_helpers_1.handleMaybePromise)(() => dataloaderFactory(context).load(request), response => (0, promise_helpers_1.handleMaybePromise)(() => response.text(), responseText => (0, handleResponseText_js_1.handleResponseText)(responseText, urlString, info))); }; }