sse.ts 798 B

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