@nuxtjs/prismic 3.0.0-rc.3 → 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 +12 -12
- package/dist/module.json +1 -1
- package/dist/module.mjs +23 -16
- package/dist/runtime/plugin.client.d.ts +2 -2
- package/dist/runtime/plugin.client.mjs +3 -2
- package/dist/runtime/plugin.d.ts +2 -2
- package/dist/runtime/plugin.mjs +3 -1
- package/dist/runtime/usePrismicPreview.d.ts +6 -6
- package/dist/types.d.ts +1 -0
- package/package.json +10 -10
- package/src/lib/logger.ts +2 -2
- package/src/module.ts +22 -15
- package/src/runtime/plugin.client.ts +4 -3
- package/src/runtime/plugin.ts +4 -2
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
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
|
|
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.
|
|
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
|
-
|
|
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",
|
|
64
|
-
proxyUserFileWithUndefinedFallback("linkResolver",
|
|
65
|
-
proxyUserFileWithUndefinedFallback("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 (
|
|
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 (
|
|
100
|
-
const maybeUserPreviewPage = fileExists(join(nuxt.options.srcDir, nuxt.options.dir.pages,
|
|
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 \`${
|
|
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 \`${
|
|
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:
|
|
114
|
+
path: moduleOptions.preview,
|
|
115
|
+
// Checked before
|
|
109
116
|
file: resolver.resolve("runtime/preview.vue")
|
|
110
117
|
});
|
|
111
118
|
});
|
|
112
119
|
}
|
|
113
|
-
if (!
|
|
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 } from "#
|
|
1
|
+
import { defineNuxtPlugin, refreshNuxtData } from "#imports";
|
|
2
|
+
import moduleOptions from "#prismicOptions";
|
|
2
3
|
export default defineNuxtPlugin((nuxtApp) => {
|
|
3
|
-
const options =
|
|
4
|
+
const options = moduleOptions;
|
|
4
5
|
if (options.preview) {
|
|
5
6
|
window.addEventListener("prismicPreviewUpdate", (event) => {
|
|
6
7
|
event.preventDefault();
|
package/dist/runtime/plugin.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: any;
|
|
2
|
-
export default _default;
|
|
1
|
+
declare const _default: any;
|
|
2
|
+
export default _default;
|
package/dist/runtime/plugin.mjs
CHANGED
|
@@ -5,14 +5,16 @@ import { defineNuxtPlugin, useCookie, useRequestEvent, refreshNuxtData, useHead
|
|
|
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 =
|
|
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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nuxtjs/prismic",
|
|
3
|
-
"version": "3.0.0-rc.
|
|
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
|
|
53
|
+
"@nuxt/kit": "^3.4.3",
|
|
54
54
|
"@prismicio/client": "^6.7.3",
|
|
55
|
-
"@prismicio/vue": "^3.1.
|
|
56
|
-
"consola": "^
|
|
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.
|
|
60
|
+
"@nuxt/module-builder": "^0.3.1",
|
|
61
61
|
"@nuxtjs/eslint-config-typescript": "^12.0.0",
|
|
62
|
-
"@vitest/coverage-c8": "^0.
|
|
63
|
-
"eslint": "^8.
|
|
62
|
+
"@vitest/coverage-c8": "^0.31.0",
|
|
63
|
+
"eslint": "^8.39.0",
|
|
64
64
|
"mock-fs": "^5.2.0",
|
|
65
|
-
"nuxt": "^3.3
|
|
65
|
+
"nuxt": "^3.4.3",
|
|
66
66
|
"standard-version": "^9.5.0",
|
|
67
|
-
"typescript": "^
|
|
68
|
-
"vitest": "^0.
|
|
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.
|
|
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
|
-
|
|
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',
|
|
80
|
-
proxyUserFileWithUndefinedFallback('linkResolver',
|
|
81
|
-
proxyUserFileWithUndefinedFallback('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 (
|
|
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 (
|
|
130
|
-
const maybeUserPreviewPage = fileExists(join(nuxt.options.srcDir, nuxt.options.dir.pages,
|
|
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 \`${
|
|
141
|
+
}\`, available at \`${moduleOptions.preview}\``)
|
|
135
142
|
} else {
|
|
136
|
-
logger.info(`Using default preview page, available at \`${
|
|
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:
|
|
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 (!
|
|
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,9 +1,10 @@
|
|
|
1
|
-
import { defineNuxtPlugin, refreshNuxtData } from '#app'
|
|
2
|
-
|
|
3
1
|
import { PrismicModuleOptions } from '../types'
|
|
2
|
+
import { defineNuxtPlugin, refreshNuxtData, useRuntimeConfig } from '#imports'
|
|
3
|
+
|
|
4
|
+
import moduleOptions from '#prismicOptions'
|
|
4
5
|
|
|
5
6
|
export default defineNuxtPlugin((nuxtApp) => {
|
|
6
|
-
const options
|
|
7
|
+
const options = moduleOptions as PrismicModuleOptions
|
|
7
8
|
|
|
8
9
|
// Hot reload preview updates
|
|
9
10
|
if (options.preview) {
|
package/src/runtime/plugin.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { isRepositoryEndpoint, getRepositoryName } from '@prismicio/client'
|
|
|
4
4
|
import { createPrismic } from '@prismicio/vue'
|
|
5
5
|
|
|
6
6
|
import { PrismicModuleOptions } from '../types'
|
|
7
|
-
import { defineNuxtPlugin, useCookie, useRequestEvent, refreshNuxtData, useHead } from '#imports'
|
|
7
|
+
import { defineNuxtPlugin, useCookie, useRequestEvent, refreshNuxtData, useHead, useRuntimeConfig } from '#imports'
|
|
8
8
|
|
|
9
9
|
// @ts-expect-error vfs cannot be resolved here
|
|
10
10
|
import client from '#build/prismic/proxy/client'
|
|
@@ -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
|
|
19
|
+
const options = moduleOptions as PrismicModuleOptions
|
|
18
20
|
|
|
19
21
|
const prismicPlugin = createPrismic({
|
|
20
22
|
...options,
|