@@ -33,13 +33,7 @@ public class GraphiQLController {
3333
3434 private static final String CDNJS_CLOUDFLARE_COM_AJAX_LIBS = "//cdnjs.cloudflare.com/ajax/libs/" ;
3535 private static final String CDN_JSDELIVR_NET_NPM = "//cdn.jsdelivr.net/npm/" ;
36- private static final String FETCH = "fetch" ;
3736 private static final String GRAPHIQL = "graphiql" ;
38- private static final String ES_6_PROMISE = "es6-promise" ;
39- private static final String REACT = "react" ;
40- private static final String REACT_DOM = "react-dom" ;
41- private static final String SUBSCRIPTIONS_TRANSPORT_WS = "subscriptions-transport-ws" ;
42- private static final String GRAPHIQL_SUBSCRIPTIONS_FETCHER = "graphiql-subscriptions-fetcher" ;
4337
4438 @ Value ("${graphiql.endpoint.graphql:/graphql}" )
4539 private String graphqlEndpoint ;
@@ -120,44 +114,47 @@ private Map<String, String> getReplacements(String graphqlEndpoint, String subsc
120114 replacements .put ("subscriptionsEndpoint" , subscriptionsEndpoint );
121115 replacements .put ("staticBasePath" , staticBasePath );
122116 replacements .put ("pageTitle" , pageTitle );
123- replacements .put ("es6PromiseJsUrl" , getCdnJsUrl (staticBasePath , graphiqlCdnEnabled , ES_6_PROMISE ,
124- "4.1.1 " , "es6-promise.auto.min.js " , "es6-promise.auto.min.js" ));
125- replacements .put ("fetchJsUrl" , getCdnJsUrl (staticBasePath , graphiqlCdnEnabled , FETCH ,
126- "2.0.4 " , "fetch.min.js " , "fetch.min.js" ));
127- replacements .put ("reactJsUrl" , getCdnJsUrl (staticBasePath , graphiqlCdnEnabled , REACT ,
128- " 16.8.3" , "umd/react.production.min.js" , "react.min.js" ));
129- replacements .put ("reactDomJsUrl" , getCdnJsUrl (staticBasePath , graphiqlCdnEnabled , REACT_DOM ,
130- " 16.8.3" , "umd/react-dom.production.min.js" , "react-dom.min.js" ));
131- replacements .put ("graphiqlCssUrl" , getJsDelivrUrl (staticBasePath , graphiqlCdnEnabled , GRAPHIQL ,
132- graphiqlCdnVersion , "graphiql.css" , "graphiql.min. css" ));
133- replacements .put ("graphiqlJsUrl" , getJsDelivrUrl (staticBasePath , graphiqlCdnEnabled , GRAPHIQL ,
134- graphiqlCdnVersion , "graphiql.min.js" , "graphiql.min.js" ));
135- replacements .put ("subscriptionsTransportWsBrowserClient " , getJsDelivrUrl (staticBasePath , graphiqlCdnEnabled ,
136- SUBSCRIPTIONS_TRANSPORT_WS , "0.9.15" , " browser/ client.js" ,
137- "subscriptions-transport-ws- browser- client.js" ));
138- replacements .put ("graphiqlSubscriptionsFetcherBrowserClient " , getJsDelivrUrl (staticBasePath , graphiqlCdnEnabled ,
139- GRAPHIQL_SUBSCRIPTIONS_FETCHER , "0.0.2" , " browser/ client.js" ,
140- "graphiql-subscriptions-fetcher- browser- client.js" ));
117+ replacements .put ("es6PromiseJsUrl" , getResourceUrl (staticBasePath , "es6-promise.auto.min.js" ,
118+ joinCdnjsPath ( "es6-promise " , "4.1.1 " , "es6-promise.auto.min.js" ) ));
119+ replacements .put ("fetchJsUrl" , getResourceUrl (staticBasePath , "fetch.min.js" ,
120+ joinCdnjsPath ( "fetch " , "2.0.4 " , "fetch.min.js" ) ));
121+ replacements .put ("reactJsUrl" , getResourceUrl (staticBasePath , "react.min.js" ,
122+ joinCdnjsPath ( "react" , " 16.8.3" , "umd/react.production.min.js" ) ));
123+ replacements .put ("reactDomJsUrl" , getResourceUrl (staticBasePath , "react-dom.min.js" ,
124+ joinCdnjsPath ( "react-dom" , " 16.8.3" , "umd/react-dom.production.min.js" ) ));
125+ replacements .put ("graphiqlCssUrl" , getResourceUrl (staticBasePath , "graphiql.min.css" ,
126+ joinJsDelivrPath ( GRAPHIQL , graphiqlCdnVersion , "graphiql.css" ) ));
127+ replacements .put ("graphiqlJsUrl" , getResourceUrl (staticBasePath , "graphiql.min.js" ,
128+ joinJsDelivrPath ( GRAPHIQL , graphiqlCdnVersion , "graphiql.min.js" ) ));
129+ replacements .put ("subscriptionsTransportWsBrowserClientUrl " , getResourceUrl (staticBasePath ,
130+ "subscriptions-transport-ws- browser- client.js" ,
131+ joinJsDelivrPath ( "subscriptions-transport-ws" , "0.9.15" , " browser/ client.js") ));
132+ replacements .put ("graphiqlSubscriptionsFetcherBrowserClientUrl " , getResourceUrl (staticBasePath ,
133+ "graphiql-subscriptions-fetcher- browser- client.js" ,
134+ joinJsDelivrPath ( "graphiql-subscriptions-fetcher" , "0.0.2" , " browser/ client.js") ));
141135 replacements .put ("props" , props );
142136 replacements .put ("headers" , headers );
143137 replacements .put ("subscriptionClientTimeout" , String .valueOf (subscriptionsTimeout ));
144138 return replacements ;
145139 }
146140
147- private String getCdnJsUrl (String staticBasePath , Boolean isCdnEnabled , String library ,
148- String cdnVersion , String cdnFileName , String filename ) {
149- if (isCdnEnabled && StringUtils .isNotBlank (cdnVersion )) {
150- return CDNJS_CLOUDFLARE_COM_AJAX_LIBS + library + "/" + cdnVersion + "/" + cdnFileName ;
141+ private String getResourceUrl (String staticBasePath , String staticFileName , String cdnUrl ) {
142+ if (graphiqlCdnEnabled && StringUtils .isNotBlank (cdnUrl )) {
143+ return cdnUrl ;
151144 }
152- return staticBasePath + "vendor/" + filename ;
145+ return joinStaticPath ( staticBasePath , staticFileName ) ;
153146 }
154147
155- private String getJsDelivrUrl (String staticBasePath , Boolean isCdnEnabled , String library ,
156- String cdnVersion , String cdnFileName , String filename ) {
157- if (isCdnEnabled && StringUtils .isNotBlank (cdnVersion )) {
158- return CDN_JSDELIVR_NET_NPM + library + "@" + cdnVersion + "/" + cdnFileName ;
159- }
160- return staticBasePath + "vendor/" + filename ;
148+ private String joinStaticPath (String staticBasePath , String staticFileName ) {
149+ return staticBasePath + "vendor/" + staticFileName ;
150+ }
151+
152+ private String joinCdnjsPath (String library , String cdnVersion , String cdnFileName ) {
153+ return CDNJS_CLOUDFLARE_COM_AJAX_LIBS + library + "/" + cdnVersion + "/" + cdnFileName ;
154+ }
155+
156+ private String joinJsDelivrPath (String library , String cdnVersion , String cdnFileName ) {
157+ return CDN_JSDELIVR_NET_NPM + library + "@" + cdnVersion + "/" + cdnFileName ;
161158 }
162159
163160 private String constructGraphQlEndpoint (HttpServletRequest request , @ RequestParam Map <String , String > params ) {
0 commit comments