apollo-graphql-ws-link
Version:
The graphql-ws apollo link recipe as package
3 lines (2 loc) • 888 B
JavaScript
import{ApolloLink as r,Observable as e}from"@apollo/client/core";import{print as t}from"graphql";import{createClient as o}from"graphql-ws";function n(){return n=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(r[o]=t[o])}return r},n.apply(this,arguments)}class i extends r{constructor(r){super(),this.client=void 0,this.client=o(r)}request(r){return new e(e=>this.client.subscribe(n({},r,{query:t(r.query)}),{next:e.next.bind(e),complete:e.complete.bind(e),error:r=>{if(Array.isArray(r))return e.error(new Error(r.map(({message:r})=>r).join(", ")));if(r instanceof CloseEvent){const t=new Error(`Socket closed with event ${r.code} ${r.reason||""}`);return t.name="CloseEvent",e.error(t)}return e.error(r)}}))}}export{i as WebSocketLink};
//# sourceMappingURL=apollo-graphql-ws-link.modern.js.map