Files
30-seconds-of-code/node_modules/@gatsbyjs/relay-compiler/lib/RelayIRTransforms.js
2019-08-20 15:52:05 +02:00

77 lines
3.8 KiB
JavaScript

/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* strict-local
* @format
*/
'use strict';
var FilterDirectivesTransform = require("./FilterDirectivesTransform");
var FlattenTransform = require("./FlattenTransform");
var InlineFragmentsTransform = require("./InlineFragmentsTransform");
var RefineOperationVariablesTransform = require("./RefineOperationVariablesTransform");
var RelayApplyFragmentArgumentTransform = require("./RelayApplyFragmentArgumentTransform");
var RelayConnectionTransform = require("./RelayConnectionTransform");
var RelayDeferStreamTransform = require("./RelayDeferStreamTransform");
var RelayFieldHandleTransform = require("./RelayFieldHandleTransform");
var RelayGenerateIDFieldTransform = require("./RelayGenerateIDFieldTransform");
var RelayGenerateTypeNameTransform = require("./RelayGenerateTypeNameTransform");
var RelayMaskTransform = require("./RelayMaskTransform");
var RelayMatchTransform = require("./RelayMatchTransform");
var RelayRefetchableFragmentTransform = require("./RelayRefetchableFragmentTransform");
var RelayRelayDirectiveTransform = require("./RelayRelayDirectiveTransform");
var RelaySkipHandleFieldTransform = require("./RelaySkipHandleFieldTransform");
var RelaySplitMatchTransform = require("./RelaySplitMatchTransform");
var RelayViewerHandleTransform = require("./RelayViewerHandleTransform");
var SkipClientFieldTransform = require("./SkipClientFieldTransform");
var SkipRedundantNodesTransform = require("./SkipRedundantNodesTransform");
var SkipUnreachableNodeTransform = require("./SkipUnreachableNodeTransform");
// Transforms applied to the code used to process a query response.
var relaySchemaExtensions = [RelayConnectionTransform.SCHEMA_EXTENSION, RelayMatchTransform.SCHEMA_EXTENSION, RelayRelayDirectiveTransform.SCHEMA_EXTENSION, RelayRefetchableFragmentTransform.SCHEMA_EXTENSION]; // Transforms applied to both operations and fragments for both reading and
// writing from the store.
var relayCommonTransforms = [RelayConnectionTransform.transform, RelayViewerHandleTransform.transform, RelayRelayDirectiveTransform.transform, RelayMaskTransform.transform, RelayMatchTransform.transform, RelayRefetchableFragmentTransform.transform]; // Transforms applied to fragments used for reading data from a store
var relayFragmentTransforms = [RelayFieldHandleTransform.transform, FlattenTransform.transformWithOptions({
flattenAbstractTypes: true
}), SkipRedundantNodesTransform.transform]; // Transforms applied to queries/mutations/subscriptions that are used for
// fetching data from the server and parsing those responses.
var relayQueryTransforms = [RelayApplyFragmentArgumentTransform.transform, SkipClientFieldTransform.transform, SkipUnreachableNodeTransform.transform, RelayGenerateIDFieldTransform.transform]; // Transforms applied to the code used to process a query response.
var relayCodegenTransforms = [RelaySplitMatchTransform.transform, RelayDeferStreamTransform.transform, InlineFragmentsTransform.transform, FlattenTransform.transformWithOptions({
flattenAbstractTypes: true
}), SkipRedundantNodesTransform.transform, RelayGenerateTypeNameTransform.transform, FilterDirectivesTransform.transform]; // Transforms applied before printing the query sent to the server.
var relayPrintTransforms = [FlattenTransform.transformWithOptions({}), RelayGenerateTypeNameTransform.transform, RelaySkipHandleFieldTransform.transform, FilterDirectivesTransform.transform, RefineOperationVariablesTransform.transform];
module.exports = {
commonTransforms: relayCommonTransforms,
codegenTransforms: relayCodegenTransforms,
fragmentTransforms: relayFragmentTransforms,
printTransforms: relayPrintTransforms,
queryTransforms: relayQueryTransforms,
schemaExtensions: relaySchemaExtensions
};