All files / site subscriptions.ts

27.27% Statements 3/11
0% Branches 0/3
25% Functions 1/4
33.33% Lines 3/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25        2x       2x 2x                              
import type {Entity} from '../types'
import type Community from './index'
import type {SiteOutputs} from './outputs/index'
 
export class Subscriptions {
  site: Community
  subs: {[index: string]: Map<string, SiteOutputs>}
  constructor(site: Community) {
    this.site = site
    this.subs = {}
  }
  add(id: string, o: SiteOutputs) {
    Iif (!(id in this.subs)) this.subs[id] = new Map()
    this.subs[id].set(o.id, o)
  }
  update(id: string, fun: string, e: Entity) {
    Iif (id in this.subs) {
      const tu = this.site.outputs[id]
      this.subs[id].forEach(u => {
        Iif (fun in u) (u[fun as keyof SiteOutputs] as Function)(e, tu)
      })
    }
  }
}