[{"data":1,"prerenderedAt":134},["ShallowReactive",2],{"project-\u002Fprojects\u002Fpinia-colada-normalizer":3},{"id":4,"title":5,"body":6,"description":111,"extension":112,"featured":113,"github":114,"live":101,"meta":115,"metric_source":116,"navigation":113,"order":117,"path":118,"pr_links":119,"proof_url":70,"seo":120,"status":121,"statusColor":122,"stem":123,"subtitle":124,"tech":125,"tier":131,"verification_tier":132,"__hash__":133},"projects\u002Fprojects\u002Fpinia-colada-normalizer.md","Pinia Colada Normalizer",{"type":7,"value":8,"toc":104},"minimark",[9,13,25,30,46,50,53,57],[10,11,5],"h1",{"id":12},"pinia-colada-normalizer",[14,15,16,17,24],"p",{},"Pinia Colada — Vue's official data-fetching library, built by ",[18,19,23],"a",{"href":20,"rel":21},"https:\u002F\u002Fgithub.com\u002Fposva",[22],"nofollow","posva"," (creator of Pinia and Vue Router) — caches each query independently. Fetch the same entity from two different endpoints and you get two copies; update one and the other goes stale. This plugin normalizes entities into a shared store so every view holding that entity reads the same reference — one write, propagated everywhere, with zero per-query config.",[26,27,29],"h2",{"id":28},"how-it-works","How it works",[14,31,32,33,37,38,41,42,45],{},"The plugin hooks into Pinia Colada's ",[34,35,36],"code",{},"extend"," API and replaces each query's ",[34,39,40],{},"entry.state"," with a Vue ",[34,43,44],{},"customRef",": writes normalize the response into a shared entity store, reads denormalize it back into the shape the component expects. A single WebSocket push or mutation response updates the store once — every component holding that entity re-renders, automatically.",[26,47,49],{"id":48},"persistence","Persistence",[14,51,52],{},"IndexedDB by default; an optional SQLite-WASM (OPFS) engine shipped in 0.3.0 for larger datasets. Pluggable — bring your own storage engine.",[26,54,56],{"id":55},"proof","Proof",[58,59,60,76,94],"ul",{},[61,62,63,67,68,75],"li",{},[64,65,66],"strong",{},"npm:"," ",[18,69,72],{"href":70,"rel":71},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fpinia-colada-plugin-normalizer",[22],[34,73,74],{},"pinia-colada-plugin-normalizer"," — published, installable today.",[61,77,78,87,88,93],{},[64,79,80,81,83,84,86],{},"posva welcomed it and validated the ",[34,82,44],{},"\u002F",[34,85,40],{}," design"," in public ",[18,89,92],{"href":90,"rel":91},"https:\u002F\u002Fgithub.com\u002Fposva\u002Fpinia-colada\u002Fdiscussions\u002F531",[22],"Discussion #531"," on the Pinia Colada repo itself.",[61,95,96,67,99],{},[64,97,98],{},"Live demo:",[18,100,103],{"href":101,"rel":102},"https:\u002F\u002Fpinia-colada-plugin-normalizer.vercel.app",[22],"pinia-colada-plugin-normalizer.vercel.app",{"title":105,"searchDepth":106,"depth":106,"links":107},"",2,[108,109,110],{"id":28,"depth":106,"text":29},{"id":48,"depth":106,"text":49},{"id":55,"depth":106,"text":56},"An open-source Vue plugin that adds normalized, cross-query entity caching to Pinia Colada — Vue's official data-fetching library — so one update propagates instantly across every view holding that entity.","md",true,"https:\u002F\u002Fgithub.com\u002FDanny-Devs\u002Fpinia-colada-plugin-normalizer",{},null,4,"\u002Fprojects\u002Fpinia-colada-normalizer",[],{"title":5,"description":111},"Published","green","projects\u002Fpinia-colada-normalizer","Apollo-style normalized entity caching for Pinia Colada",[126,127,128,129,130],"TypeScript","Vue 3","Pinia","Pinia Colada","IndexedDB","working","production","wImtmF1hATxusa1Pk-YdVWCDvyPgraFYalsjXwEaUKU",1788226713817]