Skip to content

Instantly share code, notes, and snippets.

@renatobenks-zz
Created January 22, 2018 03:32
Show Gist options
  • Save renatobenks-zz/ab204625b5c89a72dbf6ec74919d7a22 to your computer and use it in GitHub Desktop.
Save renatobenks-zz/ab204625b5c89a72dbf6ec74919d7a22 to your computer and use it in GitHub Desktop.
graphql-dataloader-boilerplate - Automating GraphQL processes on Javascript through of lint-staged
#!/usr/bin/env babel-node --optional es7.asyncFunctions
/**
* This file provided by Facebook is for non-commercial testing and evaluation
* purposes only. Facebook reserves all rights not expressly granted.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import fs from 'fs';
import path from 'path';
import { schema } from '../src/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)
);
process.exit(0);
}
})();
// Save user readable type system shorthand of schema
fs.writeFileSync(
path.join(__dirname, '../data/schema.graphql'),
printSchema(schema)
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment