Наконец, после большого количества поисков и поиска, я написал скрипт для этого -
Есть некоторые незначительные проблемы с этим, такие как целые числа анализируются как Floats, но это нормально, так как я могу заменить их наint, если требуется.
const { composeWithJson } = require('graphql-compose-json');
const { GQC } = require('graphql-compose');
const { printSchema } = require('graphql'); // CommonJS
const restApiResponse = {
"id": 399,
"templateId": 115,
"amount": 100000,
"amountINR": 100000,
"amountUSD": 0,
"currencyCode": "INR",
"createdAt": "2018-06-07T00:08:28.000Z",
"createdBy": 36,
};
const GqlType = composeWithJson('Template', restApiResponse);
const PersonGraphQLType = GqlType.getType();
GqlType.addResolver({
name: 'findById',
type: GqlType,
args: {
id: 'Int!',
},
resolve: rp => {
},
});
GQC.rootQuery().addFields({
person: GqlType.getResolver('findById'),
});
const schema = GQC.buildSchema();
console.log(printSchema(schema));
Он генерирует вывод следующим образом -
type Template {
id: Float
templateId: Float
amount: Float
amountINR: Float
amountUSD: Float
currencyCode: String
createdAt: String
createdBy: Float
}