37 lines
989 B
JavaScript
Executable File
37 lines
989 B
JavaScript
Executable File
#!/usr/bin/env babel-node --optional es7.asyncFunctions
|
|
|
|
import fs from 'fs';
|
|
import path from 'path';
|
|
import schema from '../config/graphql/schema';
|
|
import { graphql, GraphQLSchema } from 'graphql';
|
|
import { introspectionQuery, printSchema } from 'graphql/utilities';
|
|
import DB from './../config/database';
|
|
|
|
DB.sync().then(()=>{
|
|
|
|
var Schema = schema();
|
|
|
|
// Save JSON of full schema introspection for Babel Relay Plugin to use
|
|
(async () => {
|
|
var 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, '../config/graphql/schema.json'),
|
|
JSON.stringify(result, null, 2)
|
|
);
|
|
}
|
|
})();
|
|
|
|
// Save user readable type system shorthand of schema
|
|
fs.writeFileSync(
|
|
path.join(__dirname, '../config/graphql/schema.graphql'),
|
|
printSchema(Schema)
|
|
);
|
|
|
|
});
|