@slicemachine/adapter-nuxt 0.3.26-dev-next-release.2 → 0.3.26-dev-environments.2

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.
@@ -1,5 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const NON_EDITABLE_FILE_BANNER = "// Code generated by Slice Machine. DO NOT EDIT.";
4
+ const DEFAULT_ENVIRONMENT_VARIABLE_FILE_PATH = ".env";
5
+ const ENVIRONMENT_VARIABLE_PATHS = [".env"];
6
+ const PRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME = "NUXT_PUBLIC_PRISMIC_ENVIRONMENT";
7
+ exports.DEFAULT_ENVIRONMENT_VARIABLE_FILE_PATH = DEFAULT_ENVIRONMENT_VARIABLE_FILE_PATH;
8
+ exports.ENVIRONMENT_VARIABLE_PATHS = ENVIRONMENT_VARIABLE_PATHS;
4
9
  exports.NON_EDITABLE_FILE_BANNER = NON_EDITABLE_FILE_BANNER;
10
+ exports.PRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME = PRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME;
5
11
  //# sourceMappingURL=constants.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.cjs","sources":["../../src/constants.ts"],"sourcesContent":["/**\n * Banner text added to files that should not be edited by users.\n */\nexport const NON_EDITABLE_FILE_BANNER =\n\t\"// Code generated by Slice Machine. DO NOT EDIT.\";\n"],"names":[],"mappings":";;AAGO,MAAM,2BACZ;;"}
1
+ {"version":3,"file":"constants.cjs","sources":["../../src/constants.ts"],"sourcesContent":["/**\n * Banner text added to files that should not be edited by users.\n */\nexport const NON_EDITABLE_FILE_BANNER =\n\t\"// Code generated by Slice Machine. DO NOT EDIT.\";\n\n/**\n * The default file path at which environment variables will be stored.\n */\nexport const DEFAULT_ENVIRONMENT_VARIABLE_FILE_PATH = \".env\";\n\n/**\n * The file paths at which environment variables will be read in order from\n * lowest priority to highest priority.\n */\nexport const ENVIRONMENT_VARIABLE_PATHS = [\".env\"];\n\n/**\n * The name of the environment variable that stores the active Prismic\n * environment.\n */\nexport const PRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME =\n\t\"NUXT_PUBLIC_PRISMIC_ENVIRONMENT\";\n"],"names":[],"mappings":";;AAGO,MAAM,2BACZ;AAKM,MAAM,yCAAyC;AAMzC,MAAA,6BAA6B,CAAC,MAAM;AAM1C,MAAM,gDACZ;;;;;"}
@@ -2,3 +2,17 @@
2
2
  * Banner text added to files that should not be edited by users.
3
3
  */
4
4
  export declare const NON_EDITABLE_FILE_BANNER = "// Code generated by Slice Machine. DO NOT EDIT.";
5
+ /**
6
+ * The default file path at which environment variables will be stored.
7
+ */
8
+ export declare const DEFAULT_ENVIRONMENT_VARIABLE_FILE_PATH = ".env";
9
+ /**
10
+ * The file paths at which environment variables will be read in order from
11
+ * lowest priority to highest priority.
12
+ */
13
+ export declare const ENVIRONMENT_VARIABLE_PATHS: string[];
14
+ /**
15
+ * The name of the environment variable that stores the active Prismic
16
+ * environment.
17
+ */
18
+ export declare const PRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME = "NUXT_PUBLIC_PRISMIC_ENVIRONMENT";
package/dist/constants.js CHANGED
@@ -1,5 +1,11 @@
1
1
  const NON_EDITABLE_FILE_BANNER = "// Code generated by Slice Machine. DO NOT EDIT.";
2
+ const DEFAULT_ENVIRONMENT_VARIABLE_FILE_PATH = ".env";
3
+ const ENVIRONMENT_VARIABLE_PATHS = [".env"];
4
+ const PRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME = "NUXT_PUBLIC_PRISMIC_ENVIRONMENT";
2
5
  export {
3
- NON_EDITABLE_FILE_BANNER
6
+ DEFAULT_ENVIRONMENT_VARIABLE_FILE_PATH,
7
+ ENVIRONMENT_VARIABLE_PATHS,
8
+ NON_EDITABLE_FILE_BANNER,
9
+ PRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME
4
10
  };
5
11
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../src/constants.ts"],"sourcesContent":["/**\n * Banner text added to files that should not be edited by users.\n */\nexport const NON_EDITABLE_FILE_BANNER =\n\t\"// Code generated by Slice Machine. DO NOT EDIT.\";\n"],"names":[],"mappings":"AAGO,MAAM,2BACZ;"}
1
+ {"version":3,"file":"constants.js","sources":["../../src/constants.ts"],"sourcesContent":["/**\n * Banner text added to files that should not be edited by users.\n */\nexport const NON_EDITABLE_FILE_BANNER =\n\t\"// Code generated by Slice Machine. DO NOT EDIT.\";\n\n/**\n * The default file path at which environment variables will be stored.\n */\nexport const DEFAULT_ENVIRONMENT_VARIABLE_FILE_PATH = \".env\";\n\n/**\n * The file paths at which environment variables will be read in order from\n * lowest priority to highest priority.\n */\nexport const ENVIRONMENT_VARIABLE_PATHS = [\".env\"];\n\n/**\n * The name of the environment variable that stores the active Prismic\n * environment.\n */\nexport const PRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME =\n\t\"NUXT_PUBLIC_PRISMIC_ENVIRONMENT\";\n"],"names":[],"mappings":"AAGO,MAAM,2BACZ;AAKM,MAAM,yCAAyC;AAMzC,MAAA,6BAA6B,CAAC,MAAM;AAM1C,MAAM,gDACZ;"}
package/dist/plugin.cjs CHANGED
@@ -7,6 +7,7 @@ const fs = require("@slicemachine/plugin-kit/fs");
7
7
  const rejectIfNecessary = require("./lib/rejectIfNecessary.cjs");
8
8
  const upsertSliceLibraryIndexFile = require("./lib/upsertSliceLibraryIndexFile.cjs");
9
9
  const _package = require("./packages/adapter-nuxt/package.json.cjs");
10
+ const constants = require("./constants.cjs");
10
11
  const documentationRead = require("./hooks/documentation-read.cjs");
11
12
  const projectInit = require("./hooks/project-init.cjs");
12
13
  const sliceCreate = require("./hooks/slice-create.cjs");
