Skip to content

Commit cd37e1c

Browse files
chore(dist): distribute dist
So that our fork can be used in the web app / extension until Akryum#453 has been merged to `vue-cli-plugin-apollo`.
1 parent 03652dc commit cd37e1c

File tree

2 files changed

+265
-1
lines changed

2 files changed

+265
-1
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11
node_modules/
2-
dist/
32
client-addon-dist/

graphql-client/dist/index.js

Lines changed: 265 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,265 @@
1+
"use strict";
2+
3+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4+
5+
Object.defineProperty(exports, "__esModule", {
6+
value: true
7+
});
8+
exports.createApolloClient = createApolloClient;
9+
exports.restartWebsockets = restartWebsockets;
10+
11+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
12+
13+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
14+
15+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
16+
17+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18+
19+
var _apolloClient = require("apollo-client");
20+
21+
var _apolloLink = require("apollo-link");
22+
23+
var _apolloUploadClient = require("apollo-upload-client");
24+
25+
var _apolloCacheInmemory = require("apollo-cache-inmemory");
26+
27+
var _subscriptionsTransportWs = require("subscriptions-transport-ws");
28+
29+
var _messageTypes = _interopRequireDefault(require("subscriptions-transport-ws/dist/message-types"));
30+
31+
var _apolloLinkWs = require("apollo-link-ws");
32+
33+
var _apolloUtilities = require("apollo-utilities");
34+
35+
var _apolloLinkPersistedQueries = require("apollo-link-persisted-queries");
36+
37+
var _apolloLinkContext = require("apollo-link-context");
38+
39+
var _apolloLinkState = require("apollo-link-state");
40+
41+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
42+
43+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
44+
45+
// Create the apollo client
46+
function createApolloClient(_ref) {
47+
var _ref$clientId = _ref.clientId,
48+
clientId = _ref$clientId === void 0 ? 'defaultClient' : _ref$clientId,
49+
httpEndpoint = _ref.httpEndpoint,
50+
_ref$wsEndpoint = _ref.wsEndpoint,
51+
wsEndpoint = _ref$wsEndpoint === void 0 ? null : _ref$wsEndpoint,
52+
_ref$tokenName = _ref.tokenName,
53+
tokenName = _ref$tokenName === void 0 ? 'apollo-token' : _ref$tokenName,
54+
_ref$persisting = _ref.persisting,
55+
persisting = _ref$persisting === void 0 ? false : _ref$persisting,
56+
_ref$ssr = _ref.ssr,
57+
ssr = _ref$ssr === void 0 ? false : _ref$ssr,
58+
_ref$websocketsOnly = _ref.websocketsOnly,
59+
websocketsOnly = _ref$websocketsOnly === void 0 ? false : _ref$websocketsOnly,
60+
_ref$link = _ref.link,
61+
link = _ref$link === void 0 ? null : _ref$link,
62+
_ref$preAuthLinks = _ref.preAuthLinks,
63+
preAuthLinks = _ref$preAuthLinks === void 0 ? [] : _ref$preAuthLinks,
64+
_ref$defaultHttpLink = _ref.defaultHttpLink,
65+
defaultHttpLink = _ref$defaultHttpLink === void 0 ? true : _ref$defaultHttpLink,
66+
_ref$httpLinkOptions = _ref.httpLinkOptions,
67+
httpLinkOptions = _ref$httpLinkOptions === void 0 ? {} : _ref$httpLinkOptions,
68+
_ref$cache = _ref.cache,
69+
cache = _ref$cache === void 0 ? null : _ref$cache,
70+
_ref$inMemoryCacheOpt = _ref.inMemoryCacheOptions,
71+
inMemoryCacheOptions = _ref$inMemoryCacheOpt === void 0 ? {} : _ref$inMemoryCacheOpt,
72+
_ref$apollo = _ref.apollo,
73+
apollo = _ref$apollo === void 0 ? {} : _ref$apollo,
74+
_ref$clientState = _ref.clientState,
75+
clientState = _ref$clientState === void 0 ? null : _ref$clientState,
76+
_ref$getAuth = _ref.getAuth,
77+
getAuth = _ref$getAuth === void 0 ? defaultGetAuth : _ref$getAuth,
78+
_ref$typeDefs = _ref.typeDefs,
79+
typeDefs = _ref$typeDefs === void 0 ? undefined : _ref$typeDefs,
80+
_ref$resolvers = _ref.resolvers,
81+
resolvers = _ref$resolvers === void 0 ? undefined : _ref$resolvers,
82+
_ref$onCacheInit = _ref.onCacheInit,
83+
onCacheInit = _ref$onCacheInit === void 0 ? undefined : _ref$onCacheInit;
84+
var wsClient, authLink, stateLink;
85+
var disableHttp = websocketsOnly && !ssr && wsEndpoint; // Apollo cache
86+
87+
if (!cache) {
88+
cache = new _apolloCacheInmemory.InMemoryCache(inMemoryCacheOptions);
89+
}
90+
91+
if (!disableHttp) {
92+
var httpLink = (0, _apolloUploadClient.createUploadLink)(_objectSpread({
93+
uri: httpEndpoint
94+
}, httpLinkOptions));
95+
96+
if (!link) {
97+
link = httpLink;
98+
} else if (defaultHttpLink) {
99+
link = (0, _apolloLink.from)([link, httpLink]);
100+
} // HTTP Auth header injection
101+
102+
103+
authLink = (0, _apolloLinkContext.setContext)( /*#__PURE__*/function () {
104+
var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_, _ref2) {
105+
var headers, Authorization, authorizationHeader;
106+
return _regenerator["default"].wrap(function _callee$(_context) {
107+
while (1) {
108+
switch (_context.prev = _context.next) {
109+
case 0:
110+
headers = _ref2.headers;
111+
_context.next = 3;
112+
return getAuth(tokenName);
113+
114+
case 3:
115+
Authorization = _context.sent;
116+
authorizationHeader = Authorization ? {
117+
Authorization: Authorization
118+
} : {};
119+
return _context.abrupt("return", {
120+
headers: _objectSpread(_objectSpread({}, headers), authorizationHeader)
121+
});
122+
123+
case 6:
124+
case "end":
125+
return _context.stop();
126+
}
127+
}
128+
}, _callee);
129+
}));
130+
131+
return function (_x, _x2) {
132+
return _ref3.apply(this, arguments);
133+
};
134+
}()); // Concat all the http link parts
135+
136+
link = authLink.concat(link);
137+
138+
if (preAuthLinks.length) {
139+
link = (0, _apolloLink.from)(preAuthLinks).concat(authLink);
140+
}
141+
} // On the server, we don't want WebSockets and Upload links
142+
143+
144+
if (!ssr) {
145+
// If on the client, recover the injected state
146+
if (typeof window !== 'undefined') {
147+
// eslint-disable-next-line no-underscore-dangle
148+
var state = window.__APOLLO_STATE__;
149+
150+
if (state && state[clientId]) {
151+
// Restore state
152+
cache.restore(state[clientId]);
153+
}
154+
}
155+
156+
if (!disableHttp) {
157+
var persistingOpts = {};
158+
159+
if ((0, _typeof2["default"])(persisting) === 'object' && persisting != null) {
160+
persistingOpts = persisting;
161+
persisting = true;
162+
}
163+
164+
if (persisting === true) {
165+
link = (0, _apolloLinkPersistedQueries.createPersistedQueryLink)(persistingOpts).concat(link);
166+
}
167+
} // Web socket
168+
169+
170+
if (wsEndpoint) {
171+
wsClient = new _subscriptionsTransportWs.SubscriptionClient(wsEndpoint, {
172+
reconnect: true,
173+
connectionParams: function connectionParams() {
174+
var Authorization = getAuth(tokenName);
175+
return Authorization ? {
176+
Authorization: Authorization,
177+
headers: {
178+
Authorization: Authorization
179+
}
180+
} : {};
181+
}
182+
}); // Create the subscription websocket link
183+
184+
var wsLink = new _apolloLinkWs.WebSocketLink(wsClient);
185+
186+
if (disableHttp) {
187+
link = link ? link.concat(wsLink) : wsLink;
188+
} else {
189+
link = (0, _apolloLink.split)( // split based on operation type
190+
function (_ref4) {
191+
var query = _ref4.query;
192+
193+
var _getMainDefinition = (0, _apolloUtilities.getMainDefinition)(query),
194+
kind = _getMainDefinition.kind,
195+
operation = _getMainDefinition.operation;
196+
197+
return kind === 'OperationDefinition' && operation === 'subscription';
198+
}, wsLink, link);
199+
}
200+
}
201+
}
202+
203+
if (clientState) {
204+
console.warn('clientState is deprecated, see https://vue-cli-plugin-apollo.netlify.com/guide/client-state.html');
205+
stateLink = (0, _apolloLinkState.withClientState)(_objectSpread({
206+
cache: cache
207+
}, clientState));
208+
link = (0, _apolloLink.from)([stateLink, link]);
209+
}
210+
211+
var apolloClient = new _apolloClient.ApolloClient(_objectSpread(_objectSpread({
212+
link: link,
213+
cache: cache
214+
}, ssr ? {
215+
// Set this on the server to optimize queries when SSR
216+
ssrMode: true
217+
} : {
218+
// This will temporary disable query force-fetching
219+
ssrForceFetchDelay: 100,
220+
// Apollo devtools
221+
connectToDevTools: process.env.NODE_ENV !== 'production'
222+
}), {}, {
223+
typeDefs: typeDefs,
224+
resolvers: resolvers
225+
}, apollo)); // Re-write the client state defaults on cache reset
226+
227+
if (stateLink) {
228+
apolloClient.onResetStore(stateLink.writeDefaults);
229+
}
230+
231+
if (onCacheInit) {
232+
onCacheInit(cache);
233+
apolloClient.onResetStore(function () {
234+
return onCacheInit(cache);
235+
});
236+
}
237+
238+
return {
239+
apolloClient: apolloClient,
240+
wsClient: wsClient,
241+
stateLink: stateLink
242+
};
243+
}
244+
245+
function restartWebsockets(wsClient) {
246+
// Copy current operations
247+
var operations = Object.assign({}, wsClient.operations); // Close connection
248+
249+
wsClient.close(true); // Open a new one
250+
251+
wsClient.connect(); // Push all current operations to the new connection
252+
253+
Object.keys(operations).forEach(function (id) {
254+
wsClient.sendMessage(id, _messageTypes["default"].GQL_START, operations[id].options);
255+
});
256+
}
257+
258+
function defaultGetAuth(tokenName) {
259+
if (typeof window !== 'undefined') {
260+
// get the authentication token from local storage if it exists
261+
var token = window.localStorage.getItem(tokenName); // return the headers to the context so httpLink can read them
262+
263+
return token ? "Bearer ".concat(token) : '';
264+
}
265+
}

0 commit comments

Comments
 (0)