Раньше у нас был файл updateSchema.js
`` `
#!/usr/bin/env babel-node
import fs from 'fs';
import path from 'path';
import { schema } from '../data/schema';
import { graphql } from 'graphql';
import { introspectionQuery, printSchema } from 'graphql/utilities';
// Save JSON of full schema introspection for Babel Relay Plugin to use
(async () => {
const result = await (graphql(schema, introspectionQuery));
if (result.errors) {
console.error(
'ERROR introspecting schema: ',
JSON.stringify(result.errors, null, 2)
);
} else {
fs.writeFileSync(
path.join(__dirname, '../data/schema.json'),
JSON.stringify(result, null, 2)
);
}
})();
// Save user readable type system shorthand of schema
fs.writeFileSync(
path.join(__dirname, '../data/schema.graphql'),
printSchema(schema)
);
` ``, который генерировал файлы schema.json
и schema.graphql
, теперь вv14 из graphql-js
является уведомлением об устаревании, что вместо использования introspectionQuery
мы должны использовать getIntrospectionQuery
v14 changelog .
Теперь updateSchema.js
выглядит так relay-примеры :
`` `
import fs from 'fs';
import path from 'path';
import {schema} from '../data/schema';
import {printSchema} from 'graphql';
const schemaPath = path.resolve(__dirname, '../data/schema.graphql');
fs.writeFileSync(schemaPath, printSchema(schema));
console.log('Wrote ' + schemaPath);
` ``
Как нам теперь сгенерировать файл schema.json
?