prismic-ts-codegen 0.1.29 → 0.1.30-pr.82.80084b2

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.
Files changed (173) hide show
  1. package/bin/prismic-ts-codegen.js +1 -1
  2. package/dist/cli/{configSchema.d.ts → configSchema.d.mts} +3 -5
  3. package/dist/cli/configSchema.d.mts.map +1 -0
  4. package/dist/cli/configSchema.mjs +154 -0
  5. package/dist/cli/configSchema.mjs.map +1 -0
  6. package/dist/cli/constants.d.mts +4 -0
  7. package/dist/cli/constants.d.mts.map +1 -0
  8. package/dist/cli/{constants.js → constants.mjs} +1 -1
  9. package/dist/cli/{constants.cjs.map → constants.mjs.map} +1 -1
  10. package/dist/cli/loadConfig.mjs +17 -0
  11. package/dist/cli/loadConfig.mjs.map +1 -0
  12. package/dist/cli/{loadLocaleIDs.js → loadLocaleIDs.mjs} +1 -2
  13. package/dist/cli/loadLocaleIDs.mjs.map +1 -0
  14. package/dist/cli/{loadModels.js → loadModels.mjs} +12 -11
  15. package/dist/cli/loadModels.mjs.map +1 -0
  16. package/dist/cli.d.mts +1 -0
  17. package/dist/{cli.js → cli.mjs} +51 -25
  18. package/dist/cli.mjs.map +1 -0
  19. package/dist/{constants.js → constants.mjs} +1 -1
  20. package/dist/{constants.cjs.map → constants.mjs.map} +1 -1
  21. package/dist/detectTypesProvider.d.mts +15 -0
  22. package/dist/detectTypesProvider.d.mts.map +1 -0
  23. package/dist/{detectTypesProvider.js → detectTypesProvider.mjs} +1 -1
  24. package/dist/{detectTypesProvider.cjs.map → detectTypesProvider.mjs.map} +1 -1
  25. package/dist/{generateTypes.d.ts → generateTypes.d.mts} +5 -7
  26. package/dist/generateTypes.d.mts.map +1 -0
  27. package/dist/{generateTypes.js → generateTypes.mjs} +21 -18
  28. package/dist/generateTypes.mjs.map +1 -0
  29. package/dist/{index.d.cts → index.d.mts} +4 -4
  30. package/dist/index.mjs +4 -0
  31. package/dist/lib/{addBlankLine.js → addBlankLine.mjs} +2 -2
  32. package/dist/lib/addBlankLine.mjs.map +1 -0
  33. package/dist/lib/{addLine.js → addLine.mjs} +2 -2
  34. package/dist/lib/addLine.mjs.map +1 -0
  35. package/dist/lib/{addSection.js → addSection.mjs} +2 -2
  36. package/dist/lib/addSection.mjs.map +1 -0
  37. package/dist/lib/{addTrailingNewLine.js → addTrailingNewLine.mjs} +1 -1
  38. package/dist/lib/{addTrailingNewLine.cjs.map → addTrailingNewLine.mjs.map} +1 -1
  39. package/dist/lib/{buildCustomTypeDataType.js → buildCustomTypeDataType.mjs} +6 -6
  40. package/dist/lib/buildCustomTypeDataType.mjs.map +1 -0
  41. package/dist/lib/{buildCustomTypeType.js → buildCustomTypeType.mjs} +11 -11
  42. package/dist/lib/buildCustomTypeType.mjs.map +1 -0
  43. package/dist/lib/{buildFieldDocs.js → buildFieldDocs.mjs} +15 -10
  44. package/dist/lib/buildFieldDocs.mjs.map +1 -0
  45. package/dist/lib/{buildFieldProperties.js → buildFieldProperties.mjs} +25 -21
  46. package/dist/lib/buildFieldProperties.mjs.map +1 -0
  47. package/dist/lib/{buildSharedSliceType.js → buildSharedSliceType.mjs} +19 -19
  48. package/dist/lib/buildSharedSliceType.mjs.map +1 -0
  49. package/dist/lib/buildTypeName.mjs +11 -0
  50. package/dist/lib/buildTypeName.mjs.map +1 -0
  51. package/dist/lib/{buildUnion.js → buildUnion.mjs} +1 -1
  52. package/dist/lib/{buildUnion.cjs.map → buildUnion.mjs.map} +1 -1
  53. package/dist/lib/{checkHasUIDFIeld.js → checkHasUIDFIeld.mjs} +1 -1
  54. package/dist/lib/{checkHasUIDFIeld.cjs.map → checkHasUIDFIeld.mjs.map} +1 -1
  55. package/dist/lib/dedent.mjs +11 -0
  56. package/dist/lib/dedent.mjs.map +1 -0
  57. package/dist/lib/{getAPIIDPath.js → getAPIIDPath.mjs} +1 -1
  58. package/dist/lib/{getAPIIDPath.cjs.map → getAPIIDPath.mjs.map} +1 -1
  59. package/dist/lib/{getCacheKey.js → getCacheKey.mjs} +1 -1
  60. package/dist/lib/getCacheKey.mjs.map +1 -0
  61. package/dist/lib/{getHumanReadableModelName.js → getHumanReadableModelName.mjs} +1 -1
  62. package/dist/lib/{getHumanReadableModelName.cjs.map → getHumanReadableModelName.mjs.map} +1 -1
  63. package/dist/lib/{getHumanReadablePath.js → getHumanReadablePath.mjs} +2 -2
  64. package/dist/lib/getHumanReadablePath.mjs.map +1 -0
  65. package/dist/package.mjs +7 -0
  66. package/dist/package.mjs.map +1 -0
  67. package/dist/{types.d.ts → types.d.mts} +2 -4
  68. package/dist/types.d.mts.map +1 -0
  69. package/package.json +19 -29
  70. package/src/cli/index.ts +38 -22
  71. package/src/cli/loadConfig.ts +5 -11
  72. package/src/cli/loadLocaleIDs.ts +0 -1
  73. package/src/cli/loadModels.ts +27 -12
  74. package/src/generateTypes.ts +3 -3
  75. package/src/lib/buildCustomTypeDataType.ts +2 -2
  76. package/src/lib/buildCustomTypeType.ts +6 -6
  77. package/src/lib/buildFieldProperties.ts +7 -7
  78. package/src/lib/buildSharedSliceType.ts +22 -33
  79. package/src/lib/buildTypeName.ts +9 -4
  80. package/src/lib/dedent.ts +10 -0
  81. package/dist/_virtual/_rolldown/runtime.cjs +0 -23
  82. package/dist/cli/configSchema.cjs +0 -31
  83. package/dist/cli/configSchema.cjs.map +0 -1
  84. package/dist/cli/configSchema.d.cts +0 -39
  85. package/dist/cli/configSchema.d.cts.map +0 -1
  86. package/dist/cli/configSchema.d.ts.map +0 -1
  87. package/dist/cli/configSchema.js +0 -30
  88. package/dist/cli/configSchema.js.map +0 -1
  89. package/dist/cli/constants.cjs +0 -6
  90. package/dist/cli/constants.d.cts +0 -5
  91. package/dist/cli/constants.d.cts.map +0 -1
  92. package/dist/cli/constants.d.ts +0 -5
  93. package/dist/cli/constants.d.ts.map +0 -1
  94. package/dist/cli/constants.js.map +0 -1
  95. package/dist/cli/loadConfig.cjs +0 -22
  96. package/dist/cli/loadConfig.cjs.map +0 -1
  97. package/dist/cli/loadConfig.js +0 -20
  98. package/dist/cli/loadConfig.js.map +0 -1
  99. package/dist/cli/loadLocaleIDs.cjs +0 -21
  100. package/dist/cli/loadLocaleIDs.cjs.map +0 -1
  101. package/dist/cli/loadLocaleIDs.js.map +0 -1
  102. package/dist/cli/loadModels.cjs +0 -54
  103. package/dist/cli/loadModels.cjs.map +0 -1
  104. package/dist/cli/loadModels.js.map +0 -1
  105. package/dist/cli.cjs +0 -110
  106. package/dist/cli.cjs.map +0 -1
  107. package/dist/cli.d.cts +0 -1
  108. package/dist/cli.d.ts +0 -1
  109. package/dist/cli.js.map +0 -1
  110. package/dist/constants.cjs +0 -33
  111. package/dist/constants.js.map +0 -1
  112. package/dist/detectTypesProvider.cjs +0 -25
  113. package/dist/detectTypesProvider.d.cts +0 -17
  114. package/dist/detectTypesProvider.d.cts.map +0 -1
  115. package/dist/detectTypesProvider.d.ts +0 -17
  116. package/dist/detectTypesProvider.d.ts.map +0 -1
  117. package/dist/detectTypesProvider.js.map +0 -1
  118. package/dist/generateTypes.cjs +0 -144
  119. package/dist/generateTypes.cjs.map +0 -1
  120. package/dist/generateTypes.d.cts +0 -21
  121. package/dist/generateTypes.d.cts.map +0 -1
  122. package/dist/generateTypes.d.ts.map +0 -1
  123. package/dist/generateTypes.js.map +0 -1
  124. package/dist/index.cjs +0 -7
  125. package/dist/index.d.ts +0 -5
  126. package/dist/index.js +0 -4
  127. package/dist/lib/addBlankLine.cjs +0 -10
  128. package/dist/lib/addBlankLine.cjs.map +0 -1
  129. package/dist/lib/addBlankLine.js.map +0 -1
  130. package/dist/lib/addLine.cjs +0 -9
  131. package/dist/lib/addLine.cjs.map +0 -1
  132. package/dist/lib/addLine.js.map +0 -1
  133. package/dist/lib/addSection.cjs +0 -9
  134. package/dist/lib/addSection.cjs.map +0 -1
  135. package/dist/lib/addSection.js.map +0 -1
  136. package/dist/lib/addTrailingNewLine.cjs +0 -9
  137. package/dist/lib/addTrailingNewLine.js.map +0 -1
  138. package/dist/lib/buildCustomTypeDataType.cjs +0 -51
  139. package/dist/lib/buildCustomTypeDataType.cjs.map +0 -1
  140. package/dist/lib/buildCustomTypeDataType.js.map +0 -1
  141. package/dist/lib/buildCustomTypeType.cjs +0 -63
  142. package/dist/lib/buildCustomTypeType.cjs.map +0 -1
  143. package/dist/lib/buildCustomTypeType.js.map +0 -1
  144. package/dist/lib/buildFieldDocs.cjs +0 -66
  145. package/dist/lib/buildFieldDocs.cjs.map +0 -1
  146. package/dist/lib/buildFieldDocs.js.map +0 -1
  147. package/dist/lib/buildFieldProperties.cjs +0 -285
  148. package/dist/lib/buildFieldProperties.cjs.map +0 -1
  149. package/dist/lib/buildFieldProperties.js.map +0 -1
  150. package/dist/lib/buildSharedSliceType.cjs +0 -152
  151. package/dist/lib/buildSharedSliceType.cjs.map +0 -1
  152. package/dist/lib/buildSharedSliceType.js.map +0 -1
  153. package/dist/lib/buildTypeName.cjs +0 -12
  154. package/dist/lib/buildTypeName.cjs.map +0 -1
  155. package/dist/lib/buildTypeName.js +0 -11
  156. package/dist/lib/buildTypeName.js.map +0 -1
  157. package/dist/lib/buildUnion.cjs +0 -8
  158. package/dist/lib/buildUnion.js.map +0 -1
  159. package/dist/lib/checkHasUIDFIeld.cjs +0 -8
  160. package/dist/lib/checkHasUIDFIeld.js.map +0 -1
  161. package/dist/lib/getAPIIDPath.cjs +0 -24
  162. package/dist/lib/getAPIIDPath.js.map +0 -1
  163. package/dist/lib/getCacheKey.cjs +0 -17
  164. package/dist/lib/getCacheKey.cjs.map +0 -1
  165. package/dist/lib/getCacheKey.js.map +0 -1
  166. package/dist/lib/getHumanReadableModelName.cjs +0 -15
  167. package/dist/lib/getHumanReadableModelName.js.map +0 -1
  168. package/dist/lib/getHumanReadablePath.cjs +0 -16
  169. package/dist/lib/getHumanReadablePath.cjs.map +0 -1
  170. package/dist/lib/getHumanReadablePath.js.map +0 -1
  171. package/dist/types.d.cts +0 -14
  172. package/dist/types.d.cts.map +0 -1
  173. package/dist/types.d.ts.map +0 -1
