47 lines
1.2 KiB
JavaScript
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
|
|
}; |