@nuxtjs/prismic 3.0.0-alpha.7 → 3.0.0-alpha.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/module.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nuxtjs/prismic",
3
- "version": "3.0.0-alpha.7",
3
+ "version": "3.0.0-alpha.8",
4
4
  "configKey": "prismic",
5
5
  "compatibility": {
6
6
  "nuxt": "^3.0.0"
package/dist/module.mjs CHANGED
@@ -7,7 +7,7 @@ import { existsSync } from 'fs';
7
7
  import consola from 'consola';
8
8
 
9
9
  const name = "@nuxtjs/prismic";
10
- const version = "3.0.0-alpha.7";
10
+ const version = "3.0.0-alpha.8";
11
11
 
12
12
  const fileExists = (path, extensions = ["js", "ts"]) => {
13
13
  if (!path) {
@@ -70,6 +70,7 @@ const module = defineNuxtModule({
70
70
  (_a = nuxt.options.runtimeConfig).public || (_a.public = {});
71
71
  nuxt.options.runtimeConfig.public[name] = mergedOptions;
72
72
  addPlugin(resolver.resolve("runtime/plugin"));
73
+ addPlugin(resolver.resolve("runtime/plugin.client"));
73
74
  if (mergedOptions.injectComponents) {
74
75
  [
75
76
  "PrismicEmbed",
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,13 @@
1
+ import { defineNuxtPlugin } from "#app";
2
+ const pkgName = "@nuxtjs/prismic";
3
+ export default defineNuxtPlugin((nuxtApp) => {
4
+ const mergedOptions = nuxtApp.payload.config[pkgName] ?? nuxtApp.payload.config.public[pkgName] ?? {};
5
+ if (mergedOptions.preview) {
6
+ window.addEventListener("prismicPreviewUpdate", (event) => {
7
+ if (refreshNuxtData) {
8
+ event.preventDefault();
9
+ refreshNuxtData();
10
+ }
11
+ });
12
+ }
13
+ });
@@ -7,7 +7,7 @@ import htmlSerializer from "#build/prismic/proxy/htmlSerializer";
7
7
  const pkgName = "@nuxtjs/prismic";
8
8
  export default defineNuxtPlugin((nuxtApp) => {
9
9
  const mergedOptions = nuxtApp.payload.config[pkgName] ?? nuxtApp.payload.config.public[pkgName] ?? {};
10
- nuxtApp.vueApp.use(createPrismic({
10
+ const prismicPlugin = createPrismic({
11
11
  ...mergedOptions,
12
12
  client,
13
13
  linkResolver,
@@ -18,5 +18,21 @@ export default defineNuxtPlugin((nuxtApp) => {
18
18
  linkExternalComponent: NuxtLink,
19
19
  ...mergedOptions.components
20
20
  }
21
- }));
21
+ });
22
+ nuxtApp.vueApp.use(prismicPlugin);
23
+ if (mergedOptions.preview) {
24
+ const previewCookie = useCookie("io.prismic.preview").value;
25
+ if (process.server) {
26
+ prismicPlugin.client.enableAutoPreviewsFromReq(useRequestEvent()?.req);
27
+ }
28
+ if (previewCookie) {
29
+ try {
30
+ const session = typeof previewCookie === "string" ? JSON.parse(decodeURIComponent(previewCookie)) : previewCookie;
31
+ if (Object.keys(session).some((key) => key in session && typeof session[key] === "object" && session[key] !== null && "preview" in session[key] && session[key].preview)) {
32
+ refreshNuxtData();
33
+ }
34
+ } catch (error) {
35
+ }
36
+ }
37
+ }
22
38
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nuxtjs/prismic",
3
- "version": "3.0.0-alpha.7",
3
+ "version": "3.0.0-alpha.8",
4
4
  "description": "Easily connect your Nuxt 3 application to your content hosted on Prismic",
5
5
  "keywords": [
6
6
  "nuxt",
package/src/module.ts CHANGED
@@ -86,6 +86,7 @@ export default defineNuxtModule<PrismicModuleOptions>({
86
86
 
87
87
  // Add plugin
88
88
  addPlugin(resolver.resolve('runtime/plugin'))
89
+ addPlugin(resolver.resolve('runtime/plugin.client'))
89
90
 
90
91
  // Add components auto import
91
92
  if (mergedOptions.injectComponents) {
@@ -0,0 +1,24 @@
1
+ import { defineNuxtPlugin } from '#app'
2
+
3
+ // import { name as pkgName } from '../../package.json'
4
+ import { PrismicModuleOptions } from '../types'
5
+
6
+ // TODO: Revert when fixed
7
+ const pkgName = '@nuxtjs/prismic'
8
+
9
+ export default defineNuxtPlugin((nuxtApp) => {
10
+ const mergedOptions: PrismicModuleOptions =
11
+ nuxtApp.payload.config[pkgName] ??
12
+ nuxtApp.payload.config.public[pkgName] ??
13
+ {}
14
+
15
+ // Hot reload preview updates
16
+ if (mergedOptions.preview) {
17
+ window.addEventListener('prismicPreviewUpdate', (event) => {
18
+ if (refreshNuxtData) {
19
+ event.preventDefault()
20
+ refreshNuxtData()
21
+ }
22
+ })
23
+ }
24
+ })
@@ -22,7 +22,7 @@ export default defineNuxtPlugin((nuxtApp) => {
22
22
  nuxtApp.payload.config.public[pkgName] ??
23
23
  {}
24
24
 
25
- nuxtApp.vueApp.use(createPrismic({
25
+ const prismicPlugin = createPrismic({
26
26
  ...mergedOptions,
27
27
  client,
28
28
  linkResolver,
@@ -33,5 +33,34 @@ export default defineNuxtPlugin((nuxtApp) => {
33
33
  linkExternalComponent: NuxtLink,
34
34
  ...mergedOptions.components
35
35
  }
36
- }))
36
+ })
37
+
38
+ nuxtApp.vueApp.use(prismicPlugin)
39
+
40
+ if (mergedOptions.preview) {
41
+ const previewCookie = useCookie('io.prismic.preview').value
42
+
43
+ // Update client with req when running server side
44
+ if (process.server) {
45
+ prismicPlugin.client.enableAutoPreviewsFromReq(useRequestEvent()?.req)
46
+ }
47
+
48
+ if (previewCookie) {
49
+ try {
50
+ const session = typeof previewCookie === 'string' ? JSON.parse(decodeURIComponent(previewCookie)) : previewCookie
51
+
52
+ if (Object.keys(session).some(key =>
53
+ key in session &&
54
+ typeof session[key] === 'object' &&
55
+ session[key] !== null &&
56
+ 'preview' in session[key] &&
57
+ session[key].preview)
58
+ ) {
59
+ refreshNuxtData()
60
+ }
61
+ } catch (error) {
62
+ // noop
63
+ }
64
+ }
65
+ }
37
66
  })