prismic-ts-codegen 0.1.18 → 0.1.19

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.
package/dist/cli.cjs CHANGED
@@ -110,10 +110,13 @@ Generated types in: ${config.output}`);
110
110
  } else {
111
111
  if (error) {
112
112
  console.error(error.message);
113
- return;
113
+ process.exit(1);
114
114
  }
115
115
  }
116
116
  }
117
117
  };
118
- main().catch((error) => console.error(error));
118
+ main().catch((error) => {
119
+ console.error(error);
120
+ process.exit(1);
121
+ });
119
122
  //# sourceMappingURL=cli.cjs.map
package/dist/cli.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.cjs","sources":["../../src/cli/index.ts"],"sourcesContent":["import { stripIndent } from \"common-tags\";\nimport { existsSync, writeFileSync } from \"fs\";\nimport meow from \"meow\";\nimport { resolve as resolvePath } from \"path\";\n\nimport { detectTypesProvider, generateTypes } from \"../index\";\n\nimport { configSchema } from \"./configSchema\";\nimport { NON_EDITABLE_FILE_HEADER } from \"./constants\";\nimport { loadConfig } from \"./loadConfig\";\nimport { loadLocaleIDs } from \"./loadLocaleIDs\";\nimport { loadModels } from \"./loadModels\";\n\nconst cli = meow(\n\t`\n\tUsage:\n\t prismic-ts-codegen [options...]\n\t prismic-ts-codegen init [options...]\n\n\tCommands:\n\t init [options]\n\n\tOptions:\n\t -c, --config <path> Path to a prismic-ts-codegen configuration file.\n\t`,\n\t{\n\t\timportMeta: import.meta,\n\t\tflags: {\n\t\t\tconfig: {\n\t\t\t\ttype: \"string\",\n\t\t\t\tshortFlag: \"c\",\n\t\t\t\tisRequired: false,\n\t\t\t},\n\t\t},\n\t},\n);\n\nconst main = async () => {\n\tif (cli.input[0] === \"init\") {\n\t\tconst configPath = cli.flags.config || \"prismicCodegen.config.ts\";\n\n\t\tif (existsSync(configPath)) {\n\t\t\tconsole.info(`\\n${configPath} already exists.`);\n\t\t} else {\n\t\t\tlet contents = \"\";\n\n\t\t\tif (existsSync(\"slicemachine.config.json\") || existsSync(\"sm.json\")) {\n\t\t\t\tcontents = stripIndent`\n\t\t\t\t\timport type { Config } from \"prismic-ts-codegen\";\n\n\t\t\t\t\tconst config: Config = {\n\t\t\t\t\t output: \"./types.generated.ts\",\n\t\t\t\t\t models: [\"./customtypes/**/index.json\", \"./slices/**/model.json\"],\n\t\t\t\t\t};\n\n\t\t\t\t\texport default config;\n\t\t\t\t`;\n\t\t\t} else {\n\t\t\t\tcontents = stripIndent`\n\t\t\t\t\timport type { Config } from \"prismic-ts-codegen\";\n\n\t\t\t\t\tconst config: Config = {\n\t\t\t\t\t output: \"./types.generated.ts\",\n\t\t\t\t\t};\n\n\t\t\t\t\texport default config;\n\t\t\t\t`;\n\t\t\t}\n\n\t\t\twriteFileSync(configPath, contents);\n\n\t\t\tconsole.info(`\\nCreated prismic-ts-codegen config file: ${configPath}`);\n\t\t}\n\t} else {\n\t\tconst unvalidatedConfig = loadConfig({ path: cli.flags.config });\n\n\t\tconst { value: config, error } = configSchema.validate(unvalidatedConfig);\n\n\t\tif (config && !error) {\n\t\t\tconst { customTypeModels, sharedSliceModels } = await loadModels({\n\t\t\t\tlocalPaths: Array.isArray(config.models)\n\t\t\t\t\t? config.models\n\t\t\t\t\t: config.models?.files,\n\t\t\t\trepositoryName: config.repositoryName,\n\t\t\t\tcustomTypesAPIToken: config.customTypesAPIToken,\n\t\t\t\tfetchFromRepository:\n\t\t\t\t\tconfig.models &&\n\t\t\t\t\t\"fetchFromRepository\" in config.models &&\n\t\t\t\t\tconfig.models.fetchFromRepository,\n\t\t\t});\n\n\t\t\tconst localeIDs = await loadLocaleIDs({\n\t\t\t\tlocaleIDs: Array.isArray(config.locales)\n\t\t\t\t\t? config.locales\n\t\t\t\t\t: config.locales?.ids,\n\t\t\t\trepositoryName: config.repositoryName,\n\t\t\t\taccessToken: config.accessToken,\n\t\t\t\tfetchFromRepository:\n\t\t\t\t\tconfig.locales &&\n\t\t\t\t\t\"fetchFromRepository\" in config.locales &&\n\t\t\t\t\tconfig.locales.fetchFromRepository,\n\t\t\t});\n\n\t\t\tconst typesProvider =\n\t\t\t\tconfig.typesProvider || (await detectTypesProvider());\n\n\t\t\tconst hasCustomTypeModels = customTypeModels.length > 0;\n\n\t\t\tif (\n\t\t\t\tconfig.clientIntegration?.includeCreateClientInterface &&\n\t\t\t\t!hasCustomTypeModels\n\t\t\t) {\n\t\t\t\tconsole.info(\n\t\t\t\t\t\"[INFO]: prismic-ts-codegen was configured to automatically integrate with `@prismicio/client`, but the integration was not generated because no Custom Type models were found. Automatic integration requires at least one Custom Type model.\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst types = generateTypes({\n\t\t\t\tcustomTypeModels,\n\t\t\t\tsharedSliceModels,\n\t\t\t\tlocaleIDs,\n\t\t\t\tfieldConfigs: config.fields,\n\t\t\t\tclientIntegration: {\n\t\t\t\t\tincludeCreateClientInterface: hasCustomTypeModels\n\t\t\t\t\t\t? config.clientIntegration?.includeCreateClientInterface ?? true\n\t\t\t\t\t\t: false,\n\t\t\t\t\tincludeContentNamespace:\n\t\t\t\t\t\tconfig.clientIntegration?.includeContentNamespace ?? true,\n\t\t\t\t},\n\t\t\t\ttypesProvider,\n\t\t\t});\n\n\t\t\tconst fileContents = `${NON_EDITABLE_FILE_HEADER}\\n\\n${types}`;\n\n\t\t\tif (config.output) {\n\t\t\t\twriteFileSync(resolvePath(config.output), fileContents);\n\n\t\t\t\tconsole.info(`\\nGenerated types in: ${config.output}`);\n\t\t\t} else {\n\t\t\t\tprocess.stdout.write(types + \"\\n\");\n\t\t\t}\n\t\t} else {\n\t\t\tif (error) {\n\t\t\t\tconsole.error(error.message);\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n};\n\nmain().catch((error) => console.error(error));\n"],"names":["meow","existsSync","stripIndent","writeFileSync","loadConfig","configSchema","loadModels","loadLocaleIDs","detectTypesProvider","generateTypes","NON_EDITABLE_FILE_HEADER","resolvePath"],"mappings":";;;;;;;;;;;;AAaA,MAAM,MAAMA,MACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWA;AAAA,EACC,YAAY,EAAA,KAAA,OAAA,aAAA,cAAA,QAAA,KAAA,EAAA,cAAA,UAAA,EAAA,OAAA,SAAA,iBAAA,SAAA,cAAA,OAAA,IAAA,IAAA,WAAA,SAAA,OAAA,EAAA,KAAA;AAAA,EACZ,OAAO;AAAA,IACN,QAAQ;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,MACX,YAAY;AAAA,IACZ;AAAA,EACD;AACD,CAAA;AAGF,MAAM,OAAO,YAAW;;AACvB,MAAI,IAAI,MAAM,CAAC,MAAM,QAAQ;AACtB,UAAA,aAAa,IAAI,MAAM,UAAU;AAEnC,QAAAC,GAAAA,WAAW,UAAU,GAAG;AAC3B,cAAQ,KAAK;AAAA,EAAK,4BAA4B;AAAA,IAAA,OACxC;AACN,UAAI,WAAW;AAEf,UAAIA,GAAW,WAAA,0BAA0B,KAAKA,GAAA,WAAW,SAAS,GAAG;AACzD,mBAAAC,WAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MAAA,OAUL;AACK,mBAAAA,WAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MASX;AAEDC,uBAAc,YAAY,QAAQ;AAElC,cAAQ,KAAK;AAAA,0CAA6C,YAAY;AAAA,IACtE;AAAA,EAAA,OACK;AACN,UAAM,oBAAoBC,WAAAA,WAAW,EAAE,MAAM,IAAI,MAAM,QAAQ;AAE/D,UAAM,EAAE,OAAO,QAAQ,MAAU,IAAAC,0BAAa,SAAS,iBAAiB;AAEpE,QAAA,UAAU,CAAC,OAAO;AACrB,YAAM,EAAE,kBAAkB,sBAAsB,MAAMC,WAAAA,WAAW;AAAA,QAChE,YAAY,MAAM,QAAQ,OAAO,MAAM,IACpC,OAAO,UACP,YAAO,WAAP,mBAAe;AAAA,QAClB,gBAAgB,OAAO;AAAA,QACvB,qBAAqB,OAAO;AAAA,QAC5B,qBACC,OAAO,UACP,yBAAyB,OAAO,UAChC,OAAO,OAAO;AAAA,MAAA,CACf;AAEK,YAAA,YAAY,MAAMC,4BAAc;AAAA,QACrC,WAAW,MAAM,QAAQ,OAAO,OAAO,IACpC,OAAO,WACP,YAAO,YAAP,mBAAgB;AAAA,QACnB,gBAAgB,OAAO;AAAA,QACvB,aAAa,OAAO;AAAA,QACpB,qBACC,OAAO,WACP,yBAAyB,OAAO,WAChC,OAAO,QAAQ;AAAA,MAAA,CAChB;AAED,YAAM,gBACL,OAAO,iBAAkB,MAAMC,oBAAqB,oBAAA;AAE/C,YAAA,sBAAsB,iBAAiB,SAAS;AAEtD,YACC,YAAO,sBAAP,mBAA0B,iCAC1B,CAAC,qBACA;AACD,gBAAQ,KACP,+OAA+O;AAAA,MAEhP;AAED,YAAM,QAAQC,cAAAA,cAAc;AAAA,QAC3B;AAAA,QACA;AAAA,QACA;AAAA,QACA,cAAc,OAAO;AAAA,QACrB,mBAAmB;AAAA,UAClB,8BAA8B,wBAC3B,YAAO,sBAAP,mBAA0B,iCAAgC,OAC1D;AAAA,UACH,2BACC,YAAO,sBAAP,mBAA0B,4BAA2B;AAAA,QACtD;AAAA,QACD;AAAA,MAAA,CACA;AAED,YAAM,eAAe,GAAGC;;EAA+B;AAEvD,UAAI,OAAO,QAAQ;AAClBP,WAAAA,cAAcQ,KAAAA,QAAY,OAAO,MAAM,GAAG,YAAY;AAEtD,gBAAQ,KAAK;AAAA,sBAAyB,OAAO,QAAQ;AAAA,MAAA,OAC/C;AACE,gBAAA,OAAO,MAAM,QAAQ,IAAI;AAAA,MACjC;AAAA,IAAA,OACK;AACN,UAAI,OAAO;AACF,gBAAA,MAAM,MAAM,OAAO;AAE3B;AAAA,MACA;AAAA,IACD;AAAA,EACD;AACF;AAEA,OAAO,MAAM,CAAC,UAAU,QAAQ,MAAM,KAAK,CAAC;"}
1
+ {"version":3,"file":"cli.cjs","sources":["../../src/cli/index.ts"],"sourcesContent":["import { stripIndent } from \"common-tags\";\nimport { existsSync, writeFileSync } from \"fs\";\nimport meow from \"meow\";\nimport { resolve as resolvePath } from \"path\";\n\nimport { detectTypesProvider, generateTypes } from \"../index\";\n\nimport { configSchema } from \"./configSchema\";\nimport { NON_EDITABLE_FILE_HEADER } from \"./constants\";\nimport { loadConfig } from \"./loadConfig\";\nimport { loadLocaleIDs } from \"./loadLocaleIDs\";\nimport { loadModels } from \"./loadModels\";\n\nconst cli = meow(\n\t`\n\tUsage:\n\t prismic-ts-codegen [options...]\n\t prismic-ts-codegen init [options...]\n\n\tCommands:\n\t init [options]\n\n\tOptions:\n\t -c, --config <path> Path to a prismic-ts-codegen configuration file.\n\t`,\n\t{\n\t\timportMeta: import.meta,\n\t\tflags: {\n\t\t\tconfig: {\n\t\t\t\ttype: \"string\",\n\t\t\t\tshortFlag: \"c\",\n\t\t\t\tisRequired: false,\n\t\t\t},\n\t\t},\n\t},\n);\n\nconst main = async () => {\n\tif (cli.input[0] === \"init\") {\n\t\tconst configPath = cli.flags.config || \"prismicCodegen.config.ts\";\n\n\t\tif (existsSync(configPath)) {\n\t\t\tconsole.info(`\\n${configPath} already exists.`);\n\t\t} else {\n\t\t\tlet contents = \"\";\n\n\t\t\tif (existsSync(\"slicemachine.config.json\") || existsSync(\"sm.json\")) {\n\t\t\t\tcontents = stripIndent`\n\t\t\t\t\timport type { Config } from \"prismic-ts-codegen\";\n\n\t\t\t\t\tconst config: Config = {\n\t\t\t\t\t output: \"./types.generated.ts\",\n\t\t\t\t\t models: [\"./customtypes/**/index.json\", \"./slices/**/model.json\"],\n\t\t\t\t\t};\n\n\t\t\t\t\texport default config;\n\t\t\t\t`;\n\t\t\t} else {\n\t\t\t\tcontents = stripIndent`\n\t\t\t\t\timport type { Config } from \"prismic-ts-codegen\";\n\n\t\t\t\t\tconst config: Config = {\n\t\t\t\t\t output: \"./types.generated.ts\",\n\t\t\t\t\t};\n\n\t\t\t\t\texport default config;\n\t\t\t\t`;\n\t\t\t}\n\n\t\t\twriteFileSync(configPath, contents);\n\n\t\t\tconsole.info(`\\nCreated prismic-ts-codegen config file: ${configPath}`);\n\t\t}\n\t} else {\n\t\tconst unvalidatedConfig = loadConfig({ path: cli.flags.config });\n\n\t\tconst { value: config, error } = configSchema.validate(unvalidatedConfig);\n\n\t\tif (config && !error) {\n\t\t\tconst { customTypeModels, sharedSliceModels } = await loadModels({\n\t\t\t\tlocalPaths: Array.isArray(config.models)\n\t\t\t\t\t? config.models\n\t\t\t\t\t: config.models?.files,\n\t\t\t\trepositoryName: config.repositoryName,\n\t\t\t\tcustomTypesAPIToken: config.customTypesAPIToken,\n\t\t\t\tfetchFromRepository:\n\t\t\t\t\tconfig.models &&\n\t\t\t\t\t\"fetchFromRepository\" in config.models &&\n\t\t\t\t\tconfig.models.fetchFromRepository,\n\t\t\t});\n\n\t\t\tconst localeIDs = await loadLocaleIDs({\n\t\t\t\tlocaleIDs: Array.isArray(config.locales)\n\t\t\t\t\t? config.locales\n\t\t\t\t\t: config.locales?.ids,\n\t\t\t\trepositoryName: config.repositoryName,\n\t\t\t\taccessToken: config.accessToken,\n\t\t\t\tfetchFromRepository:\n\t\t\t\t\tconfig.locales &&\n\t\t\t\t\t\"fetchFromRepository\" in config.locales &&\n\t\t\t\t\tconfig.locales.fetchFromRepository,\n\t\t\t});\n\n\t\t\tconst typesProvider =\n\t\t\t\tconfig.typesProvider || (await detectTypesProvider());\n\n\t\t\tconst hasCustomTypeModels = customTypeModels.length > 0;\n\n\t\t\tif (\n\t\t\t\tconfig.clientIntegration?.includeCreateClientInterface &&\n\t\t\t\t!hasCustomTypeModels\n\t\t\t) {\n\t\t\t\tconsole.info(\n\t\t\t\t\t\"[INFO]: prismic-ts-codegen was configured to automatically integrate with `@prismicio/client`, but the integration was not generated because no Custom Type models were found. Automatic integration requires at least one Custom Type model.\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst types = generateTypes({\n\t\t\t\tcustomTypeModels,\n\t\t\t\tsharedSliceModels,\n\t\t\t\tlocaleIDs,\n\t\t\t\tfieldConfigs: config.fields,\n\t\t\t\tclientIntegration: {\n\t\t\t\t\tincludeCreateClientInterface: hasCustomTypeModels\n\t\t\t\t\t\t? config.clientIntegration?.includeCreateClientInterface ?? true\n\t\t\t\t\t\t: false,\n\t\t\t\t\tincludeContentNamespace:\n\t\t\t\t\t\tconfig.clientIntegration?.includeContentNamespace ?? true,\n\t\t\t\t},\n\t\t\t\ttypesProvider,\n\t\t\t});\n\n\t\t\tconst fileContents = `${NON_EDITABLE_FILE_HEADER}\\n\\n${types}`;\n\n\t\t\tif (config.output) {\n\t\t\t\twriteFileSync(resolvePath(config.output), fileContents);\n\n\t\t\t\tconsole.info(`\\nGenerated types in: ${config.output}`);\n\t\t\t} else {\n\t\t\t\tprocess.stdout.write(types + \"\\n\");\n\t\t\t}\n\t\t} else {\n\t\t\tif (error) {\n\t\t\t\tconsole.error(error.message);\n\t\t\t\tprocess.exit(1);\n\t\t\t}\n\t\t}\n\t}\n};\n\nmain().catch((error) => {\n\tconsole.error(error);\n\tprocess.exit(1);\n});\n"],"names":["meow","existsSync","stripIndent","writeFileSync","loadConfig","configSchema","loadModels","loadLocaleIDs","detectTypesProvider","generateTypes","NON_EDITABLE_FILE_HEADER","resolvePath"],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -109,10 +109,13 @@ Generated types in: ${config.output}`);
109
109
  } else {
110
110
  if (error) {
111
111
  console.error(error.message);
112
- return;
112
+ process.exit(1);
113
113
  }
114
114
  }
115
115
  }
116
116
  };
117
- main().catch((error) => console.error(error));
117
+ main().catch((error) => {
118
+ console.error(error);
119
+ process.exit(1);
120
+ });
118
121
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sources":["../../src/cli/index.ts"],"sourcesContent":["import { stripIndent } from \"common-tags\";\nimport { existsSync, writeFileSync } from \"fs\";\nimport meow from \"meow\";\nimport { resolve as resolvePath } from \"path\";\n\nimport { detectTypesProvider, generateTypes } from \"../index\";\n\nimport { configSchema } from \"./configSchema\";\nimport { NON_EDITABLE_FILE_HEADER } from \"./constants\";\nimport { loadConfig } from \"./loadConfig\";\nimport { loadLocaleIDs } from \"./loadLocaleIDs\";\nimport { loadModels } from \"./loadModels\";\n\nconst cli = meow(\n\t`\n\tUsage:\n\t prismic-ts-codegen [options...]\n\t prismic-ts-codegen init [options...]\n\n\tCommands:\n\t init [options]\n\n\tOptions:\n\t -c, --config <path> Path to a prismic-ts-codegen configuration file.\n\t`,\n\t{\n\t\timportMeta: import.meta,\n\t\tflags: {\n\t\t\tconfig: {\n\t\t\t\ttype: \"string\",\n\t\t\t\tshortFlag: \"c\",\n\t\t\t\tisRequired: false,\n\t\t\t},\n\t\t},\n\t},\n);\n\nconst main = async () => {\n\tif (cli.input[0] === \"init\") {\n\t\tconst configPath = cli.flags.config || \"prismicCodegen.config.ts\";\n\n\t\tif (existsSync(configPath)) {\n\t\t\tconsole.info(`\\n${configPath} already exists.`);\n\t\t} else {\n\t\t\tlet contents = \"\";\n\n\t\t\tif (existsSync(\"slicemachine.config.json\") || existsSync(\"sm.json\")) {\n\t\t\t\tcontents = stripIndent`\n\t\t\t\t\timport type { Config } from \"prismic-ts-codegen\";\n\n\t\t\t\t\tconst config: Config = {\n\t\t\t\t\t output: \"./types.generated.ts\",\n\t\t\t\t\t models: [\"./customtypes/**/index.json\", \"./slices/**/model.json\"],\n\t\t\t\t\t};\n\n\t\t\t\t\texport default config;\n\t\t\t\t`;\n\t\t\t} else {\n\t\t\t\tcontents = stripIndent`\n\t\t\t\t\timport type { Config } from \"prismic-ts-codegen\";\n\n\t\t\t\t\tconst config: Config = {\n\t\t\t\t\t output: \"./types.generated.ts\",\n\t\t\t\t\t};\n\n\t\t\t\t\texport default config;\n\t\t\t\t`;\n\t\t\t}\n\n\t\t\twriteFileSync(configPath, contents);\n\n\t\t\tconsole.info(`\\nCreated prismic-ts-codegen config file: ${configPath}`);\n\t\t}\n\t} else {\n\t\tconst unvalidatedConfig = loadConfig({ path: cli.flags.config });\n\n\t\tconst { value: config, error } = configSchema.validate(unvalidatedConfig);\n\n\t\tif (config && !error) {\n\t\t\tconst { customTypeModels, sharedSliceModels } = await loadModels({\n\t\t\t\tlocalPaths: Array.isArray(config.models)\n\t\t\t\t\t? config.models\n\t\t\t\t\t: config.models?.files,\n\t\t\t\trepositoryName: config.repositoryName,\n\t\t\t\tcustomTypesAPIToken: config.customTypesAPIToken,\n\t\t\t\tfetchFromRepository:\n\t\t\t\t\tconfig.models &&\n\t\t\t\t\t\"fetchFromRepository\" in config.models &&\n\t\t\t\t\tconfig.models.fetchFromRepository,\n\t\t\t});\n\n\t\t\tconst localeIDs = await loadLocaleIDs({\n\t\t\t\tlocaleIDs: Array.isArray(config.locales)\n\t\t\t\t\t? config.locales\n\t\t\t\t\t: config.locales?.ids,\n\t\t\t\trepositoryName: config.repositoryName,\n\t\t\t\taccessToken: config.accessToken,\n\t\t\t\tfetchFromRepository:\n\t\t\t\t\tconfig.locales &&\n\t\t\t\t\t\"fetchFromRepository\" in config.locales &&\n\t\t\t\t\tconfig.locales.fetchFromRepository,\n\t\t\t});\n\n\t\t\tconst typesProvider =\n\t\t\t\tconfig.typesProvider || (await detectTypesProvider());\n\n\t\t\tconst hasCustomTypeModels = customTypeModels.length > 0;\n\n\t\t\tif (\n\t\t\t\tconfig.clientIntegration?.includeCreateClientInterface &&\n\t\t\t\t!hasCustomTypeModels\n\t\t\t) {\n\t\t\t\tconsole.info(\n\t\t\t\t\t\"[INFO]: prismic-ts-codegen was configured to automatically integrate with `@prismicio/client`, but the integration was not generated because no Custom Type models were found. Automatic integration requires at least one Custom Type model.\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst types = generateTypes({\n\t\t\t\tcustomTypeModels,\n\t\t\t\tsharedSliceModels,\n\t\t\t\tlocaleIDs,\n\t\t\t\tfieldConfigs: config.fields,\n\t\t\t\tclientIntegration: {\n\t\t\t\t\tincludeCreateClientInterface: hasCustomTypeModels\n\t\t\t\t\t\t? config.clientIntegration?.includeCreateClientInterface ?? true\n\t\t\t\t\t\t: false,\n\t\t\t\t\tincludeContentNamespace:\n\t\t\t\t\t\tconfig.clientIntegration?.includeContentNamespace ?? true,\n\t\t\t\t},\n\t\t\t\ttypesProvider,\n\t\t\t});\n\n\t\t\tconst fileContents = `${NON_EDITABLE_FILE_HEADER}\\n\\n${types}`;\n\n\t\t\tif (config.output) {\n\t\t\t\twriteFileSync(resolvePath(config.output), fileContents);\n\n\t\t\t\tconsole.info(`\\nGenerated types in: ${config.output}`);\n\t\t\t} else {\n\t\t\t\tprocess.stdout.write(types + \"\\n\");\n\t\t\t}\n\t\t} else {\n\t\t\tif (error) {\n\t\t\t\tconsole.error(error.message);\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n};\n\nmain().catch((error) => console.error(error));\n"],"names":["resolvePath"],"mappings":";;;;;;;;;;;AAaA,MAAM,MAAM,KACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWA;AAAA,EACC,YAAY;AAAA,EACZ,OAAO;AAAA,IACN,QAAQ;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,MACX,YAAY;AAAA,IACZ;AAAA,EACD;AACD,CAAA;AAGF,MAAM,OAAO,YAAW;;AACvB,MAAI,IAAI,MAAM,CAAC,MAAM,QAAQ;AACtB,UAAA,aAAa,IAAI,MAAM,UAAU;AAEnC,QAAA,WAAW,UAAU,GAAG;AAC3B,cAAQ,KAAK;AAAA,EAAK,4BAA4B;AAAA,IAAA,OACxC;AACN,UAAI,WAAW;AAEf,UAAI,WAAW,0BAA0B,KAAK,WAAW,SAAS,GAAG;AACzD,mBAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,OAUL;AACK,mBAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MASX;AAED,oBAAc,YAAY,QAAQ;AAElC,cAAQ,KAAK;AAAA,0CAA6C,YAAY;AAAA,IACtE;AAAA,EAAA,OACK;AACN,UAAM,oBAAoB,WAAW,EAAE,MAAM,IAAI,MAAM,QAAQ;AAE/D,UAAM,EAAE,OAAO,QAAQ,MAAU,IAAA,aAAa,SAAS,iBAAiB;AAEpE,QAAA,UAAU,CAAC,OAAO;AACrB,YAAM,EAAE,kBAAkB,sBAAsB,MAAM,WAAW;AAAA,QAChE,YAAY,MAAM,QAAQ,OAAO,MAAM,IACpC,OAAO,UACP,YAAO,WAAP,mBAAe;AAAA,QAClB,gBAAgB,OAAO;AAAA,QACvB,qBAAqB,OAAO;AAAA,QAC5B,qBACC,OAAO,UACP,yBAAyB,OAAO,UAChC,OAAO,OAAO;AAAA,MAAA,CACf;AAEK,YAAA,YAAY,MAAM,cAAc;AAAA,QACrC,WAAW,MAAM,QAAQ,OAAO,OAAO,IACpC,OAAO,WACP,YAAO,YAAP,mBAAgB;AAAA,QACnB,gBAAgB,OAAO;AAAA,QACvB,aAAa,OAAO;AAAA,QACpB,qBACC,OAAO,WACP,yBAAyB,OAAO,WAChC,OAAO,QAAQ;AAAA,MAAA,CAChB;AAED,YAAM,gBACL,OAAO,iBAAkB,MAAM,oBAAqB;AAE/C,YAAA,sBAAsB,iBAAiB,SAAS;AAEtD,YACC,YAAO,sBAAP,mBAA0B,iCAC1B,CAAC,qBACA;AACD,gBAAQ,KACP,+OAA+O;AAAA,MAEhP;AAED,YAAM,QAAQ,cAAc;AAAA,QAC3B;AAAA,QACA;AAAA,QACA;AAAA,QACA,cAAc,OAAO;AAAA,QACrB,mBAAmB;AAAA,UAClB,8BAA8B,wBAC3B,YAAO,sBAAP,mBAA0B,iCAAgC,OAC1D;AAAA,UACH,2BACC,YAAO,sBAAP,mBAA0B,4BAA2B;AAAA,QACtD;AAAA,QACD;AAAA,MAAA,CACA;AAED,YAAM,eAAe,GAAG;AAAA;AAAA,EAA+B;AAEvD,UAAI,OAAO,QAAQ;AAClB,sBAAcA,QAAY,OAAO,MAAM,GAAG,YAAY;AAEtD,gBAAQ,KAAK;AAAA,sBAAyB,OAAO,QAAQ;AAAA,MAAA,OAC/C;AACE,gBAAA,OAAO,MAAM,QAAQ,IAAI;AAAA,MACjC;AAAA,IAAA,OACK;AACN,UAAI,OAAO;AACF,gBAAA,MAAM,MAAM,OAAO;AAE3B;AAAA,MACA;AAAA,IACD;AAAA,EACD;AACF;AAEA,OAAO,MAAM,CAAC,UAAU,QAAQ,MAAM,KAAK,CAAC;"}
1
+ {"version":3,"file":"cli.js","sources":["../../src/cli/index.ts"],"sourcesContent":["import { stripIndent } from \"common-tags\";\nimport { existsSync, writeFileSync } from \"fs\";\nimport meow from \"meow\";\nimport { resolve as resolvePath } from \"path\";\n\nimport { detectTypesProvider, generateTypes } from \"../index\";\n\nimport { configSchema } from \"./configSchema\";\nimport { NON_EDITABLE_FILE_HEADER } from \"./constants\";\nimport { loadConfig } from \"./loadConfig\";\nimport { loadLocaleIDs } from \"./loadLocaleIDs\";\nimport { loadModels } from \"./loadModels\";\n\nconst cli = meow(\n\t`\n\tUsage:\n\t prismic-ts-codegen [options...]\n\t prismic-ts-codegen init [options...]\n\n\tCommands:\n\t init [options]\n\n\tOptions:\n\t -c, --config <path> Path to a prismic-ts-codegen configuration file.\n\t`,\n\t{\n\t\timportMeta: import.meta,\n\t\tflags: {\n\t\t\tconfig: {\n\t\t\t\ttype: \"string\",\n\t\t\t\tshortFlag: \"c\",\n\t\t\t\tisRequired: false,\n\t\t\t},\n\t\t},\n\t},\n);\n\nconst main = async () => {\n\tif (cli.input[0] === \"init\") {\n\t\tconst configPath = cli.flags.config || \"prismicCodegen.config.ts\";\n\n\t\tif (existsSync(configPath)) {\n\t\t\tconsole.info(`\\n${configPath} already exists.`);\n\t\t} else {\n\t\t\tlet contents = \"\";\n\n\t\t\tif (existsSync(\"slicemachine.config.json\") || existsSync(\"sm.json\")) {\n\t\t\t\tcontents = stripIndent`\n\t\t\t\t\timport type { Config } from \"prismic-ts-codegen\";\n\n\t\t\t\t\tconst config: Config = {\n\t\t\t\t\t output: \"./types.generated.ts\",\n\t\t\t\t\t models: [\"./customtypes/**/index.json\", \"./slices/**/model.json\"],\n\t\t\t\t\t};\n\n\t\t\t\t\texport default config;\n\t\t\t\t`;\n\t\t\t} else {\n\t\t\t\tcontents = stripIndent`\n\t\t\t\t\timport type { Config } from \"prismic-ts-codegen\";\n\n\t\t\t\t\tconst config: Config = {\n\t\t\t\t\t output: \"./types.generated.ts\",\n\t\t\t\t\t};\n\n\t\t\t\t\texport default config;\n\t\t\t\t`;\n\t\t\t}\n\n\t\t\twriteFileSync(configPath, contents);\n\n\t\t\tconsole.info(`\\nCreated prismic-ts-codegen config file: ${configPath}`);\n\t\t}\n\t} else {\n\t\tconst unvalidatedConfig = loadConfig({ path: cli.flags.config });\n\n\t\tconst { value: config, error } = configSchema.validate(unvalidatedConfig);\n\n\t\tif (config && !error) {\n\t\t\tconst { customTypeModels, sharedSliceModels } = await loadModels({\n\t\t\t\tlocalPaths: Array.isArray(config.models)\n\t\t\t\t\t? config.models\n\t\t\t\t\t: config.models?.files,\n\t\t\t\trepositoryName: config.repositoryName,\n\t\t\t\tcustomTypesAPIToken: config.customTypesAPIToken,\n\t\t\t\tfetchFromRepository:\n\t\t\t\t\tconfig.models &&\n\t\t\t\t\t\"fetchFromRepository\" in config.models &&\n\t\t\t\t\tconfig.models.fetchFromRepository,\n\t\t\t});\n\n\t\t\tconst localeIDs = await loadLocaleIDs({\n\t\t\t\tlocaleIDs: Array.isArray(config.locales)\n\t\t\t\t\t? config.locales\n\t\t\t\t\t: config.locales?.ids,\n\t\t\t\trepositoryName: config.repositoryName,\n\t\t\t\taccessToken: config.accessToken,\n\t\t\t\tfetchFromRepository:\n\t\t\t\t\tconfig.locales &&\n\t\t\t\t\t\"fetchFromRepository\" in config.locales &&\n\t\t\t\t\tconfig.locales.fetchFromRepository,\n\t\t\t});\n\n\t\t\tconst typesProvider =\n\t\t\t\tconfig.typesProvider || (await detectTypesProvider());\n\n\t\t\tconst hasCustomTypeModels = customTypeModels.length > 0;\n\n\t\t\tif (\n\t\t\t\tconfig.clientIntegration?.includeCreateClientInterface &&\n\t\t\t\t!hasCustomTypeModels\n\t\t\t) {\n\t\t\t\tconsole.info(\n\t\t\t\t\t\"[INFO]: prismic-ts-codegen was configured to automatically integrate with `@prismicio/client`, but the integration was not generated because no Custom Type models were found. Automatic integration requires at least one Custom Type model.\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst types = generateTypes({\n\t\t\t\tcustomTypeModels,\n\t\t\t\tsharedSliceModels,\n\t\t\t\tlocaleIDs,\n\t\t\t\tfieldConfigs: config.fields,\n\t\t\t\tclientIntegration: {\n\t\t\t\t\tincludeCreateClientInterface: hasCustomTypeModels\n\t\t\t\t\t\t? config.clientIntegration?.includeCreateClientInterface ?? true\n\t\t\t\t\t\t: false,\n\t\t\t\t\tincludeContentNamespace:\n\t\t\t\t\t\tconfig.clientIntegration?.includeContentNamespace ?? true,\n\t\t\t\t},\n\t\t\t\ttypesProvider,\n\t\t\t});\n\n\t\t\tconst fileContents = `${NON_EDITABLE_FILE_HEADER}\\n\\n${types}`;\n\n\t\t\tif (config.output) {\n\t\t\t\twriteFileSync(resolvePath(config.output), fileContents);\n\n\t\t\t\tconsole.info(`\\nGenerated types in: ${config.output}`);\n\t\t\t} else {\n\t\t\t\tprocess.stdout.write(types + \"\\n\");\n\t\t\t}\n\t\t} else {\n\t\t\tif (error) {\n\t\t\t\tconsole.error(error.message);\n\t\t\t\tprocess.exit(1);\n\t\t\t}\n\t\t}\n\t}\n};\n\nmain().catch((error) => {\n\tconsole.error(error);\n\tprocess.exit(1);\n});\n"],"names":["resolvePath"],"mappings":";;;;;;;;;;;AAaA,MAAM,MAAM,KACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWA;AAAA,EACC,YAAY;AAAA,EACZ,OAAO;AAAA,IACN,QAAQ;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,MACX,YAAY;AAAA,IACZ;AAAA,EACD;AACD,CAAA;AAGF,MAAM,OAAO,YAAW;;AACvB,MAAI,IAAI,MAAM,CAAC,MAAM,QAAQ;AACtB,UAAA,aAAa,IAAI,MAAM,UAAU;AAEnC,QAAA,WAAW,UAAU,GAAG;AAC3B,cAAQ,KAAK;AAAA,EAAK,4BAA4B;AAAA,IAAA,OACxC;AACN,UAAI,WAAW;AAEf,UAAI,WAAW,0BAA0B,KAAK,WAAW,SAAS,GAAG;AACzD,mBAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,OAUL;AACK,mBAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MASX;AAED,oBAAc,YAAY,QAAQ;AAElC,cAAQ,KAAK;AAAA,0CAA6C,YAAY;AAAA,IACtE;AAAA,EAAA,OACK;AACN,UAAM,oBAAoB,WAAW,EAAE,MAAM,IAAI,MAAM,QAAQ;AAE/D,UAAM,EAAE,OAAO,QAAQ,MAAU,IAAA,aAAa,SAAS,iBAAiB;AAEpE,QAAA,UAAU,CAAC,OAAO;AACrB,YAAM,EAAE,kBAAkB,sBAAsB,MAAM,WAAW;AAAA,QAChE,YAAY,MAAM,QAAQ,OAAO,MAAM,IACpC,OAAO,UACP,YAAO,WAAP,mBAAe;AAAA,QAClB,gBAAgB,OAAO;AAAA,QACvB,qBAAqB,OAAO;AAAA,QAC5B,qBACC,OAAO,UACP,yBAAyB,OAAO,UAChC,OAAO,OAAO;AAAA,MAAA,CACf;AAEK,YAAA,YAAY,MAAM,cAAc;AAAA,QACrC,WAAW,MAAM,QAAQ,OAAO,OAAO,IACpC,OAAO,WACP,YAAO,YAAP,mBAAgB;AAAA,QACnB,gBAAgB,OAAO;AAAA,QACvB,aAAa,OAAO;AAAA,QACpB,qBACC,OAAO,WACP,yBAAyB,OAAO,WAChC,OAAO,QAAQ;AAAA,MAAA,CAChB;AAED,YAAM,gBACL,OAAO,iBAAkB,MAAM,oBAAqB;AAE/C,YAAA,sBAAsB,iBAAiB,SAAS;AAEtD,YACC,YAAO,sBAAP,mBAA0B,iCAC1B,CAAC,qBACA;AACD,gBAAQ,KACP,+OAA+O;AAAA,MAEhP;AAED,YAAM,QAAQ,cAAc;AAAA,QAC3B;AAAA,QACA;AAAA,QACA;AAAA,QACA,cAAc,OAAO;AAAA,QACrB,mBAAmB;AAAA,UAClB,8BAA8B,wBAC3B,YAAO,sBAAP,mBAA0B,iCAAgC,OAC1D;AAAA,UACH,2BACC,YAAO,sBAAP,mBAA0B,4BAA2B;AAAA,QACtD;AAAA,QACD;AAAA,MAAA,CACA;AAED,YAAM,eAAe,GAAG;AAAA;AAAA,EAA+B;AAEvD,UAAI,OAAO,QAAQ;AAClB,sBAAcA,QAAY,OAAO,MAAM,GAAG,YAAY;AAEtD,gBAAQ,KAAK;AAAA,sBAAyB,OAAO,QAAQ;AAAA,MAAA,OAC/C;AACE,gBAAA,OAAO,MAAM,QAAQ,IAAI;AAAA,MACjC;AAAA,IAAA,OACK;AACN,UAAI,OAAO;AACF,gBAAA,MAAM,MAAM,OAAO;AAC3B,gBAAQ,KAAK,CAAC;AAAA,MACd;AAAA,IACD;AAAA,EACD;AACF;AAEA,OAAO,MAAM,CAAC,UAAS;AACtB,UAAQ,MAAM,KAAK;AACnB,UAAQ,KAAK,CAAC;AACf,CAAC;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prismic-ts-codegen",
3
- "version": "0.1.18",
3
+ "version": "0.1.19",
4
4
  "description": "An experimental Prismic model-to-TypeScript-type generator",
5
5
  "keywords": [
6
6
  "typescript",
package/src/cli/index.ts CHANGED
@@ -142,11 +142,13 @@ const main = async () => {
142
142
  } else {
143
143
  if (error) {
144
144
  console.error(error.message);
145
-
146
- return;
145
+ process.exit(1);
147
146
  }
148
147
  }
149
148
  }
150
149
  };
151
150
 
152
- main().catch((error) => console.error(error));
151
+ main().catch((error) => {
152
+ console.error(error);
153
+ process.exit(1);
154
+ });