@slicemachine/adapter-nuxt2 0.3.42-alpha.aa-support-nuxt-4.2 → 0.3.42-alpha.aa-contributing.4

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.
@@ -4,8 +4,8 @@ const path = require("node:path");
4
4
  const fs = require("@slicemachine/plugin-kit/fs");
5
5
  const commonTags = require("common-tags");
6
6
  const magicast = require("magicast");
7
- const buildSrcPath = require("../lib/buildSrcPath.cjs");
8
7
  const rejectIfNecessary = require("../lib/rejectIfNecessary.cjs");
8
+ const checkHasSrcDirectory = require("../lib/checkHasSrcDirectory.cjs");
9
9
  function _interopNamespaceDefault(e) {
10
10
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
11
11
  if (e) {
@@ -103,10 +103,11 @@ const configurePrismicModule = async ({ helpers, project }) => {
103
103
  await magicast.writeFile(mod, nuxtConfigPath);
104
104
  };
105
105
  const createSliceSimulatorPage = async ({ helpers, options }) => {
106
- const filename = await buildSrcPath.buildSrcPath({
107
- filename: path__namespace.join("pages", "slice-simulator.vue"),
106
+ const srcPagesDirectoryExists = await fs.checkHasProjectFile({
107
+ filename: "src/pages",
108
108
  helpers
109
109
  });
110
+ const filename = path__namespace.join(srcPagesDirectoryExists ? "src/pages" : "pages", "slice-simulator.vue");
110
111
  if (await fs.checkHasProjectFile({ filename, helpers })) {
111
112
  return;
112
113
  }
@@ -120,10 +121,7 @@ const createSliceSimulatorPage = async ({ helpers, options }) => {
120
121
  };
121
122
  const modifySliceMachineConfig = async ({ helpers, options, actions }) => {
122
123
  var _a2;
123
- const hasSrcDirectory = await fs.checkHasProjectFile({
124
- filename: "src",
125
- helpers
126
- });
124
+ const hasSrcDirectory = await checkHasSrcDirectory.checkHasSrcDirectory({ helpers });
127
125
  const project = await helpers.getProject();
128
126
  (_a2 = project.config).localSliceSimulatorURL || (_a2.localSliceSimulatorURL = "http://localhost:3000/slice-simulator");
129
127
  if (hasSrcDirectory && project.config.libraries && JSON.stringify(project.config.libraries) === JSON.stringify(["./slices"])) {
@@ -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, loadFile, writeFile } from \"magicast\";\n\nimport { buildSrcPath } from \"../lib/buildSrcPath\";\nimport { rejectIfNecessary } from \"../lib/rejectIfNecessary\";\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 filename = await buildSrcPath({\n\t\tfilename: path.join(\"pages\", \"slice-simulator.vue\"),\n\t\thelpers,\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 checkHasProjectFile({\n\t\tfilename: \"src\",\n\t\thelpers,\n\t});\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","buildSrcPath","writeProjectFile","_a","rejectIfNecessary"],"mappings":"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"}
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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"}
@@ -2,8 +2,8 @@ import * as path from "node:path";
2
2
  import { checkHasProjectFile, writeProjectFile } from "@slicemachine/plugin-kit/fs";
3
3
  import { stripIndent } from "common-tags";
4
4
  import { loadFile, builders, writeFile } from "magicast";
5
- import { buildSrcPath } from "../lib/buildSrcPath.js";
6
5
  import { rejectIfNecessary } from "../lib/rejectIfNecessary.js";
6
+ import { checkHasSrcDirectory } from "../lib/checkHasSrcDirectory.js";
7
7
  var __freeze = Object.freeze;
8
8
  var __defProp = Object.defineProperty;
9
9
  var __template = (cooked, raw) => __freeze(__defProp(cooked, "raw", { value: __freeze(raw || cooked.slice()) }));
@@ -84,10 +84,11 @@ const configurePrismicModule = async ({ helpers, project }) => {
84
84
  await writeFile(mod, nuxtConfigPath);
85
85
  };
86
86
  const createSliceSimulatorPage = async ({ helpers, options }) => {
87
- const filename = await buildSrcPath({
88
- filename: path.join("pages", "slice-simulator.vue"),
87
+ const srcPagesDirectoryExists = await checkHasProjectFile({
88
+ filename: "src/pages",
89
89
  helpers
90
90
  });
91
+ const filename = path.join(srcPagesDirectoryExists ? "src/pages" : "pages", "slice-simulator.vue");
91
92
  if (await checkHasProjectFile({ filename, helpers })) {
92
93
  return;
93
94
  }
@@ -101,10 +102,7 @@ const createSliceSimulatorPage = async ({ helpers, options }) => {
101
102
  };
102
103
  const modifySliceMachineConfig = async ({ helpers, options, actions }) => {
103
104
  var _a2;
104
- const hasSrcDirectory = await checkHasProjectFile({
105
- filename: "src",
106
- helpers
107
- });
105
+ const hasSrcDirectory = await checkHasSrcDirectory({ helpers });
108
106
  const project = await helpers.getProject();
109
107
  (_a2 = project.config).localSliceSimulatorURL || (_a2.localSliceSimulatorURL = "http://localhost:3000/slice-simulator");
110
108
  if (hasSrcDirectory && project.config.libraries && JSON.stringify(project.config.libraries) === JSON.stringify(["./slices"])) {
@@ -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, loadFile, writeFile } from \"magicast\";\n\nimport { buildSrcPath } from \"../lib/buildSrcPath\";\nimport { rejectIfNecessary } from \"../lib/rejectIfNecessary\";\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 filename = await buildSrcPath({\n\t\tfilename: path.join(\"pages\", \"slice-simulator.vue\"),\n\t\thelpers,\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 checkHasProjectFile({\n\t\tfilename: \"src\",\n\t\thelpers,\n\t});\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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"}
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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"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const fs = require("@slicemachine/plugin-kit/fs");
4
+ async function checkHasSrcDirectory(args) {
5
+ return await fs.checkHasProjectFile({
6
+ filename: "src",
7
+ helpers: args.helpers
8
+ });
9
+ }
10
+ exports.checkHasSrcDirectory = checkHasSrcDirectory;
11
+ //# sourceMappingURL=checkHasSrcDirectory.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkHasSrcDirectory.cjs","sources":["../../../src/lib/checkHasSrcDirectory.ts"],"sourcesContent":["import { SliceMachineContext } from \"@slicemachine/plugin-kit\";\nimport { checkHasProjectFile } from \"@slicemachine/plugin-kit/fs\";\n\nimport { PluginOptions } from \"../types\";\n\ntype CheckHasSrcDirectoryArgs = Pick<\n\tSliceMachineContext<PluginOptions>,\n\t\"helpers\"\n>;\n\nexport async function checkHasSrcDirectory(\n\targs: CheckHasSrcDirectoryArgs,\n): Promise<boolean> {\n\treturn await checkHasProjectFile({\n\t\tfilename: \"src\",\n\t\thelpers: args.helpers,\n\t});\n}\n"],"names":["checkHasProjectFile"],"mappings":";;;AAUA,eAAsB,qBACrB,MAA8B;AAE9B,SAAO,MAAMA,GAAAA,oBAAoB;AAAA,IAChC,UAAU;AAAA,IACV,SAAS,KAAK;AAAA,EAAA,CACd;AACF;;"}
@@ -0,0 +1,5 @@
1
+ import { SliceMachineContext } from "@slicemachine/plugin-kit";
2
+ import { PluginOptions } from "../types";
3
+ type CheckHasSrcDirectoryArgs = Pick<SliceMachineContext<PluginOptions>, "helpers">;
4
+ export declare function checkHasSrcDirectory(args: CheckHasSrcDirectoryArgs): Promise<boolean>;
5
+ export {};
@@ -0,0 +1,11 @@
1
+ import { checkHasProjectFile } from "@slicemachine/plugin-kit/fs";
2
+ async function checkHasSrcDirectory(args) {
3
+ return await checkHasProjectFile({
4
+ filename: "src",
5
+ helpers: args.helpers
6
+ });
7
+ }
8
+ export {
9
+ checkHasSrcDirectory
10
+ };
11
+ //# sourceMappingURL=checkHasSrcDirectory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkHasSrcDirectory.js","sources":["../../../src/lib/checkHasSrcDirectory.ts"],"sourcesContent":["import { SliceMachineContext } from \"@slicemachine/plugin-kit\";\nimport { checkHasProjectFile } from \"@slicemachine/plugin-kit/fs\";\n\nimport { PluginOptions } from \"../types\";\n\ntype CheckHasSrcDirectoryArgs = Pick<\n\tSliceMachineContext<PluginOptions>,\n\t\"helpers\"\n>;\n\nexport async function checkHasSrcDirectory(\n\targs: CheckHasSrcDirectoryArgs,\n): Promise<boolean> {\n\treturn await checkHasProjectFile({\n\t\tfilename: \"src\",\n\t\thelpers: args.helpers,\n\t});\n}\n"],"names":[],"mappings":";AAUA,eAAsB,qBACrB,MAA8B;AAE9B,SAAO,MAAM,oBAAoB;AAAA,IAChC,UAAU;AAAA,IACV,SAAS,KAAK;AAAA,EAAA,CACd;AACF;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slicemachine/adapter-nuxt2",
3
- "version": "0.3.42-alpha.aa-support-nuxt-4.2",
3
+ "version": "0.3.42-alpha.aa-contributing.4",
4
4
  "description": "Slice Machine adapter for Nuxt 2.",
5
5
  "keywords": [
6
6
  "typescript",
@@ -61,7 +61,7 @@
61
61
  "dependencies": {
62
62
  "@prismicio/simulator": "^0.1.4",
63
63
  "@prismicio/types-internal": "^2.4.1",
64
- "@slicemachine/plugin-kit": "0.4.42-alpha.aa-support-nuxt-4.2",
64
+ "@slicemachine/plugin-kit": "0.4.42-alpha.aa-contributing.4",
65
65
  "common-tags": "^1.8.2",
66
66
  "fp-ts": "^2.13.1",
67
67
  "io-ts": "^2.2.20",
@@ -11,8 +11,8 @@ import {
11
11
  import { stripIndent } from "common-tags";
12
12
  import { builders, loadFile, writeFile } from "magicast";
13
13
 
14
- import { buildSrcPath } from "../lib/buildSrcPath";
15
14
  import { rejectIfNecessary } from "../lib/rejectIfNecessary";
15
+ import { checkHasSrcDirectory } from "../lib/checkHasSrcDirectory";
16
16
 
17
17
  import type { PluginOptions } from "../types";
18
18
 
@@ -141,11 +141,16 @@ const createSliceSimulatorPage = async ({
141
141
  helpers,
142
142
  options,
143
143
  }: CreateSliceSimulatorPageArgs) => {
144
- const filename = await buildSrcPath({
145
- filename: path.join("pages", "slice-simulator.vue"),
144
+ const srcPagesDirectoryExists = await checkHasProjectFile({
145
+ filename: "src/pages",
146
146
  helpers,
147
147
  });
148
148
 
149
+ const filename = path.join(
150
+ srcPagesDirectoryExists ? "src/pages" : "pages",
151
+ "slice-simulator.vue",
152
+ );
153
+
149
154
  if (await checkHasProjectFile({ filename, helpers })) {
150
155
  return;
151
156
  }
@@ -185,10 +190,7 @@ const modifySliceMachineConfig = async ({
185
190
  options,
186
191
  actions,
187
192
  }: SliceMachineContext<PluginOptions>) => {
188
- const hasSrcDirectory = await checkHasProjectFile({
189
- filename: "src",
190
- helpers,
191
- });
193
+ const hasSrcDirectory = await checkHasSrcDirectory({ helpers });
192
194
  const project = await helpers.getProject();
193
195
 
194
196
  // Add Slice Simulator URL.
@@ -0,0 +1,18 @@
1
+ import { SliceMachineContext } from "@slicemachine/plugin-kit";
2
+ import { checkHasProjectFile } from "@slicemachine/plugin-kit/fs";
3
+
4
+ import { PluginOptions } from "../types";
5
+
6
+ type CheckHasSrcDirectoryArgs = Pick<
7
+ SliceMachineContext<PluginOptions>,
8
+ "helpers"
9
+ >;
10
+
11
+ export async function checkHasSrcDirectory(
12
+ args: CheckHasSrcDirectoryArgs,
13
+ ): Promise<boolean> {
14
+ return await checkHasProjectFile({
15
+ filename: "src",
16
+ helpers: args.helpers,
17
+ });
18
+ }
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const path = require("node:path");
4
- const fs = require("@slicemachine/plugin-kit/fs");
5
- function _interopNamespaceDefault(e) {
6
- const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
7
- if (e) {
8
- for (const k in e) {
9
- if (k !== "default") {
10
- const d = Object.getOwnPropertyDescriptor(e, k);
11
- Object.defineProperty(n, k, d.get ? d : {
12
- enumerable: true,
13
- get: () => e[k]
14
- });
15
- }
16
- }
17
- }
18
- n.default = e;
19
- return Object.freeze(n);
20
- }
21
- const path__namespace = /* @__PURE__ */ _interopNamespaceDefault(path);
22
- async function buildSrcPath(args) {
23
- const hasSrcDirectory = await fs.checkHasProjectFile({
24
- filename: "src",
25
- helpers: args.helpers
26
- });
27
- return hasSrcDirectory ? path__namespace.join("src", args.filename) : args.filename;
28
- }
29
- exports.buildSrcPath = buildSrcPath;
30
- //# sourceMappingURL=buildSrcPath.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildSrcPath.cjs","sources":["../../../src/lib/buildSrcPath.ts"],"sourcesContent":["// TODO: If Nuxt provides a way to read `nuxt.config.js`'s `srcDir` value, we\n// can use the exact value given. The current implementation does not support\n// custom values different than \"src\".\n\nimport * as path from \"node:path\";\n\nimport type { SliceMachineHelpers } from \"@slicemachine/plugin-kit\";\nimport { checkHasProjectFile } from \"@slicemachine/plugin-kit/fs\";\n\nexport async function buildSrcPath(args: {\n\tfilename: string;\n\thelpers: SliceMachineHelpers;\n}): Promise<string> {\n\tconst hasSrcDirectory = await checkHasProjectFile({\n\t\tfilename: \"src\",\n\t\thelpers: args.helpers,\n\t});\n\n\treturn hasSrcDirectory ? path.join(\"src\", args.filename) : args.filename;\n}\n"],"names":["checkHasProjectFile","path"],"mappings":";;;;;;;;;;;;;;;;;;;;;AASA,eAAsB,aAAa,MAGlC;AACM,QAAA,kBAAkB,MAAMA,uBAAoB;AAAA,IACjD,UAAU;AAAA,IACV,SAAS,KAAK;AAAA,EAAA,CACd;AAED,SAAO,kBAAkBC,gBAAK,KAAK,OAAO,KAAK,QAAQ,IAAI,KAAK;AACjE;;"}
@@ -1,5 +0,0 @@
1
- import type { SliceMachineHelpers } from "@slicemachine/plugin-kit";
2
- export declare function buildSrcPath(args: {
3
- filename: string;
4
- helpers: SliceMachineHelpers;
5
- }): Promise<string>;
@@ -1,13 +0,0 @@
1
- import * as path from "node:path";
2
- import { checkHasProjectFile } from "@slicemachine/plugin-kit/fs";
3
- async function buildSrcPath(args) {
4
- const hasSrcDirectory = await checkHasProjectFile({
5
- filename: "src",
6
- helpers: args.helpers
7
- });
8
- return hasSrcDirectory ? path.join("src", args.filename) : args.filename;
9
- }
10
- export {
11
- buildSrcPath
12
- };
13
- //# sourceMappingURL=buildSrcPath.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildSrcPath.js","sources":["../../../src/lib/buildSrcPath.ts"],"sourcesContent":["// TODO: If Nuxt provides a way to read `nuxt.config.js`'s `srcDir` value, we\n// can use the exact value given. The current implementation does not support\n// custom values different than \"src\".\n\nimport * as path from \"node:path\";\n\nimport type { SliceMachineHelpers } from \"@slicemachine/plugin-kit\";\nimport { checkHasProjectFile } from \"@slicemachine/plugin-kit/fs\";\n\nexport async function buildSrcPath(args: {\n\tfilename: string;\n\thelpers: SliceMachineHelpers;\n}): Promise<string> {\n\tconst hasSrcDirectory = await checkHasProjectFile({\n\t\tfilename: \"src\",\n\t\thelpers: args.helpers,\n\t});\n\n\treturn hasSrcDirectory ? path.join(\"src\", args.filename) : args.filename;\n}\n"],"names":[],"mappings":";;AASA,eAAsB,aAAa,MAGlC;AACM,QAAA,kBAAkB,MAAM,oBAAoB;AAAA,IACjD,UAAU;AAAA,IACV,SAAS,KAAK;AAAA,EAAA,CACd;AAED,SAAO,kBAAkB,KAAK,KAAK,OAAO,KAAK,QAAQ,IAAI,KAAK;AACjE;"}
@@ -1,20 +0,0 @@
1
- // TODO: If Nuxt provides a way to read `nuxt.config.js`'s `srcDir` value, we
2
- // can use the exact value given. The current implementation does not support
3
- // custom values different than "src".
4
-
5
- import * as path from "node:path";
6
-
7
- import type { SliceMachineHelpers } from "@slicemachine/plugin-kit";
8
- import { checkHasProjectFile } from "@slicemachine/plugin-kit/fs";
9
-
10
- export async function buildSrcPath(args: {
11
- filename: string;
12
- helpers: SliceMachineHelpers;
13
- }): Promise<string> {
14
- const hasSrcDirectory = await checkHasProjectFile({
15
- filename: "src",
16
- helpers: args.helpers,
17
- });
18
-
19
- return hasSrcDirectory ? path.join("src", args.filename) : args.filename;
20
- }