reiso
Version:
47 lines • 3.83 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const ApolloLinkWS = require("apollo-link-ws");
const ApolloLink = require("apollo-link");
const graphql = require("graphql");
const Upload = require("../Client/Upload");
// TODO: Optimize client links creation
function genLink(hooksRes, context, linkWS) {
if (linkWS === undefined && window) {
const wsAddress = "ws://" + window.__HOST__ + ":" + window.__WSADDRESS__ + "/";
linkWS = new ApolloLinkWS.WebSocketLink({
uri: wsAddress,
options: {
reconnect: true,
connectionParams: context
}
});
}
// const linkNetwork = new BatchHttpLink({
// uri: (window as any).__GQLHOST__ || `/graphql`,
// });
const linkNetwork = Upload.createUploadLink({
uri: window.__GQLHOST__ || `/graphql`,
});
const linkSplitted = linkWS ? ApolloLink.ApolloLink.split(operation => {
const operationAST = graphql.getOperationAST(operation.query, operation.operationName);
return !!operationAST && operationAST.operation === 'subscription';
}, linkWS, linkNetwork) : linkNetwork;
let links = [];
hooksRes.forEach(hook => {
if (hook.linksBefore)
links = links.concat(hook.linksBefore);
});
links = links.concat(linkSplitted);
hooksRes.forEach(hook => {
if (hook.linksAfter)
links = links.concat(hook.linksAfter);
});
let link = ApolloLink.ApolloLink.from(links);
hooksRes.forEach(hook => {
if (hook.linksWrap)
link = hook.linksWrap.concat(link);
});
return link;
}
exports.genLink = genLink;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9DbGllbnQvTGluay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLCtDQUErQztBQUMvQywwQ0FBMEM7QUFFMUMsbUNBQW1DO0FBSW5DLDJDQUEyQztBQUUzQyx1Q0FBdUM7QUFDdkMsaUJBQXdCLFFBQWdCLEVBQUUsT0FBTyxFQUFFLE1BQW1DO0lBQ2xGLElBQUksTUFBTSxLQUFLLFNBQVMsSUFBSSxNQUFNLEVBQUU7UUFDaEMsTUFBTSxTQUFTLEdBQUcsT0FBTyxHQUFJLE1BQWMsQ0FBQyxRQUFRLEdBQUcsR0FBRyxHQUFJLE1BQWMsQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDO1FBQ2pHLE1BQU0sR0FBRyxJQUFJLFlBQVksQ0FBQyxhQUFhLENBQUM7WUFDcEMsR0FBRyxFQUFFLFNBQVM7WUFDZCxPQUFPLEVBQUU7Z0JBQ0wsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsZ0JBQWdCLEVBQUUsT0FBTzthQUM1QjtTQUNKLENBQUMsQ0FBQztLQUNOO0lBRUQsMENBQTBDO0lBQzFDLHNEQUFzRDtJQUN0RCxNQUFNO0lBRU4sTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1FBQ3hDLEdBQUcsRUFBRyxNQUFjLENBQUMsV0FBVyxJQUFJLFVBQVU7S0FDakQsQ0FBQyxDQUFDO0lBRUgsTUFBTSxZQUFZLEdBQTBCLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQzVFLFNBQVMsQ0FBQyxFQUFFO1FBQ1IsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsS0FBWSxFQUFFLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5RixPQUFPLENBQUMsQ0FBQyxZQUFZLElBQUksWUFBWSxDQUFDLFNBQVMsS0FBSyxjQUFjLENBQUM7SUFDdkUsQ0FBQyxFQUNELE1BQU0sRUFDTixXQUFXLENBQ2QsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO0lBRWhCLElBQUksS0FBSyxHQUE0QixFQUFFLENBQUM7SUFFeEMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNwQixJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2pFLENBQUMsQ0FBQyxDQUFDO0lBRUgsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFbkMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNwQixJQUFJLElBQUksQ0FBQyxVQUFVO1lBQUUsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9ELENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxJQUFJLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFN0MsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNwQixJQUFJLElBQUksQ0FBQyxTQUFTO1lBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNELENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQztBQWhERCwwQkFnREMifQ==