sse.ts 744 B

123456789101112131415161718192021222324252627282930
  1. import {MercureEntityUpdate, sseState} from "~/types/interfaces";
  2. import {repositoryHelper} from "~/services/store/repository";
  3. import ModelsUtils from "~/services/utils/modelsUtils";
  4. export const state = () => ({
  5. connected: false,
  6. })
  7. export const mutations = {
  8. setConnected(state: sseState, connected: boolean) {
  9. state.connected = connected
  10. },
  11. addEvent(state: sseState, event: MercureEntityUpdate) {
  12. const model = ModelsUtils.getModelFromIri(event.iri)
  13. switch (event.operation) {
  14. case "update":
  15. case "create":
  16. repositoryHelper.persist(model, JSON.parse(event.data))
  17. break
  18. case "delete":
  19. break
  20. default:
  21. throw new Error('SSE: unknown operation type')
  22. }
  23. }
  24. }