@nuxtjs/prismic 3.0.0-rc.4 → 3.0.0-rc.5

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.d.ts CHANGED
@@ -1,20 +1,20 @@
1
1
  import * as _nuxt_schema from '@nuxt/schema';
2
2
  import { PrismicPluginOptions } from '@prismicio/vue';
3
3
 
4
- type PrismicModuleOptions = Omit<PrismicPluginOptions, 'endpoint' | 'client' | 'linkResolver' | 'htmlSerializer'> & {
5
- endpoint: string;
6
- client?: string;
7
- linkResolver?: string;
8
- htmlSerializer?: string;
9
- preview?: string | false;
10
- toolbar?: boolean;
4
+ type PrismicModuleOptions = Omit<PrismicPluginOptions, 'endpoint' | 'client' | 'linkResolver' | 'htmlSerializer'> & {
5
+ endpoint: string;
6
+ client?: string;
7
+ linkResolver?: string;
8
+ htmlSerializer?: string;
9
+ preview?: string | false;
10
+ toolbar?: boolean;
11
11
  };
12
12
 
13
- declare module '@nuxt/schema' {
14
- interface PublicRuntimeConfig {
15
- prismic: PrismicModuleOptions;
16
- }
17
- }
13
+ declare module '@nuxt/schema' {
14
+ interface PublicRuntimeConfig {
15
+ prismic: PrismicModuleOptions;
16
+ }
17
+ }
18
18
  declare const _default: _nuxt_schema.NuxtModule<PrismicModuleOptions>;
19
19
 
20
20
  export { PrismicModuleOptions, _default as default };
package/dist/module.json CHANGED
@@ -4,5 +4,5 @@
4
4
  "compatibility": {
5
5
  "nuxt": "^3.0.0"
6
6
  },
7
- "version": "3.0.0-rc.4"
7
+ "version": "3.0.0-rc.5"
8
8
  }
package/dist/module.mjs CHANGED
@@ -1,11 +1,11 @@
1
1
  import { join } from 'node:path';
2
2
  import { defu } from 'defu';
3
- import { defineNuxtModule, createResolver, addPlugin, addComponent, addImports, extendPages, addTemplate } from '@nuxt/kit';
3
+ import { defineNuxtModule, addTemplate, createResolver, addPlugin, addComponent, addImports, extendPages } from '@nuxt/kit';
4
4
  import * as prismicVue from '@prismicio/vue';
5
- import consola from 'consola';
5
+ import { consola } from 'consola';
6
6
  import { existsSync } from 'node:fs';
7
7
 
8
- const logger = consola.withScope("nuxt:prismic");
8
+ const logger = consola.withTag("nuxt:prismic");
9
9
 
