houdini-svelte
Version:
The svelte plugin for houdini
64 lines (63 loc) • 2.2 kB
JavaScript
;
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
});