This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
admin-panel/graphql-types/node_modules/graphql-request/dist/createRequestBody.js

42 lines
1.6 KiB
JavaScript

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var extract_files_1 = require("extract-files");
var form_data_1 = __importDefault(require("form-data"));
/**
* Duck type if NodeJS stream
* https://github.com/sindresorhus/is-stream/blob/3750505b0727f6df54324784fe369365ef78841e/index.js#L3
*/
var isExtractableFileEnhanced = function (value) {
return extract_files_1.isExtractableFile(value) ||
(value !== null && typeof value === 'object' && typeof value.pipe === 'function');
};
/**
* Returns Multipart Form if body contains files
* (https://github.com/jaydenseric/graphql-multipart-request-spec)
* Otherwise returns JSON
*/
function createRequestBody(query, variables) {
var _a = extract_files_1.extractFiles({ query: query, variables: variables }, '', isExtractableFileEnhanced), clone = _a.clone, files = _a.files;
if (files.size === 0) {
return JSON.stringify(clone);
}
var Form = typeof FormData === 'undefined' ? form_data_1.default : FormData;
var form = new Form();
form.append('operations', JSON.stringify(clone));
var map = {};
var i = 0;
files.forEach(function (paths) {
map[++i] = paths;
});
form.append('map', JSON.stringify(map));
i = 0;
files.forEach(function (paths, file) {
form.append("" + ++i, file);
});
return form;
}
exports.default = createRequestBody;
//# sourceMappingURL=createRequestBody.js.map