@sanity/visual-editing
Version:
[](https://npm-stat.com/charts.html?package=@sanity/visual-editing) [](https://
2 lines (1 loc) • 2.71 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_chunks-cjs/context.cjs"),t=require("@sanity/mutate/_unstable_machine"),n=require("xstate"),s=require("@sanity/mutate");const o=e=>{const o=n.fromPromise((async({input:t,signal:n})=>{const{id:s}=t,{snapshot:o}=await e.fetch("visual-editing/fetch-snapshot",{documentId:s},{signal:n});return o})),r=n.fromPromise((async({input:t})=>{const{transactions:n}=t;for(const t of n){const n=s.SanityEncoder.encodeTransaction(t);return e.post("visual-editing/mutate",n)}}));return t.documentMutatorMachine.provide({actions:{"send sync event to parent":n.enqueueActions((({enqueue:e})=>{e.sendParent((({context:e})=>({type:"sync",id:e.id,document:e.remote}))),e.emit((({context:e})=>({type:"ready",snapshot:e.local})))}))},actors:{"fetch remote snapshot":o,"submit mutations as transactions":r}})},r=n.setup({types:{},actions:{"emit sync event":n.emit((({event:e})=>(n.assertEvent(e,"sync"),e))),"emit mutation event":n.emit((({event:e})=>(n.assertEvent(e,"mutation"),e))),"emit rebased event":n.emit((({event:e})=>(n.assertEvent(e,["rebased.local","rebased.remote"]),e))),"emit pristine event":n.emit((({event:e})=>(n.assertEvent(e,["pristine"]),e))),"add document actor":n.assign({documents:({context:e,event:s,spawn:o})=>{n.assertEvent(s,"observe");const r=s.documentId;return e.documents[r]?e.documents:{...e.documents,[r]:o("documentMutatorMachine",{input:{id:r,client:e.client,sharedListener:e.sharedListener||t.createSharedListener(e.client)},id:r})}}}),"stop remote snapshot":n.stopChild((({context:e,event:t})=>(n.assertEvent(t,"unobserve"),e.documents[t.documentId]))),"remove remote snapshot from context":n.assign({documents:({context:e,event:t})=>{if(n.assertEvent(t,"unobserve"),!e.documents[t.documentId])return e.documents;const{[t.documentId]:s,...o}=e.documents;return o}})},actors:{documentMutatorMachine:t.documentMutatorMachine}}).createMachine({id:"dataset-mutator",context:({input:e})=>({documents:{},client:e.client,sharedListener:e.sharedListener}),on:{sync:{actions:["emit sync event"]},mutation:{actions:["emit mutation event"]},"rebased.*":{actions:["emit rebased event"]},pristine:{actions:["emit pristine event"]},observe:{actions:["add document actor"]},unobserve:{actions:["stop remote snapshot","remove remote snapshot from context"]}},initial:"pristine",states:{pristine:{}}});Object.defineProperty(exports,"actor",{enumerable:!0,get:function(){return e.a}}),exports.emptyActor=e.e,exports.isEmptyActor=e.i,exports.listeners=e.l,exports.setActor=e.s,exports.createDatasetMutator=e=>r.provide({actors:{documentMutatorMachine:o(e)}}),exports.createDocumentMutator=o;//# sourceMappingURL=index.cjs.map