10
10
  const fileExists = (path, extensions = ["js", "ts"]) => {
11
11
  if (!path) {
@@ -37,7 +37,15 @@ const module = defineNuxtModule({
37
37
  hooks: {},
38
38
  setup(options, nuxt) {
39
39
  var _a;
40
- if (!options.endpoint) {
40
+ (_a = nuxt.options.runtimeConfig).public || (_a.public = {});
41
+ const moduleOptions = defu(nuxt.options.runtimeConfig.public.prismic, options);
42
+ nuxt.options.runtimeConfig.public.prismic = moduleOptions;
43
+ nuxt.options.alias["#prismicOptions"] = addTemplate({
44
+ filename: "prismicOptions.mjs",
45
+ write: true,
46
+ getContents: () => `export default ${JSON.stringify(moduleOptions, void 0, 2)}`
47
+ }).dst || "";
48
+ if (!moduleOptions.endpoint) {
41
49
  logger.warn("Options `endpoint` is required, disabling module...");
42
50
  return;
43
51
  }
@@ -60,14 +68,12 @@ const module = defineNuxtModule({
60
68
  });
61
69
  }
62
70
  };
63
- proxyUserFileWithUndefinedFallback("client", options.client);
64
- proxyUserFileWithUndefinedFallback("linkResolver", options.linkResolver);
65
- proxyUserFileWithUndefinedFallback("htmlSerializer", options.htmlSerializer);
66
- (_a = nuxt.options.runtimeConfig).public || (_a.public = {});
67
- nuxt.options.runtimeConfig.public.prismic = defu(nuxt.options.runtimeConfig.public.prismic, options);
71
+ proxyUserFileWithUndefinedFallback("client", moduleOptions.client);
72
+ proxyUserFileWithUndefinedFallback("linkResolver", moduleOptions.linkResolver);
73
+ proxyUserFileWithUndefinedFallback("htmlSerializer", moduleOptions.htmlSerializer);
68
74
  addPlugin(resolver.resolve("runtime/plugin"));
69
75
  addPlugin(resolver.resolve("runtime/plugin.client"));
70
- if (options.injectComponents) {
76
+ if (moduleOptions.injectComponents) {
71
77
  [
72
78
  "PrismicEmbed",
73
79
  "PrismicImage",
@@ -96,21 +102,22 @@ const module = defineNuxtModule({
96
102
  as: "usePrismicPreview",
97
103
  from: resolver.resolve("runtime/usePrismicPreview")
98
104
  });
99
- if (options.preview) {
100
- const maybeUserPreviewPage = fileExists(join(nuxt.options.srcDir, nuxt.options.dir.pages, options.preview), ["js", "ts", "vue"]);
105
+ if (moduleOptions.preview) {
106
+ const maybeUserPreviewPage = fileExists(join(nuxt.options.srcDir, nuxt.options.dir.pages, moduleOptions.preview), ["js", "ts", "vue"]);
101
107
  if (maybeUserPreviewPage) {
102
- logger.info(`Using user-defined preview page at \`${maybeUserPreviewPage.replace(join(nuxt.options.srcDir), "~").replace(nuxt.options.rootDir, "~~").replace(/\\/g, "/")}\`, available at \`${options.preview}\``);
108
+ logger.info(`Using user-defined preview page at \`${maybeUserPreviewPage.replace(join(nuxt.options.srcDir), "~").replace(nuxt.options.rootDir, "~~").replace(/\\/g, "/")}\`, available at \`${moduleOptions.preview}\``);
103
109
  } else {
104
- logger.info(`Using default preview page, available at \`${options.preview}\``);
110
+ logger.info(`Using default preview page, available at \`${moduleOptions.preview}\``);
105
111
  extendPages((pages) => {
106
112
  pages.unshift({
107
113
  name: "prismic-preview",
108
- path: options.preview,
114
+ path: moduleOptions.preview,
115
+ // Checked before
109
116
  file: resolver.resolve("runtime/preview.vue")
110
117
  });
111
118
  });
112
119
  }
113
- if (!options.toolbar) {
120
+ if (!moduleOptions.toolbar) {
114
121
  logger.warn("`toolbar` option is disabled but `preview` is enabled. Previews won't work unless you manually load the toolbar.");
115
122
  }
116
123
  }
@@ -1,2 +1,2 @@
1
- declare const _default: any;
2
- export default _default;
1
+ declare const _default: any;
2
+ export default _default;
@@ -1,6 +1,7 @@
1
- import { defineNuxtPlugin, refreshNuxtData, useRuntimeConfig } from "#imports";
1
+ import { defineNuxtPlugin, refreshNuxtData } from "#imports";
2
+ import moduleOptions from "#prismicOptions";
2
3
  export default defineNuxtPlugin((nuxtApp) => {
3
- const options = useRuntimeConfig().public.prismic;
4
+ const options = moduleOptions;
4
5
  if (options.preview) {
5
6
  window.addEventListener("prismicPreviewUpdate", (event) => {
6
7
  event.preventDefault();
@@ -1,2 +1,2 @@
1
- declare const _default: any;
2
- export default _default;
1
+ declare const _default: any;
2
+ export default _default;
@@ -1,18 +1,20 @@
1
1
  import NuxtLink from "#app/components/nuxt-link";
2
2
  import { isRepositoryEndpoint, getRepositoryName } from "@prismicio/client";
3
3
  import { createPrismic } from "@prismicio/vue";
4
- import { defineNuxtPlugin, useCookie, useRequestEvent, refreshNuxtData, useHead, useRuntimeConfig } from "#imports";
4
+ import { defineNuxtPlugin, useCookie, useRequestEvent, refreshNuxtData, useHead } from "#imports";
5
5
  import client from "#build/prismic/proxy/client";
6
6
  import linkResolver from "#build/prismic/proxy/linkResolver";
7
7
  import htmlSerializer from "#build/prismic/proxy/htmlSerializer";
8
+ import moduleOptions from "#prismicOptions";
8
9
  export default defineNuxtPlugin((nuxtApp) => {
9
- const options = useRuntimeConfig().public.prismic;
10
+ const options = moduleOptions;
10
11
  const prismicPlugin = createPrismic({
11
12
  ...options,
12
13
  client,
13
14
  linkResolver,
14
15
  htmlSerializer,
15
16
  injectComponents: false,
17
+ // Handled at module level
16
18
  components: {
17
19
  linkInternalComponent: NuxtLink,
18
20
  linkExternalComponent: NuxtLink,
@@ -1,6 +1,6 @@
1
- /**
2
- * Resolves Prismic previews on the preview entry page (`/preview`)
3
- *
4
- * @param defaultURL - The default URL to redirect to if the previewed document doesn't map to one.
5
- */
6
- export declare const usePrismicPreview: (defaultURL?: string) => void;
1
+ /**
2
+ * Resolves Prismic previews on the preview entry page (`/preview`)
3
+ *
4
+ * @param defaultURL - The default URL to redirect to if the previewed document doesn't map to one.
5
+ */
6
+ export declare const usePrismicPreview: (defaultURL?: string) => void;
package/dist/types.d.ts CHANGED
@@ -3,4 +3,5 @@ import { } from './module'
3
3
 
4
4
 
5
5
 
6
+
6
7
  export { PrismicModuleOptions, default } from './module'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nuxtjs/prismic",
3
- "version": "3.0.0-rc.4",
3
+ "version": "3.0.0-rc.5",
4
4
  "description": "Easily connect your Nuxt 3 application to your content hosted on Prismic",
5
5
  "keywords": [
6
6
  "nuxt",
@@ -50,22 +50,22 @@
50
50
  "unit:watch": "vitest watch"
51
51
  },
52
52
  "dependencies": {
53
- "@nuxt/kit": "^3.3.2",
53
+ "@nuxt/kit": "^3.4.3",
54
54
  "@prismicio/client": "^6.7.3",
55
- "@prismicio/vue": "^3.1.3",
56
- "consola": "^2.15.3",
55
+ "@prismicio/vue": "^3.1.4",
56
+ "consola": "^3.1.0",
57
57
  "defu": "^6.1.2"
58
58
  },
59
59
  "devDependencies": {
60
- "@nuxt/module-builder": "^0.2.1",
60
+ "@nuxt/module-builder": "^0.3.1",
61
61
  "@nuxtjs/eslint-config-typescript": "^12.0.0",
62
- "@vitest/coverage-c8": "^0.29.7",
63
- "eslint": "^8.36.0",
62
+ "@vitest/coverage-c8": "^0.31.0",
63
+ "eslint": "^8.39.0",
64
64
  "mock-fs": "^5.2.0",
65
- "nuxt": "^3.3.2",
65
+ "nuxt": "^3.4.3",
66
66
  "standard-version": "^9.5.0",
67
- "typescript": "^4.9.5",
68
- "vitest": "^0.29.7"
67
+ "typescript": "^5.0.4",
68
+ "vitest": "^0.31.0"
69
69
  },
70
70
  "engines": {
71
71
  "node": ">=14.15.0"
package/src/lib/logger.ts CHANGED
@@ -1,3 +1,3 @@
1
- import consola from 'consola'
1
+ import { consola } from 'consola'
2
2
 
3
- export const logger = consola.withScope('nuxt:prismic')
3
+ export const logger = consola.withTag('nuxt:prismic')
package/src/module.ts CHANGED
@@ -45,7 +45,18 @@ export default defineNuxtModule<PrismicModuleOptions>({
45
45
  }),
46
46
  hooks: {},
47
47
  setup (options, nuxt) {
48
- if (!options.endpoint) {
48
+ // Expose options through public runtime config
49
+ nuxt.options.runtimeConfig.public ||= {} as typeof nuxt.options.runtimeConfig.public
50
+ const moduleOptions: PrismicModuleOptions = defu(nuxt.options.runtimeConfig.public.prismic, options)
51
+ nuxt.options.runtimeConfig.public.prismic = moduleOptions
52
+
53
+ nuxt.options.alias['#prismicOptions'] = addTemplate({
54
+ filename: 'prismicOptions.mjs',
55
+ write: true,
56
+ getContents: () => `export default ${JSON.stringify(moduleOptions, undefined, 2)}`
57
+ }).dst || ''
58
+
59
+ if (!moduleOptions.endpoint) {
49
60
  logger.warn('Options `endpoint` is required, disabling module...')
50
61
  return
51
62
  }
@@ -76,20 +87,16 @@ export default defineNuxtModule<PrismicModuleOptions>({
76
87
  })
77
88
  }
78
89
  }
79
- proxyUserFileWithUndefinedFallback('client', options.client!)
80
- proxyUserFileWithUndefinedFallback('linkResolver', options.linkResolver!)
81
- proxyUserFileWithUndefinedFallback('htmlSerializer', options.htmlSerializer!)
82
-
83
- // Expose options through public runtime config
84
- nuxt.options.runtimeConfig.public ||= {} as typeof nuxt.options.runtimeConfig.public
85
- nuxt.options.runtimeConfig.public.prismic = defu(nuxt.options.runtimeConfig.public.prismic, options)
90
+ proxyUserFileWithUndefinedFallback('client', moduleOptions.client!)
91
+ proxyUserFileWithUndefinedFallback('linkResolver', moduleOptions.linkResolver!)
92
+ proxyUserFileWithUndefinedFallback('htmlSerializer', moduleOptions.htmlSerializer!)
86
93
 
87
94
  // Add plugin
88
95
  addPlugin(resolver.resolve('runtime/plugin'))
89
96
  addPlugin(resolver.resolve('runtime/plugin.client'))
90
97
 
91
98
  // Add components auto import
92
- if (options.injectComponents) {
99
+ if (moduleOptions.injectComponents) {
93
100
  [
94
101
  'PrismicEmbed',
95
102
  'PrismicImage',
@@ -126,25 +133,25 @@ export default defineNuxtModule<PrismicModuleOptions>({
126
133
  })
127
134
 
128
135
  // Add preview route
129
- if (options.preview) {
130
- const maybeUserPreviewPage = fileExists(join(nuxt.options.srcDir, nuxt.options.dir.pages, options.preview), ['js', 'ts', 'vue'])
136
+ if (moduleOptions.preview) {
137
+ const maybeUserPreviewPage = fileExists(join(nuxt.options.srcDir, nuxt.options.dir.pages, moduleOptions.preview), ['js', 'ts', 'vue'])
131
138
 
132
139
  if (maybeUserPreviewPage) {
133
140
  logger.info(`Using user-defined preview page at \`${maybeUserPreviewPage.replace(join(nuxt.options.srcDir), '~').replace(nuxt.options.rootDir, '~~').replace(/\\/g, '/')
134
- }\`, available at \`${options.preview}\``)
141
+ }\`, available at \`${moduleOptions.preview}\``)
135
142
  } else {
136
- logger.info(`Using default preview page, available at \`${options.preview}\``)
143
+ logger.info(`Using default preview page, available at \`${moduleOptions.preview}\``)
137
144
 
138
145
  extendPages((pages) => {
139
146
  pages.unshift({
140
147
  name: 'prismic-preview',
141
- path: options.preview as string, // Checked before
148
+ path: moduleOptions.preview as string, // Checked before
142
149
  file: resolver.resolve('runtime/preview.vue')
143
150
  })
144
151
  })
145
152
  }
146
153
 
147
- if (!options.toolbar) {
154
+ if (!moduleOptions.toolbar) {
148
155
  logger.warn('`toolbar` option is disabled but `preview` is enabled. Previews won\'t work unless you manually load the toolbar.')
149
156
  }
150
157
  }
@@ -1,8 +1,10 @@
1
1
  import { PrismicModuleOptions } from '../types'
2
2
  import { defineNuxtPlugin, refreshNuxtData, useRuntimeConfig } from '#imports'
3
3
 
4
+ import moduleOptions from '#prismicOptions'
5
+
4
6
  export default defineNuxtPlugin((nuxtApp) => {
5
- const options: PrismicModuleOptions = useRuntimeConfig().public.prismic
7
+ const options = moduleOptions as PrismicModuleOptions
6
8
 
7
9
  // Hot reload preview updates
8
10
  if (options.preview) {
@@ -13,8 +13,10 @@ import linkResolver from '#build/prismic/proxy/linkResolver'
13
13
  // @ts-expect-error vfs cannot be resolved here
14
14
  import htmlSerializer from '#build/prismic/proxy/htmlSerializer'
15
15
 
16
+ import moduleOptions from '#prismicOptions'
17
+
16
18
  export default defineNuxtPlugin((nuxtApp) => {
17
- const options: PrismicModuleOptions = useRuntimeConfig().public.prismic
19
+ const options = moduleOptions as PrismicModuleOptions
18
20
 
19
21
  const prismicPlugin = createPrismic({
20
22
  ...options,