UNPKG

spinjs

Version:

<p align="center"><a href="#"><img width="150" src="https://rawgit.com/sysgears/spin.js/master/logo.svg"></a></p>

70 lines 3.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var path = require("path"); var requireModule_1 = require("../requireModule"); var JSRuleFinder_1 = require("./shared/JSRuleFinder"); var persistPlugins; var ApolloPlugin = (function () { function ApolloPlugin() { } ApolloPlugin.prototype.configure = function (builder, spin) { if (builder.stack.hasAll(['apollo', 'webpack'])) { var persistGraphQL = spin.options.persistGraphQL && !spin.test && !builder.stack.hasAny('dll'); if (builder.stack.hasAny(['server', 'web']) && !builder.stack.hasAny('dll')) { if (!persistPlugins) { var PersistGraphQLPlugin = requireModule_1.default('persistgraphql-webpack-plugin'); var moduleName = path.resolve('node_modules/persisted_queries.json'); if (persistGraphQL) { var clientPersistPlugin = new PersistGraphQLPlugin({ moduleName: moduleName, filename: 'extracted_queries.json', addTypename: true }); var serverPersistPlugin = new PersistGraphQLPlugin({ moduleName: moduleName, provider: clientPersistPlugin }); persistPlugins = { client: clientPersistPlugin, server: serverPersistPlugin }; } else { var clientPersistPlugin = new PersistGraphQLPlugin({ moduleName: moduleName }); var serverPersistPlugin = new PersistGraphQLPlugin({ moduleName: moduleName }); persistPlugins = { client: clientPersistPlugin, server: serverPersistPlugin }; } } } builder.config = spin.merge(builder.config, { module: { rules: [ { test: /\.graphqls/, use: 'raw-loader', }, { test: /\.(graphql|gql)$/, exclude: /node_modules/, use: ['graphql-tag/loader'].concat(persistGraphQL ? ['persistgraphql-webpack-plugin/graphql-loader'] : []), }, ], }, }); if (builder.stack.hasAny(['server', 'web'])) { var webpack = requireModule_1.default('webpack'); var jsRuleFinder = new JSRuleFinder_1.default(builder); var jsRule = jsRuleFinder.rule; jsRule.use = spin.merge(jsRule.use, persistGraphQL ? ['persistgraphql-webpack-plugin/js-loader'] : []); builder.config = spin.merge(builder.config, { plugins: [ new webpack.DefinePlugin({ __PERSIST_GQL__: persistGraphQL }) ].concat(builder.stack.hasAny('dll') ? [] : [ builder.stack.hasAny('server') ? persistPlugins.server : persistPlugins.client ]) }); } } }; return ApolloPlugin; }()); exports.default = ApolloPlugin; //# sourceMappingURL=ApolloPlugin.js.map