UNPKG

relay-utils

Version:

Utilities for working with Relay (modern) in general, and the Relay store in particular.

53 lines (49 loc) 1.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createMissingFieldsHandler = createMissingFieldsHandler; /** * A small abstraction over the missingFieldHandlers prop on Environment. * Lets your set up own strategies for resolving missing fields in responses. */ function processHandlers(handlers, field, record, args, store) { for (var i = 0; i <= handlers.length - 1; i += 1) { var handledVal = handlers[i]({ name: field.name, alias: field.alias, fieldArgs: field.args || null, args: args, ownerTypename: record && record.__typename && typeof record.__typename === 'string' ? record.__typename : null, owner: record, store: store }); if (typeof handledVal !== 'undefined') { return handledVal; } } } function createMissingFieldsHandler(config) { return [{ kind: 'scalar', handle: function handle(field, record, args, store) { if (config.handleScalarField) { return processHandlers(config.handleScalarField, field, record, args, store); } } }, { kind: 'linked', handle: function handle(field, record, args, store) { if (config.handleLinkedField) { return processHandlers(config.handleLinkedField, field, record, args, store); } } }, { kind: 'pluralLinked', handle: function handle(field, record, args, store) { if (config.handlePluralLinkedField) { return processHandlers(config.handlePluralLinkedField, field, record, args, store); } } }]; }