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

47 lines
1.2 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.
*
*
* @format
*/
'use strict';
var NormalizationCodeGenerator = require("./NormalizationCodeGenerator");
var ReaderCodeGenerator = require("./ReaderCodeGenerator");
var _require = require("./RelayCompilerError"),
createCompilerError = _require.createCompilerError;
function generate(node) {
switch (node.kind) {
case 'Fragment':
return ReaderCodeGenerator.generate(node);
case 'Request':
return {
kind: 'Request',
fragment: ReaderCodeGenerator.generate(node.fragment),
operation: NormalizationCodeGenerator.generate(node.root),
params: {
operationKind: node.root.operation,
name: node.name,
id: node.id,
text: node.text,
metadata: node.metadata
}
};
case 'SplitOperation':
return NormalizationCodeGenerator.generate(node);
}
throw createCompilerError("RelayCodeGenerator: Unknown AST kind '".concat(node.kind, "'."), [node.loc]);
}
module.exports = {
generate: generate
};