@nuxtjs/prismic 3.0.0-rc.2 → 3.0.0-rc.3
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 +6 -1
- package/dist/module.json +2 -2
- package/dist/module.mjs +19 -31
- package/dist/runtime/plugin.client.mjs +2 -3
- package/dist/runtime/plugin.mjs +20 -6
- package/dist/types.d.ts +2 -6
- package/package.json +14 -11
- package/src/module.ts +25 -39
- package/src/runtime/plugin.client.ts +2 -9
- package/src/runtime/plugin.ts +26 -12
package/dist/module.d.ts
CHANGED
|
@@ -10,6 +10,11 @@ type PrismicModuleOptions = Omit<PrismicPluginOptions, 'endpoint' | 'client' | '
|
|
|
10
10
|
toolbar?: boolean;
|
|
11
11
|
};
|
|
12
12
|
|
|
13
|
+
declare module '@nuxt/schema' {
|
|
14
|
+
interface PublicRuntimeConfig {
|
|
15
|
+
prismic: PrismicModuleOptions;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
13
18
|
declare const _default: _nuxt_schema.NuxtModule<PrismicModuleOptions>;
|
|
14
19
|
|
|
15
|
-
export { PrismicModuleOptions
|
|
20
|
+
export { PrismicModuleOptions, _default as default };
|
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { join } from 'node:path';
|
|
2
|
+
import { defu } from 'defu';
|
|
2
3
|
import { defineNuxtModule, createResolver, addPlugin, addComponent, addImports, extendPages, addTemplate } from '@nuxt/kit';
|
|
3
|
-
import { isRepositoryEndpoint, getRepositoryName } from '@prismicio/client';
|
|
4
4
|
import * as prismicVue from '@prismicio/vue';
|
|
5
5
|
import consola from 'consola';
|
|
6
6
|
import { existsSync } from 'node:fs';
|
|
@@ -17,12 +17,11 @@ const fileExists = (path, extensions = ["js", "ts"]) => {
|
|
|
17
17
|
return extension ? `${path}.${extension}` : null;
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
-
const PACKAGE_NAME = "@nuxtjs/prismic";
|
|
21
20
|
const module = defineNuxtModule({
|
|
22
21
|
meta: {
|
|
23
|
-
name:
|
|
22
|
+
name: "@nuxtjs/prismic",
|
|
24
23
|
configKey: "prismic",
|
|
25
|
-
compatibility: { nuxt: "^3.0.0
|
|
24
|
+
compatibility: { nuxt: "^3.0.0" }
|
|
26
25
|
},
|
|
27
26
|
defaults: (nuxt) => ({
|
|
28
27
|
endpoint: "",
|
|
@@ -36,9 +35,9 @@ const module = defineNuxtModule({
|
|
|
36
35
|
toolbar: true
|
|
37
36
|
}),
|
|
38
37
|
hooks: {},
|
|
39
|
-
setup(
|
|
40
|
-
var _a
|
|
41
|
-
if (!
|
|
38
|
+
setup(options, nuxt) {
|
|
39
|
+
var _a;
|
|
40
|
+
if (!options.endpoint) {
|
|
42
41
|
logger.warn("Options `endpoint` is required, disabling module...");
|
|
43
42
|
return;
|
|
44
43
|
}
|
|
@@ -61,14 +60,14 @@ const module = defineNuxtModule({
|
|
|
61
60
|
});
|
|
62
61
|
}
|
|
63
62
|
};
|
|
64
|
-
proxyUserFileWithUndefinedFallback("client",
|
|
65
|
-
proxyUserFileWithUndefinedFallback("linkResolver",
|
|
66
|
-
proxyUserFileWithUndefinedFallback("htmlSerializer",
|
|
63
|
+
proxyUserFileWithUndefinedFallback("client", options.client);
|
|
64
|
+
proxyUserFileWithUndefinedFallback("linkResolver", options.linkResolver);
|
|
65
|
+
proxyUserFileWithUndefinedFallback("htmlSerializer", options.htmlSerializer);
|
|
67
66
|
(_a = nuxt.options.runtimeConfig).public || (_a.public = {});
|
|
68
|
-
nuxt.options.runtimeConfig.public
|
|
67
|
+
nuxt.options.runtimeConfig.public.prismic = defu(nuxt.options.runtimeConfig.public.prismic, options);
|
|
69
68
|
addPlugin(resolver.resolve("runtime/plugin"));
|
|
70
69
|
addPlugin(resolver.resolve("runtime/plugin.client"));
|
|
71
|
-
if (
|
|
70
|
+
if (options.injectComponents) {
|
|
72
71
|
[
|
|
73
72
|
"PrismicEmbed",
|
|
74
73
|
"PrismicImage",
|
|
@@ -84,48 +83,37 @@ const module = defineNuxtModule({
|
|
|
84
83
|
});
|
|
85
84
|
});
|
|
86
85
|
}
|
|
87
|
-
const
|
|
86
|
+
const prismicVueAutoImports = Object.keys(prismicVue).filter((key) => key.startsWith("use")).concat("getSliceComponentProps", "defineSliceZoneComponents").map((key) => {
|
|
88
87
|
return {
|
|
89
88
|
name: key,
|
|
90
89
|
as: key,
|
|
91
90
|
from: "@prismicio/vue"
|
|
92
91
|
};
|
|
93
92
|
});
|
|
94
|
-
addImports(
|
|
93
|
+
addImports(prismicVueAutoImports);
|
|
95
94
|
addImports({
|
|
96
95
|
name: "usePrismicPreview",
|
|
97
96
|
as: "usePrismicPreview",
|
|
98
97
|
from: resolver.resolve("runtime/usePrismicPreview")
|
|
99
98
|
});
|
|
100
|
-
if (
|
|
101
|
-
const maybeUserPreviewPage = fileExists(join(nuxt.options.srcDir, nuxt.options.dir.pages,
|
|
99
|
+
if (options.preview) {
|
|
100
|
+
const maybeUserPreviewPage = fileExists(join(nuxt.options.srcDir, nuxt.options.dir.pages, options.preview), ["js", "ts", "vue"]);
|
|
102
101
|
if (maybeUserPreviewPage) {
|
|
103
|
-
logger.info(`Using user-defined preview page at \`${maybeUserPreviewPage.replace(join(nuxt.options.srcDir), "~").replace(nuxt.options.rootDir, "~~").replace(/\\/g, "/")}\`, available at \`${
|
|
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}\``);
|
|
104
103
|
} else {
|
|
105
|
-
logger.info(`Using default preview page, available at \`${
|
|
104
|
+
logger.info(`Using default preview page, available at \`${options.preview}\``);
|
|
106
105
|
extendPages((pages) => {
|
|
107
106
|
pages.unshift({
|
|
108
107
|
name: "prismic-preview",
|
|
109
|
-
path:
|
|
108
|
+
path: options.preview,
|
|
110
109
|
file: resolver.resolve("runtime/preview.vue")
|
|
111
110
|
});
|
|
112
111
|
});
|
|
113
112
|
}
|
|
114
|
-
if (!
|
|
113
|
+
if (!options.toolbar) {
|
|
115
114
|
logger.warn("`toolbar` option is disabled but `preview` is enabled. Previews won't work unless you manually load the toolbar.");
|
|
116
115
|
}
|
|
117
116
|
}
|
|
118
|
-
if (mergedOptions.toolbar) {
|
|
119
|
-
const repositoryName = isRepositoryEndpoint(mergedOptions.endpoint) ? getRepositoryName(mergedOptions.endpoint) : mergedOptions.endpoint;
|
|
120
|
-
(_b = nuxt.options.app).head || (_b.head = {});
|
|
121
|
-
(_c = nuxt.options.app.head).script || (_c.script = []);
|
|
122
|
-
nuxt.options.app.head.script.push({
|
|
123
|
-
hid: "prismic-preview",
|
|
124
|
-
src: `https://static.cdn.prismic.io/prismic.min.js?repo=${repositoryName}&new=true`,
|
|
125
|
-
async: true,
|
|
126
|
-
defer: true
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
117
|
}
|
|
130
118
|
});
|
|
131
119
|
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { defineNuxtPlugin, refreshNuxtData } from "#app";
|
|
2
|
-
const pkgName = "@nuxtjs/prismic";
|
|
3
2
|
export default defineNuxtPlugin((nuxtApp) => {
|
|
4
|
-
const
|
|
5
|
-
if (
|
|
3
|
+
const options = useRuntimeConfig().public.prismic;
|
|
4
|
+
if (options.preview) {
|
|
6
5
|
window.addEventListener("prismicPreviewUpdate", (event) => {
|
|
7
6
|
event.preventDefault();
|
|
8
7
|
refreshNuxtData();
|
package/dist/runtime/plugin.mjs
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { defineNuxtPlugin, useCookie, useRequestEvent, refreshNuxtData } from "#app";
|
|
2
1
|
import NuxtLink from "#app/components/nuxt-link";
|
|
2
|
+
import { isRepositoryEndpoint, getRepositoryName } from "@prismicio/client";
|
|
3
3
|
import { createPrismic } from "@prismicio/vue";
|
|
4
|
+
import { defineNuxtPlugin, useCookie, useRequestEvent, refreshNuxtData, useHead } from "#imports";
|
|
4
5
|
import client from "#build/prismic/proxy/client";
|
|
5
6
|
import linkResolver from "#build/prismic/proxy/linkResolver";
|
|
6
7
|
import htmlSerializer from "#build/prismic/proxy/htmlSerializer";
|
|
7
|
-
const pkgName = "@nuxtjs/prismic";
|
|
8
8
|
export default defineNuxtPlugin((nuxtApp) => {
|
|
9
|
-
const
|
|
9
|
+
const options = useRuntimeConfig().public.prismic;
|
|
10
10
|
const prismicPlugin = createPrismic({
|
|
11
|
-
...
|
|
11
|
+
...options,
|
|
12
12
|
client,
|
|
13
13
|
linkResolver,
|
|
14
14
|
htmlSerializer,
|
|
@@ -16,11 +16,11 @@ export default defineNuxtPlugin((nuxtApp) => {
|
|
|
16
16
|
components: {
|
|
17
17
|
linkInternalComponent: NuxtLink,
|
|
18
18
|
linkExternalComponent: NuxtLink,
|
|
19
|
-
...
|
|
19
|
+
...options.components
|
|
20
20
|
}
|
|
21
21
|
});
|
|
22
22
|
nuxtApp.vueApp.use(prismicPlugin);
|
|
23
|
-
if (
|
|
23
|
+
if (options.preview) {
|
|
24
24
|
const previewCookie = useCookie("io.prismic.preview").value;
|
|
25
25
|
if (process.server) {
|
|
26
26
|
prismicPlugin.client.enableAutoPreviewsFromReq(useRequestEvent()?.req);
|
|
@@ -36,4 +36,18 @@ export default defineNuxtPlugin((nuxtApp) => {
|
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
+
if (options.toolbar) {
|
|
40
|
+
const repositoryName = isRepositoryEndpoint(options.endpoint) ? getRepositoryName(options.endpoint) : options.endpoint;
|
|
41
|
+
useHead({
|
|
42
|
+
script: [{
|
|
43
|
+
key: "prismic-preview",
|
|
44
|
+
src: `https://static.cdn.prismic.io/prismic.min.js?repo=${repositoryName}&new=true`,
|
|
45
|
+
async: true,
|
|
46
|
+
defer: true
|
|
47
|
+
}]
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
return {
|
|
51
|
+
provide: { prismic: prismicPlugin }
|
|
52
|
+
};
|
|
39
53
|
});
|
package/dist/types.d.ts
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
|
|
2
|
-
import {
|
|
2
|
+
import { } from './module'
|
|
3
3
|
|
|
4
|
-
declare module '@nuxt/schema' {
|
|
5
|
-
interface NuxtConfig { ['prismic']?: Partial<ModuleOptions> }
|
|
6
|
-
interface NuxtOptions { ['prismic']?: ModuleOptions }
|
|
7
|
-
}
|
|
8
4
|
|
|
9
5
|
|
|
10
|
-
export {
|
|
6
|
+
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.
|
|
3
|
+
"version": "3.0.0-rc.3",
|
|
4
4
|
"description": "Easily connect your Nuxt 3 application to your content hosted on Prismic",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"nuxt",
|
|
@@ -36,6 +36,8 @@
|
|
|
36
36
|
"build": "nuxt-module-build",
|
|
37
37
|
"dev": "nuxi dev playground",
|
|
38
38
|
"dev:build": "nuxi build playground",
|
|
39
|
+
"dev:preview": "nuxi preview playground",
|
|
40
|
+
"dev:generate": "nuxi generate playground",
|
|
39
41
|
"lint": "eslint --ext .js,.ts .",
|
|
40
42
|
"prepare": "nuxi prepare playground && npm run build",
|
|
41
43
|
"release": "npm run test && standard-version && git push --follow-tags && npm run build && npm publish",
|
|
@@ -43,26 +45,27 @@
|
|
|
43
45
|
"release:rc:dry": "standard-version --release-as major --prerelease rc --dry-run",
|
|
44
46
|
"release:dry": "standard-version --dry-run",
|
|
45
47
|
"test": "npm run lint && npm run unit && npm run build",
|
|
48
|
+
"types": "tsc --noEmit",
|
|
46
49
|
"unit": "vitest run --coverage",
|
|
47
50
|
"unit:watch": "vitest watch"
|
|
48
51
|
},
|
|
49
52
|
"dependencies": {
|
|
50
|
-
"@nuxt/kit": "^3.
|
|
51
|
-
"@prismicio/client": "^6.7.
|
|
52
|
-
"@prismicio/vue": "^3.1.
|
|
53
|
-
"consola": "^2.15.3"
|
|
53
|
+
"@nuxt/kit": "^3.3.2",
|
|
54
|
+
"@prismicio/client": "^6.7.3",
|
|
55
|
+
"@prismicio/vue": "^3.1.3",
|
|
56
|
+
"consola": "^2.15.3",
|
|
57
|
+
"defu": "^6.1.2"
|
|
54
58
|
},
|
|
55
59
|
"devDependencies": {
|
|
56
60
|
"@nuxt/module-builder": "^0.2.1",
|
|
57
|
-
"@nuxt/test-utils": "npm:@nuxt/test-utils-edge@latest",
|
|
58
61
|
"@nuxtjs/eslint-config-typescript": "^12.0.0",
|
|
59
|
-
"@vitest/coverage-c8": "^0.
|
|
60
|
-
"eslint": "^8.
|
|
62
|
+
"@vitest/coverage-c8": "^0.29.7",
|
|
63
|
+
"eslint": "^8.36.0",
|
|
61
64
|
"mock-fs": "^5.2.0",
|
|
62
|
-
"nuxt": "^3.
|
|
65
|
+
"nuxt": "^3.3.2",
|
|
63
66
|
"standard-version": "^9.5.0",
|
|
64
|
-
"typescript": "^4.9.
|
|
65
|
-
"vitest": "^0.
|
|
67
|
+
"typescript": "^4.9.5",
|
|
68
|
+
"vitest": "^0.29.7"
|
|
66
69
|
},
|
|
67
70
|
"engines": {
|
|
68
71
|
"node": ">=14.15.0"
|
package/src/module.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { join } from 'node:path'
|
|
2
2
|
|
|
3
|
+
import { defu } from 'defu'
|
|
3
4
|
import {
|
|
4
5
|
defineNuxtModule,
|
|
5
6
|
createResolver,
|
|
@@ -10,7 +11,6 @@ import {
|
|
|
10
11
|
extendPages
|
|
11
12
|
} from '@nuxt/kit'
|
|
12
13
|
|
|
13
|
-
import { isRepositoryEndpoint, getRepositoryName } from '@prismicio/client'
|
|
14
14
|
import * as prismicVue from '@prismicio/vue'
|
|
15
15
|
|
|
16
16
|
import { logger, fileExists } from './lib'
|
|
@@ -18,16 +18,19 @@ import type { PrismicModuleOptions } from './types'
|
|
|
18
18
|
|
|
19
19
|
// Options export
|
|
20
20
|
export type { PrismicModuleOptions } from './types'
|
|
21
|
-
export type { PrismicModuleOptions as ModuleOptions } from './types'
|
|
22
21
|
|
|
23
|
-
|
|
22
|
+
declare module '@nuxt/schema' {
|
|
23
|
+
interface PublicRuntimeConfig {
|
|
24
|
+
prismic: PrismicModuleOptions
|
|
25
|
+
}
|
|
26
|
+
}
|
|
24
27
|
|
|
25
28
|
// Module export
|
|
26
29
|
export default defineNuxtModule<PrismicModuleOptions>({
|
|
27
30
|
meta: {
|
|
28
|
-
name:
|
|
31
|
+
name: '@nuxtjs/prismic',
|
|
29
32
|
configKey: 'prismic',
|
|
30
|
-
compatibility: { nuxt: '^3.0.0
|
|
33
|
+
compatibility: { nuxt: '^3.0.0' }
|
|
31
34
|
},
|
|
32
35
|
defaults: nuxt => ({
|
|
33
36
|
endpoint: '',
|
|
@@ -41,8 +44,8 @@ export default defineNuxtModule<PrismicModuleOptions>({
|
|
|
41
44
|
toolbar: true
|
|
42
45
|
}),
|
|
43
46
|
hooks: {},
|
|
44
|
-
setup (
|
|
45
|
-
if (!
|
|
47
|
+
setup (options, nuxt) {
|
|
48
|
+
if (!options.endpoint) {
|
|
46
49
|
logger.warn('Options `endpoint` is required, disabling module...')
|
|
47
50
|
return
|
|
48
51
|
}
|
|
@@ -73,23 +76,20 @@ export default defineNuxtModule<PrismicModuleOptions>({
|
|
|
73
76
|
})
|
|
74
77
|
}
|
|
75
78
|
}
|
|
76
|
-
proxyUserFileWithUndefinedFallback('client',
|
|
77
|
-
proxyUserFileWithUndefinedFallback('linkResolver',
|
|
78
|
-
proxyUserFileWithUndefinedFallback('htmlSerializer',
|
|
79
|
+
proxyUserFileWithUndefinedFallback('client', options.client!)
|
|
80
|
+
proxyUserFileWithUndefinedFallback('linkResolver', options.linkResolver!)
|
|
81
|
+
proxyUserFileWithUndefinedFallback('htmlSerializer', options.htmlSerializer!)
|
|
79
82
|
|
|
80
83
|
// Expose options through public runtime config
|
|
81
84
|
nuxt.options.runtimeConfig.public ||= {} as typeof nuxt.options.runtimeConfig.public
|
|
82
|
-
|
|
83
|
-
// However, this is the source of truth for the runtime config and types
|
|
84
|
-
// will be inferred after it.
|
|
85
|
-
nuxt.options.runtimeConfig.public[PACKAGE_NAME] = mergedOptions
|
|
85
|
+
nuxt.options.runtimeConfig.public.prismic = defu(nuxt.options.runtimeConfig.public.prismic, options)
|
|
86
86
|
|
|
87
87
|
// Add plugin
|
|
88
88
|
addPlugin(resolver.resolve('runtime/plugin'))
|
|
89
89
|
addPlugin(resolver.resolve('runtime/plugin.client'))
|
|
90
90
|
|
|
91
91
|
// Add components auto import
|
|
92
|
-
if (
|
|
92
|
+
if (options.injectComponents) {
|
|
93
93
|
[
|
|
94
94
|
'PrismicEmbed',
|
|
95
95
|
'PrismicImage',
|
|
@@ -106,10 +106,11 @@ export default defineNuxtModule<PrismicModuleOptions>({
|
|
|
106
106
|
})
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
-
// Add
|
|
110
|
-
const
|
|
109
|
+
// Add auto imports
|
|
110
|
+
const prismicVueAutoImports = Object
|
|
111
111
|
.keys(prismicVue)
|
|
112
112
|
.filter(key => key.startsWith('use'))
|
|
113
|
+
.concat('getSliceComponentProps', 'defineSliceZoneComponents')
|
|
113
114
|
.map((key) => {
|
|
114
115
|
return {
|
|
115
116
|
name: key,
|
|
@@ -117,7 +118,7 @@ export default defineNuxtModule<PrismicModuleOptions>({
|
|
|
117
118
|
from: '@prismicio/vue'
|
|
118
119
|
}
|
|
119
120
|
})
|
|
120
|
-
addImports(
|
|
121
|
+
addImports(prismicVueAutoImports)
|
|
121
122
|
addImports({
|
|
122
123
|
name: 'usePrismicPreview',
|
|
123
124
|
as: 'usePrismicPreview',
|
|
@@ -125,42 +126,27 @@ export default defineNuxtModule<PrismicModuleOptions>({
|
|
|
125
126
|
})
|
|
126
127
|
|
|
127
128
|
// Add preview route
|
|
128
|
-
if (
|
|
129
|
-
const maybeUserPreviewPage = fileExists(join(nuxt.options.srcDir, nuxt.options.dir.pages,
|
|
129
|
+
if (options.preview) {
|
|
130
|
+
const maybeUserPreviewPage = fileExists(join(nuxt.options.srcDir, nuxt.options.dir.pages, options.preview), ['js', 'ts', 'vue'])
|
|
130
131
|
|
|
131
132
|
if (maybeUserPreviewPage) {
|
|
132
133
|
logger.info(`Using user-defined preview page at \`${maybeUserPreviewPage.replace(join(nuxt.options.srcDir), '~').replace(nuxt.options.rootDir, '~~').replace(/\\/g, '/')
|
|
133
|
-
}\`, available at \`${
|
|
134
|
+
}\`, available at \`${options.preview}\``)
|
|
134
135
|
} else {
|
|
135
|
-
logger.info(`Using default preview page, available at \`${
|
|
136
|
+
logger.info(`Using default preview page, available at \`${options.preview}\``)
|
|
136
137
|
|
|
137
138
|
extendPages((pages) => {
|
|
138
139
|
pages.unshift({
|
|
139
140
|
name: 'prismic-preview',
|
|
140
|
-
path:
|
|
141
|
+
path: options.preview as string, // Checked before
|
|
141
142
|
file: resolver.resolve('runtime/preview.vue')
|
|
142
143
|
})
|
|
143
144
|
})
|
|
144
145
|
}
|
|
145
146
|
|
|
146
|
-
if (!
|
|
147
|
+
if (!options.toolbar) {
|
|
147
148
|
logger.warn('`toolbar` option is disabled but `preview` is enabled. Previews won\'t work unless you manually load the toolbar.')
|
|
148
149
|
}
|
|
149
150
|
}
|
|
150
|
-
|
|
151
|
-
if (mergedOptions.toolbar) {
|
|
152
|
-
// Add toolbar
|
|
153
|
-
const repositoryName = isRepositoryEndpoint(mergedOptions.endpoint)
|
|
154
|
-
? getRepositoryName(mergedOptions.endpoint)
|
|
155
|
-
: mergedOptions.endpoint
|
|
156
|
-
nuxt.options.app.head ||= {}
|
|
157
|
-
nuxt.options.app.head.script ||= []
|
|
158
|
-
nuxt.options.app.head.script.push({
|
|
159
|
-
hid: 'prismic-preview',
|
|
160
|
-
src: `https://static.cdn.prismic.io/prismic.min.js?repo=${repositoryName}&new=true`,
|
|
161
|
-
async: true,
|
|
162
|
-
defer: true
|
|
163
|
-
})
|
|
164
|
-
}
|
|
165
151
|
}
|
|
166
152
|
})
|
|
@@ -1,19 +1,12 @@
|
|
|
1
1
|
import { defineNuxtPlugin, refreshNuxtData } from '#app'
|
|
2
2
|
|
|
3
|
-
// import { name as pkgName } from '../../package.json'
|
|
4
3
|
import { PrismicModuleOptions } from '../types'
|
|
5
4
|
|
|
6
|
-
// TODO: Revert when fixed
|
|
7
|
-
const pkgName = '@nuxtjs/prismic'
|
|
8
|
-
|
|
9
5
|
export default defineNuxtPlugin((nuxtApp) => {
|
|
10
|
-
const
|
|
11
|
-
nuxtApp.payload.config[pkgName] ??
|
|
12
|
-
nuxtApp.payload.config.public[pkgName] ??
|
|
13
|
-
{}
|
|
6
|
+
const options: PrismicModuleOptions = useRuntimeConfig().public.prismic
|
|
14
7
|
|
|
15
8
|
// Hot reload preview updates
|
|
16
|
-
if (
|
|
9
|
+
if (options.preview) {
|
|
17
10
|
window.addEventListener('prismicPreviewUpdate', (event) => {
|
|
18
11
|
event.preventDefault()
|
|
19
12
|
refreshNuxtData()
|
package/src/runtime/plugin.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { defineNuxtPlugin, useCookie, useRequestEvent, refreshNuxtData } from '#app'
|
|
2
1
|
import NuxtLink from '#app/components/nuxt-link'
|
|
3
2
|
|
|
3
|
+
import { isRepositoryEndpoint, getRepositoryName } from '@prismicio/client'
|
|
4
4
|
import { createPrismic } from '@prismicio/vue'
|
|
5
5
|
|
|
6
|
-
// import { name as pkgName } from '../../package.json'
|
|
7
6
|
import { PrismicModuleOptions } from '../types'
|
|
7
|
+
import { defineNuxtPlugin, useCookie, useRequestEvent, refreshNuxtData, useHead } from '#imports'
|
|
8
8
|
|
|
9
9
|
// @ts-expect-error vfs cannot be resolved here
|
|
10
10
|
import client from '#build/prismic/proxy/client'
|
|
@@ -13,17 +13,11 @@ 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
|
-
// TODO: Revert when fixed
|
|
17
|
-
const pkgName = '@nuxtjs/prismic'
|
|
18
|
-
|
|
19
16
|
export default defineNuxtPlugin((nuxtApp) => {
|
|
20
|
-
const
|
|
21
|
-
nuxtApp.payload.config[pkgName] ??
|
|
22
|
-
nuxtApp.payload.config.public[pkgName] ??
|
|
23
|
-
{}
|
|
17
|
+
const options: PrismicModuleOptions = useRuntimeConfig().public.prismic
|
|
24
18
|
|
|
25
19
|
const prismicPlugin = createPrismic({
|
|
26
|
-
...
|
|
20
|
+
...options,
|
|
27
21
|
client,
|
|
28
22
|
linkResolver,
|
|
29
23
|
htmlSerializer,
|
|
@@ -31,13 +25,13 @@ export default defineNuxtPlugin((nuxtApp) => {
|
|
|
31
25
|
components: {
|
|
32
26
|
linkInternalComponent: NuxtLink,
|
|
33
27
|
linkExternalComponent: NuxtLink,
|
|
34
|
-
...
|
|
28
|
+
...options.components
|
|
35
29
|
}
|
|
36
30
|
})
|
|
37
31
|
|
|
38
32
|
nuxtApp.vueApp.use(prismicPlugin)
|
|
39
33
|
|
|
40
|
-
if (
|
|
34
|
+
if (options.preview) {
|
|
41
35
|
const previewCookie = useCookie('io.prismic.preview').value
|
|
42
36
|
|
|
43
37
|
// Update client with req when running server side
|
|
@@ -64,4 +58,24 @@ export default defineNuxtPlugin((nuxtApp) => {
|
|
|
64
58
|
}
|
|
65
59
|
}
|
|
66
60
|
}
|
|
61
|
+
|
|
62
|
+
if (options.toolbar) {
|
|
63
|
+
// Add toolbar
|
|
64
|
+
const repositoryName = isRepositoryEndpoint(options.endpoint)
|
|
65
|
+
? getRepositoryName(options.endpoint)
|
|
66
|
+
: options.endpoint
|
|
67
|
+
|
|
68
|
+
useHead({
|
|
69
|
+
script: [{
|
|
70
|
+
key: 'prismic-preview',
|
|
71
|
+
src: `https://static.cdn.prismic.io/prismic.min.js?repo=${repositoryName}&new=true`,
|
|
72
|
+
async: true,
|
|
73
|
+
defer: true
|
|
74
|
+
}]
|
|
75
|
+
})
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return {
|
|
79
|
+
provide: { prismic: prismicPlugin }
|
|
80
|
+
}
|
|
67
81
|
})
|