UNPKG

houdini-svelte

Version:
64 lines (63 loc) 2.2 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var subscription_exports = {}; __export(subscription_exports, { SubscriptionStore: () => SubscriptionStore }); module.exports = __toCommonJS(subscription_exports); var import_types = require("$houdini/runtime/lib/types"); var import_store = require("svelte/store"); var import_client = require("../client"); var import_session = require("../session"); var import_base = require("./base"); class SubscriptionStore extends import_base.BaseStore { kind = import_types.CompiledSubscriptionKind; fetchingStore; constructor({ artifact }) { super({ artifact }); this.fetchingStore = (0, import_store.writable)(false); } async listen(variables, args) { await (0, import_client.initClient)(); this.fetchingStore.set(true); this.observer.send({ variables, session: await (0, import_session.getSession)(), metadata: args?.metadata }); } async unlisten() { await (0, import_client.initClient)(); this.fetchingStore.set(false); await this.observer.cleanup(); } subscribe(run, invalidate) { return (0, import_store.derived)( [{ subscribe: super.subscribe.bind(this) }, this.fetchingStore], ([$parent, $fetching]) => ({ ...$parent, fetching: $fetching }) ).subscribe(run, invalidate); } } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { SubscriptionStore });