UNPKG

hypertune

Version:

[Hypertune](https://www.hypertune.com/) is the most flexible platform for feature flags, A/B testing, analytics and app configuration. Built with full end-to-end type-safety, Git-style version control and local, synchronous, in-memory flag evaluation. Opt

48 lines 2.08 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = mergeFieldQueryAndArgs; const getInlineFragment_1 = __importDefault(require("../shared/helpers/getInlineFragment")); function mergeFieldQueryAndArgs(fragmentDefinitions, query, queryArgs, unwrapObjectArgs = false) { if (!query) { return null; } return Object.fromEntries(Object.entries(query).map(([objectTypeName, fragment]) => { const objectArgs = unwrapObjectArgs ? queryArgs && queryArgs[objectTypeName] && queryArgs[objectTypeName] instanceof Object ? queryArgs[objectTypeName] : null : queryArgs; const inlineFragment = (0, getInlineFragment_1.default)(fragmentDefinitions, fragment); return [ objectTypeName, { type: "InlineFragment", objectTypeName, selection: Object.fromEntries(Object.entries(inlineFragment.selection).map(([fieldName, { fieldQuery }]) => { const fieldArgs = objectArgs && objectArgs[fieldName] && objectArgs[fieldName] instanceof Object ? objectArgs[fieldName] : null; return [ fieldName, { fieldArguments: Object.assign({}, (fieldArgs && fieldArgs.args ? fieldArgs.args : {})), fieldQuery: fieldQuery ? mergeFieldQueryAndArgs(fragmentDefinitions, fieldQuery, fieldArgs, true) : null, }, ]; })), }, ]; })); } //# sourceMappingURL=mergeFieldQueryAndArgs.js.map