@slicemachine/adapter-nuxt2 0.3.39-beta.6 → 0.3.39-beta.7
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.
|
@@ -36,7 +36,7 @@ const installDependencies = async ({ installDependencies: installDependencies2 }
|
|
|
36
36
|
dev: true
|
|
37
37
|
});
|
|
38
38
|
};
|
|
39
|
-
const configurePrismicModule = async ({ helpers,
|
|
39
|
+
const configurePrismicModule = async ({ helpers, project }) => {
|
|
40
40
|
let nuxtConfigFilename = "nuxt.config.js";
|
|
41
41
|
if (!await fs.checkHasProjectFile({ filename: nuxtConfigFilename, helpers })) {
|
|
42
42
|
nuxtConfigFilename = "nuxt.config.ts";
|
|
@@ -82,8 +82,6 @@ const configurePrismicModule = async ({ helpers, options, project }) => {
|
|
|
82
82
|
config.buildModules || (config.buildModules = []);
|
|
83
83
|
config.buildModules.push(NUXT_PRISMIC);
|
|
84
84
|
}
|
|
85
|
-
const ENDPOINT_REPLACE_KEY = "___prismicEndpoint___";
|
|
86
|
-
const ENDPOINT_REPLACE_VALUE = "apiEndpoint || repositoryName";
|
|
87
85
|
if (!hasInlinedConfiguration) {
|
|
88
86
|
mod.imports.$add({
|
|
89
87
|
from: "./slicemachine.config.json",
|
|
@@ -94,23 +92,15 @@ const configurePrismicModule = async ({ helpers, options, project }) => {
|
|
|
94
92
|
imported: "repositoryName"
|
|
95
93
|
});
|
|
96
94
|
if (config.prismic) {
|
|
97
|
-
config.prismic.endpoint = magicast.builders.raw(
|
|
95
|
+
config.prismic.endpoint = magicast.builders.raw("apiEndpoint || repositoryName");
|
|
98
96
|
} else {
|
|
99
97
|
config.prismic = {
|
|
100
|
-
endpoint: magicast.builders.raw(
|
|
98
|
+
endpoint: magicast.builders.raw("apiEndpoint || repositoryName"),
|
|
101
99
|
modern: true
|
|
102
100
|
};
|
|
103
101
|
}
|
|
104
102
|
}
|
|
105
|
-
|
|
106
|
-
let { code } = magicast.generateCode(ast);
|
|
107
|
-
code = code.replace(ENDPOINT_REPLACE_KEY, ENDPOINT_REPLACE_VALUE);
|
|
108
|
-
await fs.writeProjectFile({
|
|
109
|
-
filename: nuxtConfigFilename,
|
|
110
|
-
contents: code,
|
|
111
|
-
format: options.format,
|
|
112
|
-
helpers
|
|
113
|
-
});
|
|
103
|
+
await magicast.writeFile(mod, nuxtConfigPath);
|
|
114
104
|
};
|
|
115
105
|
const createSliceSimulatorPage = async ({ helpers, options }) => {
|
|
116
106
|
const srcPagesDirectoryExists = await fs.checkHasProjectFile({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-init.cjs","sources":["../../../src/hooks/project-init.ts"],"sourcesContent":["import * as path from \"node:path\";\nimport type {\n\tProjectInitHook,\n\tProjectInitHookData,\n\tSliceMachineContext,\n} from \"@slicemachine/plugin-kit\";\nimport {\n\tcheckHasProjectFile,\n\twriteProjectFile,\n} from \"@slicemachine/plugin-kit/fs\";\nimport { stripIndent } from \"common-tags\";\nimport { builders,
|
|
1
|
+
{"version":3,"file":"project-init.cjs","sources":["../../../src/hooks/project-init.ts"],"sourcesContent":["import * as path from \"node:path\";\nimport type {\n\tProjectInitHook,\n\tProjectInitHookData,\n\tSliceMachineContext,\n} from \"@slicemachine/plugin-kit\";\nimport {\n\tcheckHasProjectFile,\n\twriteProjectFile,\n} from \"@slicemachine/plugin-kit/fs\";\nimport { stripIndent } from \"common-tags\";\nimport { builders, loadFile, writeFile } from \"magicast\";\n\nimport { rejectIfNecessary } from \"../lib/rejectIfNecessary\";\nimport { checkHasSrcDirectory } from \"../lib/checkHasSrcDirectory\";\n\nimport type { PluginOptions } from \"../types\";\n\nconst NUXT_PRISMIC = \"@nuxtjs/prismic\";\n\ntype InstallDependenciesArgs = {\n\tinstallDependencies: ProjectInitHookData[\"installDependencies\"];\n};\n\nconst installDependencies = async ({\n\tinstallDependencies,\n}: InstallDependenciesArgs) => {\n\tawait installDependencies({\n\t\tdependencies: {\n\t\t\t[NUXT_PRISMIC]: \"^1.4.2\",\n\t\t},\n\t\tdev: true,\n\t});\n};\n\ntype ConfigurePrismicModuleArgs = SliceMachineContext<PluginOptions>;\n\nconst configurePrismicModule = async ({\n\thelpers,\n\tproject,\n}: ConfigurePrismicModuleArgs) => {\n\tlet nuxtConfigFilename = \"nuxt.config.js\";\n\n\tif (!(await checkHasProjectFile({ filename: nuxtConfigFilename, helpers }))) {\n\t\tnuxtConfigFilename = \"nuxt.config.ts\";\n\n\t\t// nuxt.config.* not found\n\t\tif (\n\t\t\t!(await checkHasProjectFile({ filename: nuxtConfigFilename, helpers }))\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\tconst nuxtConfigPath = helpers.joinPathFromRoot(nuxtConfigFilename);\n\n\tconst mod = await loadFile(nuxtConfigPath);\n\n\tconst endpoint =\n\t\tproject.config.apiEndpoint ||\n\t\t`https://${project.config.repositoryName}.cdn.prismic.io/api/v2`;\n\n\tlet config;\n\ttry {\n\t\tconfig =\n\t\t\tmod.exports.default.$type === \"function-call\"\n\t\t\t\t? mod.exports.default.$args[0]\n\t\t\t\t: mod.exports.default;\n\t} catch {\n\t\tconst errorMessage = `Failed to update ${path.basename(nuxtConfigPath)}`;\n\t\tconsole.error(errorMessage);\n\t\tconsole.warn(\n\t\t\t`Ensure that the following has been added to ${path.basename(\n\t\t\t\tnuxtConfigPath,\n\t\t\t)}.`,\n\t\t);\n\t\tconsole.warn(stripIndent`\n\t\t\t{\n\t\t\t\tbuildModules: [\"@nuxtjs/prismic\"],\n\t\t\t\tprismic: {\n\t\t\t\t\tendpoint: \"${endpoint}\",\n\t\t\t\t\tmodern: true\n\t\t\t\t}\n\t\t\t}\n\t\t`);\n\n\t\tthrow errorMessage;\n\t}\n\n\t// Register Prismic module\n\tlet hasInlinedConfiguration = false;\n\tconst hasPrismicModuleRegistered = !![\n\t\t...(config.modules || []),\n\t\t...(config.buildModules || []),\n\t].find((registration: string | [string, unknown]) => {\n\t\tif (typeof registration === \"string\") {\n\t\t\treturn registration === NUXT_PRISMIC;\n\t\t} else if (Array.isArray(registration)) {\n\t\t\thasInlinedConfiguration = !!registration[1];\n\n\t\t\treturn registration[0] === NUXT_PRISMIC;\n\t\t}\n\n\t\treturn false;\n\t});\n\n\tif (!hasPrismicModuleRegistered) {\n\t\tconfig.buildModules ||= [];\n\t\tconfig.buildModules.push(NUXT_PRISMIC);\n\t}\n\n\t// Append Prismic module configuration\n\tif (!hasInlinedConfiguration) {\n\t\t// Import Slice Machine configuration\n\t\tmod.imports.$add({\n\t\t\tfrom: \"./slicemachine.config.json\",\n\t\t\timported: \"apiEndpoint\",\n\t\t});\n\t\tmod.imports.$add({\n\t\t\tfrom: \"./slicemachine.config.json\",\n\t\t\timported: \"repositoryName\",\n\t\t});\n\n\t\t// Add inline configuration\n\t\tif (config.prismic) {\n\t\t\tconfig.prismic.endpoint = builders.raw(\"apiEndpoint || repositoryName\");\n\t\t} else {\n\t\t\tconfig.prismic = {\n\t\t\t\tendpoint: builders.raw(\"apiEndpoint || repositoryName\"),\n\t\t\t\tmodern: true,\n\t\t\t};\n\t\t}\n\t}\n\n\tawait writeFile(mod, nuxtConfigPath);\n};\n\ntype CreateSliceSimulatorPageArgs = SliceMachineContext<PluginOptions>;\n\nconst createSliceSimulatorPage = async ({\n\thelpers,\n\toptions,\n}: CreateSliceSimulatorPageArgs) => {\n\tconst srcPagesDirectoryExists = await checkHasProjectFile({\n\t\tfilename: \"src/pages\",\n\t\thelpers,\n\t});\n\n\tconst filename = path.join(\n\t\tsrcPagesDirectoryExists ? \"src/pages\" : \"pages\",\n\t\t\"slice-simulator.vue\",\n\t);\n\n\tif (await checkHasProjectFile({ filename, helpers })) {\n\t\treturn;\n\t}\n\n\tconst contents = stripIndent`\n\t\t<template>\n\t\t\t<SliceSimulator v-slot=\"{ slices }\">\n\t\t\t\t<SliceZone :slices=\"slices\" :components=\"components\" />\n\t\t\t</SliceSimulator>\n\t\t</template>\n\n\t\t<script>\n\t\timport { SliceSimulator } from \"@slicemachine/adapter-nuxt2/dist/simulator.cjs\";\n\t\timport { components } from \"~/slices\";\n\n\t\texport default {\n\t\t\tcomponents: {\n\t\t\t\tSliceSimulator,\n\t\t\t},\n\t\t\tdata () {\n\t\t\t\treturn { components };\n\t\t\t},\n\t\t};\n\t\t</script>\n\t`;\n\n\tawait writeProjectFile({\n\t\tfilename,\n\t\tcontents,\n\t\tformat: options.format,\n\t\thelpers,\n\t});\n};\n\nconst modifySliceMachineConfig = async ({\n\thelpers,\n\toptions,\n\tactions,\n}: SliceMachineContext<PluginOptions>) => {\n\tconst hasSrcDirectory = await checkHasSrcDirectory({ helpers });\n\tconst project = await helpers.getProject();\n\n\t// Add Slice Simulator URL.\n\tproject.config.localSliceSimulatorURL ||=\n\t\t\"http://localhost:3000/slice-simulator\";\n\n\t// Nest the default Slice Library in the src directory if it exists and\n\t// is empty.\n\tif (\n\t\thasSrcDirectory &&\n\t\tproject.config.libraries &&\n\t\tJSON.stringify(project.config.libraries) === JSON.stringify([\"./slices\"])\n\t) {\n\t\tconst sliceLibrary = await actions.readSliceLibrary({\n\t\t\tlibraryID: project.config.libraries[0],\n\t\t});\n\n\t\tif (sliceLibrary.sliceIDs.length < 1) {\n\t\t\tproject.config.libraries = [\"./src/slices\"];\n\t\t}\n\t}\n\n\tawait helpers.updateSliceMachineConfig(project.config, {\n\t\tformat: options.format,\n\t});\n};\n\nexport const projectInit: ProjectInitHook<PluginOptions> = async (\n\t{ installDependencies: _installDependencies },\n\tcontext,\n) => {\n\trejectIfNecessary(\n\t\tawait Promise.allSettled([\n\t\t\tinstallDependencies({ installDependencies: _installDependencies }),\n\t\t\tconfigurePrismicModule(context),\n\t\t\tcreateSliceSimulatorPage(context),\n\t\t\tmodifySliceMachineConfig(context),\n\t\t]),\n\t);\n};\n"],"names":["installDependencies","checkHasProjectFile","loadFile","path","stripIndent","builders","writeFile","writeProjectFile","checkHasSrcDirectory","_a","rejectIfNecessary"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as path from "node:path";
|
|
2
2
|
import { checkHasProjectFile, writeProjectFile } from "@slicemachine/plugin-kit/fs";
|
|
3
3
|
import { stripIndent } from "common-tags";
|
|
4
|
-
import { loadFile, builders,
|
|
4
|
+
import { loadFile, builders, writeFile } from "magicast";
|
|
5
5
|
import { rejectIfNecessary } from "../lib/rejectIfNecessary.js";
|
|
6
6
|
import { checkHasSrcDirectory } from "../lib/checkHasSrcDirectory.js";
|
|
7
7
|
var __freeze = Object.freeze;
|
|
@@ -17,7 +17,7 @@ const installDependencies = async ({ installDependencies: installDependencies2 }
|
|
|
17
17
|
dev: true
|
|
18
18
|
});
|
|
19
19
|
};
|
|
20
|
-
const configurePrismicModule = async ({ helpers,
|
|
20
|
+
const configurePrismicModule = async ({ helpers, project }) => {
|
|
21
21
|
let nuxtConfigFilename = "nuxt.config.js";
|
|
22
22
|
if (!await checkHasProjectFile({ filename: nuxtConfigFilename, helpers })) {
|
|
23
23
|
nuxtConfigFilename = "nuxt.config.ts";
|
|
@@ -63,8 +63,6 @@ const configurePrismicModule = async ({ helpers, options, project }) => {
|
|
|
63
63
|
config.buildModules || (config.buildModules = []);
|
|
64
64
|
config.buildModules.push(NUXT_PRISMIC);
|
|
65
65
|
}
|
|
66
|
-
const ENDPOINT_REPLACE_KEY = "___prismicEndpoint___";
|
|
67
|
-
const ENDPOINT_REPLACE_VALUE = "apiEndpoint || repositoryName";
|
|
68
66
|
if (!hasInlinedConfiguration) {
|
|
69
67
|
mod.imports.$add({
|
|
70
68
|
from: "./slicemachine.config.json",
|
|
@@ -75,23 +73,15 @@ const configurePrismicModule = async ({ helpers, options, project }) => {
|
|
|
75
73
|
imported: "repositoryName"
|
|
76
74
|
});
|
|
77
75
|
if (config.prismic) {
|
|
78
|
-
config.prismic.endpoint = builders.raw(
|
|
76
|
+
config.prismic.endpoint = builders.raw("apiEndpoint || repositoryName");
|
|
79
77
|
} else {
|
|
80
78
|
config.prismic = {
|
|
81
|
-
endpoint: builders.raw(
|
|
79
|
+
endpoint: builders.raw("apiEndpoint || repositoryName"),
|
|
82
80
|
modern: true
|
|
83
81
|
};
|
|
84
82
|
}
|
|
85
83
|
}
|
|
86
|
-
|
|
87
|
-
let { code } = generateCode(ast);
|
|
88
|
-
code = code.replace(ENDPOINT_REPLACE_KEY, ENDPOINT_REPLACE_VALUE);
|
|
89
|
-
await writeProjectFile({
|
|
90
|
-
filename: nuxtConfigFilename,
|
|
91
|
-
contents: code,
|
|
92
|
-
format: options.format,
|
|
93
|
-
helpers
|
|
94
|
-
});
|
|
84
|
+
await writeFile(mod, nuxtConfigPath);
|
|
95
85
|
};
|
|
96
86
|
const createSliceSimulatorPage = async ({ helpers, options }) => {
|
|
97
87
|
const srcPagesDirectoryExists = await checkHasProjectFile({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-init.js","sources":["../../../src/hooks/project-init.ts"],"sourcesContent":["import * as path from \"node:path\";\nimport type {\n\tProjectInitHook,\n\tProjectInitHookData,\n\tSliceMachineContext,\n} from \"@slicemachine/plugin-kit\";\nimport {\n\tcheckHasProjectFile,\n\twriteProjectFile,\n} from \"@slicemachine/plugin-kit/fs\";\nimport { stripIndent } from \"common-tags\";\nimport { builders,
|
|
1
|
+
{"version":3,"file":"project-init.js","sources":["../../../src/hooks/project-init.ts"],"sourcesContent":["import * as path from \"node:path\";\nimport type {\n\tProjectInitHook,\n\tProjectInitHookData,\n\tSliceMachineContext,\n} from \"@slicemachine/plugin-kit\";\nimport {\n\tcheckHasProjectFile,\n\twriteProjectFile,\n} from \"@slicemachine/plugin-kit/fs\";\nimport { stripIndent } from \"common-tags\";\nimport { builders, loadFile, writeFile } from \"magicast\";\n\nimport { rejectIfNecessary } from \"../lib/rejectIfNecessary\";\nimport { checkHasSrcDirectory } from \"../lib/checkHasSrcDirectory\";\n\nimport type { PluginOptions } from \"../types\";\n\nconst NUXT_PRISMIC = \"@nuxtjs/prismic\";\n\ntype InstallDependenciesArgs = {\n\tinstallDependencies: ProjectInitHookData[\"installDependencies\"];\n};\n\nconst installDependencies = async ({\n\tinstallDependencies,\n}: InstallDependenciesArgs) => {\n\tawait installDependencies({\n\t\tdependencies: {\n\t\t\t[NUXT_PRISMIC]: \"^1.4.2\",\n\t\t},\n\t\tdev: true,\n\t});\n};\n\ntype ConfigurePrismicModuleArgs = SliceMachineContext<PluginOptions>;\n\nconst configurePrismicModule = async ({\n\thelpers,\n\tproject,\n}: ConfigurePrismicModuleArgs) => {\n\tlet nuxtConfigFilename = \"nuxt.config.js\";\n\n\tif (!(await checkHasProjectFile({ filename: nuxtConfigFilename, helpers }))) {\n\t\tnuxtConfigFilename = \"nuxt.config.ts\";\n\n\t\t// nuxt.config.* not found\n\t\tif (\n\t\t\t!(await checkHasProjectFile({ filename: nuxtConfigFilename, helpers }))\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\tconst nuxtConfigPath = helpers.joinPathFromRoot(nuxtConfigFilename);\n\n\tconst mod = await loadFile(nuxtConfigPath);\n\n\tconst endpoint =\n\t\tproject.config.apiEndpoint ||\n\t\t`https://${project.config.repositoryName}.cdn.prismic.io/api/v2`;\n\n\tlet config;\n\ttry {\n\t\tconfig =\n\t\t\tmod.exports.default.$type === \"function-call\"\n\t\t\t\t? mod.exports.default.$args[0]\n\t\t\t\t: mod.exports.default;\n\t} catch {\n\t\tconst errorMessage = `Failed to update ${path.basename(nuxtConfigPath)}`;\n\t\tconsole.error(errorMessage);\n\t\tconsole.warn(\n\t\t\t`Ensure that the following has been added to ${path.basename(\n\t\t\t\tnuxtConfigPath,\n\t\t\t)}.`,\n\t\t);\n\t\tconsole.warn(stripIndent`\n\t\t\t{\n\t\t\t\tbuildModules: [\"@nuxtjs/prismic\"],\n\t\t\t\tprismic: {\n\t\t\t\t\tendpoint: \"${endpoint}\",\n\t\t\t\t\tmodern: true\n\t\t\t\t}\n\t\t\t}\n\t\t`);\n\n\t\tthrow errorMessage;\n\t}\n\n\t// Register Prismic module\n\tlet hasInlinedConfiguration = false;\n\tconst hasPrismicModuleRegistered = !![\n\t\t...(config.modules || []),\n\t\t...(config.buildModules || []),\n\t].find((registration: string | [string, unknown]) => {\n\t\tif (typeof registration === \"string\") {\n\t\t\treturn registration === NUXT_PRISMIC;\n\t\t} else if (Array.isArray(registration)) {\n\t\t\thasInlinedConfiguration = !!registration[1];\n\n\t\t\treturn registration[0] === NUXT_PRISMIC;\n\t\t}\n\n\t\treturn false;\n\t});\n\n\tif (!hasPrismicModuleRegistered) {\n\t\tconfig.buildModules ||= [];\n\t\tconfig.buildModules.push(NUXT_PRISMIC);\n\t}\n\n\t// Append Prismic module configuration\n\tif (!hasInlinedConfiguration) {\n\t\t// Import Slice Machine configuration\n\t\tmod.imports.$add({\n\t\t\tfrom: \"./slicemachine.config.json\",\n\t\t\timported: \"apiEndpoint\",\n\t\t});\n\t\tmod.imports.$add({\n\t\t\tfrom: \"./slicemachine.config.json\",\n\t\t\timported: \"repositoryName\",\n\t\t});\n\n\t\t// Add inline configuration\n\t\tif (config.prismic) {\n\t\t\tconfig.prismic.endpoint = builders.raw(\"apiEndpoint || repositoryName\");\n\t\t} else {\n\t\t\tconfig.prismic = {\n\t\t\t\tendpoint: builders.raw(\"apiEndpoint || repositoryName\"),\n\t\t\t\tmodern: true,\n\t\t\t};\n\t\t}\n\t}\n\n\tawait writeFile(mod, nuxtConfigPath);\n};\n\ntype CreateSliceSimulatorPageArgs = SliceMachineContext<PluginOptions>;\n\nconst createSliceSimulatorPage = async ({\n\thelpers,\n\toptions,\n}: CreateSliceSimulatorPageArgs) => {\n\tconst srcPagesDirectoryExists = await checkHasProjectFile({\n\t\tfilename: \"src/pages\",\n\t\thelpers,\n\t});\n\n\tconst filename = path.join(\n\t\tsrcPagesDirectoryExists ? \"src/pages\" : \"pages\",\n\t\t\"slice-simulator.vue\",\n\t);\n\n\tif (await checkHasProjectFile({ filename, helpers })) {\n\t\treturn;\n\t}\n\n\tconst contents = stripIndent`\n\t\t<template>\n\t\t\t<SliceSimulator v-slot=\"{ slices }\">\n\t\t\t\t<SliceZone :slices=\"slices\" :components=\"components\" />\n\t\t\t</SliceSimulator>\n\t\t</template>\n\n\t\t<script>\n\t\timport { SliceSimulator } from \"@slicemachine/adapter-nuxt2/dist/simulator.cjs\";\n\t\timport { components } from \"~/slices\";\n\n\t\texport default {\n\t\t\tcomponents: {\n\t\t\t\tSliceSimulator,\n\t\t\t},\n\t\t\tdata () {\n\t\t\t\treturn { components };\n\t\t\t},\n\t\t};\n\t\t</script>\n\t`;\n\n\tawait writeProjectFile({\n\t\tfilename,\n\t\tcontents,\n\t\tformat: options.format,\n\t\thelpers,\n\t});\n};\n\nconst modifySliceMachineConfig = async ({\n\thelpers,\n\toptions,\n\tactions,\n}: SliceMachineContext<PluginOptions>) => {\n\tconst hasSrcDirectory = await checkHasSrcDirectory({ helpers });\n\tconst project = await helpers.getProject();\n\n\t// Add Slice Simulator URL.\n\tproject.config.localSliceSimulatorURL ||=\n\t\t\"http://localhost:3000/slice-simulator\";\n\n\t// Nest the default Slice Library in the src directory if it exists and\n\t// is empty.\n\tif (\n\t\thasSrcDirectory &&\n\t\tproject.config.libraries &&\n\t\tJSON.stringify(project.config.libraries) === JSON.stringify([\"./slices\"])\n\t) {\n\t\tconst sliceLibrary = await actions.readSliceLibrary({\n\t\t\tlibraryID: project.config.libraries[0],\n\t\t});\n\n\t\tif (sliceLibrary.sliceIDs.length < 1) {\n\t\t\tproject.config.libraries = [\"./src/slices\"];\n\t\t}\n\t}\n\n\tawait helpers.updateSliceMachineConfig(project.config, {\n\t\tformat: options.format,\n\t});\n};\n\nexport const projectInit: ProjectInitHook<PluginOptions> = async (\n\t{ installDependencies: _installDependencies },\n\tcontext,\n) => {\n\trejectIfNecessary(\n\t\tawait Promise.allSettled([\n\t\t\tinstallDependencies({ installDependencies: _installDependencies }),\n\t\t\tconfigurePrismicModule(context),\n\t\t\tcreateSliceSimulatorPage(context),\n\t\t\tmodifySliceMachineConfig(context),\n\t\t]),\n\t);\n};\n"],"names":["installDependencies","_a"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@slicemachine/adapter-nuxt2",
|
|
3
|
-
"version": "0.3.39-beta.
|
|
3
|
+
"version": "0.3.39-beta.7",
|
|
4
4
|
"description": "Slice Machine adapter for Nuxt 2.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -61,12 +61,12 @@
|
|
|
61
61
|
"dependencies": {
|
|
62
62
|
"@prismicio/simulator": "^0.1.4",
|
|
63
63
|
"@prismicio/types-internal": "^2.2.0",
|
|
64
|
-
"@slicemachine/plugin-kit": "0.4.39-beta.
|
|
64
|
+
"@slicemachine/plugin-kit": "0.4.39-beta.7",
|
|
65
65
|
"common-tags": "^1.8.2",
|
|
66
66
|
"fp-ts": "^2.13.1",
|
|
67
67
|
"io-ts": "^2.2.20",
|
|
68
68
|
"io-ts-types": "^0.5.19",
|
|
69
|
-
"magicast": "^0.3.
|
|
69
|
+
"magicast": "^0.3.4",
|
|
70
70
|
"monocle-ts": "^2.3.13",
|
|
71
71
|
"newtype-ts": "^0.3.5",
|
|
72
72
|
"pascal-case": "^3.1.2",
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
writeProjectFile,
|
|
10
10
|
} from "@slicemachine/plugin-kit/fs";
|
|
11
11
|
import { stripIndent } from "common-tags";
|
|
12
|
-
import { builders,
|
|
12
|
+
import { builders, loadFile, writeFile } from "magicast";
|
|
13
13
|
|
|
14
14
|
import { rejectIfNecessary } from "../lib/rejectIfNecessary";
|
|
15
15
|
import { checkHasSrcDirectory } from "../lib/checkHasSrcDirectory";
|
|
@@ -37,7 +37,6 @@ type ConfigurePrismicModuleArgs = SliceMachineContext<PluginOptions>;
|
|
|
37
37
|
|
|
38
38
|
const configurePrismicModule = async ({
|
|
39
39
|
helpers,
|
|
40
|
-
options,
|
|
41
40
|
project,
|
|
42
41
|
}: ConfigurePrismicModuleArgs) => {
|
|
43
42
|
let nuxtConfigFilename = "nuxt.config.js";
|
|
@@ -111,8 +110,6 @@ const configurePrismicModule = async ({
|
|
|
111
110
|
}
|
|
112
111
|
|
|
113
112
|
// Append Prismic module configuration
|
|
114
|
-
const ENDPOINT_REPLACE_KEY = "___prismicEndpoint___";
|
|
115
|
-
const ENDPOINT_REPLACE_VALUE = "apiEndpoint || repositoryName";
|
|
116
113
|
if (!hasInlinedConfiguration) {
|
|
117
114
|
// Import Slice Machine configuration
|
|
118
115
|
mod.imports.$add({
|
|
@@ -126,25 +123,16 @@ const configurePrismicModule = async ({
|
|
|
126
123
|
|
|
127
124
|
// Add inline configuration
|
|
128
125
|
if (config.prismic) {
|
|
129
|
-
config.prismic.endpoint = builders.raw(
|
|
126
|
+
config.prismic.endpoint = builders.raw("apiEndpoint || repositoryName");
|
|
130
127
|
} else {
|
|
131
128
|
config.prismic = {
|
|
132
|
-
endpoint: builders.raw(
|
|
129
|
+
endpoint: builders.raw("apiEndpoint || repositoryName"),
|
|
133
130
|
modern: true,
|
|
134
131
|
};
|
|
135
132
|
}
|
|
136
133
|
}
|
|
137
134
|
|
|
138
|
-
|
|
139
|
-
let { code } = generateCode(ast);
|
|
140
|
-
// This is a workaround to magicast not supporting "LogicalExpression" node type
|
|
141
|
-
code = code.replace(ENDPOINT_REPLACE_KEY, ENDPOINT_REPLACE_VALUE);
|
|
142
|
-
await writeProjectFile({
|
|
143
|
-
filename: nuxtConfigFilename,
|
|
144
|
-
contents: code,
|
|
145
|
-
format: options.format,
|
|
146
|
-
helpers,
|
|
147
|
-
});
|
|
135
|
+
await writeFile(mod, nuxtConfigPath);
|
|
148
136
|
};
|
|
149
137
|
|
|
150
138
|
type CreateSliceSimulatorPageArgs = SliceMachineContext<PluginOptions>;
|