@chmoyle-conga/graphql-cart
Version:
Cart module for realtime subscriptions to conga cart
29 lines (28 loc) • 945 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createFilteredSSELink = void 0;
const client_1 = require("@apollo/client");
const createFilteredSSELink = (url) => new client_1.ApolloLink((operation) => new client_1.Observable((observer) => {
const eventSource = new EventSource(url);
eventSource.onmessage = (event) => {
try {
// Parse the message data
const data = JSON.parse(event.data);
// Filter out empty messages based on your criteria
if (data && Object.keys(data).length > 0) {
observer.next({ data });
}
}
catch (e) {
observer.error(e);
}
};
eventSource.onerror = (error) => {
observer.error(error);
};
// Return a cleanup function
return () => {
eventSource.close();
};
}));
exports.createFilteredSSELink = createFilteredSSELink;