normalizePlugin.js 615 B

123456789101112131415161718192021
  1. import { useEntityStore } from "pinia-colada-plugin-normalizer"
  2. export default defineNuxtPlugin({
  3. name: "normalize-plugin",
  4. setup: (nuxtApp) => {
  5. const entityStore = useEntityStore()
  6. if (import.meta.server) {
  7. nuxtApp.hook("app:rendered", ({ ssrContext }) => {
  8. ssrContext.payload.normalizer = entityStore.toJSON()
  9. // console.log("[normalize-plugin] [entityStore.toJSON]")
  10. })
  11. } else if (nuxtApp.payload && nuxtApp.payload.normalizer) {
  12. entityStore.hydrate(nuxtApp.payload.normalizer)
  13. // console.log("[normalize-plugin] [entityStore.hydrate]")
  14. }
  15. }
  16. })