diff options
author | Kushal Pandya <kushalspandya@gmail.com> | 2019-04-25 12:25:21 +0530 |
---|---|---|
committer | Kushal Pandya <kushalspandya@gmail.com> | 2019-04-25 12:25:21 +0530 |
commit | 8e808bc221f1a7050629346df3748a6c608ff497 (patch) | |
tree | 774516b88b828216b5c8670ad8d0eeaa315eb829 | |
parent | d8d57f23b26df6c0d07fc7911edee16a70a775f0 (diff) | |
download | gitlab-ce-8e808bc221f1a7050629346df3748a6c608ff497.tar.gz |
Add support for baseUrl in ApolloClient instance
Add support for providing baseUrl/rootUrl within `uri` while
creating ApolloClient instance.
-rw-r--r-- | app/assets/javascripts/lib/graphql.js | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/app/assets/javascripts/lib/graphql.js b/app/assets/javascripts/lib/graphql.js index ae02559415c..498c2348ca2 100644 --- a/app/assets/javascripts/lib/graphql.js +++ b/app/assets/javascripts/lib/graphql.js @@ -3,10 +3,17 @@ import { InMemoryCache } from 'apollo-cache-inmemory'; import { createUploadLink } from 'apollo-upload-client'; import csrf from '~/lib/utils/csrf'; -export default (resolvers = {}) => - new ApolloClient({ +export default (resolvers = {}, baseUrl = '') => { + let uri = `${gon.relative_url_root}/api/graphql`; + + if (baseUrl) { + // Prepend baseUrl and ensure that `///` are replaced with `/` + uri = `${baseUrl}${uri}`.replace(/\/{3,}/g, '/'); + } + + return new ApolloClient({ link: createUploadLink({ - uri: `${gon.relative_url_root}/api/graphql`, + uri, headers: { [csrf.headerKey]: csrf.token, }, @@ -14,3 +21,4 @@ export default (resolvers = {}) => cache: new InMemoryCache(), resolvers, }); +}; |