@slicemachine/adapter-next 0.3.69-beta.1 → 0.3.69

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.
@@ -11,16 +11,26 @@ const documentationRead = async (data, { options, helpers }) => {
11
11
  if (data.kind === "PageSnippet") {
12
12
  const { model } = data.data;
13
13
  const extension = await getJSFileExtension.getJSFileExtension({ helpers, options, jsx: true });
14
- const appFilePath = `${model.repeatable ? "[uid]" : model.id}/page.${extension}`;
15
- const pagesFilePath = `${model.repeatable ? "[uid]" : model.id}.${extension}`;
14
+ let appFilePath;
15
+ let pagesFilePath;
16
+ if (!model.repeatable && model.id === "homepage") {
17
+ appFilePath = `page.${extension}`;
18
+ pagesFilePath = `index.${extension}`;
19
+ } else if (model.repeatable) {
20
+ appFilePath = `[uid]/page.${extension}`;
21
+ pagesFilePath = `[uid].${extension}`;
22
+ } else {
23
+ appFilePath = `${model.id}/page.${extension}`;
24
+ pagesFilePath = `${model.id}.${extension}`;
25
+ }
16
26
  let appFileContent;
17
27
  let pagesFileContent;
18
28
  if (isTypeScriptProject) {
19
29
  if (model.repeatable) {
20
- appFileContent = commonTags.stripIndent`
30
+ appFileContent = commonTags.source`
21
31
  import { Metadata } from "next";
22
32
  import { notFound } from "next/navigation";
23
- import { isFilled, asImageSrc } from "@prismicio/client";
33
+ import { asImageSrc } from "@prismicio/client";
24
34
  import { SliceZone } from "@prismicio/react";
25
35
 
26
36
  import { createClient } from "@/prismicio";
@@ -29,11 +39,9 @@ const documentationRead = async (data, { options, helpers }) => {
29
39
  type Params = { uid: string };
30
40
 
31
41
  export default async function Page({ params }: { params: Promise<Params> }) {
32
- const { uid } = await params
42
+ const { uid } = await params;
33
43
  const client = createClient();
34
- const page = await client
35
- .getByUID("${model.id}", uid)
36
- .catch(() => notFound());
44
+ const page = await client.getByUID("${model.id}", uid).catch(() => notFound());
37
45
 
38
46
  return <SliceZone slices={page.data.slices} components={components} />;
39
47
  }
@@ -43,19 +51,15 @@ const documentationRead = async (data, { options, helpers }) => {
43
51
  }: {
44
52
  params: Promise<Params>;
45
53
  }): Promise<Metadata> {
46
- const { uid } = await params
54
+ const { uid } = await params;
47
55
  const client = createClient();
48
- const page = await client
49
- .getByUID("${model.id}", uid)
50
- .catch(() => notFound());
56
+ const page = await client.getByUID("${model.id}", uid).catch(() => notFound());
51
57
 
52
58
  return {
53
59
  title: page.data.meta_title,
54
60
  description: page.data.meta_description,
55
61
  openGraph: {
56
- title: isFilled.keyText(page.data.meta_title) ? page.data.meta_title : undefined,
57
- description: isFilled.keyText(page.data.meta_description) ? page.data.meta_description : undefined,
58
- images: isFilled.image(page.data.meta_image) ? [asImageSrc(page.data.meta_image)] : undefined,
62
+ images: [{ url: asImageSrc(page.data.meta_image) ?? "" }],
59
63
  },
60
64
  };
61
65
  }
@@ -64,12 +68,10 @@ const documentationRead = async (data, { options, helpers }) => {
64
68
  const client = createClient();
65
69
  const pages = await client.getAllByType("${model.id}");
66
70
 
67
- return pages.map((page) => {
68
- return { uid: page.uid };
69
- });
71
+ return pages.map((page) => ({ uid: page.uid }));
70
72
  }
71
73
  `;
72
- pagesFileContent = commonTags.stripIndent`
74
+ pagesFileContent = commonTags.source`
73
75
  import { GetStaticPropsContext, InferGetStaticPropsType } from "next";
74
76
  import Head from "next/head";
75
77
  import { isFilled, asLink, asImageSrc } from "@prismicio/client";
@@ -87,12 +89,8 @@ const documentationRead = async (data, { options, helpers }) => {
87
89
  <>
88
90
  <Head>
89
91
  <title>{page.data.meta_title}</title>
90
- <meta property="og:title" content={page.data.meta_title} />
91
92
  {isFilled.keyText(page.data.meta_description) ? (
92
- <>
93
- <meta name="description" content={page.data.meta_description} />
94
- <meta property="og:description" content={page.data.meta_description} />
95
- </>
93
+ <meta name="description" content={page.data.meta_description} />
96
94
  ) : null}
97
95
  {isFilled.image(page.data.meta_image) ? (
98
96
  <meta property="og:image" content={asImageSrc(page.data.meta_image)} />
@@ -107,34 +105,27 @@ const documentationRead = async (data, { options, helpers }) => {
107
105
  params,
108
106
  previewData,
109
107
  }: GetStaticPropsContext<Params>) {
110
- // The \`previewData\` parameter allows your app to preview
111
- // drafts from the Page Builder.
112
108
  const client = createClient({ previewData });
113
-
114
109
  const page = await client.getByUID("${model.id}", params!.uid);
115
110
 
116
- return {
117
- props: { page },
118
- };
111
+ return { props: { page } };
119
112
  }
120
113
 
121
114
  export async function getStaticPaths() {
122
115
  const client = createClient();
123
-
124
116
  const pages = await client.getAllByType("${model.id}");
125
117
 
126
118
  return {
127
- paths: pages.map((page) => {
128
- return asLink(page);
129
- }),
119
+ paths: pages.map((page) => asLink(page)),
130
120
  fallback: false,
131
121
  };
132
122
  }
133
123
  `;
134
124
  } else {
135
- appFileContent = commonTags.stripIndent`
136
- import { Metadata } from "next";
137
- import { isFilled, asImageSrc } from "@prismicio/client";
125
+ appFileContent = commonTags.source`
126
+ import { type Metadata } from "next";
127
+ import { notFound } from "next/navigation";
128
+ import { asImageSrc } from "@prismicio/client";
138
129
  import { SliceZone } from "@prismicio/react";
139
130
 
140
131
  import { createClient } from "@/prismicio";
@@ -142,27 +133,25 @@ const documentationRead = async (data, { options, helpers }) => {
142
133
 
143
134
  export default async function Page() {
144
135
  const client = createClient();
145
- const page = await client.getSingle("${model.id}");
136
+ const page = await client.getSingle("${model.id}").catch(() => notFound());
146
137
 
147
138
  return <SliceZone slices={page.data.slices} components={components} />;
148
139
  }
149
140
 
150
141
  export async function generateMetadata(): Promise<Metadata> {
151
142
  const client = createClient();
152
- const page = await client.getSingle("${model.id}");
143
+ const page = await client.getSingle("${model.id}").catch(() => notFound());
153
144
 
154
145
  return {
155
146
  title: page.data.meta_title,
156
147
  description: page.data.meta_description,
157
148
  openGraph: {
158
- title: isFilled.keyText(page.data.meta_title) ? page.data.meta_title : undefined,
159
- description: isFilled.keyText(page.data.meta_description) ? page.data.meta_description : undefined,
160
- images: isFilled.image(page.data.meta_image) ? [asImageSrc(page.data.meta_image)] : undefined,
149
+ images: [{ url: asImageSrc(page.data.meta_image) ?? "" }],
161
150
  },
162
151
  };
163
152
  }
164
153
  `;
165
- pagesFileContent = commonTags.stripIndent`
154
+ pagesFileContent = commonTags.source`
166
155
  import { GetStaticPropsContext, InferGetStaticPropsType } from "next";
167
156
  import Head from "next/head";
168
157
  import { isFilled, asImageSrc } from "@prismicio/client";
@@ -178,12 +167,8 @@ const documentationRead = async (data, { options, helpers }) => {
178
167
  <>
179
168
  <Head>
180
169
  <title>{page.data.meta_title}</title>
181
- <meta property="og:title" content={page.data.meta_title} />
182
170
  {isFilled.keyText(page.data.meta_description) ? (
183
- <>
184
- <meta name="description" content={page.data.meta_description} />
185
- <meta property="og:description" content={page.data.meta_description} />
186
- </>
171
+ <meta name="description" content={page.data.meta_description} />
187
172
  ) : null}
188
173
  {isFilled.image(page.data.meta_image) ? (
189
174
  <meta property="og:image" content={asImageSrc(page.data.meta_image)} />
@@ -195,54 +180,41 @@ const documentationRead = async (data, { options, helpers }) => {
195
180
  }
196
181
 
197
182
  export async function getStaticProps({ previewData }: GetStaticPropsContext) {
198
- // The \`previewData\` parameter allows your app to preview
199
- // drafts from the Page Builder.
200
183
  const client = createClient({ previewData });
201
-
202
- // The query fetches the page's data based on the current URL.
203
184
  const page = await client.getSingle("${model.id}");
204
185
 
205
- return {
206
- props: { page },
207
- };
186
+ return { props: { page } };
208
187
  }
209
188
  `;
210
189
  }
211
190
  } else {
212
191
  if (model.repeatable) {
213
- appFileContent = commonTags.stripIndent`
192
+ appFileContent = commonTags.source`
214
193
  import { notFound } from "next/navigation";
215
- import { isFilled, asImageSrc } from "@prismicio/client";
194
+ import { asImageSrc } from "@prismicio/client";
216
195
  import { SliceZone } from "@prismicio/react";
217
196
 
218
197
  import { createClient } from "@/prismicio";
219
198
  import { components } from "@/slices";
220
199
 
221
-
222
200
  export default async function Page({ params }) {
223
- const { uid } = await params
201
+ const { uid } = await params;
224
202
  const client = createClient();
225
- const page = await client
226
- .getByUID("${model.id}", uid)
227
- .catch(() => notFound());
203
+ const page = await client.getByUID("${model.id}", uid).catch(() => notFound());
228
204
 
229
205
  return <SliceZone slices={page.data.slices} components={components} />;
230
206
  }
231
207
 
232
208
  export async function generateMetadata({ params }) {
233
- const { uid } = await params
209
+ const { uid } = await params;
234
210
  const client = createClient();
235
- const page = await client
236
- .getByUID("${model.id}", uid)
237
- .catch(() => notFound());
211
+ const page = await client.getByUID("${model.id}", uid).catch(() => notFound());
238
212
 
239
213
  return {
240
214
  title: page.data.meta_title,
241
215
  description: page.data.meta_description,
242
216
  openGraph: {
243
- title: isFilled.keyText(page.data.meta_title) ? page.data.meta_title : undefined,
244
- description: isFilled.keyText(page.data.meta_description) ? page.data.meta_description : undefined,
245
- images: isFilled.image(page.data.meta_image) ? [asImageSrc(page.data.meta_image)] : undefined,
217
+ images: [{ url: asImageSrc(page.data.meta_image) ?? "" }],
246
218
  },
247
219
  };
248
220
  }
@@ -251,12 +223,10 @@ const documentationRead = async (data, { options, helpers }) => {
251
223
  const client = createClient();
252
224
  const pages = await client.getAllByType("${model.id}");
253
225
 
254
- return pages.map((page) => {
255
- return { uid: page.uid };
256
- });
226
+ return pages.map((page) => ({ uid: page.uid }));
257
227
  }
258
228
  `;
259
- pagesFileContent = commonTags.stripIndent`
229
+ pagesFileContent = commonTags.source`
260
230
  import Head from "next/head";
261
231
  import { isFilled, asLink, asImageSrc } from "@prismicio/client";
262
232
  import { SliceZone } from "@prismicio/react";
@@ -269,12 +239,8 @@ const documentationRead = async (data, { options, helpers }) => {
269
239
  <>
270
240
  <Head>
271
241
  <title>{page.data.meta_title}</title>
272
- <meta property="og:title" content={page.data.meta_title} />
273
242
  {isFilled.keyText(page.data.meta_description) ? (
274
- <>
275
- <meta name="description" content={page.data.meta_description} />
276
- <meta property="og:description" content={page.data.meta_description} />
277
- </>
243
+ <meta name="description" content={page.data.meta_description} />
278
244
  ) : null}
279
245
  {isFilled.image(page.data.meta_image) ? (
280
246
  <meta property="og:image" content={asImageSrc(page.data.meta_image)} />
@@ -285,37 +251,27 @@ const documentationRead = async (data, { options, helpers }) => {
285
251
  );
286
252
  }
287
253
 
288
- export async function getStaticProps({
289
- params,
290
- previewData,
291
- }) {
292
- // The \`previewData\` parameter allows your app to preview
293
- // drafts from the Page Builder.
254
+ export async function getStaticProps({ params, previewData }) {
294
255
  const client = createClient({ previewData });
295
-
296
256
  const page = await client.getByUID("${model.id}", params.uid);
297
257
 
298
- return {
299
- props: { page },
300
- };
258
+ return { props: { page } };
301
259
  }
302
260
 
303
261
  export async function getStaticPaths() {
304
262
  const client = createClient();
305
-
306
263
  const pages = await client.getAllByType("${model.id}");
307
264
 
308
265
  return {
309
- paths: pages.map((page) => {
310
- return asLink(page);
311
- }),
266
+ paths: pages.map((page) => asLink(page)),
312
267
  fallback: false,
313
268
  };
314
269
  }
315
270
  `;
316
271
  } else {
317
- appFileContent = commonTags.stripIndent`
318
- import { isFilled, asImageSrc } from "@prismicio/client";
272
+ appFileContent = commonTags.source`
273
+ import { notFound } from "next/navigation";
274
+ import { asImageSrc } from "@prismicio/client";
319
275
  import { SliceZone } from "@prismicio/react";
320
276
 
321
277
  import { createClient } from "@/prismicio";
@@ -323,27 +279,25 @@ const documentationRead = async (data, { options, helpers }) => {
323
279
 
324
280
  export default async function Page() {
325
281
  const client = createClient();
326
- const page = await client.getSingle("${model.id}");
282
+ const page = await client.getSingle("${model.id}").catch(() => notFound());
327
283
 
328
284
  return <SliceZone slices={page.data.slices} components={components} />;
329
285
  }
330
286
 
331
287
  export async function generateMetadata() {
332
288
  const client = createClient();
333
- const page = await client.getSingle("${model.id}");
289
+ const page = await client.getSingle("${model.id}").catch(() => notFound());
334
290
 
335
291
  return {
336
292
  title: page.data.meta_title,
337
293
  description: page.data.meta_description,
338
294
  openGraph: {
339
- title: isFilled.keyText(page.data.meta_title) ? page.data.meta_title : undefined,
340
- description: isFilled.keyText(page.data.meta_description) ? page.data.meta_description : undefined,
341
- images: isFilled.image(page.data.meta_image) ? [asImageSrc(page.data.meta_image)] : undefined,
295
+ images: [{ url: asImageSrc(page.data.meta_image) ?? "" }],
342
296
  },
343
297
  };
344
298
  }
345
299
  `;
346
- pagesFileContent = commonTags.stripIndent`
300
+ pagesFileContent = commonTags.source`
347
301
  import Head from "next/head";
348
302
  import { isFilled, asImageSrc } from "@prismicio/client";
349
303
  import { SliceZone } from "@prismicio/react";
@@ -356,12 +310,8 @@ const documentationRead = async (data, { options, helpers }) => {
356
310
  <>
357
311
  <Head>
358
312
  <title>{page.data.meta_title}</title>
359
- <meta property="og:title" content={page.data.meta_title} />
360
313
  {isFilled.keyText(page.data.meta_description) ? (
361
- <>
362
- <meta name="description" content={page.data.meta_description} />
363
- <meta property="og:description" content={page.data.meta_description} />
364
- </>
314
+ <meta name="description" content={page.data.meta_description} />
365
315
  ) : null}
366
316
  {isFilled.image(page.data.meta_image) ? (
367
317
  <meta property="og:image" content={asImageSrc(page.data.meta_image)} />
@@ -373,25 +323,19 @@ const documentationRead = async (data, { options, helpers }) => {
373
323
  }
374
324
 
375
325
  export async function getStaticProps({ previewData }) {
376
- // The \`previewData\` parameter allows your app to preview
377
- // drafts from the Page Builder.
378
326
  const client = createClient({ previewData });
379
-
380
- // The query fetches the page's data based on the current URL.
381
327
  const page = await client.getSingle("${model.id}");
382
328
 
383
- return {
384
- props: { page },
385
- };
329
+ return { props: { page } };
386
330
  }
387
331
  `;
388
332
  }
389
333
  }
390
334
  if (options.format) {
391
- appFileContent = await helpers.format(appFileContent, helpers.joinPathFromRoot(`index.${extension}`), {
335
+ appFileContent = await helpers.format(appFileContent, appFilePath, {
392
336
  includeNewlineAtEnd: false
393
337
  });
394
- pagesFileContent = await helpers.format(pagesFileContent, helpers.joinPathFromRoot(`index.${extension}`), {
338
+ pagesFileContent = await helpers.format(pagesFileContent, pagesFilePath, {
395
339
  includeNewlineAtEnd: false
396
340
  });
397
341
  }
@@ -1 +1 @@
1
- {"version":3,"file":"documentation-read.cjs","sources":["../../../src/hooks/documentation-read.ts"],"sourcesContent":["import { stripIndent, source } from \"common-tags\";\n\nimport type { DocumentationReadHook } from \"@slicemachine/plugin-kit\";\n\nimport { checkIsTypeScriptProject } from \"../lib/checkIsTypeScriptProject\";\nimport { getJSFileExtension } from \"../lib/getJSFileExtension\";\n\nimport type { PluginOptions } from \"../types\";\n\nexport const documentationRead: DocumentationReadHook<PluginOptions> = async (\n\tdata,\n\t{ options, helpers },\n) => {\n\tconst isTypeScriptProject = await checkIsTypeScriptProject({\n\t\thelpers,\n\t\toptions,\n\t});\n\n\tif (data.kind === \"PageSnippet\") {\n\t\tconst { model } = data.data;\n\t\tconst extension = await getJSFileExtension({ helpers, options, jsx: true });\n\n\t\tconst appFilePath = `${\n\t\t\tmodel.repeatable ? \"[uid]\" : model.id\n\t\t}/page.${extension}`;\n\t\tconst pagesFilePath = `${\n\t\t\tmodel.repeatable ? \"[uid]\" : model.id\n\t\t}.${extension}`;\n\n\t\tlet appFileContent: string;\n\t\tlet pagesFileContent: string;\n\t\tif (isTypeScriptProject) {\n\t\t\tif (model.repeatable) {\n\t\t\t\tappFileContent = stripIndent`\n\t\t\t\t\timport { Metadata } from \"next\";\n\t\t\t\t\timport { notFound } from \"next/navigation\";\n\t\t\t\t\timport { isFilled, asImageSrc } from \"@prismicio/client\";\n\t\t\t\t\timport { SliceZone } from \"@prismicio/react\";\n\n\t\t\t\t\timport { createClient } from \"@/prismicio\";\n\t\t\t\t\timport { components } from \"@/slices\";\n\n\t\t\t\t\ttype Params = { uid: string };\n\n\t\t\t\t\texport default async function Page({ params }: { params: Promise<Params> }) {\n\t\t\t\t\t\tconst { uid } = await params\n\t\t\t\t\t\tconst client = createClient();\n\t\t\t\t\t\tconst page = await client\n\t\t\t\t\t\t\t.getByUID(\"${model.id}\", uid)\n\t\t\t\t\t\t\t.catch(() => notFound());\n\n\t\t\t\t\t\treturn <SliceZone slices={page.data.slices} components={components} />;\n\t\t\t\t\t}\n\n\t\t\t\t\texport async function generateMetadata({\n\t\t\t\t\t\tparams,\n\t\t\t\t\t}: {\n\t\t\t\t\t\tparams: Promise<Params>;\n\t\t\t\t\t}): Promise<Metadata> {\n\t\t\t\t\t\tconst { uid } = await params\n\t\t\t\t\t\tconst client = createClient();\n\t\t\t\t\t\tconst page = await client\n\t\t\t\t\t\t\t.getByUID(\"${model.id}\", uid)\n\t\t\t\t\t\t\t.catch(() => notFound());\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttitle: page.data.meta_title,\n\t\t\t\t\t\t\tdescription: page.data.meta_description,\n\t\t\t\t\t\t\topenGraph: {\n\t\t\t\t\t\t\t\ttitle: isFilled.keyText(page.data.meta_title) ? page.data.meta_title : undefined,\n\t\t\t\t\t\t\t\tdescription: isFilled.keyText(page.data.meta_description) ? page.data.meta_description : undefined,\n\t\t\t\t\t\t\t\timages: isFilled.image(page.data.meta_image) ? [asImageSrc(page.data.meta_image)] : undefined,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\texport async function generateStaticParams() {\n\t\t\t\t\t\tconst client = createClient();\n\t\t\t\t\t\tconst pages = await client.getAllByType(\"${model.id}\");\n\n\t\t\t\t\t\treturn pages.map((page) => {\n\t\t\t\t\t\t\treturn { uid: page.uid };\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t`;\n\t\t\t\tpagesFileContent = stripIndent`\n\t\t\t\t\timport { GetStaticPropsContext, InferGetStaticPropsType } from \"next\";\n\t\t\t\t\timport Head from \"next/head\";\n\t\t\t\t\timport { isFilled, asLink, asImageSrc } from \"@prismicio/client\";\n\t\t\t\t\timport { SliceZone } from \"@prismicio/react\";\n\n\t\t\t\t\timport { components } from \"@/slices\";\n\t\t\t\t\timport { createClient } from \"@/prismicio\";\n\n\t\t\t\t\ttype Params = { uid: string };\n\n\t\t\t\t\texport default function Page({\n\t\t\t\t\t\tpage,\n\t\t\t\t\t}: InferGetStaticPropsType<typeof getStaticProps>) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Head>\n\t\t\t\t\t\t\t\t\t<title>{page.data.meta_title}</title>\n\t\t\t\t\t\t\t\t\t<meta property=\"og:title\" content={page.data.meta_title} />\n\t\t\t\t\t\t\t\t\t{isFilled.keyText(page.data.meta_description) ? (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<meta name=\"description\" content={page.data.meta_description} />\n\t\t\t\t\t\t\t\t\t\t\t<meta property=\"og:description\" content={page.data.meta_description} />\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t{isFilled.image(page.data.meta_image) ? (\n\t\t\t\t\t\t\t\t\t\t<meta property=\"og:image\" content={asImageSrc(page.data.meta_image)} />\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t</Head>\n\t\t\t\t\t\t\t\t<SliceZone slices={page.data.slices} components={components} />\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\texport async function getStaticProps({\n\t\t\t\t\t\tparams,\n\t\t\t\t\t\tpreviewData,\n\t\t\t\t\t}: GetStaticPropsContext<Params>) {\n\t\t\t\t\t\t// The \\`previewData\\` parameter allows your app to preview\n\t\t\t\t\t\t// drafts from the Page Builder.\n\t\t\t\t\t\tconst client = createClient({ previewData });\n\n\t\t\t\t\t\tconst page = await client.getByUID(\"${model.id}\", params!.uid);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tprops: { page },\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\texport async function getStaticPaths() {\n\t\t\t\t\t\tconst client = createClient();\n\n\t\t\t\t\t\tconst pages = await client.getAllByType(\"${model.id}\");\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tpaths: pages.map((page) => {\n\t\t\t\t\t\t\t\treturn asLink(page);\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tfallback: false,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t`;\n\t\t\t} else {\n\t\t\t\tappFileContent = stripIndent`\n\t\t\t\t\timport { Metadata } from \"next\";\n\t\t\t\t\timport { isFilled, asImageSrc } from \"@prismicio/client\";\n\t\t\t\t\timport { SliceZone } from \"@prismicio/react\";\n\n\t\t\t\t\timport { createClient } from \"@/prismicio\";\n\t\t\t\t\timport { components } from \"@/slices\";\n\n\t\t\t\t\texport default async function Page() {\n\t\t\t\t\t\tconst client = createClient();\n\t\t\t\t\t\tconst page = await client.getSingle(\"${model.id}\");\n\n\t\t\t\t\t\treturn <SliceZone slices={page.data.slices} components={components} />;\n\t\t\t\t\t}\n\n\t\t\t\t\texport async function generateMetadata(): Promise<Metadata> {\n\t\t\t\t\t\tconst client = createClient();\n\t\t\t\t\t\tconst page = await client.getSingle(\"${model.id}\");\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttitle: page.data.meta_title,\n\t\t\t\t\t\t\tdescription: page.data.meta_description,\n\t\t\t\t\t\t\topenGraph: {\n\t\t\t\t\t\t\t\ttitle: isFilled.keyText(page.data.meta_title) ? page.data.meta_title : undefined,\n\t\t\t\t\t\t\t\tdescription: isFilled.keyText(page.data.meta_description) ? page.data.meta_description : undefined,\n\t\t\t\t\t\t\t\timages: isFilled.image(page.data.meta_image) ? [asImageSrc(page.data.meta_image)] : undefined,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t`;\n\t\t\t\tpagesFileContent = stripIndent`\n\t\t\t\t\timport { GetStaticPropsContext, InferGetStaticPropsType } from \"next\";\n\t\t\t\t\timport Head from \"next/head\";\n\t\t\t\t\timport { isFilled, asImageSrc } from \"@prismicio/client\";\n\t\t\t\t\timport { SliceZone } from \"@prismicio/react\";\n\n\t\t\t\t\timport { components } from \"@/slices\";\n\t\t\t\t\timport { createClient } from \"@/prismicio\";\n\n\t\t\t\t\texport default function Page({\n\t\t\t\t\t\tpage,\n\t\t\t\t\t}: InferGetStaticPropsType<typeof getStaticProps>) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Head>\n\t\t\t\t\t\t\t\t\t<title>{page.data.meta_title}</title>\n\t\t\t\t\t\t\t\t\t<meta property=\"og:title\" content={page.data.meta_title} />\n\t\t\t\t\t\t\t\t\t{isFilled.keyText(page.data.meta_description) ? (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<meta name=\"description\" content={page.data.meta_description} />\n\t\t\t\t\t\t\t\t\t\t\t<meta property=\"og:description\" content={page.data.meta_description} />\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t{isFilled.image(page.data.meta_image) ? (\n\t\t\t\t\t\t\t\t\t\t<meta property=\"og:image\" content={asImageSrc(page.data.meta_image)} />\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t</Head>\n\t\t\t\t\t\t\t\t<SliceZone slices={page.data.slices} components={components} />\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\texport async function getStaticProps({ previewData }: GetStaticPropsContext) {\n\t\t\t\t\t\t// The \\`previewData\\` parameter allows your app to preview\n\t\t\t\t\t\t// drafts from the Page Builder.\n\t\t\t\t\t\tconst client = createClient({ previewData });\n\n\t\t\t\t\t\t// The query fetches the page's data based on the current URL.\n\t\t\t\t\t\tconst page = await client.getSingle(\"${model.id}\");\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tprops: { page },\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t`;\n\t\t\t}\n\t\t} else {\n\t\t\tif (model.repeatable) {\n\t\t\t\tappFileContent = stripIndent`\n\t\t\t\t\timport { notFound } from \"next/navigation\";\n\t\t\t\t\timport { isFilled, asImageSrc } from \"@prismicio/client\";\n\t\t\t\t\timport { SliceZone } from \"@prismicio/react\";\n\n\t\t\t\t\timport { createClient } from \"@/prismicio\";\n\t\t\t\t\timport { components } from \"@/slices\";\n\n\n\t\t\t\t\texport default async function Page({ params }) {\n\t\t\t\t\t\tconst { uid } = await params\n\t\t\t\t\t\tconst client = createClient();\n\t\t\t\t\t\tconst page = await client\n\t\t\t\t\t\t\t.getByUID(\"${model.id}\", uid)\n\t\t\t\t\t\t\t.catch(() => notFound());\n\n\t\t\t\t\t\treturn <SliceZone slices={page.data.slices} components={components} />;\n\t\t\t\t\t}\n\n\t\t\t\t\texport async function generateMetadata({ params }) {\n\t\t\t\t\t\tconst { uid } = await params\n\t\t\t\t\t\tconst client = createClient();\n\t\t\t\t\t\tconst page = await client\n\t\t\t\t\t\t\t.getByUID(\"${model.id}\", uid)\n\t\t\t\t\t\t\t.catch(() => notFound());\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttitle: page.data.meta_title,\n\t\t\t\t\t\t\tdescription: page.data.meta_description,\n\t\t\t\t\t\t\topenGraph: {\n\t\t\t\t\t\t\t\ttitle: isFilled.keyText(page.data.meta_title) ? page.data.meta_title : undefined,\n\t\t\t\t\t\t\t\tdescription: isFilled.keyText(page.data.meta_description) ? page.data.meta_description : undefined,\n\t\t\t\t\t\t\t\timages: isFilled.image(page.data.meta_image) ? [asImageSrc(page.data.meta_image)] : undefined,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\texport async function generateStaticParams() {\n\t\t\t\t\t\tconst client = createClient();\n\t\t\t\t\t\tconst pages = await client.getAllByType(\"${model.id}\");\n\n\t\t\t\t\t\treturn pages.map((page) => {\n\t\t\t\t\t\t\treturn { uid: page.uid };\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t`;\n\t\t\t\tpagesFileContent = stripIndent`\n\t\t\t\t\timport Head from \"next/head\";\n\t\t\t\t\timport { isFilled, asLink, asImageSrc } from \"@prismicio/client\";\n\t\t\t\t\timport { SliceZone } from \"@prismicio/react\";\n\n\t\t\t\t\timport { components } from \"@/slices\";\n\t\t\t\t\timport { createClient } from \"@/prismicio\";\n\n\t\t\t\t\texport default function Page({ page }) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Head>\n\t\t\t\t\t\t\t\t\t<title>{page.data.meta_title}</title>\n\t\t\t\t\t\t\t\t\t<meta property=\"og:title\" content={page.data.meta_title} />\n\t\t\t\t\t\t\t\t\t{isFilled.keyText(page.data.meta_description) ? (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<meta name=\"description\" content={page.data.meta_description} />\n\t\t\t\t\t\t\t\t\t\t\t<meta property=\"og:description\" content={page.data.meta_description} />\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t{isFilled.image(page.data.meta_image) ? (\n\t\t\t\t\t\t\t\t\t\t<meta property=\"og:image\" content={asImageSrc(page.data.meta_image)} />\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t</Head>\n\t\t\t\t\t\t\t\t<SliceZone slices={page.data.slices} components={components} />\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\texport async function getStaticProps({\n\t\t\t\t\t\tparams,\n\t\t\t\t\t\tpreviewData,\n\t\t\t\t\t}) {\n\t\t\t\t\t\t// The \\`previewData\\` parameter allows your app to preview\n\t\t\t\t\t\t// drafts from the Page Builder.\n\t\t\t\t\t\tconst client = createClient({ previewData });\n\n\t\t\t\t\t\tconst page = await client.getByUID(\"${model.id}\", params.uid);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tprops: { page },\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\texport async function getStaticPaths() {\n\t\t\t\t\t\tconst client = createClient();\n\n\t\t\t\t\t\tconst pages = await client.getAllByType(\"${model.id}\");\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tpaths: pages.map((page) => {\n\t\t\t\t\t\t\t\treturn asLink(page);\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tfallback: false,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t`;\n\t\t\t} else {\n\t\t\t\tappFileContent = stripIndent`\n\t\t\t\t\timport { isFilled, asImageSrc } from \"@prismicio/client\";\n\t\t\t\t\timport { SliceZone } from \"@prismicio/react\";\n\n\t\t\t\t\timport { createClient } from \"@/prismicio\";\n\t\t\t\t\timport { components } from \"@/slices\";\n\n\t\t\t\t\texport default async function Page() {\n\t\t\t\t\t\tconst client = createClient();\n\t\t\t\t\t\tconst page = await client.getSingle(\"${model.id}\");\n\n\t\t\t\t\t\treturn <SliceZone slices={page.data.slices} components={components} />;\n\t\t\t\t\t}\n\n\t\t\t\t\texport async function generateMetadata() {\n\t\t\t\t\t\tconst client = createClient();\n\t\t\t\t\t\tconst page = await client.getSingle(\"${model.id}\");\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttitle: page.data.meta_title,\n\t\t\t\t\t\t\tdescription: page.data.meta_description,\n\t\t\t\t\t\t\topenGraph: {\n\t\t\t\t\t\t\t\ttitle: isFilled.keyText(page.data.meta_title) ? page.data.meta_title : undefined,\n\t\t\t\t\t\t\t\tdescription: isFilled.keyText(page.data.meta_description) ? page.data.meta_description : undefined,\n\t\t\t\t\t\t\t\timages: isFilled.image(page.data.meta_image) ? [asImageSrc(page.data.meta_image)] : undefined,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t`;\n\t\t\t\tpagesFileContent = stripIndent`\n\t\t\t\t\timport Head from \"next/head\";\n\t\t\t\t\timport { isFilled, asImageSrc } from \"@prismicio/client\";\n\t\t\t\t\timport { SliceZone } from \"@prismicio/react\";\n\n\t\t\t\t\timport { components } from \"@/slices\";\n\t\t\t\t\timport { createClient } from \"@/prismicio\";\n\n\t\t\t\t\texport default function Page({ page }) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Head>\n\t\t\t\t\t\t\t\t\t<title>{page.data.meta_title}</title>\n\t\t\t\t\t\t\t\t\t<meta property=\"og:title\" content={page.data.meta_title} />\n\t\t\t\t\t\t\t\t\t{isFilled.keyText(page.data.meta_description) ? (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<meta name=\"description\" content={page.data.meta_description} />\n\t\t\t\t\t\t\t\t\t\t\t<meta property=\"og:description\" content={page.data.meta_description} />\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t{isFilled.image(page.data.meta_image) ? (\n\t\t\t\t\t\t\t\t\t\t<meta property=\"og:image\" content={asImageSrc(page.data.meta_image)} />\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t</Head>\n\t\t\t\t\t\t\t\t<SliceZone slices={page.data.slices} components={components} />\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\texport async function getStaticProps({ previewData }) {\n\t\t\t\t\t\t// The \\`previewData\\` parameter allows your app to preview\n\t\t\t\t\t\t// drafts from the Page Builder.\n\t\t\t\t\t\tconst client = createClient({ previewData });\n\n\t\t\t\t\t\t// The query fetches the page's data based on the current URL.\n\t\t\t\t\t\tconst page = await client.getSingle(\"${model.id}\");\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tprops: { page },\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t`;\n\t\t\t}\n\t\t}\n\n\t\tif (options.format) {\n\t\t\tappFileContent = await helpers.format(\n\t\t\t\tappFileContent,\n\t\t\t\thelpers.joinPathFromRoot(`index.${extension}`),\n\t\t\t\t{\n\t\t\t\t\tincludeNewlineAtEnd: false,\n\t\t\t\t},\n\t\t\t);\n\t\t\tpagesFileContent = await helpers.format(\n\t\t\t\tpagesFileContent,\n\t\t\t\thelpers.joinPathFromRoot(`index.${extension}`),\n\t\t\t\t{\n\t\t\t\t\tincludeNewlineAtEnd: false,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\treturn [\n\t\t\t{\n\t\t\t\tlabel: \"App Router\",\n\t\t\t\tcontent: source`\n\t\t\t\t\t## Create your ${model.label}'s page component\n\n\t\t\t\t\tAdd a new route by creating an \\`app/${appFilePath}\\` file. (If the route should be nested in a child directory, you can create the file in a directory, like \\`app/marketing/${appFilePath}\\`.)\n\n\t\t\t\t\tPaste in this code:\n\n\t\t\t\t\t${`~~~${extension} [app/${appFilePath}]\\n${appFileContent}\\n~~~`}\n\n\t\t\t\t\tMake sure all of your import paths are correct. See the [install guide](https://prismic.io/docs/setup-nextjs) for more information.\n\t\t\t\t`,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: \"Pages Router\",\n\t\t\t\tcontent: source`\n\t\t\t\t\t## Create your ${model.label}'s page component\n\n\t\t\t\t\tAdd a new route by creating a \\`pages/${pagesFilePath}\\` file. (If the route should be nested in a child directory, you can create the file in a directory, like \\`pages/marketing/${pagesFilePath}\\`.)\n\n\t\t\t\t\t${`~~~${extension} [pages/${pagesFilePath}]\\n${pagesFileContent}\\n~~~`}\n\n\t\t\t\t\tMake sure all of your import paths are correct. See the [install guide](https://prismic.io/docs/setup-nextjs) for more information.\n\t\t\t\t`,\n\t\t\t},\n\t\t];\n\t}\n\n\treturn [];\n};\n"],"names":["checkIsTypeScriptProject","getJSFileExtension","stripIndent","source"],"mappings":"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"}
1
+ {"version":3,"file":"documentation-read.cjs","sources":["../../../src/hooks/documentation-read.ts"],"sourcesContent":["import { source } from \"common-tags\";\n\nimport type { DocumentationReadHook } from \"@slicemachine/plugin-kit\";\n\nimport { checkIsTypeScriptProject } from \"../lib/checkIsTypeScriptProject\";\nimport { getJSFileExtension } from \"../lib/getJSFileExtension\";\n\nimport type { PluginOptions } from \"../types\";\n\nexport const documentationRead: DocumentationReadHook<PluginOptions> = async (\n\tdata,\n\t{ options, helpers },\n) => {\n\tconst isTypeScriptProject = await checkIsTypeScriptProject({\n\t\thelpers,\n\t\toptions,\n\t});\n\n\tif (data.kind === \"PageSnippet\") {\n\t\tconst { model } = data.data;\n\t\tconst extension = await getJSFileExtension({ helpers, options, jsx: true });\n\n\t\tlet appFilePath;\n\t\tlet pagesFilePath;\n\n\t\tif (!model.repeatable && model.id === \"homepage\") {\n\t\t\tappFilePath = `page.${extension}`;\n\t\t\tpagesFilePath = `index.${extension}`;\n\t\t} else if (model.repeatable) {\n\t\t\tappFilePath = `[uid]/page.${extension}`;\n\t\t\tpagesFilePath = `[uid].${extension}`;\n\t\t} else {\n\t\t\tappFilePath = `${model.id}/page.${extension}`;\n\t\t\tpagesFilePath = `${model.id}.${extension}`;\n\t\t}\n\n\t\tlet appFileContent: string;\n\t\tlet pagesFileContent: string;\n\t\tif (isTypeScriptProject) {\n\t\t\tif (model.repeatable) {\n\t\t\t\tappFileContent = source`\n\t\t\t\t\timport { Metadata } from \"next\";\n\t\t\t\t\timport { notFound } from \"next/navigation\";\n\t\t\t\t\timport { asImageSrc } from \"@prismicio/client\";\n\t\t\t\t\timport { SliceZone } from \"@prismicio/react\";\n\n\t\t\t\t\timport { createClient } from \"@/prismicio\";\n\t\t\t\t\timport { components } from \"@/slices\";\n\n\t\t\t\t\ttype Params = { uid: string };\n\n\t\t\t\t\texport default async function Page({ params }: { params: Promise<Params> }) {\n\t\t\t\t\t\tconst { uid } = await params;\n\t\t\t\t\t\tconst client = createClient();\n\t\t\t\t\t\tconst page = await client.getByUID(\"${model.id}\", uid).catch(() => notFound());\n\n\t\t\t\t\t\treturn <SliceZone slices={page.data.slices} components={components} />;\n\t\t\t\t\t}\n\n\t\t\t\t\texport async function generateMetadata({\n\t\t\t\t\t\tparams,\n\t\t\t\t\t}: {\n\t\t\t\t\t\tparams: Promise<Params>;\n\t\t\t\t\t}): Promise<Metadata> {\n\t\t\t\t\t\tconst { uid } = await params;\n\t\t\t\t\t\tconst client = createClient();\n\t\t\t\t\t\tconst page = await client.getByUID(\"${model.id}\", uid).catch(() => notFound());\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttitle: page.data.meta_title,\n\t\t\t\t\t\t\tdescription: page.data.meta_description,\n\t\t\t\t\t\t\topenGraph: {\n\t\t\t\t\t\t\t\timages: [{ url: asImageSrc(page.data.meta_image) ?? \"\" }],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\texport async function generateStaticParams() {\n\t\t\t\t\t\tconst client = createClient();\n\t\t\t\t\t\tconst pages = await client.getAllByType(\"${model.id}\");\n\n\t\t\t\t\t\treturn pages.map((page) => ({ uid: page.uid }));\n\t\t\t\t\t}\n\t\t\t\t`;\n\t\t\t\tpagesFileContent = source`\n\t\t\t\t\timport { GetStaticPropsContext, InferGetStaticPropsType } from \"next\";\n\t\t\t\t\timport Head from \"next/head\";\n\t\t\t\t\timport { isFilled, asLink, asImageSrc } from \"@prismicio/client\";\n\t\t\t\t\timport { SliceZone } from \"@prismicio/react\";\n\n\t\t\t\t\timport { components } from \"@/slices\";\n\t\t\t\t\timport { createClient } from \"@/prismicio\";\n\n\t\t\t\t\ttype Params = { uid: string };\n\n\t\t\t\t\texport default function Page({\n\t\t\t\t\t\tpage,\n\t\t\t\t\t}: InferGetStaticPropsType<typeof getStaticProps>) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Head>\n\t\t\t\t\t\t\t\t\t<title>{page.data.meta_title}</title>\n\t\t\t\t\t\t\t\t\t{isFilled.keyText(page.data.meta_description) ? (\n\t\t\t\t\t\t\t\t\t\t<meta name=\"description\" content={page.data.meta_description} />\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t{isFilled.image(page.data.meta_image) ? (\n\t\t\t\t\t\t\t\t\t\t<meta property=\"og:image\" content={asImageSrc(page.data.meta_image)} />\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t</Head>\n\t\t\t\t\t\t\t\t<SliceZone slices={page.data.slices} components={components} />\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\texport async function getStaticProps({\n\t\t\t\t\t\tparams,\n\t\t\t\t\t\tpreviewData,\n\t\t\t\t\t}: GetStaticPropsContext<Params>) {\n\t\t\t\t\t\tconst client = createClient({ previewData });\n\t\t\t\t\t\tconst page = await client.getByUID(\"${model.id}\", params!.uid);\n\n\t\t\t\t\t\treturn { props: { page } };\n\t\t\t\t\t}\n\n\t\t\t\t\texport async function getStaticPaths() {\n\t\t\t\t\t\tconst client = createClient();\n\t\t\t\t\t\tconst pages = await client.getAllByType(\"${model.id}\");\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tpaths: pages.map((page) => asLink(page)),\n\t\t\t\t\t\t\tfallback: false,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t`;\n\t\t\t} else {\n\t\t\t\tappFileContent = source`\n\t\t\t\t\timport { type Metadata } from \"next\";\n\t\t\t\t\timport { notFound } from \"next/navigation\";\n\t\t\t\t\timport { asImageSrc } from \"@prismicio/client\";\n\t\t\t\t\timport { SliceZone } from \"@prismicio/react\";\n\n\t\t\t\t\timport { createClient } from \"@/prismicio\";\n\t\t\t\t\timport { components } from \"@/slices\";\n\n\t\t\t\t\texport default async function Page() {\n\t\t\t\t\t\tconst client = createClient();\n\t\t\t\t\t\tconst page = await client.getSingle(\"${model.id}\").catch(() => notFound());\n\n\t\t\t\t\t\treturn <SliceZone slices={page.data.slices} components={components} />;\n\t\t\t\t\t}\n\n\t\t\t\t\texport async function generateMetadata(): Promise<Metadata> {\n\t\t\t\t\t\tconst client = createClient();\n\t\t\t\t\t\tconst page = await client.getSingle(\"${model.id}\").catch(() => notFound());\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttitle: page.data.meta_title,\n\t\t\t\t\t\t\tdescription: page.data.meta_description,\n\t\t\t\t\t\t\topenGraph: {\n\t\t\t\t\t\t\t\timages: [{ url: asImageSrc(page.data.meta_image) ?? \"\" }],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t`;\n\t\t\t\tpagesFileContent = source`\n\t\t\t\t\timport { GetStaticPropsContext, InferGetStaticPropsType } from \"next\";\n\t\t\t\t\timport Head from \"next/head\";\n\t\t\t\t\timport { isFilled, asImageSrc } from \"@prismicio/client\";\n\t\t\t\t\timport { SliceZone } from \"@prismicio/react\";\n\n\t\t\t\t\timport { components } from \"@/slices\";\n\t\t\t\t\timport { createClient } from \"@/prismicio\";\n\n\t\t\t\t\texport default function Page({\n\t\t\t\t\t\tpage,\n\t\t\t\t\t}: InferGetStaticPropsType<typeof getStaticProps>) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Head>\n\t\t\t\t\t\t\t\t\t<title>{page.data.meta_title}</title>\n\t\t\t\t\t\t\t\t\t{isFilled.keyText(page.data.meta_description) ? (\n\t\t\t\t\t\t\t\t\t\t<meta name=\"description\" content={page.data.meta_description} />\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t{isFilled.image(page.data.meta_image) ? (\n\t\t\t\t\t\t\t\t\t\t<meta property=\"og:image\" content={asImageSrc(page.data.meta_image)} />\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t</Head>\n\t\t\t\t\t\t\t\t<SliceZone slices={page.data.slices} components={components} />\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\texport async function getStaticProps({ previewData }: GetStaticPropsContext) {\n\t\t\t\t\t\tconst client = createClient({ previewData });\n\t\t\t\t\t\tconst page = await client.getSingle(\"${model.id}\");\n\n\t\t\t\t\t\treturn { props: { page } };\n\t\t\t\t\t}\n\t\t\t\t`;\n\t\t\t}\n\t\t} else {\n\t\t\tif (model.repeatable) {\n\t\t\t\tappFileContent = source`\n\t\t\t\t\timport { notFound } from \"next/navigation\";\n\t\t\t\t\timport { asImageSrc } from \"@prismicio/client\";\n\t\t\t\t\timport { SliceZone } from \"@prismicio/react\";\n\n\t\t\t\t\timport { createClient } from \"@/prismicio\";\n\t\t\t\t\timport { components } from \"@/slices\";\n\n\t\t\t\t\texport default async function Page({ params }) {\n\t\t\t\t\t\tconst { uid } = await params;\n\t\t\t\t\t\tconst client = createClient();\n\t\t\t\t\t\tconst page = await client.getByUID(\"${model.id}\", uid).catch(() => notFound());\n\n\t\t\t\t\t\treturn <SliceZone slices={page.data.slices} components={components} />;\n\t\t\t\t\t}\n\n\t\t\t\t\texport async function generateMetadata({ params }) {\n\t\t\t\t\t\tconst { uid } = await params;\n\t\t\t\t\t\tconst client = createClient();\n\t\t\t\t\t\tconst page = await client.getByUID(\"${model.id}\", uid).catch(() => notFound());\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttitle: page.data.meta_title,\n\t\t\t\t\t\t\tdescription: page.data.meta_description,\n\t\t\t\t\t\t\topenGraph: {\n\t\t\t\t\t\t\t\timages: [{ url: asImageSrc(page.data.meta_image) ?? \"\" }],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\texport async function generateStaticParams() {\n\t\t\t\t\t\tconst client = createClient();\n\t\t\t\t\t\tconst pages = await client.getAllByType(\"${model.id}\");\n\n\t\t\t\t\t\treturn pages.map((page) => ({ uid: page.uid }));\n\t\t\t\t\t}\n\t\t\t\t`;\n\t\t\t\tpagesFileContent = source`\n\t\t\t\t\timport Head from \"next/head\";\n\t\t\t\t\timport { isFilled, asLink, asImageSrc } from \"@prismicio/client\";\n\t\t\t\t\timport { SliceZone } from \"@prismicio/react\";\n\n\t\t\t\t\timport { components } from \"@/slices\";\n\t\t\t\t\timport { createClient } from \"@/prismicio\";\n\n\t\t\t\t\texport default function Page({ page }) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Head>\n\t\t\t\t\t\t\t\t\t<title>{page.data.meta_title}</title>\n\t\t\t\t\t\t\t\t\t{isFilled.keyText(page.data.meta_description) ? (\n\t\t\t\t\t\t\t\t\t\t<meta name=\"description\" content={page.data.meta_description} />\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t{isFilled.image(page.data.meta_image) ? (\n\t\t\t\t\t\t\t\t\t\t<meta property=\"og:image\" content={asImageSrc(page.data.meta_image)} />\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t</Head>\n\t\t\t\t\t\t\t\t<SliceZone slices={page.data.slices} components={components} />\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\texport async function getStaticProps({ params, previewData }) {\n\t\t\t\t\t\tconst client = createClient({ previewData });\n\t\t\t\t\t\tconst page = await client.getByUID(\"${model.id}\", params.uid);\n\n\t\t\t\t\t\treturn { props: { page } };\n\t\t\t\t\t}\n\n\t\t\t\t\texport async function getStaticPaths() {\n\t\t\t\t\t\tconst client = createClient();\n\t\t\t\t\t\tconst pages = await client.getAllByType(\"${model.id}\");\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tpaths: pages.map((page) => asLink(page)),\n\t\t\t\t\t\t\tfallback: false,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t`;\n\t\t\t} else {\n\t\t\t\tappFileContent = source`\n\t\t\t\t\timport { notFound } from \"next/navigation\";\n\t\t\t\t\timport { asImageSrc } from \"@prismicio/client\";\n\t\t\t\t\timport { SliceZone } from \"@prismicio/react\";\n\n\t\t\t\t\timport { createClient } from \"@/prismicio\";\n\t\t\t\t\timport { components } from \"@/slices\";\n\n\t\t\t\t\texport default async function Page() {\n\t\t\t\t\t\tconst client = createClient();\n\t\t\t\t\t\tconst page = await client.getSingle(\"${model.id}\").catch(() => notFound());\n\n\t\t\t\t\t\treturn <SliceZone slices={page.data.slices} components={components} />;\n\t\t\t\t\t}\n\n\t\t\t\t\texport async function generateMetadata() {\n\t\t\t\t\t\tconst client = createClient();\n\t\t\t\t\t\tconst page = await client.getSingle(\"${model.id}\").catch(() => notFound());\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttitle: page.data.meta_title,\n\t\t\t\t\t\t\tdescription: page.data.meta_description,\n\t\t\t\t\t\t\topenGraph: {\n\t\t\t\t\t\t\t\timages: [{ url: asImageSrc(page.data.meta_image) ?? \"\" }],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t`;\n\t\t\t\tpagesFileContent = source`\n\t\t\t\t\timport Head from \"next/head\";\n\t\t\t\t\timport { isFilled, asImageSrc } from \"@prismicio/client\";\n\t\t\t\t\timport { SliceZone } from \"@prismicio/react\";\n\n\t\t\t\t\timport { components } from \"@/slices\";\n\t\t\t\t\timport { createClient } from \"@/prismicio\";\n\n\t\t\t\t\texport default function Page({ page }) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Head>\n\t\t\t\t\t\t\t\t\t<title>{page.data.meta_title}</title>\n\t\t\t\t\t\t\t\t\t{isFilled.keyText(page.data.meta_description) ? (\n\t\t\t\t\t\t\t\t\t\t<meta name=\"description\" content={page.data.meta_description} />\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t{isFilled.image(page.data.meta_image) ? (\n\t\t\t\t\t\t\t\t\t\t<meta property=\"og:image\" content={asImageSrc(page.data.meta_image)} />\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t</Head>\n\t\t\t\t\t\t\t\t<SliceZone slices={page.data.slices} components={components} />\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\texport async function getStaticProps({ previewData }) {\n\t\t\t\t\t\tconst client = createClient({ previewData });\n\t\t\t\t\t\tconst page = await client.getSingle(\"${model.id}\");\n\n\t\t\t\t\t\treturn { props: { page } };\n\t\t\t\t\t}\n\t\t\t\t`;\n\t\t\t}\n\t\t}\n\n\t\tif (options.format) {\n\t\t\tappFileContent = await helpers.format(appFileContent, appFilePath, {\n\t\t\t\tincludeNewlineAtEnd: false,\n\t\t\t});\n\t\t\tpagesFileContent = await helpers.format(pagesFileContent, pagesFilePath, {\n\t\t\t\tincludeNewlineAtEnd: false,\n\t\t\t});\n\t\t}\n\n\t\treturn [\n\t\t\t{\n\t\t\t\tlabel: \"App Router\",\n\t\t\t\tcontent: source`\n\t\t\t\t\t## Create your ${model.label}'s page component\n\n\t\t\t\t\tAdd a new route by creating an \\`app/${appFilePath}\\` file. (If the route should be nested in a child directory, you can create the file in a directory, like \\`app/marketing/${appFilePath}\\`.)\n\n\t\t\t\t\tPaste in this code:\n\n\t\t\t\t\t${`~~~${extension} [app/${appFilePath}]\\n${appFileContent}\\n~~~`}\n\n\t\t\t\t\tMake sure all of your import paths are correct. See the [install guide](https://prismic.io/docs/setup-nextjs) for more information.\n\t\t\t\t`,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: \"Pages Router\",\n\t\t\t\tcontent: source`\n\t\t\t\t\t## Create your ${model.label}'s page component\n\n\t\t\t\t\tAdd a new route by creating a \\`pages/${pagesFilePath}\\` file. (If the route should be nested in a child directory, you can create the file in a directory, like \\`pages/marketing/${pagesFilePath}\\`.)\n\n\t\t\t\t\t${`~~~${extension} [pages/${pagesFilePath}]\\n${pagesFileContent}\\n~~~`}\n\n\t\t\t\t\tMake sure all of your import paths are correct. See the [install guide](https://prismic.io/docs/setup-nextjs) for more information.\n\t\t\t\t`,\n\t\t\t},\n\t\t];\n\t}\n\n\treturn [];\n};\n"],"names":["checkIsTypeScriptProject","getJSFileExtension","source"],"mappings":"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"}