{"version":3,"file":"index.mjs","sources":["../../../../src/clients/feed/index.ts"],"sourcesContent":["import Knock from \"../../knock\";\n\nimport Feed from \"./feed\";\nimport { FeedClientOptions } from \"./interfaces\";\nimport { FeedSocketManager } from \"./socket-manager\";\n\nclass FeedClient {\n  private instance: Knock;\n  private feedInstances: Feed[] = [];\n  private socketManager: FeedSocketManager | undefined;\n\n  constructor(instance: Knock) {\n    this.instance = instance;\n  }\n\n  initialize(feedChannelId: string, options: FeedClientOptions = {}) {\n    this.initSocketManager();\n\n    const feedInstance = new Feed(\n      this.instance,\n      feedChannelId,\n      options,\n      this.socketManager,\n    );\n    this.feedInstances.push(feedInstance);\n    return feedInstance;\n  }\n\n  removeInstance(feed: Feed) {\n    this.feedInstances = this.feedInstances.filter((f) => f !== feed);\n  }\n\n  teardownInstances() {\n    for (const feed of this.feedInstances) {\n      feed.teardown();\n    }\n  }\n\n  reinitializeInstances() {\n    for (const feed of this.feedInstances) {\n      this.socketManager?.leave(feed);\n    }\n\n    // The API client has a new socket once it's reinitialized,\n    // so we need to set up a new socket manager\n    this.socketManager = undefined;\n    this.initSocketManager();\n\n    for (const feed of this.feedInstances) {\n      feed.reinitialize(this.socketManager);\n    }\n  }\n\n  private initSocketManager() {\n    const socket = this.instance.client().socket;\n    if (socket && !this.socketManager) {\n      this.socketManager = new FeedSocketManager(socket);\n    }\n  }\n}\n\nexport { Feed };\nexport default FeedClient;\n"],"names":["FeedClient","instance","__publicField","feedChannelId","options","feedInstance","Feed","feed","f","_a","socket","FeedSocketManager"],"mappings":";;;;;AAMA,MAAMA,EAAW;AAAA,EAKf,YAAYC,GAAiB;AAJrB,IAAAC,EAAA;AACA,IAAAA,EAAA,uBAAwB,CAAC;AACzB,IAAAA,EAAA;AAGN,SAAK,WAAWD;AAAA,EAAA;AAAA,EAGlB,WAAWE,GAAuBC,IAA6B,IAAI;AACjE,SAAK,kBAAkB;AAEvB,UAAMC,IAAe,IAAIC;AAAA,MACvB,KAAK;AAAA,MACLH;AAAA,MACAC;AAAA,MACA,KAAK;AAAA,IACP;AACK,gBAAA,cAAc,KAAKC,CAAY,GAC7BA;AAAA,EAAA;AAAA,EAGT,eAAeE,GAAY;AACzB,SAAK,gBAAgB,KAAK,cAAc,OAAO,CAACC,MAAMA,MAAMD,CAAI;AAAA,EAAA;AAAA,EAGlE,oBAAoB;AACP,eAAAA,KAAQ,KAAK;AACtB,MAAAA,EAAK,SAAS;AAAA,EAChB;AAAA,EAGF,wBAAwB;;AACX,eAAAA,KAAQ,KAAK;AACjB,OAAAE,IAAA,KAAA,kBAAA,QAAAA,EAAe,MAAMF;AAK5B,SAAK,gBAAgB,QACrB,KAAK,kBAAkB;AAEZ,eAAAA,KAAQ,KAAK;AACjB,MAAAA,EAAA,aAAa,KAAK,aAAa;AAAA,EACtC;AAAA,EAGM,oBAAoB;AAC1B,UAAMG,IAAS,KAAK,SAAS,OAAS,EAAA;AAClC,IAAAA,KAAU,CAAC,KAAK,kBACb,KAAA,gBAAgB,IAAIC,EAAkBD,CAAM;AAAA,EACnD;AAEJ;"}