package/dist/cli.cjs DELETED
@@ -1,110 +0,0 @@
1
- const require_runtime = require("./_virtual/_rolldown/runtime.cjs");
2
- const require_generateTypes = require("./generateTypes.cjs");
3
- const require_detectTypesProvider = require("./detectTypesProvider.cjs");
4
- const require_constants = require("./cli/constants.cjs");
5
- require("./index.cjs");
6
- const require_configSchema = require("./cli/configSchema.cjs");
7
- const require_loadConfig = require("./cli/loadConfig.cjs");
8
- const require_loadLocaleIDs = require("./cli/loadLocaleIDs.cjs");
9
- const require_loadModels = require("./cli/loadModels.cjs");
10
- let common_tags = require("common-tags");
11
- let fs = require("fs");
12
- let path = require("path");
13
- let meow = require("meow");
14
- meow = require_runtime.__toESM(meow);
15
- //#region src/cli/index.ts
16
- const cli = (0, meow.default)(`
17
- Usage:
18
- prismic-ts-codegen [options...]
19
- prismic-ts-codegen init [options...]
20
-
21
- Commands:
22
- init [options]
23
-
24
- Options:
25
- -c, --config <path> Path to a prismic-ts-codegen configuration file.
26
- `, {
27
- importMeta: {},
28
- flags: { config: {
29
- type: "string",
30
- shortFlag: "c",
31
- isRequired: false
32
- } }
33
- });
34
- const main = async () => {
35
- if (cli.input[0] === "init") {
36
- const configPath = cli.flags.config || "prismicCodegen.config.ts";
37
- if ((0, fs.existsSync)(configPath)) console.info(`\n${configPath} already exists.`);
38
- else {
39
- let contents = "";
40
- if ((0, fs.existsSync)("slicemachine.config.json") || (0, fs.existsSync)("sm.json")) contents = common_tags.stripIndent`
41
- import type { Config } from "prismic-ts-codegen";
42
-
43
- const config: Config = {
44
- output: "./types.generated.ts",
45
- models: ["./customtypes/**/index.json", "./slices/**/model.json"],
46
- };
47
-
48
- export default config;
49
- `;
50
- else contents = common_tags.stripIndent`
51
- import type { Config } from "prismic-ts-codegen";
52
-
53
- const config: Config = {
54
- output: "./types.generated.ts",
55
- };
56
-
57
- export default config;
58
- `;
59
- (0, fs.writeFileSync)(configPath, contents);
60
- console.info(`\nCreated prismic-ts-codegen config file: ${configPath}`);
61
- }
62
- } else {
63
- const unvalidatedConfig = require_loadConfig.loadConfig({ path: cli.flags.config });
64
- const result = require_configSchema.configSchema.safeParse(unvalidatedConfig);
65
- if (result.success) {
66
- const config = result.data;
67
- const { customTypeModels, sharedSliceModels } = await require_loadModels.loadModels({
68
- localPaths: Array.isArray(config.models) ? config.models : config.models?.files,
69
- repositoryName: config.repositoryName,
70
- customTypesAPIToken: config.customTypesAPIToken,
71
- fetchFromRepository: config.models && "fetchFromRepository" in config.models && config.models.fetchFromRepository
72
- });
73
- const localeIDs = await require_loadLocaleIDs.loadLocaleIDs({
74
- localeIDs: Array.isArray(config.locales) ? config.locales : config.locales?.ids,
75
- repositoryName: config.repositoryName,
76
- accessToken: config.accessToken,
77
- fetchFromRepository: config.locales && "fetchFromRepository" in config.locales && config.locales.fetchFromRepository
78
- });
79
- const typesProvider = config.typesProvider || await require_detectTypesProvider.detectTypesProvider();
80
- const hasCustomTypeModels = customTypeModels.length > 0;
81
- if (config.clientIntegration?.includeCreateClientInterface && !hasCustomTypeModels) console.info("[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.");
82
- const types = require_generateTypes.generateTypes({
83
- customTypeModels,
84
- sharedSliceModels,
85
- localeIDs,
86
- fieldConfigs: config.fields,
87
- clientIntegration: {
88
- includeCreateClientInterface: hasCustomTypeModels ? config.clientIntegration?.includeCreateClientInterface ?? true : false,
89
- includeContentNamespace: config.clientIntegration?.includeContentNamespace ?? true
90
- },
91
- typesProvider
92
- });
93
- const fileContents = `${require_constants.NON_EDITABLE_FILE_HEADER}\n\n${types}`;
94
- if (config.output) {
95
- (0, fs.writeFileSync)((0, path.resolve)(config.output), fileContents);
96
- console.info(`\nGenerated types in: ${config.output}`);
97
- } else process.stdout.write(types + "\n");
98
- } else {
99
- console.error(result.error.message);
100
- process.exit(1);
101
- }
102
- }
103
- };
104
- main().catch((error) => {
105
- console.error(error);
106
- process.exit(1);
107
- });
108
- //#endregion
109
-
110
- //# sourceMappingURL=cli.cjs.map
package/dist/cli.cjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.cjs","names":["loadConfig","configSchema","loadModels","loadLocaleIDs","detectTypesProvider","generateTypes","NON_EDITABLE_FILE_HEADER"],"sources":["../src/cli/index.ts"],"sourcesContent":["import { existsSync, writeFileSync } from \"fs\";\nimport { resolve as resolvePath } from \"path\";\n\nimport { stripIndent } from \"common-tags\";\nimport meow from \"meow\";\n\nimport { detectTypesProvider, generateTypes } from \"../index\";\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 result = configSchema.safeParse(unvalidatedConfig);\n\n\t\tif (result.success) {\n\t\t\tconst config = result.data;\n\t\t\tconst { customTypeModels, sharedSliceModels } = await loadModels({\n\t\t\t\tlocalPaths: Array.isArray(config.models) ? config.models : 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) ? config.locales : 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 = config.typesProvider || (await detectTypesProvider());\n\n\t\t\tconst hasCustomTypeModels = customTypeModels.length > 0;\n\n\t\t\tif (config.clientIntegration?.includeCreateClientInterface && !hasCustomTypeModels) {\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: config.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\tconsole.error(result.error.message);\n\t\t\tprocess.exit(1);\n\t\t}\n\t}\n};\n\nmain().catch((error) => {\n\tconsole.error(error);\n\tprocess.exit(1);\n});\n"],"mappings":";;;;;;;;;;;;;;;AAaA,MAAM,OAAA,GAAA,KAAA,SACL;;;;;;;;;;IAWA;CACC,YAAA,EAAA;CACA,OAAO,EACN,QAAQ;EACP,MAAM;EACN,WAAW;EACX,YAAY;EACZ,EACD;CACD,CACD;AAED,MAAM,OAAO,YAAY;AACxB,KAAI,IAAI,MAAM,OAAO,QAAQ;EAC5B,MAAM,aAAa,IAAI,MAAM,UAAU;AAEvC,OAAA,GAAA,GAAA,YAAe,WAAW,CACzB,SAAQ,KAAK,KAAK,WAAW,kBAAkB;OACzC;GACN,IAAI,WAAW;AAEf,QAAA,GAAA,GAAA,YAAe,2BAA2B,KAAA,GAAA,GAAA,YAAe,UAAU,CAClE,YAAW,YAAA,WAAW;;;;;;;;;;OAWtB,YAAW,YAAA,WAAW;;;;;;;;;AAWvB,IAAA,GAAA,GAAA,eAAc,YAAY,SAAS;AAEnC,WAAQ,KAAK,6CAA6C,aAAa;;QAElE;EACN,MAAM,oBAAoBA,mBAAAA,WAAW,EAAE,MAAM,IAAI,MAAM,QAAQ,CAAC;EAEhE,MAAM,SAASC,qBAAAA,aAAa,UAAU,kBAAkB;AAExD,MAAI,OAAO,SAAS;GACnB,MAAM,SAAS,OAAO;GACtB,MAAM,EAAE,kBAAkB,sBAAsB,MAAMC,mBAAAA,WAAW;IAChE,YAAY,MAAM,QAAQ,OAAO,OAAO,GAAG,OAAO,SAAS,OAAO,QAAQ;IAC1E,gBAAgB,OAAO;IACvB,qBAAqB,OAAO;IAC5B,qBACC,OAAO,UACP,yBAAyB,OAAO,UAChC,OAAO,OAAO;IACf,CAAC;GAEF,MAAM,YAAY,MAAMC,sBAAAA,cAAc;IACrC,WAAW,MAAM,QAAQ,OAAO,QAAQ,GAAG,OAAO,UAAU,OAAO,SAAS;IAC5E,gBAAgB,OAAO;IACvB,aAAa,OAAO;IACpB,qBACC,OAAO,WACP,yBAAyB,OAAO,WAChC,OAAO,QAAQ;IAChB,CAAC;GAEF,MAAM,gBAAgB,OAAO,iBAAkB,MAAMC,4BAAAA,qBAAqB;GAE1E,MAAM,sBAAsB,iBAAiB,SAAS;AAEtD,OAAI,OAAO,mBAAmB,gCAAgC,CAAC,oBAC9D,SAAQ,KACP,gPACA;GAGF,MAAM,QAAQC,sBAAAA,cAAc;IAC3B;IACA;IACA;IACA,cAAc,OAAO;IACrB,mBAAmB;KAClB,8BAA8B,sBAC1B,OAAO,mBAAmB,gCAAgC,OAC3D;KACH,yBAAyB,OAAO,mBAAmB,2BAA2B;KAC9E;IACD;IACA,CAAC;GAEF,MAAM,eAAe,GAAGC,kBAAAA,yBAAyB,MAAM;AAEvD,OAAI,OAAO,QAAQ;AAClB,KAAA,GAAA,GAAA,gBAAA,GAAA,KAAA,SAA0B,OAAO,OAAO,EAAE,aAAa;AAEvD,YAAQ,KAAK,yBAAyB,OAAO,SAAS;SAEtD,SAAQ,OAAO,MAAM,QAAQ,KAAK;SAE7B;AACN,WAAQ,MAAM,OAAO,MAAM,QAAQ;AACnC,WAAQ,KAAK,EAAE;;;;AAKlB,MAAM,CAAC,OAAO,UAAU;AACvB,SAAQ,MAAM,MAAM;AACpB,SAAQ,KAAK,EAAE;EACd"}
package/dist/cli.d.cts DELETED
@@ -1 +0,0 @@
1
- export { };
package/dist/cli.d.ts DELETED
@@ -1 +0,0 @@
1
- export { };
package/dist/cli.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","names":["resolvePath"],"sources":["../src/cli/index.ts"],"sourcesContent":["import { existsSync, writeFileSync } from \"fs\";\nimport { resolve as resolvePath } from \"path\";\n\nimport { stripIndent } from \"common-tags\";\nimport meow from \"meow\";\n\nimport { detectTypesProvider, generateTypes } from \"../index\";\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 result = configSchema.safeParse(unvalidatedConfig);\n\n\t\tif (result.success) {\n\t\t\tconst config = result.data;\n\t\t\tconst { customTypeModels, sharedSliceModels } = await loadModels({\n\t\t\t\tlocalPaths: Array.isArray(config.models) ? config.models : 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) ? config.locales : 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 = config.typesProvider || (await detectTypesProvider());\n\n\t\t\tconst hasCustomTypeModels = customTypeModels.length > 0;\n\n\t\t\tif (config.clientIntegration?.includeCreateClientInterface && !hasCustomTypeModels) {\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: config.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\tconsole.error(result.error.message);\n\t\t\tprocess.exit(1);\n\t\t}\n\t}\n};\n\nmain().catch((error) => {\n\tconsole.error(error);\n\tprocess.exit(1);\n});\n"],"mappings":";;;;;;;;;;;;;AAaA,MAAM,MAAM,KACX;;;;;;;;;;IAWA;CACC,YAAY,OAAO;CACnB,OAAO,EACN,QAAQ;EACP,MAAM;EACN,WAAW;EACX,YAAY;EACZ,EACD;CACD,CACD;AAED,MAAM,OAAO,YAAY;AACxB,KAAI,IAAI,MAAM,OAAO,QAAQ;EAC5B,MAAM,aAAa,IAAI,MAAM,UAAU;AAEvC,MAAI,WAAW,WAAW,CACzB,SAAQ,KAAK,KAAK,WAAW,kBAAkB;OACzC;GACN,IAAI,WAAW;AAEf,OAAI,WAAW,2BAA2B,IAAI,WAAW,UAAU,CAClE,YAAW,WAAW;;;;;;;;;;OAWtB,YAAW,WAAW;;;;;;;;;AAWvB,iBAAc,YAAY,SAAS;AAEnC,WAAQ,KAAK,6CAA6C,aAAa;;QAElE;EACN,MAAM,oBAAoB,WAAW,EAAE,MAAM,IAAI,MAAM,QAAQ,CAAC;EAEhE,MAAM,SAAS,aAAa,UAAU,kBAAkB;AAExD,MAAI,OAAO,SAAS;GACnB,MAAM,SAAS,OAAO;GACtB,MAAM,EAAE,kBAAkB,sBAAsB,MAAM,WAAW;IAChE,YAAY,MAAM,QAAQ,OAAO,OAAO,GAAG,OAAO,SAAS,OAAO,QAAQ;IAC1E,gBAAgB,OAAO;IACvB,qBAAqB,OAAO;IAC5B,qBACC,OAAO,UACP,yBAAyB,OAAO,UAChC,OAAO,OAAO;IACf,CAAC;GAEF,MAAM,YAAY,MAAM,cAAc;IACrC,WAAW,MAAM,QAAQ,OAAO,QAAQ,GAAG,OAAO,UAAU,OAAO,SAAS;IAC5E,gBAAgB,OAAO;IACvB,aAAa,OAAO;IACpB,qBACC,OAAO,WACP,yBAAyB,OAAO,WAChC,OAAO,QAAQ;IAChB,CAAC;GAEF,MAAM,gBAAgB,OAAO,iBAAkB,MAAM,qBAAqB;GAE1E,MAAM,sBAAsB,iBAAiB,SAAS;AAEtD,OAAI,OAAO,mBAAmB,gCAAgC,CAAC,oBAC9D,SAAQ,KACP,gPACA;GAGF,MAAM,QAAQ,cAAc;IAC3B;IACA;IACA;IACA,cAAc,OAAO;IACrB,mBAAmB;KAClB,8BAA8B,sBAC1B,OAAO,mBAAmB,gCAAgC,OAC3D;KACH,yBAAyB,OAAO,mBAAmB,2BAA2B;KAC9E;IACD;IACA,CAAC;GAEF,MAAM,eAAe,GAAG,yBAAyB,MAAM;AAEvD,OAAI,OAAO,QAAQ;AAClB,kBAAcA,QAAY,OAAO,OAAO,EAAE,aAAa;AAEvD,YAAQ,KAAK,yBAAyB,OAAO,SAAS;SAEtD,SAAQ,OAAO,MAAM,QAAQ,KAAK;SAE7B;AACN,WAAQ,MAAM,OAAO,MAAM,QAAQ;AACnC,WAAQ,KAAK,EAAE;;;;AAKlB,MAAM,CAAC,OAAO,UAAU;AACvB,SAAQ,MAAM,MAAM;AACpB,SAAQ,KAAK,EAAE;EACd"}
@@ -1,33 +0,0 @@
1
- //#region src/constants.ts
2
- const CUSTOM_TYPES_DOCUMENTATION_URL = "https://prismic.io/docs/content-modeling";
3
- const SHARED_SLICES_DOCUMENTATION_URL = "https://prismic.io/docs/slices";
4
- const FIELD_DOCUMENTATION_URLS = {
5
- UID: "https://prismic.io/docs/fields/uid",
6
- Boolean: "https://prismic.io/docs/fields/boolean",
7
- Color: "https://prismic.io/docs/fields/color",
8
- Date: "https://prismic.io/docs/fields/date",
9
- Timestamp: "https://prismic.io/docs/fields/timestamp",
10
- Number: "https://prismic.io/docs/fields/number",
11
- Text: "https://prismic.io/docs/fields/text",
12
- Select: "https://prismic.io/docs/fields/select",
13
- StructuredText: "https://prismic.io/docs/fields/rich-text",
14
- Image: "https://prismic.io/docs/fields/image",
15
- Link: {
16
- contentRelationship: "https://prismic.io/docs/fields/content-relationship",
17
- link: "https://prismic.io/docs/fields/link",
18
- linkToMedia: "https://prismic.io/docs/fields/link-to-media"
19
- },
20
- Embed: "https://prismic.io/docs/fields/embed",
21
- GeoPoint: "https://prismic.io/docs/fields/geopoint",
22
- Table: "https://prismic.io/docs/fields/table",
23
- Group: "https://prismic.io/docs/fields/repeatable-group",
24
- IntegrationFields: "https://prismic.io/docs/fields/integration",
25
- Slices: "https://prismic.io/docs/slices",
26
- Choice: "https://prismic.io/docs/slices"
27
- };
28
- //#endregion
29
- exports.CUSTOM_TYPES_DOCUMENTATION_URL = CUSTOM_TYPES_DOCUMENTATION_URL;
30
- exports.FIELD_DOCUMENTATION_URLS = FIELD_DOCUMENTATION_URLS;
31
- exports.SHARED_SLICES_DOCUMENTATION_URL = SHARED_SLICES_DOCUMENTATION_URL;
32
-
33
- //# sourceMappingURL=constants.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","names":[],"sources":["../src/constants.ts"],"sourcesContent":["import type { CustomTypeModelFieldType } from \"@prismicio/client\";\n\nexport const CUSTOM_TYPES_DOCUMENTATION_URL = \"https://prismic.io/docs/content-modeling\";\n\nexport const SHARED_SLICES_DOCUMENTATION_URL = \"https://prismic.io/docs/slices\";\n\nexport const FIELD_DOCUMENTATION_URLS = {\n\tUID: \"https://prismic.io/docs/fields/uid\",\n\tBoolean: \"https://prismic.io/docs/fields/boolean\",\n\tColor: \"https://prismic.io/docs/fields/color\",\n\tDate: \"https://prismic.io/docs/fields/date\",\n\tTimestamp: \"https://prismic.io/docs/fields/timestamp\",\n\tNumber: \"https://prismic.io/docs/fields/number\",\n\tText: \"https://prismic.io/docs/fields/text\",\n\tSelect: \"https://prismic.io/docs/fields/select\",\n\tStructuredText: \"https://prismic.io/docs/fields/rich-text\",\n\tImage: \"https://prismic.io/docs/fields/image\",\n\tLink: {\n\t\tcontentRelationship: \"https://prismic.io/docs/fields/content-relationship\",\n\t\tlink: \"https://prismic.io/docs/fields/link\",\n\t\tlinkToMedia: \"https://prismic.io/docs/fields/link-to-media\",\n\t},\n\tEmbed: \"https://prismic.io/docs/fields/embed\",\n\tGeoPoint: \"https://prismic.io/docs/fields/geopoint\",\n\tTable: \"https://prismic.io/docs/fields/table\",\n\tGroup: \"https://prismic.io/docs/fields/repeatable-group\",\n\tIntegrationFields: \"https://prismic.io/docs/fields/integration\",\n\tSlices: \"https://prismic.io/docs/slices\",\n\tChoice: \"https://prismic.io/docs/slices\",\n} satisfies Record<\n\tExclude<\n\t\t(typeof CustomTypeModelFieldType)[keyof typeof CustomTypeModelFieldType],\n\t\t\"Range\" | \"Separator\"\n\t>,\n\tstring | Record<string, string>\n>;\n"],"mappings":";AAEA,MAAa,iCAAiC;AAE9C,MAAa,kCAAkC;AAE/C,MAAa,2BAA2B;CACvC,KAAK;CACL,SAAS;CACT,OAAO;CACP,MAAM;CACN,WAAW;CACX,QAAQ;CACR,MAAM;CACN,QAAQ;CACR,gBAAgB;CAChB,OAAO;CACP,MAAM;EACL,qBAAqB;EACrB,MAAM;EACN,aAAa;EACb;CACD,OAAO;CACP,UAAU;CACV,OAAO;CACP,OAAO;CACP,mBAAmB;CACnB,QAAQ;CACR,QAAQ;CACR"}
@@ -1,25 +0,0 @@
1
- require("./_virtual/_rolldown/runtime.cjs");
2
- let node_module = require("node:module");
3
- //#region src/detectTypesProvider.ts
4
- /**
5
- * Detects which types provider should be used for a project.
6
- *
7
- * @param config - Configures the detection.
8
- * @returns The types provider identifier to use, or `undefined` if on cannot be
9
- * determined.
10
- */
11
- const detectTypesProvider = async (config = {}) => {
12
- const cwd = config.cwd || process.cwd();
13
- const require = (0, node_module.createRequire)(cwd.endsWith("/") ? cwd : cwd + "/");
14
- try {
15
- if (Number.parseInt(require("@prismicio/client/package.json").version.split(".")[0]) >= 7) return "@prismicio/client";
16
- } catch {}
17
- try {
18
- require.resolve("@prismicio/types");
19
- return "@prismicio/types";
20
- } catch {}
21
- };
22
- //#endregion
23
- exports.detectTypesProvider = detectTypesProvider;
24
-
25
- //# sourceMappingURL=detectTypesProvider.cjs.map
@@ -1,17 +0,0 @@
1
- import { TypesProvider } from "./generateTypes.cjs";
2
-
3
- //#region src/detectTypesProvider.d.ts
4
- type DetectTypesProviderConfig = {
5
- cwd?: string;
6
- };
7
- /**
8
- * Detects which types provider should be used for a project.
9
- *
10
- * @param config - Configures the detection.
11
- * @returns The types provider identifier to use, or `undefined` if on cannot be
12
- * determined.
13
- */
14
- declare const detectTypesProvider: (config?: DetectTypesProviderConfig) => Promise<TypesProvider | undefined>;
15
- //#endregion
16
- export { DetectTypesProviderConfig, detectTypesProvider };
17
- //# sourceMappingURL=detectTypesProvider.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"detectTypesProvider.d.cts","names":[],"sources":["../src/detectTypesProvider.ts"],"mappings":";;;KAIY,yBAAA;EACX,GAAA;AAAA;;;;;AAUD;;;cAAa,mBAAA,GACZ,MAAA,GAAQ,yBAAA,KACN,OAAA,CAAQ,aAAA"}
@@ -1,17 +0,0 @@
1
- import { TypesProvider } from "./generateTypes.js";
2
-
3
- //#region src/detectTypesProvider.d.ts
4
- type DetectTypesProviderConfig = {
5
- cwd?: string;
6
- };
7
- /**
8
- * Detects which types provider should be used for a project.
9
- *
10
- * @param config - Configures the detection.
11
- * @returns The types provider identifier to use, or `undefined` if on cannot be
12
- * determined.
13
- */
14
- declare const detectTypesProvider: (config?: DetectTypesProviderConfig) => Promise<TypesProvider | undefined>;
15
- //#endregion
16
- export { DetectTypesProviderConfig, detectTypesProvider };
17
- //# sourceMappingURL=detectTypesProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"detectTypesProvider.d.ts","names":[],"sources":["../src/detectTypesProvider.ts"],"mappings":";;;KAIY,yBAAA;EACX,GAAA;AAAA;;;;;AAUD;;;cAAa,mBAAA,GACZ,MAAA,GAAQ,yBAAA,KACN,OAAA,CAAQ,aAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"detectTypesProvider.js","names":[],"sources":["../src/detectTypesProvider.ts"],"sourcesContent":["import { createRequire } from \"node:module\";\n\nimport type { TypesProvider } from \"./generateTypes\";\n\nexport type DetectTypesProviderConfig = {\n\tcwd?: string;\n};\n\n/**\n * Detects which types provider should be used for a project.\n *\n * @param config - Configures the detection.\n * @returns The types provider identifier to use, or `undefined` if on cannot be\n * determined.\n */\nexport const detectTypesProvider = async (\n\tconfig: DetectTypesProviderConfig = {},\n): Promise<TypesProvider | undefined> => {\n\tconst cwd = config.cwd || process.cwd();\n\n\tconst require = createRequire(cwd.endsWith(\"/\") ? cwd : cwd + \"/\");\n\n\ttry {\n\t\tif (Number.parseInt(require(\"@prismicio/client/package.json\").version.split(\".\")[0]) >= 7) {\n\t\t\treturn \"@prismicio/client\";\n\t\t}\n\t} catch {\n\t\t// noop\n\t}\n\n\ttry {\n\t\trequire.resolve(\"@prismicio/types\");\n\n\t\treturn \"@prismicio/types\";\n\t} catch {\n\t\t// noop\n\t}\n};\n"],"mappings":";;;;;;;;;AAeA,MAAa,sBAAsB,OAClC,SAAoC,EAAE,KACE;CACxC,MAAM,MAAM,OAAO,OAAO,QAAQ,KAAK;CAEvC,MAAM,UAAU,cAAc,IAAI,SAAS,IAAI,GAAG,MAAM,MAAM,IAAI;AAElE,KAAI;AACH,MAAI,OAAO,SAAS,QAAQ,iCAAiC,CAAC,QAAQ,MAAM,IAAI,CAAC,GAAG,IAAI,EACvF,QAAO;SAED;AAIR,KAAI;AACH,UAAQ,QAAQ,mBAAmB;AAEnC,SAAO;SACA"}
@@ -1,144 +0,0 @@
1
- const require_runtime = require("./_virtual/_rolldown/runtime.cjs");
2
- const require_addLine = require("./lib/addLine.cjs");
3
- const require_addSection = require("./lib/addSection.cjs");
4
- const require_buildUnion = require("./lib/buildUnion.cjs");
5
- const require_buildCustomTypeType = require("./lib/buildCustomTypeType.cjs");
6
- const require_buildSharedSliceType = require("./lib/buildSharedSliceType.cjs");
7
- let common_tags = require("common-tags");
8
- let quick_lru = require("quick-lru");
9
- quick_lru = require_runtime.__toESM(quick_lru);
10
- //#region src/generateTypes.ts
11
- const cache = new quick_lru.default({ maxSize: 1e3 });
12
- function generateTypes(config = {}) {
13
- const fieldConfigs = config.fieldConfigs || {};
14
- const shouldUseCache = config.cache ?? true;
15
- let code = "";
16
- const typesProvider = config.typesProvider || "@prismicio/types";
17
- let clientImportName = "prismic";
18
- code = require_addLine.addLine(`import type * as prismic from "${typesProvider}";`, code);
19
- if (config.clientIntegration?.includeCreateClientInterface || config.clientIntegration?.includeContentNamespace) {
20
- if (typesProvider !== "@prismicio/client") {
21
- clientImportName = "prismicClient";
22
- code = require_addLine.addLine(`import type * as ${clientImportName} from "@prismicio/client";`, code);
23
- }
24
- }
25
- code = require_addSection.addSection(`type Simplify<T> = { [KeyType in keyof T]: T[KeyType] };`, code);
26
- code = require_addSection.addSection(`
27
- type PickContentRelationshipFieldData<
28
- TRelationship extends prismic.CustomTypeModelFetchCustomTypeLevel1 | prismic.CustomTypeModelFetchCustomTypeLevel2 | prismic.CustomTypeModelFetchGroupLevel1 | prismic.CustomTypeModelFetchGroupLevel2,
29
- TData extends Record<string, prismic.AnyRegularField | prismic.GroupField | prismic.NestedGroupField | prismic.SliceZone>,
30
- TLang extends string
31
- > = |
32
- // Content relationship fields
33
- {
34
- [TSubRelationship in Extract<
35
- TRelationship["fields"][number], prismic.CustomTypeModelFetchContentRelationshipLevel1
36
- > as TSubRelationship["id"]]:
37
- ContentRelationshipFieldWithData<TSubRelationship["customtypes"], TLang>;
38
- } &
39
- // Group
40
- {
41
- [TGroup in Extract<
42
- TRelationship["fields"][number], prismic.CustomTypeModelFetchGroupLevel1 | prismic.CustomTypeModelFetchGroupLevel2
43
- > as TGroup["id"]]:
44
- TData[TGroup["id"]] extends prismic.GroupField<infer TGroupData>
45
- ? prismic.GroupField<PickContentRelationshipFieldData<TGroup, TGroupData, TLang>>
46
- : never
47
- } &
48
- // Other fields
49
- {
50
- [TFieldKey in Extract<TRelationship["fields"][number], string>]:
51
- TFieldKey extends keyof TData ? TData[TFieldKey] : never;
52
- };
53
-
54
- type ContentRelationshipFieldWithData<
55
- TCustomType extends readonly (prismic.CustomTypeModelFetchCustomTypeLevel1 | string)[] | readonly (prismic.CustomTypeModelFetchCustomTypeLevel2 | string)[],
56
- TLang extends string = string
57
- > = {
58
- [ID in Exclude<TCustomType[number], string>["id"]]:
59
- prismic.ContentRelationshipField<
60
- ID,
61
- TLang,
62
- PickContentRelationshipFieldData<
63
- Extract<TCustomType[number], { id: ID }>,
64
- Extract<prismic.Content.AllDocumentTypes, { type: ID }>["data"],
65
- TLang
66
- >
67
- >
68
- }[Exclude<TCustomType[number], string>["id"]];
69
- `, code);
70
- const contentTypeNames = [];
71
- if (config.customTypeModels) {
72
- const allDocumentTypesTypeNames = [];
73
- for (const model of config.customTypeModels) {
74
- const customTypeType = require_buildCustomTypeType.buildCustomTypeType({
75
- model,
76
- localeIDs: config.localeIDs,
77
- fieldConfigs,
78
- cache: shouldUseCache ? cache : void 0
79
- });
80
- for (const auxiliaryType of customTypeType.auxiliaryTypes) code = require_addSection.addSection(auxiliaryType.code, code);
81
- code = require_addSection.addSection(customTypeType.code, code);
82
- allDocumentTypesTypeNames.push(customTypeType.name);
83
- contentTypeNames.push(customTypeType.name);
84
- contentTypeNames.push(...customTypeType.contentTypeNames);
85
- }
86
- if (config.customTypeModels.length > 0) {
87
- const allDocumentTypesUnionName = "AllDocumentTypes";
88
- code = require_addSection.addSection(`export type ${allDocumentTypesUnionName} = ${require_buildUnion.buildUnion(allDocumentTypesTypeNames)};`, code);
89
- contentTypeNames.push(allDocumentTypesUnionName);
90
- }
91
- }
92
- if (config.sharedSliceModels) for (const model of config.sharedSliceModels) {
93
- const sharedSliceType = require_buildSharedSliceType.buildSharedSliceType({
94
- model,
95
- fieldConfigs,
96
- cache: shouldUseCache ? cache : void 0
97
- });
98
- for (const auxiliaryType of sharedSliceType.auxiliaryTypes) code = require_addSection.addSection(auxiliaryType.code, code);
99
- code = require_addSection.addSection(sharedSliceType.code, code);
100
- contentTypeNames.push(sharedSliceType.name);
101
- contentTypeNames.push(...sharedSliceType.contentTypeNames);
102
- }
103
- if (config.clientIntegration?.includeCreateClientInterface || config.clientIntegration?.includeContentNamespace) {
104
- let clientModuleCode = "";
105
- if (config.clientIntegration.includeCreateClientInterface) if ((config.customTypeModels?.length || 0) > 0) {
106
- clientModuleCode = require_addSection.addSection(`interface CreateClient {
107
- (repositoryNameOrEndpoint: string, options?: ${clientImportName}.ClientConfig): ${clientImportName}.Client<AllDocumentTypes>;
108
- }`, clientModuleCode);
109
- clientModuleCode = require_addSection.addSection(`interface CreateWriteClient {
110
- (repositoryNameOrEndpoint: string, options: ${clientImportName}.WriteClientConfig): ${clientImportName}.WriteClient<AllDocumentTypes>;
111
- }`, clientModuleCode);
112
- clientModuleCode = require_addSection.addSection(`interface CreateMigration {
113
- (): ${clientImportName}.Migration<AllDocumentTypes>;
114
- }`, clientModuleCode);
115
- } else {
116
- clientModuleCode = require_addSection.addSection(`interface CreateClient {
117
- (repositoryNameOrEndpoint: string, options?: ${clientImportName}.ClientConfig): ${clientImportName}.Client;
118
- }`, clientModuleCode);
119
- clientModuleCode = require_addSection.addSection(`interface CreateWriteClient {
120
- (repositoryNameOrEndpoint: string, options?: ${clientImportName}.WriteClientConfig): ${clientImportName}.WriteClient;
121
- }`, clientModuleCode);
122
- clientModuleCode = require_addSection.addSection(`interface CreateMigration {
123
- (): ${clientImportName}.Migration;
124
- }`, clientModuleCode);
125
- }
126
- if (config.clientIntegration.includeContentNamespace) clientModuleCode = require_addSection.addSection(common_tags.source`
127
- namespace Content {
128
- export type {
129
- ${contentTypeNames.join(",\n")}
130
- }
131
- }
132
- `, clientModuleCode);
133
- code = require_addSection.addSection(common_tags.source`
134
- declare module "@prismicio/client" {
135
- ${clientModuleCode}
136
- }
137
- `, code);
138
- }
139
- return code;
140
- }
141
- //#endregion
142
- exports.generateTypes = generateTypes;
143
-
144
- //# sourceMappingURL=generateTypes.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateTypes.cjs","names":["QuickLRU","addLine","addSection","buildCustomTypeType","buildUnion","buildSharedSliceType"],"sources":["../src/generateTypes.ts"],"sourcesContent":["import type { CustomTypeModel, SharedSliceModel } from \"@prismicio/client\";\nimport { source } from \"common-tags\";\nimport QuickLRU from \"quick-lru\";\n\nimport { addLine } from \"./lib/addLine\";\nimport { addSection } from \"./lib/addSection\";\nimport { buildCustomTypeType } from \"./lib/buildCustomTypeType\";\nimport { buildSharedSliceType } from \"./lib/buildSharedSliceType\";\nimport { buildUnion } from \"./lib/buildUnion\";\nimport type { FieldConfigs } from \"./types\";\n\nexport type TypesProvider = \"@prismicio/client\" | \"@prismicio/types\";\n\nconst cache = new QuickLRU<string, unknown>({ maxSize: 1000 });\n\nexport type GenerateTypesConfig = {\n\tcustomTypeModels?: CustomTypeModel[];\n\tsharedSliceModels?: SharedSliceModel[];\n\tlocaleIDs?: string[];\n\tfieldConfigs?: FieldConfigs;\n\ttypesProvider?: TypesProvider;\n\tclientIntegration?: {\n\t\tincludeCreateClientInterface?: boolean;\n\t\tincludeContentNamespace?: boolean;\n\t};\n\tcache?: boolean;\n};\n\nexport function generateTypes(config: GenerateTypesConfig = {}): string {\n\tconst fieldConfigs = config.fieldConfigs || {};\n\tconst shouldUseCache = config.cache ?? true;\n\n\tlet code = \"\";\n\n\tconst typesProvider = config.typesProvider || \"@prismicio/types\";\n\tlet clientImportName = \"prismic\";\n\n\tcode = addLine(`import type * as prismic from \"${typesProvider}\";`, code);\n\n\tif (\n\t\tconfig.clientIntegration?.includeCreateClientInterface ||\n\t\tconfig.clientIntegration?.includeContentNamespace\n\t) {\n\t\tif (typesProvider !== \"@prismicio/client\") {\n\t\t\tclientImportName = \"prismicClient\";\n\n\t\t\t// This import declaration would be a duplicate if the types\n\t\t\t// provider is @prismicio/client.\n\t\t\tcode = addLine(`import type * as ${clientImportName} from \"@prismicio/client\";`, code);\n\t\t}\n\t}\n\n\tcode = addSection(`type Simplify<T> = { [KeyType in keyof T]: T[KeyType] };`, code);\n\n\tcode = addSection(\n\t\t`\ntype PickContentRelationshipFieldData<\n\tTRelationship extends prismic.CustomTypeModelFetchCustomTypeLevel1 | prismic.CustomTypeModelFetchCustomTypeLevel2 | prismic.CustomTypeModelFetchGroupLevel1 | prismic.CustomTypeModelFetchGroupLevel2,\n\tTData extends Record<string, prismic.AnyRegularField | prismic.GroupField | prismic.NestedGroupField | prismic.SliceZone>,\n\tTLang extends string\n> = |\n\t// Content relationship fields\n\t{\n\t\t[TSubRelationship in Extract<\n\t\t\tTRelationship[\"fields\"][number], prismic.CustomTypeModelFetchContentRelationshipLevel1\n\t\t> as TSubRelationship[\"id\"]]:\n\t\t\tContentRelationshipFieldWithData<TSubRelationship[\"customtypes\"], TLang>;\n\t} &\n\t// Group\n\t{\n\t\t[TGroup in Extract<\n\t\t\tTRelationship[\"fields\"][number], prismic.CustomTypeModelFetchGroupLevel1 | prismic.CustomTypeModelFetchGroupLevel2\n\t\t> as TGroup[\"id\"]]:\n\t\t\tTData[TGroup[\"id\"]] extends prismic.GroupField<infer TGroupData>\n\t\t\t\t? prismic.GroupField<PickContentRelationshipFieldData<TGroup, TGroupData, TLang>>\n\t\t\t\t: never\n\t} &\n\t// Other fields\n\t{\n\t\t[TFieldKey in Extract<TRelationship[\"fields\"][number], string>]:\n\t\t\tTFieldKey extends keyof TData ? TData[TFieldKey] : never;\n\t};\n\ntype ContentRelationshipFieldWithData<\n\tTCustomType extends readonly (prismic.CustomTypeModelFetchCustomTypeLevel1 | string)[] | readonly (prismic.CustomTypeModelFetchCustomTypeLevel2 | string)[],\n\tTLang extends string = string\n> = {\n\t[ID in Exclude<TCustomType[number], string>[\"id\"]]:\n\t\tprismic.ContentRelationshipField<\n\t\t\tID,\n\t\t\tTLang,\n\t\t\tPickContentRelationshipFieldData<\n\t\t\t\tExtract<TCustomType[number], { id: ID }>,\n\t\t\t\tExtract<prismic.Content.AllDocumentTypes, { type: ID }>[\"data\"],\n\t\t\t\tTLang\n\t\t\t>\n\t\t>\n}[Exclude<TCustomType[number], string>[\"id\"]];\n`,\n\t\tcode,\n\t);\n\n\tconst contentTypeNames: string[] = [];\n\n\tif (config.customTypeModels) {\n\t\tconst allDocumentTypesTypeNames: string[] = [];\n\n\t\tfor (const model of config.customTypeModels) {\n\t\t\tconst customTypeType = buildCustomTypeType({\n\t\t\t\tmodel,\n\t\t\t\tlocaleIDs: config.localeIDs,\n\t\t\t\tfieldConfigs,\n\t\t\t\tcache: shouldUseCache ? cache : undefined,\n\t\t\t});\n\n\t\t\tfor (const auxiliaryType of customTypeType.auxiliaryTypes) {\n\t\t\t\tcode = addSection(auxiliaryType.code, code);\n\t\t\t}\n\n\t\t\tcode = addSection(customTypeType.code, code);\n\n\t\t\tallDocumentTypesTypeNames.push(customTypeType.name);\n\n\t\t\tcontentTypeNames.push(customTypeType.name);\n\t\t\tcontentTypeNames.push(...customTypeType.contentTypeNames);\n\t\t}\n\n\t\tif (config.customTypeModels.length > 0) {\n\t\t\tconst allDocumentTypesUnionName = \"AllDocumentTypes\";\n\t\t\tconst allDocumentTypesUnion = buildUnion(allDocumentTypesTypeNames);\n\n\t\t\tcode = addSection(\n\t\t\t\t`export type ${allDocumentTypesUnionName} = ${allDocumentTypesUnion};`,\n\t\t\t\tcode,\n\t\t\t);\n\n\t\t\tcontentTypeNames.push(allDocumentTypesUnionName);\n\t\t}\n\t}\n\n\tif (config.sharedSliceModels) {\n\t\tfor (const model of config.sharedSliceModels) {\n\t\t\tconst sharedSliceType = buildSharedSliceType({\n\t\t\t\tmodel,\n\t\t\t\tfieldConfigs,\n\t\t\t\tcache: shouldUseCache ? cache : undefined,\n\t\t\t});\n\n\t\t\tfor (const auxiliaryType of sharedSliceType.auxiliaryTypes) {\n\t\t\t\tcode = addSection(auxiliaryType.code, code);\n\t\t\t}\n\n\t\t\tcode = addSection(sharedSliceType.code, code);\n\n\t\t\tcontentTypeNames.push(sharedSliceType.name);\n\t\t\tcontentTypeNames.push(...sharedSliceType.contentTypeNames);\n\t\t}\n\t}\n\n\tif (\n\t\tconfig.clientIntegration?.includeCreateClientInterface ||\n\t\tconfig.clientIntegration?.includeContentNamespace\n\t) {\n\t\tlet clientModuleCode = \"\";\n\n\t\tif (config.clientIntegration.includeCreateClientInterface) {\n\t\t\tif ((config.customTypeModels?.length || 0) > 0) {\n\t\t\t\tclientModuleCode = addSection(\n\t\t\t\t\t`interface CreateClient {\n\t(repositoryNameOrEndpoint: string, options?: ${clientImportName}.ClientConfig): ${clientImportName}.Client<AllDocumentTypes>;\n}`,\n\t\t\t\t\tclientModuleCode,\n\t\t\t\t);\n\t\t\t\tclientModuleCode = addSection(\n\t\t\t\t\t`interface CreateWriteClient {\n\t(repositoryNameOrEndpoint: string, options: ${clientImportName}.WriteClientConfig): ${clientImportName}.WriteClient<AllDocumentTypes>;\n}`,\n\t\t\t\t\tclientModuleCode,\n\t\t\t\t);\n\t\t\t\tclientModuleCode = addSection(\n\t\t\t\t\t`interface CreateMigration {\n\t(): ${clientImportName}.Migration<AllDocumentTypes>;\n}`,\n\t\t\t\t\tclientModuleCode,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tclientModuleCode = addSection(\n\t\t\t\t\t`interface CreateClient {\n\t(repositoryNameOrEndpoint: string, options?: ${clientImportName}.ClientConfig): ${clientImportName}.Client;\n}`,\n\t\t\t\t\tclientModuleCode,\n\t\t\t\t);\n\t\t\t\tclientModuleCode = addSection(\n\t\t\t\t\t`interface CreateWriteClient {\n\t(repositoryNameOrEndpoint: string, options?: ${clientImportName}.WriteClientConfig): ${clientImportName}.WriteClient;\n}`,\n\t\t\t\t\tclientModuleCode,\n\t\t\t\t);\n\t\t\t\tclientModuleCode = addSection(\n\t\t\t\t\t`interface CreateMigration {\n\t(): ${clientImportName}.Migration;\n}`,\n\t\t\t\t\tclientModuleCode,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (config.clientIntegration.includeContentNamespace) {\n\t\t\tclientModuleCode = addSection(\n\t\t\t\tsource`\n\t\t\t\t\tnamespace Content {\n\t\t\t\t\t\texport type {\n\t\t\t\t\t\t\t${contentTypeNames.join(\",\\n\")}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t`,\n\t\t\t\tclientModuleCode,\n\t\t\t);\n\t\t}\n\n\t\tcode = addSection(\n\t\t\tsource`\n\t\t\t\tdeclare module \"@prismicio/client\" {\n\t\t\t\t\t${clientModuleCode}\n\t\t\t\t}\n\t\t\t`,\n\t\t\tcode,\n\t\t);\n\t}\n\n\treturn code;\n}\n"],"mappings":";;;;;;;;;;AAaA,MAAM,QAAQ,IAAIA,UAAAA,QAA0B,EAAE,SAAS,KAAM,CAAC;AAe9D,SAAgB,cAAc,SAA8B,EAAE,EAAU;CACvE,MAAM,eAAe,OAAO,gBAAgB,EAAE;CAC9C,MAAM,iBAAiB,OAAO,SAAS;CAEvC,IAAI,OAAO;CAEX,MAAM,gBAAgB,OAAO,iBAAiB;CAC9C,IAAI,mBAAmB;AAEvB,QAAOC,gBAAAA,QAAQ,kCAAkC,cAAc,KAAK,KAAK;AAEzE,KACC,OAAO,mBAAmB,gCAC1B,OAAO,mBAAmB;MAEtB,kBAAkB,qBAAqB;AAC1C,sBAAmB;AAInB,UAAOA,gBAAAA,QAAQ,oBAAoB,iBAAiB,6BAA6B,KAAK;;;AAIxF,QAAOC,mBAAAA,WAAW,4DAA4D,KAAK;AAEnF,QAAOA,mBAAAA,WACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CA,KACA;CAED,MAAM,mBAA6B,EAAE;AAErC,KAAI,OAAO,kBAAkB;EAC5B,MAAM,4BAAsC,EAAE;AAE9C,OAAK,MAAM,SAAS,OAAO,kBAAkB;GAC5C,MAAM,iBAAiBC,4BAAAA,oBAAoB;IAC1C;IACA,WAAW,OAAO;IAClB;IACA,OAAO,iBAAiB,QAAQ,KAAA;IAChC,CAAC;AAEF,QAAK,MAAM,iBAAiB,eAAe,eAC1C,QAAOD,mBAAAA,WAAW,cAAc,MAAM,KAAK;AAG5C,UAAOA,mBAAAA,WAAW,eAAe,MAAM,KAAK;AAE5C,6BAA0B,KAAK,eAAe,KAAK;AAEnD,oBAAiB,KAAK,eAAe,KAAK;AAC1C,oBAAiB,KAAK,GAAG,eAAe,iBAAiB;;AAG1D,MAAI,OAAO,iBAAiB,SAAS,GAAG;GACvC,MAAM,4BAA4B;AAGlC,UAAOA,mBAAAA,WACN,eAAe,0BAA0B,KAHZE,mBAAAA,WAAW,0BAA0B,CAGE,IACpE,KACA;AAED,oBAAiB,KAAK,0BAA0B;;;AAIlD,KAAI,OAAO,kBACV,MAAK,MAAM,SAAS,OAAO,mBAAmB;EAC7C,MAAM,kBAAkBC,6BAAAA,qBAAqB;GAC5C;GACA;GACA,OAAO,iBAAiB,QAAQ,KAAA;GAChC,CAAC;AAEF,OAAK,MAAM,iBAAiB,gBAAgB,eAC3C,QAAOH,mBAAAA,WAAW,cAAc,MAAM,KAAK;AAG5C,SAAOA,mBAAAA,WAAW,gBAAgB,MAAM,KAAK;AAE7C,mBAAiB,KAAK,gBAAgB,KAAK;AAC3C,mBAAiB,KAAK,GAAG,gBAAgB,iBAAiB;;AAI5D,KACC,OAAO,mBAAmB,gCAC1B,OAAO,mBAAmB,yBACzB;EACD,IAAI,mBAAmB;AAEvB,MAAI,OAAO,kBAAkB,6BAC5B,MAAK,OAAO,kBAAkB,UAAU,KAAK,GAAG;AAC/C,sBAAmBA,mBAAAA,WAClB;gDAC2C,iBAAiB,kBAAkB,iBAAiB;IAE/F,iBACA;AACD,sBAAmBA,mBAAAA,WAClB;+CAC0C,iBAAiB,uBAAuB,iBAAiB;IAEnG,iBACA;AACD,sBAAmBA,mBAAAA,WAClB;OACE,iBAAiB;IAEnB,iBACA;SACK;AACN,sBAAmBA,mBAAAA,WAClB;gDAC2C,iBAAiB,kBAAkB,iBAAiB;IAE/F,iBACA;AACD,sBAAmBA,mBAAAA,WAClB;gDAC2C,iBAAiB,uBAAuB,iBAAiB;IAEpG,iBACA;AACD,sBAAmBA,mBAAAA,WAClB;OACE,iBAAiB;IAEnB,iBACA;;AAIH,MAAI,OAAO,kBAAkB,wBAC5B,oBAAmBA,mBAAAA,WAClB,YAAA,MAAM;;;SAGD,iBAAiB,KAAK,MAAM,CAAC;;;OAIlC,iBACA;AAGF,SAAOA,mBAAAA,WACN,YAAA,MAAM;;OAEF,iBAAiB;;MAGrB,KACA;;AAGF,QAAO"}
@@ -1,21 +0,0 @@
1
- import { FieldConfigs } from "./types.cjs";
2
- import { CustomTypeModel, SharedSliceModel } from "@prismicio/client";
3
-
4
- //#region src/generateTypes.d.ts
5
- type TypesProvider = "@prismicio/client" | "@prismicio/types";
6
- type GenerateTypesConfig = {
7
- customTypeModels?: CustomTypeModel[];
8
- sharedSliceModels?: SharedSliceModel[];
9
- localeIDs?: string[];
10
- fieldConfigs?: FieldConfigs;
11
- typesProvider?: TypesProvider;
12
- clientIntegration?: {
13
- includeCreateClientInterface?: boolean;
14
- includeContentNamespace?: boolean;
15
- };
16
- cache?: boolean;
17
- };
18
- declare function generateTypes(config?: GenerateTypesConfig): string;
19
- //#endregion
20
- export { GenerateTypesConfig, TypesProvider, generateTypes };
21
- //# sourceMappingURL=generateTypes.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateTypes.d.cts","names":[],"sources":["../src/generateTypes.ts"],"mappings":";;;;KAWY,aAAA;AAAA,KAIA,mBAAA;EACX,gBAAA,GAAmB,eAAA;EACnB,iBAAA,GAAoB,gBAAA;EACpB,SAAA;EACA,YAAA,GAAe,YAAA;EACf,aAAA,GAAgB,aAAA;EAChB,iBAAA;IACC,4BAAA;IACA,uBAAA;EAAA;EAED,KAAA;AAAA;AAAA,iBAGe,aAAA,CAAc,MAAA,GAAQ,mBAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateTypes.d.ts","names":[],"sources":["../src/generateTypes.ts"],"mappings":";;;;KAWY,aAAA;AAAA,KAIA,mBAAA;EACX,gBAAA,GAAmB,eAAA;EACnB,iBAAA,GAAoB,gBAAA;EACpB,SAAA;EACA,YAAA,GAAe,YAAA;EACf,aAAA,GAAgB,aAAA;EAChB,iBAAA;IACC,4BAAA;IACA,uBAAA;EAAA;EAED,KAAA;AAAA;AAAA,iBAGe,aAAA,CAAc,MAAA,GAAQ,mBAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateTypes.js","names":[],"sources":["../src/generateTypes.ts"],"sourcesContent":["import type { CustomTypeModel, SharedSliceModel } from \"@prismicio/client\";\nimport { source } from \"common-tags\";\nimport QuickLRU from \"quick-lru\";\n\nimport { addLine } from \"./lib/addLine\";\nimport { addSection } from \"./lib/addSection\";\nimport { buildCustomTypeType } from \"./lib/buildCustomTypeType\";\nimport { buildSharedSliceType } from \"./lib/buildSharedSliceType\";\nimport { buildUnion } from \"./lib/buildUnion\";\nimport type { FieldConfigs } from \"./types\";\n\nexport type TypesProvider = \"@prismicio/client\" | \"@prismicio/types\";\n\nconst cache = new QuickLRU<string, unknown>({ maxSize: 1000 });\n\nexport type GenerateTypesConfig = {\n\tcustomTypeModels?: CustomTypeModel[];\n\tsharedSliceModels?: SharedSliceModel[];\n\tlocaleIDs?: string[];\n\tfieldConfigs?: FieldConfigs;\n\ttypesProvider?: TypesProvider;\n\tclientIntegration?: {\n\t\tincludeCreateClientInterface?: boolean;\n\t\tincludeContentNamespace?: boolean;\n\t};\n\tcache?: boolean;\n};\n\nexport function generateTypes(config: GenerateTypesConfig = {}): string {\n\tconst fieldConfigs = config.fieldConfigs || {};\n\tconst shouldUseCache = config.cache ?? true;\n\n\tlet code = \"\";\n\n\tconst typesProvider = config.typesProvider || \"@prismicio/types\";\n\tlet clientImportName = \"prismic\";\n\n\tcode = addLine(`import type * as prismic from \"${typesProvider}\";`, code);\n\n\tif (\n\t\tconfig.clientIntegration?.includeCreateClientInterface ||\n\t\tconfig.clientIntegration?.includeContentNamespace\n\t) {\n\t\tif (typesProvider !== \"@prismicio/client\") {\n\t\t\tclientImportName = \"prismicClient\";\n\n\t\t\t// This import declaration would be a duplicate if the types\n\t\t\t// provider is @prismicio/client.\n\t\t\tcode = addLine(`import type * as ${clientImportName} from \"@prismicio/client\";`, code);\n\t\t}\n\t}\n\n\tcode = addSection(`type Simplify<T> = { [KeyType in keyof T]: T[KeyType] };`, code);\n\n\tcode = addSection(\n\t\t`\ntype PickContentRelationshipFieldData<\n\tTRelationship extends prismic.CustomTypeModelFetchCustomTypeLevel1 | prismic.CustomTypeModelFetchCustomTypeLevel2 | prismic.CustomTypeModelFetchGroupLevel1 | prismic.CustomTypeModelFetchGroupLevel2,\n\tTData extends Record<string, prismic.AnyRegularField | prismic.GroupField | prismic.NestedGroupField | prismic.SliceZone>,\n\tTLang extends string\n> = |\n\t// Content relationship fields\n\t{\n\t\t[TSubRelationship in Extract<\n\t\t\tTRelationship[\"fields\"][number], prismic.CustomTypeModelFetchContentRelationshipLevel1\n\t\t> as TSubRelationship[\"id\"]]:\n\t\t\tContentRelationshipFieldWithData<TSubRelationship[\"customtypes\"], TLang>;\n\t} &\n\t// Group\n\t{\n\t\t[TGroup in Extract<\n\t\t\tTRelationship[\"fields\"][number], prismic.CustomTypeModelFetchGroupLevel1 | prismic.CustomTypeModelFetchGroupLevel2\n\t\t> as TGroup[\"id\"]]:\n\t\t\tTData[TGroup[\"id\"]] extends prismic.GroupField<infer TGroupData>\n\t\t\t\t? prismic.GroupField<PickContentRelationshipFieldData<TGroup, TGroupData, TLang>>\n\t\t\t\t: never\n\t} &\n\t// Other fields\n\t{\n\t\t[TFieldKey in Extract<TRelationship[\"fields\"][number], string>]:\n\t\t\tTFieldKey extends keyof TData ? TData[TFieldKey] : never;\n\t};\n\ntype ContentRelationshipFieldWithData<\n\tTCustomType extends readonly (prismic.CustomTypeModelFetchCustomTypeLevel1 | string)[] | readonly (prismic.CustomTypeModelFetchCustomTypeLevel2 | string)[],\n\tTLang extends string = string\n> = {\n\t[ID in Exclude<TCustomType[number], string>[\"id\"]]:\n\t\tprismic.ContentRelationshipField<\n\t\t\tID,\n\t\t\tTLang,\n\t\t\tPickContentRelationshipFieldData<\n\t\t\t\tExtract<TCustomType[number], { id: ID }>,\n\t\t\t\tExtract<prismic.Content.AllDocumentTypes, { type: ID }>[\"data\"],\n\t\t\t\tTLang\n\t\t\t>\n\t\t>\n}[Exclude<TCustomType[number], string>[\"id\"]];\n`,\n\t\tcode,\n\t);\n\n\tconst contentTypeNames: string[] = [];\n\n\tif (config.customTypeModels) {\n\t\tconst allDocumentTypesTypeNames: string[] = [];\n\n\t\tfor (const model of config.customTypeModels) {\n\t\t\tconst customTypeType = buildCustomTypeType({\n\t\t\t\tmodel,\n\t\t\t\tlocaleIDs: config.localeIDs,\n\t\t\t\tfieldConfigs,\n\t\t\t\tcache: shouldUseCache ? cache : undefined,\n\t\t\t});\n\n\t\t\tfor (const auxiliaryType of customTypeType.auxiliaryTypes) {\n\t\t\t\tcode = addSection(auxiliaryType.code, code);\n\t\t\t}\n\n\t\t\tcode = addSection(customTypeType.code, code);\n\n\t\t\tallDocumentTypesTypeNames.push(customTypeType.name);\n\n\t\t\tcontentTypeNames.push(customTypeType.name);\n\t\t\tcontentTypeNames.push(...customTypeType.contentTypeNames);\n\t\t}\n\n\t\tif (config.customTypeModels.length > 0) {\n\t\t\tconst allDocumentTypesUnionName = \"AllDocumentTypes\";\n\t\t\tconst allDocumentTypesUnion = buildUnion(allDocumentTypesTypeNames);\n\n\t\t\tcode = addSection(\n\t\t\t\t`export type ${allDocumentTypesUnionName} = ${allDocumentTypesUnion};`,\n\t\t\t\tcode,\n\t\t\t);\n\n\t\t\tcontentTypeNames.push(allDocumentTypesUnionName);\n\t\t}\n\t}\n\n\tif (config.sharedSliceModels) {\n\t\tfor (const model of config.sharedSliceModels) {\n\t\t\tconst sharedSliceType = buildSharedSliceType({\n\t\t\t\tmodel,\n\t\t\t\tfieldConfigs,\n\t\t\t\tcache: shouldUseCache ? cache : undefined,\n\t\t\t});\n\n\t\t\tfor (const auxiliaryType of sharedSliceType.auxiliaryTypes) {\n\t\t\t\tcode = addSection(auxiliaryType.code, code);\n\t\t\t}\n\n\t\t\tcode = addSection(sharedSliceType.code, code);\n\n\t\t\tcontentTypeNames.push(sharedSliceType.name);\n\t\t\tcontentTypeNames.push(...sharedSliceType.contentTypeNames);\n\t\t}\n\t}\n\n\tif (\n\t\tconfig.clientIntegration?.includeCreateClientInterface ||\n\t\tconfig.clientIntegration?.includeContentNamespace\n\t) {\n\t\tlet clientModuleCode = \"\";\n\n\t\tif (config.clientIntegration.includeCreateClientInterface) {\n\t\t\tif ((config.customTypeModels?.length || 0) > 0) {\n\t\t\t\tclientModuleCode = addSection(\n\t\t\t\t\t`interface CreateClient {\n\t(repositoryNameOrEndpoint: string, options?: ${clientImportName}.ClientConfig): ${clientImportName}.Client<AllDocumentTypes>;\n}`,\n\t\t\t\t\tclientModuleCode,\n\t\t\t\t);\n\t\t\t\tclientModuleCode = addSection(\n\t\t\t\t\t`interface CreateWriteClient {\n\t(repositoryNameOrEndpoint: string, options: ${clientImportName}.WriteClientConfig): ${clientImportName}.WriteClient<AllDocumentTypes>;\n}`,\n\t\t\t\t\tclientModuleCode,\n\t\t\t\t);\n\t\t\t\tclientModuleCode = addSection(\n\t\t\t\t\t`interface CreateMigration {\n\t(): ${clientImportName}.Migration<AllDocumentTypes>;\n}`,\n\t\t\t\t\tclientModuleCode,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tclientModuleCode = addSection(\n\t\t\t\t\t`interface CreateClient {\n\t(repositoryNameOrEndpoint: string, options?: ${clientImportName}.ClientConfig): ${clientImportName}.Client;\n}`,\n\t\t\t\t\tclientModuleCode,\n\t\t\t\t);\n\t\t\t\tclientModuleCode = addSection(\n\t\t\t\t\t`interface CreateWriteClient {\n\t(repositoryNameOrEndpoint: string, options?: ${clientImportName}.WriteClientConfig): ${clientImportName}.WriteClient;\n}`,\n\t\t\t\t\tclientModuleCode,\n\t\t\t\t);\n\t\t\t\tclientModuleCode = addSection(\n\t\t\t\t\t`interface CreateMigration {\n\t(): ${clientImportName}.Migration;\n}`,\n\t\t\t\t\tclientModuleCode,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (config.clientIntegration.includeContentNamespace) {\n\t\t\tclientModuleCode = addSection(\n\t\t\t\tsource`\n\t\t\t\t\tnamespace Content {\n\t\t\t\t\t\texport type {\n\t\t\t\t\t\t\t${contentTypeNames.join(\",\\n\")}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t`,\n\t\t\t\tclientModuleCode,\n\t\t\t);\n\t\t}\n\n\t\tcode = addSection(\n\t\t\tsource`\n\t\t\t\tdeclare module \"@prismicio/client\" {\n\t\t\t\t\t${clientModuleCode}\n\t\t\t\t}\n\t\t\t`,\n\t\t\tcode,\n\t\t);\n\t}\n\n\treturn code;\n}\n"],"mappings":";;;;;;;;AAaA,MAAM,QAAQ,IAAI,SAA0B,EAAE,SAAS,KAAM,CAAC;AAe9D,SAAgB,cAAc,SAA8B,EAAE,EAAU;CACvE,MAAM,eAAe,OAAO,gBAAgB,EAAE;CAC9C,MAAM,iBAAiB,OAAO,SAAS;CAEvC,IAAI,OAAO;CAEX,MAAM,gBAAgB,OAAO,iBAAiB;CAC9C,IAAI,mBAAmB;AAEvB,QAAO,QAAQ,kCAAkC,cAAc,KAAK,KAAK;AAEzE,KACC,OAAO,mBAAmB,gCAC1B,OAAO,mBAAmB;MAEtB,kBAAkB,qBAAqB;AAC1C,sBAAmB;AAInB,UAAO,QAAQ,oBAAoB,iBAAiB,6BAA6B,KAAK;;;AAIxF,QAAO,WAAW,4DAA4D,KAAK;AAEnF,QAAO,WACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CA,KACA;CAED,MAAM,mBAA6B,EAAE;AAErC,KAAI,OAAO,kBAAkB;EAC5B,MAAM,4BAAsC,EAAE;AAE9C,OAAK,MAAM,SAAS,OAAO,kBAAkB;GAC5C,MAAM,iBAAiB,oBAAoB;IAC1C;IACA,WAAW,OAAO;IAClB;IACA,OAAO,iBAAiB,QAAQ,KAAA;IAChC,CAAC;AAEF,QAAK,MAAM,iBAAiB,eAAe,eAC1C,QAAO,WAAW,cAAc,MAAM,KAAK;AAG5C,UAAO,WAAW,eAAe,MAAM,KAAK;AAE5C,6BAA0B,KAAK,eAAe,KAAK;AAEnD,oBAAiB,KAAK,eAAe,KAAK;AAC1C,oBAAiB,KAAK,GAAG,eAAe,iBAAiB;;AAG1D,MAAI,OAAO,iBAAiB,SAAS,GAAG;GACvC,MAAM,4BAA4B;AAGlC,UAAO,WACN,eAAe,0BAA0B,KAHZ,WAAW,0BAA0B,CAGE,IACpE,KACA;AAED,oBAAiB,KAAK,0BAA0B;;;AAIlD,KAAI,OAAO,kBACV,MAAK,MAAM,SAAS,OAAO,mBAAmB;EAC7C,MAAM,kBAAkB,qBAAqB;GAC5C;GACA;GACA,OAAO,iBAAiB,QAAQ,KAAA;GAChC,CAAC;AAEF,OAAK,MAAM,iBAAiB,gBAAgB,eAC3C,QAAO,WAAW,cAAc,MAAM,KAAK;AAG5C,SAAO,WAAW,gBAAgB,MAAM,KAAK;AAE7C,mBAAiB,KAAK,gBAAgB,KAAK;AAC3C,mBAAiB,KAAK,GAAG,gBAAgB,iBAAiB;;AAI5D,KACC,OAAO,mBAAmB,gCAC1B,OAAO,mBAAmB,yBACzB;EACD,IAAI,mBAAmB;AAEvB,MAAI,OAAO,kBAAkB,6BAC5B,MAAK,OAAO,kBAAkB,UAAU,KAAK,GAAG;AAC/C,sBAAmB,WAClB;gDAC2C,iBAAiB,kBAAkB,iBAAiB;IAE/F,iBACA;AACD,sBAAmB,WAClB;+CAC0C,iBAAiB,uBAAuB,iBAAiB;IAEnG,iBACA;AACD,sBAAmB,WAClB;OACE,iBAAiB;IAEnB,iBACA;SACK;AACN,sBAAmB,WAClB;gDAC2C,iBAAiB,kBAAkB,iBAAiB;IAE/F,iBACA;AACD,sBAAmB,WAClB;gDAC2C,iBAAiB,uBAAuB,iBAAiB;IAEpG,iBACA;AACD,sBAAmB,WAClB;OACE,iBAAiB;IAEnB,iBACA;;AAIH,MAAI,OAAO,kBAAkB,wBAC5B,oBAAmB,WAClB,MAAM;;;SAGD,iBAAiB,KAAK,MAAM,CAAC;;;OAIlC,iBACA;AAGF,SAAO,WACN,MAAM;;OAEF,iBAAiB;;MAGrB,KACA;;AAGF,QAAO"}
package/dist/index.cjs DELETED
@@ -1,7 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_generateTypes = require("./generateTypes.cjs");
3
- const require_detectTypesProvider = require("./detectTypesProvider.cjs");
4
- const require_constants = require("./cli/constants.cjs");
5
- exports.NON_EDITABLE_FILE_HEADER = require_constants.NON_EDITABLE_FILE_HEADER;
6
- exports.detectTypesProvider = require_detectTypesProvider.detectTypesProvider;
7
- exports.generateTypes = require_generateTypes.generateTypes;
package/dist/index.d.ts DELETED
@@ -1,5 +0,0 @@
1
- import { GenerateTypesConfig, TypesProvider, generateTypes } from "./generateTypes.js";
2
- import { DetectTypesProviderConfig, detectTypesProvider } from "./detectTypesProvider.js";
3
- import { Config } from "./cli/configSchema.js";
4
- import { NON_EDITABLE_FILE_HEADER } from "./cli/constants.js";
5
- export { type Config, type DetectTypesProviderConfig, type GenerateTypesConfig, NON_EDITABLE_FILE_HEADER, type TypesProvider, detectTypesProvider, generateTypes };
package/dist/index.js DELETED
@@ -1,4 +0,0 @@
1
- import { generateTypes } from "./generateTypes.js";
2
- import { detectTypesProvider } from "./detectTypesProvider.js";
3
- import { NON_EDITABLE_FILE_HEADER } from "./cli/constants.js";
4
- export { NON_EDITABLE_FILE_HEADER, detectTypesProvider, generateTypes };
@@ -1,10 +0,0 @@
1
- const require_addTrailingNewLine = require("./addTrailingNewLine.cjs");
2
- //#region src/lib/addBlankLine.ts
3
- function addBlankLine(state, config) {
4
- if ((!state || state.endsWith("\n\n")) && !config?.force) return state;
5
- else return require_addTrailingNewLine.addTrailingNewLine(state) + "\n";
6
- }
7
- //#endregion
8
- exports.addBlankLine = addBlankLine;
9
-
10
- //# sourceMappingURL=addBlankLine.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"addBlankLine.cjs","names":["addTrailingNewLine"],"sources":["../../src/lib/addBlankLine.ts"],"sourcesContent":["import { addTrailingNewLine } from \"./addTrailingNewLine\";\n\ntype AddBlankLineConfig = {\n\tforce?: boolean;\n};\n\nexport function addBlankLine(state: string, config?: AddBlankLineConfig): string {\n\tif ((!state || state.endsWith(\"\\n\\n\")) && !config?.force) {\n\t\treturn state;\n\t} else {\n\t\treturn addTrailingNewLine(state) + \"\\n\";\n\t}\n}\n"],"mappings":";;AAMA,SAAgB,aAAa,OAAe,QAAqC;AAChF,MAAK,CAAC,SAAS,MAAM,SAAS,OAAO,KAAK,CAAC,QAAQ,MAClD,QAAO;KAEP,QAAOA,2BAAAA,mBAAmB,MAAM,GAAG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"addBlankLine.js","names":[],"sources":["../../src/lib/addBlankLine.ts"],"sourcesContent":["import { addTrailingNewLine } from \"./addTrailingNewLine\";\n\ntype AddBlankLineConfig = {\n\tforce?: boolean;\n};\n\nexport function addBlankLine(state: string, config?: AddBlankLineConfig): string {\n\tif ((!state || state.endsWith(\"\\n\\n\")) && !config?.force) {\n\t\treturn state;\n\t} else {\n\t\treturn addTrailingNewLine(state) + \"\\n\";\n\t}\n}\n"],"mappings":";;AAMA,SAAgB,aAAa,OAAe,QAAqC;AAChF,MAAK,CAAC,SAAS,MAAM,SAAS,OAAO,KAAK,CAAC,QAAQ,MAClD,QAAO;KAEP,QAAO,mBAAmB,MAAM,GAAG"}
@@ -1,9 +0,0 @@
1
- const require_addTrailingNewLine = require("./addTrailingNewLine.cjs");
2
- //#region src/lib/addLine.ts
3
- function addLine(line, state) {
4
- return require_addTrailingNewLine.addTrailingNewLine(state) + line;
5
- }
6
- //#endregion
7
- exports.addLine = addLine;
8
-
9
- //# sourceMappingURL=addLine.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"addLine.cjs","names":["addTrailingNewLine"],"sources":["../../src/lib/addLine.ts"],"sourcesContent":["import { addTrailingNewLine } from \"./addTrailingNewLine\";\n\nexport function addLine(line: string, state: string): string {\n\treturn addTrailingNewLine(state) + line;\n}\n"],"mappings":";;AAEA,SAAgB,QAAQ,MAAc,OAAuB;AAC5D,QAAOA,2BAAAA,mBAAmB,MAAM,GAAG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"addLine.js","names":[],"sources":["../../src/lib/addLine.ts"],"sourcesContent":["import { addTrailingNewLine } from \"./addTrailingNewLine\";\n\nexport function addLine(line: string, state: string): string {\n\treturn addTrailingNewLine(state) + line;\n}\n"],"mappings":";;AAEA,SAAgB,QAAQ,MAAc,OAAuB;AAC5D,QAAO,mBAAmB,MAAM,GAAG"}
@@ -1,9 +0,0 @@
1
- const require_addBlankLine = require("./addBlankLine.cjs");
2
- //#region src/lib/addSection.ts
3
- function addSection(section, state) {
4
- return require_addBlankLine.addBlankLine(state) + section;
5
- }
6
- //#endregion
7
- exports.addSection = addSection;
8
-
9
- //# sourceMappingURL=addSection.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"addSection.cjs","names":["addBlankLine"],"sources":["../../src/lib/addSection.ts"],"sourcesContent":["import { addBlankLine } from \"./addBlankLine\";\n\nexport function addSection(section: string, state: string): string {\n\treturn addBlankLine(state) + section;\n}\n"],"mappings":";;AAEA,SAAgB,WAAW,SAAiB,OAAuB;AAClE,QAAOA,qBAAAA,aAAa,MAAM,GAAG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"addSection.js","names":[],"sources":["../../src/lib/addSection.ts"],"sourcesContent":["import { addBlankLine } from \"./addBlankLine\";\n\nexport function addSection(section: string, state: string): string {\n\treturn addBlankLine(state) + section;\n}\n"],"mappings":";;AAEA,SAAgB,WAAW,SAAiB,OAAuB;AAClE,QAAO,aAAa,MAAM,GAAG"}
@@ -1,9 +0,0 @@
1
- //#region src/lib/addTrailingNewLine.ts
2
- function addTrailingNewLine(state, config) {
3
- if ((!state || state.endsWith("\n")) && !config?.force) return state;
4
- else return state + "\n";
5
- }
6
- //#endregion
7
- exports.addTrailingNewLine = addTrailingNewLine;
8
-
9
- //# sourceMappingURL=addTrailingNewLine.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"addTrailingNewLine.js","names":[],"sources":["../../src/lib/addTrailingNewLine.ts"],"sourcesContent":["type AddTrailingNewLineConfig = {\n\tforce?: boolean;\n};\n\nexport function addTrailingNewLine(state: string, config?: AddTrailingNewLineConfig): string {\n\tif ((!state || state.endsWith(\"\\n\")) && !config?.force) {\n\t\treturn state;\n\t} else {\n\t\treturn state + \"\\n\";\n\t}\n}\n"],"mappings":";AAIA,SAAgB,mBAAmB,OAAe,QAA2C;AAC5F,MAAK,CAAC,SAAS,MAAM,SAAS,KAAK,KAAK,CAAC,QAAQ,MAChD,QAAO;KAEP,QAAO,QAAQ"}