{"version":3,"file":"documentation-read.cjs","sources":["../../../src/hooks/documentation-read.ts"],"sourcesContent":["import { source, stripIndent } from \"common-tags\";\n\nimport type { DocumentationReadHook } from \"@slicemachine/plugin-kit\";\n\nimport type { PluginOptions } from \"../types\";\n\nexport const documentationRead: DocumentationReadHook<PluginOptions> = async (\n\tdata,\n\t{ options, helpers },\n) => {\n\tif (data.kind === \"PageSnippet\") {\n\t\tconst { model } = data.data;\n\t\tconst filePath = `${model.repeatable ? \"_uid\" : model.id}.vue`;\n\n\t\tlet fileContent: string;\n\n\t\tif (model.repeatable) {\n\t\t\tfileContent = stripIndent`\n\t\t\t\t<template>\n\t\t\t\t\t<SliceZone :slices=\"page.data.slices\" :components=\"components\" />\n\t\t\t\t</template>\n\n\t\t\t\t<script>\n\t\t\t\timport { components } from \"~/slices\";\n\n\t\t\t\texport default {\n\t\t\t\t\tasync asyncData({ $prismic, params }) {\n\t\t\t\t\t\tconst page = await $prismic.api.getByUID(\"${model.id}\", params.uid);\n\n\t\t\t\t\t\treturn { page };\n\t\t\t\t\t},\n\t\t\t\t\tdata() {\n\t\t\t\t\t\treturn { components };\n\t\t\t\t\t},\n\t\t\t\t\thead() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttitle: this.page.data.meta_title,\n\t\t\t\t\t\t\tmeta: [{\n\t\t\t\t\t\t\t\thid: \"description\",\n\t\t\t\t\t\t\t\tname: \"description\",\n\t\t\t\t\t\t\t\tcontent: this.page.data.meta_description,\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\t</script>\n\t\t\t`;\n\t\t} else {\n\t\t\tfileContent = stripIndent`\n\t\t\t\t<template>\n\t\t\t\t\t<SliceZone :slices=\"page.data.slices\" :components=\"components\" />\n\t\t\t\t</template>\n\n\t\t\t\t<script>\n\t\t\t\timport { components } from \"~/slices\";\n\n\t\t\t\texport default {\n\t\t\t\t\tasync asyncData({ $prismic }) {\n\t\t\t\t\t\tconst page = await $prismic.api.getSingle(\"${model.id}\");\n\n\t\t\t\t\t\treturn { page };\n\t\t\t\t\t},\n\t\t\t\t\tdata() {\n\t\t\t\t\t\treturn { components };\n\t\t\t\t\t},\n\t\t\t\t\thead() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttitle: this.page.data.meta_title,\n\t\t\t\t\t\t\tmeta: [{\n\t\t\t\t\t\t\t\thid: \"description\",\n\t\t\t\t\t\t\t\tname: \"description\",\n\t\t\t\t\t\t\t\tcontent: this.page.data.meta_description,\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\t</script>\n\t\t\t`;\n\t\t}\n\n\t\tif (options.format) {\n\t\t\tfileContent = await helpers.format(\n\t\t\t\tfileContent,\n\t\t\t\thelpers.joinPathFromRoot(\"index.vue\"),\n\t\t\t\t{\n\t\t\t\t\tprettier: { parser: \"vue\" },\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: \"Options API\",\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 \\`~/pages/${filePath}\\` file. (If the route should be nested in a child directory, you can create the file in a directory, like \\`~/pages/marketing/${filePath}\\`.)\n\n\t\t\t\t\tPaste in this code:\n\n\t\t\t\t\t${`~~~vue [~/pages/${filePath}]\\n${fileContent}\\n~~~`}\n\n\t\t\t\t\tMake sure all of your import paths are correct. See the [install guide](https://prismic.io/docs/nuxt-setup) for more information.\n\t\t\t\t`,\n\t\t\t},\n\t\t];\n\t}\n\n\treturn [];\n};\n"],"names":["stripIndent","source"],"mappings":";;;;;;AAAA,IAAA,IAAA;AAMO,MAAM,oBAA0D,OACtE,MACA,EAAE,SAAS,cACR;AACH,MAAI,KAAK,SAAS,eAAe;AAChC,UAAM,EAAE,UAAU,KAAK;AACvB,UAAM,WAAW,GAAG,MAAM,aAAa,SAAS,MAAM,EAAE;AAExD,QAAI;AAEJ,QAAI,MAAM,YAAY;AACrB,oBAAcA,WAAAA,YAAA,OAAA,KAAW,WAAA,CAAA,iSAU8B,8WAAA,CAAA,IAAR,MAAM,EAAA;AAAA,IAoBtD,OAAO;AACN,oBAAcA,WAAAA,YAAA,OAAA,KAAW,WAAA,CAAA,0RAU+B,kWAAA,CAAA,IAAR,MAAM,EAAA;AAAA,IAoBvD;AAEA,QAAI,QAAQ,QAAQ;AACnB,oBAAc,MAAM,QAAQ,OAC3B,aACA,QAAQ,iBAAiB,WAAW,GACpC;AAAA,QACC,UAAU,EAAE,QAAQ,MAAA;AAAA,QACpB,qBAAqB;AAAA,MAAA,CACrB;AAAA,IAEH;AAEA,WAAO;AAAA,MACN;AAAA,QACC,OAAO;AAAA,QACP,SAASC,WAAAA;AAAAA,sBACS,MAAM,KAAK;AAAA;AAAA,gDAEe,QAAQ,kIAAkI,QAAQ;AAAA;AAAA;AAAA;AAAA,OAI3L,mBAAmB,QAAQ;AAAA,EAAM,WAAW;AAAA,IAAO;AAAA;AAAA;AAAA;AAAA,MAAA;AAAA,IAItD;AAAA,EAEH;AAEA,SAAO,CAAA;AACR;;"}