From 30dca2f2e9c375a795fe42bf0301912f9e305323 Mon Sep 17 00:00:00 2001
From: Alexander Rose <alex.rose@rcsb.org>
Date: Fri, 1 Mar 2019 14:50:29 -0800
Subject: [PATCH] tweaked graphql codegen to work with new version

---
 data/rcsb-graphql/codegen.js                     | 11 +++++------
 data/rcsb-graphql/loader.js                      | 14 ++++++++++++++
 src/mol-model-props/rcsb/graphql/symmetry.gql.ts |  6 +-----
 src/mol-model-props/rcsb/graphql/types.ts        |  2 +-
 4 files changed, 21 insertions(+), 12 deletions(-)
 create mode 100644 data/rcsb-graphql/loader.js

diff --git a/data/rcsb-graphql/codegen.js b/data/rcsb-graphql/codegen.js
index 8982097ff..1abc6b4f9 100644
--- a/data/rcsb-graphql/codegen.js
+++ b/data/rcsb-graphql/codegen.js
@@ -5,17 +5,16 @@ const basePath = path.join(__dirname, '..', '..', 'src', 'mol-model-props', 'rcs
 
 generate({
     schema: 'http://rest-dev.rcsb.org/graphql',
-    documents: [
-        path.join(basePath, 'symmetry.gql.ts')
-    ],
+    documents: {
+        [path.join(basePath, 'symmetry.gql.ts')]: {
+            loader: path.join(__dirname, 'loader.js')
+        },
+    },
     generates: {
         [path.join(basePath, 'types.ts')]: {
             plugins: ['time', 'typescript-common', 'typescript-client']
         }
     },
-    // template: 'graphql-codegen-typescript-template',
-    // out: path.join(basePath),
-    // skipSchema: true,
     overwrite: true,
     config: path.join(__dirname, 'codegen.json')
 }, true).then(
diff --git a/data/rcsb-graphql/loader.js b/data/rcsb-graphql/loader.js
new file mode 100644
index 000000000..73e76e1c4
--- /dev/null
+++ b/data/rcsb-graphql/loader.js
@@ -0,0 +1,14 @@
+const { parse } = require('graphql');
+const { readFileSync } = require('fs');
+
+module.exports = function(docString, config) {
+    const str = readFileSync(docString, { encoding: 'utf-8' }).trim()
+                    .replace(/^export default `/, '')
+                    .replace(/`$/, '')
+    return [
+        {
+            filePath: docString,
+            content: parse(str)
+        }
+    ];
+};
\ No newline at end of file
diff --git a/src/mol-model-props/rcsb/graphql/symmetry.gql.ts b/src/mol-model-props/rcsb/graphql/symmetry.gql.ts
index 1bdbbb607..87aec81b1 100644
--- a/src/mol-model-props/rcsb/graphql/symmetry.gql.ts
+++ b/src/mol-model-props/rcsb/graphql/symmetry.gql.ts
@@ -1,8 +1,4 @@
- // workaround so the query gets found by the codegen
-function gql (strs: TemplateStringsArray) { return strs.raw.join('') }
-
-export default
-gql`query AssemblySymmetry($pdbId: String!) {
+export default `query AssemblySymmetry($pdbId: String!) {
     assemblies(pdbId: $pdbId) {
         pdbx_struct_assembly {
             id
diff --git a/src/mol-model-props/rcsb/graphql/types.ts b/src/mol-model-props/rcsb/graphql/types.ts
index cd4f277f4..fc3e89fbf 100644
--- a/src/mol-model-props/rcsb/graphql/types.ts
+++ b/src/mol-model-props/rcsb/graphql/types.ts
@@ -1,4 +1,4 @@
-// Generated in 2019-01-30T16:38:09-08:00
+// Generated in 2019-03-01T14:48:33-08:00
 export type Maybe<T> = T | null;
 
 /** Built-in scalar representing an instant in time */
-- 
GitLab