@@ -26,6 +27,27 @@ const plugin = pluginKit.defineSliceMachinePlugin({
26
27
  },
27
28
  setup({ hook }) {
28
29
  hook("project:init", projectInit.projectInit);
30
+ hook("project:environment:update", async (data, context) => {
31
+ await fs.writeProjectEnvironment({
32
+ variableName: constants.PRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME,
33
+ environment: data.environment,
34
+ filename: context.options.environmentVariableFilePath || constants.DEFAULT_ENVIRONMENT_VARIABLE_FILE_PATH,
35
+ helpers: context.helpers
36
+ });
37
+ });
38
+ hook("project:environment:read", async (_data, context) => {
39
+ const projectEnvironment = await fs.readProjectEnvironment({
40
+ variableName: constants.PRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME,
41
+ filenames: [
42
+ ...constants.ENVIRONMENT_VARIABLE_PATHS,
43
+ context.options.environmentVariableFilePath
44
+ ].filter((filename) => Boolean(filename)),
45
+ helpers: context.helpers
46
+ });
47
+ return {
48
+ environment: projectEnvironment.environment
49
+ };
50
+ });
29
51
  hook("slice:create", sliceCreate.sliceCreate);
30
52
  hook("slice:update", async (data, context) => {
31
53
  await fs.writeSliceModel({
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.cjs","sources":["../../src/plugin.ts"],"sourcesContent":["import path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { defineSliceMachinePlugin } from \"@slicemachine/plugin-kit\";\nimport {\n\tdeleteCustomTypeDirectory,\n\tdeleteCustomTypeFile,\n\tdeleteSliceDirectory,\n\tdeleteSliceFile,\n\treadCustomTypeFile,\n\treadCustomTypeLibrary,\n\treadCustomTypeModel,\n\treadSliceFile,\n\treadSliceLibrary,\n\treadSliceModel,\n\treadSliceTemplateLibrary,\n\trenameCustomType,\n\trenameSlice,\n\tupsertGlobalTypeScriptTypes,\n\twriteCustomTypeFile,\n\twriteCustomTypeModel,\n\twriteSliceFile,\n\twriteSliceModel,\n} from \"@slicemachine/plugin-kit/fs\";\n\nimport { rejectIfNecessary } from \"./lib/rejectIfNecessary\";\nimport { upsertSliceLibraryIndexFile } from \"./lib/upsertSliceLibraryIndexFile\";\n\nimport { name as pkgName } from \"../package.json\";\nimport { PluginOptions } from \"./types\";\n\nimport { documentationRead } from \"./hooks/documentation-read\";\nimport { projectInit } from \"./hooks/project-init\";\nimport { sliceCreate } from \"./hooks/slice-create\";\nimport { sliceSimulatorSetupRead } from \"./hooks/sliceSimulator-setup-read\";\nimport { snippetRead } from \"./hooks/snippet-read\";\n\nimport * as Hero from \"./sliceTemplates/Hero\";\nimport * as CallToAction from \"./sliceTemplates/CallToAction\";\nimport * as AlternateGrid from \"./sliceTemplates/AlternateGrid\";\nimport * as CustomerLogos from \"./sliceTemplates/CustomerLogos\";\n\nexport const plugin = defineSliceMachinePlugin<PluginOptions>({\n\tmeta: {\n\t\tname: pkgName,\n\t},\n\tdefaultOptions: {\n\t\tformat: true,\n\t\tlazyLoadSlices: true,\n\t},\n\tsetup({ hook }) {\n\t\t////////////////////////////////////////////////////////////////\n\t\t// project:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"project:init\", projectInit);\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// slice:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"slice:create\", sliceCreate);\n\t\thook(\"slice:update\", async (data, context) => {\n\t\t\tawait writeSliceModel({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tmodel: data.model,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\tawait upsertGlobalTypeScriptTypes({\n\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"slice:rename\", async (data, context) => {\n\t\t\tawait renameSlice({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tmodel: data.model,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\trejectIfNecessary(\n\t\t\t\tawait Promise.allSettled([\n\t\t\t\t\tupsertSliceLibraryIndexFile({\n\t\t\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\t\t\t...context,\n\t\t\t\t\t}),\n\t\t\t\t\tupsertGlobalTypeScriptTypes({\n\t\t\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\t\t\tformat: context.options.format,\n\t\t\t\t\t\t...context,\n\t\t\t\t\t}),\n\t\t\t\t]),\n\t\t\t);\n\t\t});\n\t\thook(\"slice:delete\", async (data, context) => {\n\t\t\tawait deleteSliceDirectory({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tmodel: data.model,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\trejectIfNecessary(\n\t\t\t\tawait Promise.allSettled([\n\t\t\t\t\tupsertSliceLibraryIndexFile({\n\t\t\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\t\t\t...context,\n\t\t\t\t\t}),\n\t\t\t\t\tupsertGlobalTypeScriptTypes({\n\t\t\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\t\t\tformat: context.options.format,\n\t\t\t\t\t\t...context,\n\t\t\t\t\t}),\n\t\t\t\t]),\n\t\t\t);\n\t\t});\n\t\thook(\"slice:read\", async (data, context) => {\n\t\t\treturn await readSliceModel({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tsliceID: data.sliceID,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"slice:asset:update\", async (data, context) => {\n\t\t\tawait writeSliceFile({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tsliceID: data.sliceID,\n\t\t\t\tfilename: data.asset.id,\n\t\t\t\tcontents: data.asset.data,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"slice:asset:delete\", async (data, context) => {\n\t\t\tawait deleteSliceFile({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tsliceID: data.sliceID,\n\t\t\t\tfilename: data.assetID,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"slice:asset:read\", async (data, context) => {\n\t\t\tconst file = await readSliceFile({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tsliceID: data.sliceID,\n\t\t\t\tfilename: data.assetID,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tdata: file,\n\t\t\t};\n\t\t});\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// slice-library:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"slice-library:read\", async (data, context) => {\n\t\t\treturn await readSliceLibrary({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// slice-template-library:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"slice-template-library:read\", async (data, context) => {\n\t\t\treturn await readSliceTemplateLibrary({\n\t\t\t\t...data,\n\t\t\t\t...context,\n\t\t\t\tdirName: path.dirname(fileURLToPath(new URL(import.meta.url))),\n\t\t\t\ttemplates: [Hero, CustomerLogos, AlternateGrid, CallToAction],\n\t\t\t\tcomponentFileNames: {\n\t\t\t\t\tjs: \"javascript.vue\",\n\t\t\t\t\tts: \"typescript.vue\",\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// custom-type:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"custom-type:create\", async (data, context) => {\n\t\t\tawait writeCustomTypeModel({\n\t\t\t\tmodel: data.model,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\tawait upsertGlobalTypeScriptTypes({\n\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:update\", async (data, context) => {\n\t\t\tawait writeCustomTypeModel({\n\t\t\t\tmodel: data.model,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\tawait upsertGlobalTypeScriptTypes({\n\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:rename\", async (data, context) => {\n\t\t\tawait renameCustomType({\n\t\t\t\tmodel: data.model,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\tawait upsertGlobalTypeScriptTypes({\n\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:delete\", async (data, context) => {\n\t\t\tawait deleteCustomTypeDirectory({\n\t\t\t\tcustomTypeID: data.model.id,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\tawait upsertGlobalTypeScriptTypes({\n\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:read\", async (data, context) => {\n\t\t\treturn await readCustomTypeModel({\n\t\t\t\tcustomTypeID: data.id,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:asset:update\", async (data, context) => {\n\t\t\tawait writeCustomTypeFile({\n\t\t\t\tcustomTypeID: data.customTypeID,\n\t\t\t\tfilename: data.asset.id,\n\t\t\t\tcontents: data.asset.data,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:asset:delete\", async (data, context) => {\n\t\t\tawait deleteCustomTypeFile({\n\t\t\t\tcustomTypeID: data.customTypeID,\n\t\t\t\tfilename: data.assetID,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:asset:read\", async (data, context) => {\n\t\t\tconst file = await readCustomTypeFile({\n\t\t\t\tcustomTypeID: data.customTypeID,\n\t\t\t\tfilename: data.assetID,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tdata: file,\n\t\t\t};\n\t\t});\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// custom-type-library:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"custom-type-library:read\", async (_data, context) => {\n\t\t\treturn await readCustomTypeLibrary({\n\t\t\t\thelpers: context.helpers,\n\t\t\t});\n\t\t});\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// snippet:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"snippet:read\", snippetRead);\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// documentation:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"documentation:read\", documentationRead);\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// slice-simulator:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"slice-simulator:setup:read\", sliceSimulatorSetupRead);\n\t},\n});\n"],"names":["defineSliceMachinePlugin","pkgName","projectInit","sliceCreate","writeSliceModel","upsertGlobalTypeScriptTypes","renameSlice","rejectIfNecessary","upsertSliceLibraryIndexFile","deleteSliceDirectory","readSliceModel","writeSliceFile","deleteSliceFile","readSliceFile","readSliceLibrary","readSliceTemplateLibrary","fileURLToPath","Hero","CustomerLogos","AlternateGrid","CallToAction","writeCustomTypeModel","renameCustomType","deleteCustomTypeDirectory","readCustomTypeModel","writeCustomTypeFile","deleteCustomTypeFile","readCustomTypeFile","readCustomTypeLibrary","snippetRead","documentationRead","sliceSimulatorSetupRead"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.cjs","sources":["../../src/plugin.ts"],"sourcesContent":["import path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { defineSliceMachinePlugin } from \"@slicemachine/plugin-kit\";\nimport {\n\tdeleteCustomTypeDirectory,\n\tdeleteCustomTypeFile,\n\tdeleteSliceDirectory,\n\tdeleteSliceFile,\n\treadCustomTypeFile,\n\treadCustomTypeLibrary,\n\treadCustomTypeModel,\n\treadProjectEnvironment,\n\treadSliceFile,\n\treadSliceLibrary,\n\treadSliceModel,\n\treadSliceTemplateLibrary,\n\trenameCustomType,\n\trenameSlice,\n\tupsertGlobalTypeScriptTypes,\n\twriteCustomTypeFile,\n\twriteCustomTypeModel,\n\twriteProjectEnvironment,\n\twriteSliceFile,\n\twriteSliceModel,\n} from \"@slicemachine/plugin-kit/fs\";\n\nimport { rejectIfNecessary } from \"./lib/rejectIfNecessary\";\nimport { upsertSliceLibraryIndexFile } from \"./lib/upsertSliceLibraryIndexFile\";\n\nimport { name as pkgName } from \"../package.json\";\nimport { PluginOptions } from \"./types\";\nimport {\n\tDEFAULT_ENVIRONMENT_VARIABLE_FILE_PATH,\n\tENVIRONMENT_VARIABLE_PATHS,\n\tPRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME,\n} from \"./constants\";\n\nimport { documentationRead } from \"./hooks/documentation-read\";\nimport { projectInit } from \"./hooks/project-init\";\nimport { sliceCreate } from \"./hooks/slice-create\";\nimport { sliceSimulatorSetupRead } from \"./hooks/sliceSimulator-setup-read\";\nimport { snippetRead } from \"./hooks/snippet-read\";\n\nimport * as Hero from \"./sliceTemplates/Hero\";\nimport * as CallToAction from \"./sliceTemplates/CallToAction\";\nimport * as AlternateGrid from \"./sliceTemplates/AlternateGrid\";\nimport * as CustomerLogos from \"./sliceTemplates/CustomerLogos\";\n\nexport const plugin = defineSliceMachinePlugin<PluginOptions>({\n\tmeta: {\n\t\tname: pkgName,\n\t},\n\tdefaultOptions: {\n\t\tformat: true,\n\t\tlazyLoadSlices: true,\n\t},\n\tsetup({ hook }) {\n\t\t////////////////////////////////////////////////////////////////\n\t\t// project:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"project:init\", projectInit);\n\t\thook(\"project:environment:update\", async (data, context) => {\n\t\t\tawait writeProjectEnvironment({\n\t\t\t\tvariableName: PRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME,\n\t\t\t\tenvironment: data.environment,\n\t\t\t\tfilename:\n\t\t\t\t\tcontext.options.environmentVariableFilePath ||\n\t\t\t\t\tDEFAULT_ENVIRONMENT_VARIABLE_FILE_PATH,\n\t\t\t\thelpers: context.helpers,\n\t\t\t});\n\t\t});\n\t\thook(\"project:environment:read\", async (_data, context) => {\n\t\t\tconst projectEnvironment = await readProjectEnvironment({\n\t\t\t\tvariableName: PRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME,\n\t\t\t\tfilenames: [\n\t\t\t\t\t...ENVIRONMENT_VARIABLE_PATHS,\n\t\t\t\t\tcontext.options.environmentVariableFilePath,\n\t\t\t\t].filter((filename): filename is NonNullable<typeof filename> =>\n\t\t\t\t\tBoolean(filename),\n\t\t\t\t),\n\t\t\t\thelpers: context.helpers,\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tenvironment: projectEnvironment.environment,\n\t\t\t};\n\t\t});\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// slice:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"slice:create\", sliceCreate);\n\t\thook(\"slice:update\", async (data, context) => {\n\t\t\tawait writeSliceModel({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tmodel: data.model,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\tawait upsertGlobalTypeScriptTypes({\n\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"slice:rename\", async (data, context) => {\n\t\t\tawait renameSlice({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tmodel: data.model,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\trejectIfNecessary(\n\t\t\t\tawait Promise.allSettled([\n\t\t\t\t\tupsertSliceLibraryIndexFile({\n\t\t\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\t\t\t...context,\n\t\t\t\t\t}),\n\t\t\t\t\tupsertGlobalTypeScriptTypes({\n\t\t\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\t\t\tformat: context.options.format,\n\t\t\t\t\t\t...context,\n\t\t\t\t\t}),\n\t\t\t\t]),\n\t\t\t);\n\t\t});\n\t\thook(\"slice:delete\", async (data, context) => {\n\t\t\tawait deleteSliceDirectory({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tmodel: data.model,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\trejectIfNecessary(\n\t\t\t\tawait Promise.allSettled([\n\t\t\t\t\tupsertSliceLibraryIndexFile({\n\t\t\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\t\t\t...context,\n\t\t\t\t\t}),\n\t\t\t\t\tupsertGlobalTypeScriptTypes({\n\t\t\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\t\t\tformat: context.options.format,\n\t\t\t\t\t\t...context,\n\t\t\t\t\t}),\n\t\t\t\t]),\n\t\t\t);\n\t\t});\n\t\thook(\"slice:read\", async (data, context) => {\n\t\t\treturn await readSliceModel({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tsliceID: data.sliceID,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"slice:asset:update\", async (data, context) => {\n\t\t\tawait writeSliceFile({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tsliceID: data.sliceID,\n\t\t\t\tfilename: data.asset.id,\n\t\t\t\tcontents: data.asset.data,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"slice:asset:delete\", async (data, context) => {\n\t\t\tawait deleteSliceFile({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tsliceID: data.sliceID,\n\t\t\t\tfilename: data.assetID,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"slice:asset:read\", async (data, context) => {\n\t\t\tconst file = await readSliceFile({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tsliceID: data.sliceID,\n\t\t\t\tfilename: data.assetID,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tdata: file,\n\t\t\t};\n\t\t});\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// slice-library:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"slice-library:read\", async (data, context) => {\n\t\t\treturn await readSliceLibrary({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// slice-template-library:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"slice-template-library:read\", async (data, context) => {\n\t\t\treturn await readSliceTemplateLibrary({\n\t\t\t\t...data,\n\t\t\t\t...context,\n\t\t\t\tdirName: path.dirname(fileURLToPath(new URL(import.meta.url))),\n\t\t\t\ttemplates: [Hero, CustomerLogos, AlternateGrid, CallToAction],\n\t\t\t\tcomponentFileNames: {\n\t\t\t\t\tjs: \"javascript.vue\",\n\t\t\t\t\tts: \"typescript.vue\",\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// custom-type:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"custom-type:create\", async (data, context) => {\n\t\t\tawait writeCustomTypeModel({\n\t\t\t\tmodel: data.model,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\tawait upsertGlobalTypeScriptTypes({\n\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:update\", async (data, context) => {\n\t\t\tawait writeCustomTypeModel({\n\t\t\t\tmodel: data.model,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\tawait upsertGlobalTypeScriptTypes({\n\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:rename\", async (data, context) => {\n\t\t\tawait renameCustomType({\n\t\t\t\tmodel: data.model,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\tawait upsertGlobalTypeScriptTypes({\n\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:delete\", async (data, context) => {\n\t\t\tawait deleteCustomTypeDirectory({\n\t\t\t\tcustomTypeID: data.model.id,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\tawait upsertGlobalTypeScriptTypes({\n\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:read\", async (data, context) => {\n\t\t\treturn await readCustomTypeModel({\n\t\t\t\tcustomTypeID: data.id,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:asset:update\", async (data, context) => {\n\t\t\tawait writeCustomTypeFile({\n\t\t\t\tcustomTypeID: data.customTypeID,\n\t\t\t\tfilename: data.asset.id,\n\t\t\t\tcontents: data.asset.data,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:asset:delete\", async (data, context) => {\n\t\t\tawait deleteCustomTypeFile({\n\t\t\t\tcustomTypeID: data.customTypeID,\n\t\t\t\tfilename: data.assetID,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:asset:read\", async (data, context) => {\n\t\t\tconst file = await readCustomTypeFile({\n\t\t\t\tcustomTypeID: data.customTypeID,\n\t\t\t\tfilename: data.assetID,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tdata: file,\n\t\t\t};\n\t\t});\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// custom-type-library:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"custom-type-library:read\", async (_data, context) => {\n\t\t\treturn await readCustomTypeLibrary({\n\t\t\t\thelpers: context.helpers,\n\t\t\t});\n\t\t});\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// snippet:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"snippet:read\", snippetRead);\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// documentation:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"documentation:read\", documentationRead);\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// slice-simulator:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"slice-simulator:setup:read\", sliceSimulatorSetupRead);\n\t},\n});\n"],"names":["defineSliceMachinePlugin","pkgName","projectInit","writeProjectEnvironment","PRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME","DEFAULT_ENVIRONMENT_VARIABLE_FILE_PATH","readProjectEnvironment","ENVIRONMENT_VARIABLE_PATHS","sliceCreate","writeSliceModel","upsertGlobalTypeScriptTypes","renameSlice","rejectIfNecessary","upsertSliceLibraryIndexFile","deleteSliceDirectory","readSliceModel","writeSliceFile","deleteSliceFile","readSliceFile","readSliceLibrary","readSliceTemplateLibrary","fileURLToPath","Hero","CustomerLogos","AlternateGrid","CallToAction","writeCustomTypeModel","renameCustomType","deleteCustomTypeDirectory","readCustomTypeModel","writeCustomTypeFile","deleteCustomTypeFile","readCustomTypeFile","readCustomTypeLibrary","snippetRead","documentationRead","sliceSimulatorSetupRead"],"mappings":"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"}
package/dist/plugin.js CHANGED
@@ -1,10 +1,11 @@
1
1
  import path__default from "node:path";
2
2
  import { fileURLToPath } from "node:url";
3
3
  import { defineSliceMachinePlugin } from "@slicemachine/plugin-kit";
4
- import { writeSliceModel, upsertGlobalTypeScriptTypes, renameSlice, deleteSliceDirectory, readSliceModel, writeSliceFile, deleteSliceFile, readSliceFile, readSliceLibrary, readSliceTemplateLibrary, writeCustomTypeModel, renameCustomType, deleteCustomTypeDirectory, readCustomTypeModel, writeCustomTypeFile, deleteCustomTypeFile, readCustomTypeFile, readCustomTypeLibrary } from "@slicemachine/plugin-kit/fs";
4
+ import { writeProjectEnvironment, readProjectEnvironment, writeSliceModel, upsertGlobalTypeScriptTypes, renameSlice, deleteSliceDirectory, readSliceModel, writeSliceFile, deleteSliceFile, readSliceFile, readSliceLibrary, readSliceTemplateLibrary, writeCustomTypeModel, renameCustomType, deleteCustomTypeDirectory, readCustomTypeModel, writeCustomTypeFile, deleteCustomTypeFile, readCustomTypeFile, readCustomTypeLibrary } from "@slicemachine/plugin-kit/fs";
5
5
  import { rejectIfNecessary } from "./lib/rejectIfNecessary.js";
6
6
  import { upsertSliceLibraryIndexFile } from "./lib/upsertSliceLibraryIndexFile.js";
7
7
  import { name } from "./packages/adapter-nuxt/package.json.js";
8
+ import { PRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME, DEFAULT_ENVIRONMENT_VARIABLE_FILE_PATH, ENVIRONMENT_VARIABLE_PATHS } from "./constants.js";
8
9
  import { documentationRead } from "./hooks/documentation-read.js";
9
10
  import { projectInit } from "./hooks/project-init.js";
10
11
  import { sliceCreate } from "./hooks/slice-create.js";
@@ -24,6 +25,27 @@ const plugin = defineSliceMachinePlugin({
24
25
  },
25
26
  setup({ hook }) {
26
27
  hook("project:init", projectInit);
28
+ hook("project:environment:update", async (data, context) => {
29
+ await writeProjectEnvironment({
30
+ variableName: PRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME,
31
+ environment: data.environment,
32
+ filename: context.options.environmentVariableFilePath || DEFAULT_ENVIRONMENT_VARIABLE_FILE_PATH,
33
+ helpers: context.helpers
34
+ });
35
+ });
36
+ hook("project:environment:read", async (_data, context) => {
37
+ const projectEnvironment = await readProjectEnvironment({
38
+ variableName: PRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME,
39
+ filenames: [
40
+ ...ENVIRONMENT_VARIABLE_PATHS,
41
+ context.options.environmentVariableFilePath
42
+ ].filter((filename) => Boolean(filename)),
43
+ helpers: context.helpers
44
+ });
45
+ return {
46
+ environment: projectEnvironment.environment
47
+ };
48
+ });
27
49
  hook("slice:create", sliceCreate);
28
50
  hook("slice:update", async (data, context) => {
29
51
  await writeSliceModel({
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sources":["../../src/plugin.ts"],"sourcesContent":["import path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { defineSliceMachinePlugin } from \"@slicemachine/plugin-kit\";\nimport {\n\tdeleteCustomTypeDirectory,\n\tdeleteCustomTypeFile,\n\tdeleteSliceDirectory,\n\tdeleteSliceFile,\n\treadCustomTypeFile,\n\treadCustomTypeLibrary,\n\treadCustomTypeModel,\n\treadSliceFile,\n\treadSliceLibrary,\n\treadSliceModel,\n\treadSliceTemplateLibrary,\n\trenameCustomType,\n\trenameSlice,\n\tupsertGlobalTypeScriptTypes,\n\twriteCustomTypeFile,\n\twriteCustomTypeModel,\n\twriteSliceFile,\n\twriteSliceModel,\n} from \"@slicemachine/plugin-kit/fs\";\n\nimport { rejectIfNecessary } from \"./lib/rejectIfNecessary\";\nimport { upsertSliceLibraryIndexFile } from \"./lib/upsertSliceLibraryIndexFile\";\n\nimport { name as pkgName } from \"../package.json\";\nimport { PluginOptions } from \"./types\";\n\nimport { documentationRead } from \"./hooks/documentation-read\";\nimport { projectInit } from \"./hooks/project-init\";\nimport { sliceCreate } from \"./hooks/slice-create\";\nimport { sliceSimulatorSetupRead } from \"./hooks/sliceSimulator-setup-read\";\nimport { snippetRead } from \"./hooks/snippet-read\";\n\nimport * as Hero from \"./sliceTemplates/Hero\";\nimport * as CallToAction from \"./sliceTemplates/CallToAction\";\nimport * as AlternateGrid from \"./sliceTemplates/AlternateGrid\";\nimport * as CustomerLogos from \"./sliceTemplates/CustomerLogos\";\n\nexport const plugin = defineSliceMachinePlugin<PluginOptions>({\n\tmeta: {\n\t\tname: pkgName,\n\t},\n\tdefaultOptions: {\n\t\tformat: true,\n\t\tlazyLoadSlices: true,\n\t},\n\tsetup({ hook }) {\n\t\t////////////////////////////////////////////////////////////////\n\t\t// project:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"project:init\", projectInit);\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// slice:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"slice:create\", sliceCreate);\n\t\thook(\"slice:update\", async (data, context) => {\n\t\t\tawait writeSliceModel({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tmodel: data.model,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\tawait upsertGlobalTypeScriptTypes({\n\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"slice:rename\", async (data, context) => {\n\t\t\tawait renameSlice({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tmodel: data.model,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\trejectIfNecessary(\n\t\t\t\tawait Promise.allSettled([\n\t\t\t\t\tupsertSliceLibraryIndexFile({\n\t\t\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\t\t\t...context,\n\t\t\t\t\t}),\n\t\t\t\t\tupsertGlobalTypeScriptTypes({\n\t\t\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\t\t\tformat: context.options.format,\n\t\t\t\t\t\t...context,\n\t\t\t\t\t}),\n\t\t\t\t]),\n\t\t\t);\n\t\t});\n\t\thook(\"slice:delete\", async (data, context) => {\n\t\t\tawait deleteSliceDirectory({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tmodel: data.model,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\trejectIfNecessary(\n\t\t\t\tawait Promise.allSettled([\n\t\t\t\t\tupsertSliceLibraryIndexFile({\n\t\t\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\t\t\t...context,\n\t\t\t\t\t}),\n\t\t\t\t\tupsertGlobalTypeScriptTypes({\n\t\t\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\t\t\tformat: context.options.format,\n\t\t\t\t\t\t...context,\n\t\t\t\t\t}),\n\t\t\t\t]),\n\t\t\t);\n\t\t});\n\t\thook(\"slice:read\", async (data, context) => {\n\t\t\treturn await readSliceModel({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tsliceID: data.sliceID,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"slice:asset:update\", async (data, context) => {\n\t\t\tawait writeSliceFile({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tsliceID: data.sliceID,\n\t\t\t\tfilename: data.asset.id,\n\t\t\t\tcontents: data.asset.data,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"slice:asset:delete\", async (data, context) => {\n\t\t\tawait deleteSliceFile({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tsliceID: data.sliceID,\n\t\t\t\tfilename: data.assetID,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"slice:asset:read\", async (data, context) => {\n\t\t\tconst file = await readSliceFile({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tsliceID: data.sliceID,\n\t\t\t\tfilename: data.assetID,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tdata: file,\n\t\t\t};\n\t\t});\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// slice-library:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"slice-library:read\", async (data, context) => {\n\t\t\treturn await readSliceLibrary({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// slice-template-library:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"slice-template-library:read\", async (data, context) => {\n\t\t\treturn await readSliceTemplateLibrary({\n\t\t\t\t...data,\n\t\t\t\t...context,\n\t\t\t\tdirName: path.dirname(fileURLToPath(new URL(import.meta.url))),\n\t\t\t\ttemplates: [Hero, CustomerLogos, AlternateGrid, CallToAction],\n\t\t\t\tcomponentFileNames: {\n\t\t\t\t\tjs: \"javascript.vue\",\n\t\t\t\t\tts: \"typescript.vue\",\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// custom-type:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"custom-type:create\", async (data, context) => {\n\t\t\tawait writeCustomTypeModel({\n\t\t\t\tmodel: data.model,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\tawait upsertGlobalTypeScriptTypes({\n\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:update\", async (data, context) => {\n\t\t\tawait writeCustomTypeModel({\n\t\t\t\tmodel: data.model,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\tawait upsertGlobalTypeScriptTypes({\n\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:rename\", async (data, context) => {\n\t\t\tawait renameCustomType({\n\t\t\t\tmodel: data.model,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\tawait upsertGlobalTypeScriptTypes({\n\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:delete\", async (data, context) => {\n\t\t\tawait deleteCustomTypeDirectory({\n\t\t\t\tcustomTypeID: data.model.id,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\tawait upsertGlobalTypeScriptTypes({\n\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:read\", async (data, context) => {\n\t\t\treturn await readCustomTypeModel({\n\t\t\t\tcustomTypeID: data.id,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:asset:update\", async (data, context) => {\n\t\t\tawait writeCustomTypeFile({\n\t\t\t\tcustomTypeID: data.customTypeID,\n\t\t\t\tfilename: data.asset.id,\n\t\t\t\tcontents: data.asset.data,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:asset:delete\", async (data, context) => {\n\t\t\tawait deleteCustomTypeFile({\n\t\t\t\tcustomTypeID: data.customTypeID,\n\t\t\t\tfilename: data.assetID,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:asset:read\", async (data, context) => {\n\t\t\tconst file = await readCustomTypeFile({\n\t\t\t\tcustomTypeID: data.customTypeID,\n\t\t\t\tfilename: data.assetID,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tdata: file,\n\t\t\t};\n\t\t});\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// custom-type-library:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"custom-type-library:read\", async (_data, context) => {\n\t\t\treturn await readCustomTypeLibrary({\n\t\t\t\thelpers: context.helpers,\n\t\t\t});\n\t\t});\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// snippet:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"snippet:read\", snippetRead);\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// documentation:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"documentation:read\", documentationRead);\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// slice-simulator:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"slice-simulator:setup:read\", sliceSimulatorSetupRead);\n\t},\n});\n"],"names":["path","Hero","CustomerLogos","AlternateGrid","CallToAction"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sources":["../../src/plugin.ts"],"sourcesContent":["import path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { defineSliceMachinePlugin } from \"@slicemachine/plugin-kit\";\nimport {\n\tdeleteCustomTypeDirectory,\n\tdeleteCustomTypeFile,\n\tdeleteSliceDirectory,\n\tdeleteSliceFile,\n\treadCustomTypeFile,\n\treadCustomTypeLibrary,\n\treadCustomTypeModel,\n\treadProjectEnvironment,\n\treadSliceFile,\n\treadSliceLibrary,\n\treadSliceModel,\n\treadSliceTemplateLibrary,\n\trenameCustomType,\n\trenameSlice,\n\tupsertGlobalTypeScriptTypes,\n\twriteCustomTypeFile,\n\twriteCustomTypeModel,\n\twriteProjectEnvironment,\n\twriteSliceFile,\n\twriteSliceModel,\n} from \"@slicemachine/plugin-kit/fs\";\n\nimport { rejectIfNecessary } from \"./lib/rejectIfNecessary\";\nimport { upsertSliceLibraryIndexFile } from \"./lib/upsertSliceLibraryIndexFile\";\n\nimport { name as pkgName } from \"../package.json\";\nimport { PluginOptions } from \"./types\";\nimport {\n\tDEFAULT_ENVIRONMENT_VARIABLE_FILE_PATH,\n\tENVIRONMENT_VARIABLE_PATHS,\n\tPRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME,\n} from \"./constants\";\n\nimport { documentationRead } from \"./hooks/documentation-read\";\nimport { projectInit } from \"./hooks/project-init\";\nimport { sliceCreate } from \"./hooks/slice-create\";\nimport { sliceSimulatorSetupRead } from \"./hooks/sliceSimulator-setup-read\";\nimport { snippetRead } from \"./hooks/snippet-read\";\n\nimport * as Hero from \"./sliceTemplates/Hero\";\nimport * as CallToAction from \"./sliceTemplates/CallToAction\";\nimport * as AlternateGrid from \"./sliceTemplates/AlternateGrid\";\nimport * as CustomerLogos from \"./sliceTemplates/CustomerLogos\";\n\nexport const plugin = defineSliceMachinePlugin<PluginOptions>({\n\tmeta: {\n\t\tname: pkgName,\n\t},\n\tdefaultOptions: {\n\t\tformat: true,\n\t\tlazyLoadSlices: true,\n\t},\n\tsetup({ hook }) {\n\t\t////////////////////////////////////////////////////////////////\n\t\t// project:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"project:init\", projectInit);\n\t\thook(\"project:environment:update\", async (data, context) => {\n\t\t\tawait writeProjectEnvironment({\n\t\t\t\tvariableName: PRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME,\n\t\t\t\tenvironment: data.environment,\n\t\t\t\tfilename:\n\t\t\t\t\tcontext.options.environmentVariableFilePath ||\n\t\t\t\t\tDEFAULT_ENVIRONMENT_VARIABLE_FILE_PATH,\n\t\t\t\thelpers: context.helpers,\n\t\t\t});\n\t\t});\n\t\thook(\"project:environment:read\", async (_data, context) => {\n\t\t\tconst projectEnvironment = await readProjectEnvironment({\n\t\t\t\tvariableName: PRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME,\n\t\t\t\tfilenames: [\n\t\t\t\t\t...ENVIRONMENT_VARIABLE_PATHS,\n\t\t\t\t\tcontext.options.environmentVariableFilePath,\n\t\t\t\t].filter((filename): filename is NonNullable<typeof filename> =>\n\t\t\t\t\tBoolean(filename),\n\t\t\t\t),\n\t\t\t\thelpers: context.helpers,\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tenvironment: projectEnvironment.environment,\n\t\t\t};\n\t\t});\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// slice:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"slice:create\", sliceCreate);\n\t\thook(\"slice:update\", async (data, context) => {\n\t\t\tawait writeSliceModel({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tmodel: data.model,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\tawait upsertGlobalTypeScriptTypes({\n\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"slice:rename\", async (data, context) => {\n\t\t\tawait renameSlice({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tmodel: data.model,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\trejectIfNecessary(\n\t\t\t\tawait Promise.allSettled([\n\t\t\t\t\tupsertSliceLibraryIndexFile({\n\t\t\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\t\t\t...context,\n\t\t\t\t\t}),\n\t\t\t\t\tupsertGlobalTypeScriptTypes({\n\t\t\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\t\t\tformat: context.options.format,\n\t\t\t\t\t\t...context,\n\t\t\t\t\t}),\n\t\t\t\t]),\n\t\t\t);\n\t\t});\n\t\thook(\"slice:delete\", async (data, context) => {\n\t\t\tawait deleteSliceDirectory({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tmodel: data.model,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\trejectIfNecessary(\n\t\t\t\tawait Promise.allSettled([\n\t\t\t\t\tupsertSliceLibraryIndexFile({\n\t\t\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\t\t\t...context,\n\t\t\t\t\t}),\n\t\t\t\t\tupsertGlobalTypeScriptTypes({\n\t\t\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\t\t\tformat: context.options.format,\n\t\t\t\t\t\t...context,\n\t\t\t\t\t}),\n\t\t\t\t]),\n\t\t\t);\n\t\t});\n\t\thook(\"slice:read\", async (data, context) => {\n\t\t\treturn await readSliceModel({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tsliceID: data.sliceID,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"slice:asset:update\", async (data, context) => {\n\t\t\tawait writeSliceFile({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tsliceID: data.sliceID,\n\t\t\t\tfilename: data.asset.id,\n\t\t\t\tcontents: data.asset.data,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"slice:asset:delete\", async (data, context) => {\n\t\t\tawait deleteSliceFile({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tsliceID: data.sliceID,\n\t\t\t\tfilename: data.assetID,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"slice:asset:read\", async (data, context) => {\n\t\t\tconst file = await readSliceFile({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\tsliceID: data.sliceID,\n\t\t\t\tfilename: data.assetID,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tdata: file,\n\t\t\t};\n\t\t});\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// slice-library:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"slice-library:read\", async (data, context) => {\n\t\t\treturn await readSliceLibrary({\n\t\t\t\tlibraryID: data.libraryID,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// slice-template-library:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"slice-template-library:read\", async (data, context) => {\n\t\t\treturn await readSliceTemplateLibrary({\n\t\t\t\t...data,\n\t\t\t\t...context,\n\t\t\t\tdirName: path.dirname(fileURLToPath(new URL(import.meta.url))),\n\t\t\t\ttemplates: [Hero, CustomerLogos, AlternateGrid, CallToAction],\n\t\t\t\tcomponentFileNames: {\n\t\t\t\t\tjs: \"javascript.vue\",\n\t\t\t\t\tts: \"typescript.vue\",\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// custom-type:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"custom-type:create\", async (data, context) => {\n\t\t\tawait writeCustomTypeModel({\n\t\t\t\tmodel: data.model,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\tawait upsertGlobalTypeScriptTypes({\n\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:update\", async (data, context) => {\n\t\t\tawait writeCustomTypeModel({\n\t\t\t\tmodel: data.model,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\tawait upsertGlobalTypeScriptTypes({\n\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:rename\", async (data, context) => {\n\t\t\tawait renameCustomType({\n\t\t\t\tmodel: data.model,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\tawait upsertGlobalTypeScriptTypes({\n\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:delete\", async (data, context) => {\n\t\t\tawait deleteCustomTypeDirectory({\n\t\t\t\tcustomTypeID: data.model.id,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\tawait upsertGlobalTypeScriptTypes({\n\t\t\t\tfilename: context.options.generatedTypesFilePath,\n\t\t\t\tformat: context.options.format,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:read\", async (data, context) => {\n\t\t\treturn await readCustomTypeModel({\n\t\t\t\tcustomTypeID: data.id,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:asset:update\", async (data, context) => {\n\t\t\tawait writeCustomTypeFile({\n\t\t\t\tcustomTypeID: data.customTypeID,\n\t\t\t\tfilename: data.asset.id,\n\t\t\t\tcontents: data.asset.data,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:asset:delete\", async (data, context) => {\n\t\t\tawait deleteCustomTypeFile({\n\t\t\t\tcustomTypeID: data.customTypeID,\n\t\t\t\tfilename: data.assetID,\n\t\t\t\t...context,\n\t\t\t});\n\t\t});\n\t\thook(\"custom-type:asset:read\", async (data, context) => {\n\t\t\tconst file = await readCustomTypeFile({\n\t\t\t\tcustomTypeID: data.customTypeID,\n\t\t\t\tfilename: data.assetID,\n\t\t\t\t...context,\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tdata: file,\n\t\t\t};\n\t\t});\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// custom-type-library:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"custom-type-library:read\", async (_data, context) => {\n\t\t\treturn await readCustomTypeLibrary({\n\t\t\t\thelpers: context.helpers,\n\t\t\t});\n\t\t});\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// snippet:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"snippet:read\", snippetRead);\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// documentation:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"documentation:read\", documentationRead);\n\n\t\t////////////////////////////////////////////////////////////////\n\t\t// slice-simulator:*\n\t\t////////////////////////////////////////////////////////////////\n\n\t\thook(\"slice-simulator:setup:read\", sliceSimulatorSetupRead);\n\t},\n});\n"],"names":["path","Hero","CustomerLogos","AlternateGrid","CallToAction"],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -24,4 +24,11 @@ export type PluginOptions = {
24
24
  * @defaultValue `prismicio-types.d.ts`
25
25
  */
26
26
  generatedTypesFilePath?: string;
27
+ /**
28
+ * The filepath at which the active Prismic environment is stored as an
29
+ * environment variable.
30
+ *
31
+ * @defaultValue `.env.local`
32
+ */
33
+ environmentVariableFilePath?: string;
27
34
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slicemachine/adapter-nuxt",
3
- "version": "0.3.26-dev-next-release.2",
3
+ "version": "0.3.26-dev-environments.2",
4
4
  "description": "Slice Machine adapter for Nuxt 3.",
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.2.0",
64
- "@slicemachine/plugin-kit": "^0.4.26-dev-next-release.2",
64
+ "@slicemachine/plugin-kit": "^0.4.26-dev-environments.2",
65
65
  "common-tags": "^1.8.2",
66
66
  "fp-ts": "^2.13.1",
67
67
  "io-ts": "^2.2.20",
@@ -102,5 +102,5 @@
102
102
  "engines": {
103
103
  "node": ">=14.15.0"
104
104
  },
105
- "gitHead": "35ba3c40c2ed85e3c7ea10494bf29c851d1fdb6f"
105
+ "gitHead": "f5d907ecb041384c339b0c1127f50d90b37becbc"
106
106
  }
package/src/constants.ts CHANGED
@@ -3,3 +3,21 @@
3
3
  */
4
4
  export const NON_EDITABLE_FILE_BANNER =
5
5
  "// Code generated by Slice Machine. DO NOT EDIT.";
6
+
7
+ /**
8
+ * The default file path at which environment variables will be stored.
9
+ */
10
+ export const DEFAULT_ENVIRONMENT_VARIABLE_FILE_PATH = ".env";
11
+
12
+ /**
13
+ * The file paths at which environment variables will be read in order from
14
+ * lowest priority to highest priority.
15
+ */
16
+ export const ENVIRONMENT_VARIABLE_PATHS = [".env"];
17
+
18
+ /**
19
+ * The name of the environment variable that stores the active Prismic
20
+ * environment.
21
+ */
22
+ export const PRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME =
23
+ "NUXT_PUBLIC_PRISMIC_ENVIRONMENT";
package/src/plugin.ts CHANGED
@@ -10,6 +10,7 @@ import {
10
10
  readCustomTypeFile,
11
11
  readCustomTypeLibrary,
12
12
  readCustomTypeModel,
13
+ readProjectEnvironment,
13
14
  readSliceFile,
14
15
  readSliceLibrary,
15
16
  readSliceModel,
@@ -19,6 +20,7 @@ import {
19
20
  upsertGlobalTypeScriptTypes,
20
21
  writeCustomTypeFile,
21
22
  writeCustomTypeModel,
23
+ writeProjectEnvironment,
22
24
  writeSliceFile,
23
25
  writeSliceModel,
24
26
  } from "@slicemachine/plugin-kit/fs";
@@ -28,6 +30,11 @@ import { upsertSliceLibraryIndexFile } from "./lib/upsertSliceLibraryIndexFile";
28
30
 
29
31
  import { name as pkgName } from "../package.json";
30
32
  import { PluginOptions } from "./types";
33
+ import {
34
+ DEFAULT_ENVIRONMENT_VARIABLE_FILE_PATH,
35
+ ENVIRONMENT_VARIABLE_PATHS,
36
+ PRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME,
37
+ } from "./constants";
31
38
 
32
39
  import { documentationRead } from "./hooks/documentation-read";
33
40
  import { projectInit } from "./hooks/project-init";
@@ -54,6 +61,32 @@ export const plugin = defineSliceMachinePlugin<PluginOptions>({
54
61
  ////////////////////////////////////////////////////////////////
55
62
 
56
63
  hook("project:init", projectInit);
64
+ hook("project:environment:update", async (data, context) => {
65
+ await writeProjectEnvironment({
66
+ variableName: PRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME,
67
+ environment: data.environment,
68
+ filename:
69
+ context.options.environmentVariableFilePath ||
70
+ DEFAULT_ENVIRONMENT_VARIABLE_FILE_PATH,
71
+ helpers: context.helpers,
72
+ });
73
+ });
74
+ hook("project:environment:read", async (_data, context) => {
75
+ const projectEnvironment = await readProjectEnvironment({
76
+ variableName: PRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME,
77
+ filenames: [
78
+ ...ENVIRONMENT_VARIABLE_PATHS,
79
+ context.options.environmentVariableFilePath,
80
+ ].filter((filename): filename is NonNullable<typeof filename> =>
81
+ Boolean(filename),
82
+ ),
83
+ helpers: context.helpers,
84
+ });
85
+
86
+ return {
87
+ environment: projectEnvironment.environment,
88
+ };
89
+ });
57
90
 
58
91
  ////////////////////////////////////////////////////////////////
59
92
  // slice:*
package/src/types.ts CHANGED
@@ -27,4 +27,12 @@ export type PluginOptions = {
27
27
  * @defaultValue `prismicio-types.d.ts`
28
28
  */
29
29
  generatedTypesFilePath?: string;
30
+
31
+ /**
32
+ * The filepath at which the active Prismic environment is stored as an
33
+ * environment variable.
34
+ *
35
+ * @defaultValue `.env.local`
36
+ */
37
+ environmentVariableFilePath?: string;
30
38
  };