From 2e74e2fe62ed52a728da5b885784f6c5b004a073 Mon Sep 17 00:00:00 2001 From: Wyatt Johnson Date: Tue, 25 Jul 2017 17:29:51 +1000 Subject: [PATCH] Added introspection results to build pipeline --- .gitignore | 2 ++ package.json | 2 ++ scripts/generateIntrospectionResult.js | 22 ++++++++++++++++++++++ 3 files changed, 26 insertions(+) create mode 100755 scripts/generateIntrospectionResult.js diff --git a/.gitignore b/.gitignore index bd8edcd94..767066028 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,8 @@ dist npm-debug.log* dump.rdb +client/coral-framework/graphql/introspection.json + .env *.cfg diff --git a/package.json b/package.json index 551250113..5e147a781 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,9 @@ "postinstall": "./bin/cli plugins reconcile --skip-remote", "start": "./bin/cli serve -j -w", "dev-start": "nodemon -w . -w bin/cli -w bin/cli-serve --config .nodemon.json --exec \"./bin/cli -c .env serve -j -w\"", + "prebuild": "WEBPACK=true NODE_ENV=test ./scripts/generateIntrospectionResult.js", "build": "WEBPACK=true NODE_ENV=production webpack -p --config webpack.config.js --bail", + "prebuild-watch": "WEBPACK=true NODE_ENV=test ./scripts/generateIntrospectionResult.js", "build-watch": "WEBPACK=true NODE_ENV=development webpack --progress --config webpack.config.js --watch", "lint": "eslint bin/* .", "lint-fix": "eslint bin/* . --fix", diff --git a/scripts/generateIntrospectionResult.js b/scripts/generateIntrospectionResult.js new file mode 100755 index 000000000..9a22e1207 --- /dev/null +++ b/scripts/generateIntrospectionResult.js @@ -0,0 +1,22 @@ +#! /usr/bin/env node + +const path = require('path'); +const introspectionFilename = path.resolve(__dirname, '..', 'client', 'coral-framework', 'graphql', 'introspection.json'); + +const fs = require('fs'); +const {graphql, introspectionQuery} = require('graphql'); +const schema = require('../graph/schema'); + +graphql(schema, introspectionQuery) + .then(({data}) => { + + // Serialize the introspection result as JSON. + const introspectionResult = JSON.stringify(data, null, 2); + + // Write the introspection result to the filesystem. + fs.writeFileSync(introspectionFilename, introspectionResult, 'utf8'); + }) + .catch((err) => { + console.error(err); + process.exit(1); + });