prismic-ts-codegen 0.1.26 → 0.1.27-alpha.0
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.
|
@@ -74,7 +74,7 @@ function buildFieldProperty(args) {
|
|
|
74
74
|
switch ((_h = args.field.config) == null ? void 0 : _h.select) {
|
|
75
75
|
case "document": {
|
|
76
76
|
if ("customtypes" in args.field.config && args.field.config.customtypes && args.field.config.customtypes.length > 0) {
|
|
77
|
-
const customTypeIDsUnion = buildUnion.buildUnion(args.field.config.customtypes.map((type) => `"${type}"`));
|
|
77
|
+
const customTypeIDsUnion = buildUnion.buildUnion(args.field.config.customtypes.map((type) => `"${typeof type === "string" ? type : type.id}"`));
|
|
78
78
|
code = addLine.addLine(`${name}: prismic.ContentRelationshipField<${customTypeIDsUnion}>;`, code);
|
|
79
79
|
} else {
|
|
80
80
|
code = addLine.addLine(`${name}: prismic.ContentRelationshipField;`, code);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildFieldProperties.cjs","sources":["../../../src/lib/buildFieldProperties.ts"],"sourcesContent":["import {\n\ttype CustomTypeModelField,\n\tCustomTypeModelFieldType,\n} from \"@prismicio/client\";\nimport { source, stripIndent } from \"common-tags\";\n\nimport { AuxiliaryType, FieldConfigs, FieldPath } from \"../types\";\n\nimport { addLine } from \"./addLine\";\nimport { addSection } from \"./addSection\";\nimport { buildFieldDocs } from \"./buildFieldDocs\";\nimport { buildTypeName } from \"./buildTypeName\";\nimport { buildUnion } from \"./buildUnion\";\nimport { getHumanReadablePath } from \"./getHumanReadablePath\";\n\ntype BuildFieldPropertyArgs = Pick<\n\tBuildFieldPropertiesArgs,\n\t\"path\" | \"fieldConfigs\" | \"tabName\"\n> & {\n\tname: string;\n\tfield: CustomTypeModelField;\n};\n\ntype BuildFieldPropertyReturnType = {\n\tcode: string;\n\tauxiliaryTypes: AuxiliaryType[];\n\tcontentTypeNames: string[];\n};\n\nfunction buildFieldProperty(\n\targs: BuildFieldPropertyArgs,\n): BuildFieldPropertyReturnType {\n\tlet code = buildFieldDocs({\n\t\tname: args.name,\n\t\tfield: args.field,\n\t\tpath: args.path,\n\t\ttabName: args.tabName,\n\t});\n\n\tconst auxiliaryTypes: AuxiliaryType[] = [];\n\tconst contentTypeNames: string[] = [];\n\n\tconst name =\n\t\targs.name.includes(\"-\") ||\n\t\targs.name.includes(\":\") ||\n\t\t/^[0-9]/.test(args.name)\n\t\t\t? `\"${args.name}\"`\n\t\t\t: args.name;\n\n\tswitch (args.field.type) {\n\t\tcase \"UID\": {\n\t\t\t// UID fields are not included in Data.\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Boolean\": {\n\t\t\tcode = addLine(`${name}: prismic.BooleanField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Color\": {\n\t\t\tcode = addLine(`${name}: prismic.ColorField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Date\": {\n\t\t\tcode = addLine(`${name}: prismic.DateField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Embed\": {\n\t\t\tconst providerTypes: string[] = [];\n\n\t\t\tif (args.fieldConfigs.embed?.providerTypes) {\n\t\t\t\tfor (const providerType in args.fieldConfigs.embed?.providerTypes) {\n\t\t\t\t\tconst configuredProviderType =\n\t\t\t\t\t\targs.fieldConfigs.embed?.providerTypes[providerType];\n\n\t\t\t\t\tproviderTypes.push(\n\t\t\t\t\t\t`({ provider_name: \"${providerType}\" } & ${configuredProviderType})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst providerTypesUnion = buildUnion(providerTypes);\n\n\t\t\tcode =\n\t\t\t\tproviderTypes.length > 0\n\t\t\t\t\t? addLine(\n\t\t\t\t\t\t\t`${name}: prismic.EmbedField<prismic.AnyOEmbed & prismic.OEmbedExtra & (${providerTypesUnion})>`,\n\t\t\t\t\t\t\tcode,\n\t\t\t\t\t )\n\t\t\t\t\t: addLine(`${name}: prismic.EmbedField`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"GeoPoint\": {\n\t\t\tcode = addLine(`${name}: prismic.GeoPointField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Image\": {\n\t\t\tif (\n\t\t\t\targs.field.config?.thumbnails &&\n\t\t\t\targs.field.config.thumbnails.length > 0\n\t\t\t) {\n\t\t\t\tconst thumbnailNames = buildUnion(\n\t\t\t\t\targs.field.config.thumbnails.map((thumb) => `\"${thumb.name}\"`),\n\t\t\t\t);\n\n\t\t\t\tcode = addLine(`${name}: prismic.ImageField<${thumbnailNames}>;`, code);\n\t\t\t} else {\n\t\t\t\tcode = addLine(`${name}: prismic.ImageField<never>;`, code);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"IntegrationFields\": {\n\t\t\tconst catalogType = args.field.config?.catalog\n\t\t\t\t? args.fieldConfigs.integrationFields?.catalogTypes?.[\n\t\t\t\t\t\targs.field.config.catalog\n\t\t\t\t ]\n\t\t\t\t: undefined;\n\n\t\t\tif (catalogType) {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.IntegrationField<${catalogType}>;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcode = addLine(`${name}: prismic.IntegrationField;`, code);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Link\": {\n\t\t\tconst variants =\n\t\t\t\targs.field.config &&\n\t\t\t\t\"variants\" in args.field.config &&\n\t\t\t\tArray.isArray(args.field.config.variants) &&\n\t\t\t\targs.field.config.variants.length > 0\n\t\t\t\t\t? args.field.config.variants\n\t\t\t\t\t\t\t.map((variant) => `\"${variant.replace(/\\\"/g, '\\\\\"')}\"`)\n\t\t\t\t\t\t\t.join(\" | \")\n\t\t\t\t\t: \"never\";\n\n\t\t\tswitch (args.field.config?.select) {\n\t\t\t\tcase \"document\": {\n\t\t\t\t\tif (\n\t\t\t\t\t\t\"customtypes\" in args.field.config &&\n\t\t\t\t\t\targs.field.config.customtypes &&\n\t\t\t\t\t\targs.field.config.customtypes.length > 0\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst customTypeIDsUnion = buildUnion(\n\t\t\t\t\t\t\targs.field.config.customtypes.map((type) => `\"${type}\"`),\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tcode = addLine(\n\t\t\t\t\t\t\t`${name}: prismic.ContentRelationshipField<${customTypeIDsUnion}>;`,\n\t\t\t\t\t\t\tcode,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcode = addLine(`${name}: prismic.ContentRelationshipField;`, code);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase \"media\": {\n\t\t\t\t\tcode = addLine(\n\t\t\t\t\t\t`${name}: prismic.LinkToMediaField<prismic.FieldState, ${variants}>;`,\n\t\t\t\t\t\tcode,\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tdefault: {\n\t\t\t\t\tlet type = `prismic.LinkField<string, string, unknown, prismic.FieldState, ${variants}>`;\n\n\t\t\t\t\tif (args.field.config?.repeat) {\n\t\t\t\t\t\ttype = `prismic.Repeatable<${type}>`;\n\t\t\t\t\t}\n\n\t\t\t\t\tcode = addLine(`${name}: ${type};`, code);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Number\": {\n\t\t\tcode = addLine(`${name}: prismic.NumberField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"StructuredText\": {\n\t\t\tcode = addLine(`${name}: prismic.RichTextField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Select\": {\n\t\t\tconst options: string[] =\n\t\t\t\targs.field.config?.options?.map((option) => `\"${option}\"`) || [];\n\t\t\tconst optionsType = options.length ? buildUnion(options) : \"string\";\n\n\t\t\tconst hasDefault = Boolean(args.field.config?.default_value);\n\n\t\t\tif (hasDefault) {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.SelectField<${optionsType}, \"filled\">;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.SelectField${\n\t\t\t\t\t\toptions.length > 0 ? `<${optionsType}>` : \"\"\n\t\t\t\t\t};`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Table\": {\n\t\t\tcode = addLine(`${name}: prismic.TableField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Text\": {\n\t\t\tcode = addLine(`${name}: prismic.KeyTextField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Timestamp\": {\n\t\t\tcode = addLine(`${name}: prismic.TimestampField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Group\": {\n\t\t\tconst groupPathParts = args.path.filter(\n\t\t\t\t(part) =>\n\t\t\t\t\tpart.model !== undefined &&\n\t\t\t\t\t\"type\" in part.model &&\n\t\t\t\t\tpart.model.type === CustomTypeModelFieldType.Group,\n\t\t\t);\n\t\t\tconst isNestedGroup = groupPathParts.length > 0;\n\n\t\t\tlet itemName;\n\t\t\tif (\n\t\t\t\targs.path[0].model &&\n\t\t\t\t\"type\" in args.path[0].model &&\n\t\t\t\targs.path[0].model.type === \"SharedSlice\"\n\t\t\t) {\n\t\t\t\tconst [slicePathPart, variationPathPart, zonePathPart] = args.path;\n\n\t\t\t\titemName = buildTypeName(\n\t\t\t\t\tslicePathPart.name,\n\t\t\t\t\t\"Slice\",\n\t\t\t\t\tvariationPathPart.name,\n\t\t\t\t\tzonePathPart.name,\n\t\t\t\t\t...groupPathParts.map((part) => part.name),\n\t\t\t\t\targs.name,\n\t\t\t\t\t\"Item\",\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\titemName = buildTypeName(\n\t\t\t\t\targs.path[0].name,\n\t\t\t\t\t\"Document\",\n\t\t\t\t\t\"Data\",\n\t\t\t\t\t...groupPathParts.map((part) => part.name),\n\t\t\t\t\targs.name,\n\t\t\t\t\t\"Item\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst path: FieldPath = [\n\t\t\t\t...args.path,\n\t\t\t\t{\n\t\t\t\t\tname: name,\n\t\t\t\t\tmodel: args.field,\n\t\t\t\t},\n\t\t\t];\n\t\t\tconst humanReadablePath = getHumanReadablePath({ path });\n\n\t\t\tconst itemFieldProperties = buildFieldProperties({\n\t\t\t\tfields: args.field.config?.fields || {},\n\t\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\t\tpath,\n\t\t\t});\n\t\t\tauxiliaryTypes.push(...itemFieldProperties.auxiliaryTypes);\n\t\t\tcontentTypeNames.push(...itemFieldProperties.contentTypeNames);\n\n\t\t\tauxiliaryTypes.push({\n\t\t\t\tname: itemName,\n\t\t\t\tcode: source`\n\t\t\t\t\t/**\n\t\t\t\t\t * Item in *${humanReadablePath}*\n\t\t\t\t\t */\n\t\t\t\t\texport interface ${itemName} {\n\t\t\t\t\t\t${itemFieldProperties.code}\n\t\t\t\t\t}\n\t\t\t\t`,\n\t\t\t});\n\t\t\tcontentTypeNames.push(itemName);\n\n\t\t\tif (isNestedGroup) {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.NestedGroupField<Simplify<${itemName}>>;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.GroupField<Simplify<${itemName}>>;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Slices\": {\n\t\t\tconst choiceNames: string[] = [];\n\n\t\t\tif (args.field.config?.choices) {\n\t\t\t\tfor (const choiceID in args.field.config.choices) {\n\t\t\t\t\tconst choice = args.field.config.choices[choiceID];\n\n\t\t\t\t\tif (choice.type === \"SharedSlice\") {\n\t\t\t\t\t\t// TODO: Verify that the Shared Slice\n\t\t\t\t\t\t// is provided to the global\n\t\t\t\t\t\t// `sharedSlices` array. If it is not,\n\t\t\t\t\t\t// the type won't exist, so we can't\n\t\t\t\t\t\t// add it to the union. We should\n\t\t\t\t\t\t// probably throw an error if we reach\n\t\t\t\t\t\t// that state, or maybe the input can\n\t\t\t\t\t\t// be validated early so we don't\n\t\t\t\t\t\t// generate any code using invalid\n\t\t\t\t\t\t// models.\n\t\t\t\t\t\tchoiceNames.push(buildTypeName(choiceID, \"Slice\"));\n\t\t\t\t\t} else if (choice.type === \"Slice\") {\n\t\t\t\t\t\tconst sliceName = buildTypeName(\n\t\t\t\t\t\t\targs.path[0].name,\n\t\t\t\t\t\t\t\"Document\",\n\t\t\t\t\t\t\t\"Data\",\n\t\t\t\t\t\t\targs.name,\n\t\t\t\t\t\t\tchoiceID,\n\t\t\t\t\t\t\t\"Slice\",\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tlet primaryInterfaceName: string | undefined;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tchoice[\"non-repeat\"] &&\n\t\t\t\t\t\t\tObject.keys(choice[\"non-repeat\"]).length > 0\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tprimaryInterfaceName = buildTypeName(sliceName, \"Primary\");\n\n\t\t\t\t\t\t\tconst path: FieldPath = [\n\t\t\t\t\t\t\t\t...args.path,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: args.name,\n\t\t\t\t\t\t\t\t\tmodel: args.field,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: choiceID,\n\t\t\t\t\t\t\t\t\tmodel: choice,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: \"primary\",\n\t\t\t\t\t\t\t\t\tlabel: \"Primary\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tconst humanReadablePath = getHumanReadablePath({ path });\n\n\t\t\t\t\t\t\tconst primaryFieldProperties = buildFieldProperties({\n\t\t\t\t\t\t\t\tfields: choice[\"non-repeat\"],\n\t\t\t\t\t\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tauxiliaryTypes.push(...primaryFieldProperties.auxiliaryTypes);\n\t\t\t\t\t\t\tcontentTypeNames.push(...primaryFieldProperties.contentTypeNames);\n\n\t\t\t\t\t\t\tlet primaryCode = stripIndent`\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * Primary content in *${humanReadablePath}*\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t`;\n\t\t\t\t\t\t\tprimaryCode = primaryFieldProperties.code\n\t\t\t\t\t\t\t\t? addLine(\n\t\t\t\t\t\t\t\t\t\tsource`\n\t\t\t\t\t\t\t\t\t\t\texport interface ${primaryInterfaceName} {\n\t\t\t\t\t\t\t\t\t\t\t\t${primaryFieldProperties.code}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\tprimaryCode,\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: addLine(\n\t\t\t\t\t\t\t\t\t\t`export interface ${primaryInterfaceName} {}`,\n\t\t\t\t\t\t\t\t\t\tprimaryCode,\n\t\t\t\t\t\t\t\t );\n\n\t\t\t\t\t\t\tauxiliaryTypes.push({\n\t\t\t\t\t\t\t\tname: primaryInterfaceName,\n\t\t\t\t\t\t\t\tcode: primaryCode,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tcontentTypeNames.push(primaryInterfaceName);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet itemInterfaceName: string | undefined;\n\t\t\t\t\t\tif (choice.repeat && Object.keys(choice.repeat).length > 0) {\n\t\t\t\t\t\t\titemInterfaceName = buildTypeName(sliceName, \"Item\");\n\n\t\t\t\t\t\t\tconst path: FieldPath = [\n\t\t\t\t\t\t\t\t...args.path,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: args.name,\n\t\t\t\t\t\t\t\t\tmodel: args.field,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: choiceID,\n\t\t\t\t\t\t\t\t\tmodel: choice,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: \"items\",\n\t\t\t\t\t\t\t\t\tlabel: \"Items\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tconst humanReadablePath = getHumanReadablePath({ path });\n\n\t\t\t\t\t\t\tconst itemFieldProperties = buildFieldProperties({\n\t\t\t\t\t\t\t\tfields: choice.repeat,\n\t\t\t\t\t\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tauxiliaryTypes.push(...itemFieldProperties.auxiliaryTypes);\n\t\t\t\t\t\t\tcontentTypeNames.push(...itemFieldProperties.contentTypeNames);\n\n\t\t\t\t\t\t\tlet itemCode = stripIndent`\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * Item content in *${humanReadablePath}*\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t`;\n\t\t\t\t\t\t\titemCode = itemFieldProperties.code\n\t\t\t\t\t\t\t\t? addLine(\n\t\t\t\t\t\t\t\t\t\tsource`\n\t\t\t\t\t\t\t\t\t\t\texport interface ${itemInterfaceName} {\n\t\t\t\t\t\t\t\t\t\t\t\t${itemFieldProperties.code}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\titemCode,\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: addLine(`export interface ${itemInterfaceName} {}`, itemCode);\n\n\t\t\t\t\t\t\tauxiliaryTypes.push({\n\t\t\t\t\t\t\t\tname: itemInterfaceName,\n\t\t\t\t\t\t\t\tcode: itemCode,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tcontentTypeNames.push(itemInterfaceName);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tauxiliaryTypes.push({\n\t\t\t\t\t\t\tname: sliceName,\n\t\t\t\t\t\t\tcode: stripIndent`\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * Slice for *${getHumanReadablePath({\n\t\t\t\t\t\t\t\t\t\tpath: [\n\t\t\t\t\t\t\t\t\t\t\t...args.path,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tname: args.name,\n\t\t\t\t\t\t\t\t\t\t\t\tmodel: args.field,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t})}*\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\texport type ${sliceName} = prismic.Slice<\"${choiceID}\", ${\n\t\t\t\t\t\t\t\tprimaryInterfaceName\n\t\t\t\t\t\t\t\t\t? `Simplify<${primaryInterfaceName}>`\n\t\t\t\t\t\t\t\t\t: `Record<string, never>`\n\t\t\t\t\t\t\t}, ${\n\t\t\t\t\t\t\t\titemInterfaceName ? `Simplify<${itemInterfaceName}>` : `never`\n\t\t\t\t\t\t\t}>\n\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tchoiceNames.push(sliceName);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst choiceUnionName = buildTypeName(\n\t\t\t\targs.path[0].name,\n\t\t\t\t\"Document\",\n\t\t\t\t\"Data\",\n\t\t\t\targs.name,\n\t\t\t\t\"Slice\",\n\t\t\t);\n\t\t\tconst choiceUnion = buildUnion(choiceNames);\n\t\t\tauxiliaryTypes.push({\n\t\t\t\tname: choiceUnionName,\n\t\t\t\tcode: `type ${choiceUnionName} = ${choiceUnion}`,\n\t\t\t});\n\t\t\tcontentTypeNames.push(choiceUnionName);\n\n\t\t\tcode = addLine(`${name}: prismic.SliceZone<${choiceUnionName}>;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tdefault: {\n\t\t\tcode = addLine(`${name}: unknown;`, code);\n\t\t}\n\t}\n\n\treturn {\n\t\tcode,\n\t\tauxiliaryTypes,\n\t\tcontentTypeNames,\n\t};\n}\n\ntype BuildFieldPropertiesArgs = {\n\tfields: Record<string, CustomTypeModelField>;\n\tpath: FieldPath;\n\tfieldConfigs: FieldConfigs;\n\ttabName?: string;\n};\n\ntype BuildFieldPropertiesReturnType = {\n\tcode: string;\n\tauxiliaryTypes: AuxiliaryType[];\n\tcontentTypeNames: string[];\n};\n\nexport function buildFieldProperties(\n\targs: BuildFieldPropertiesArgs,\n): BuildFieldPropertiesReturnType {\n\tlet code = \"\";\n\n\tconst auxiliaryTypes: AuxiliaryType[] = [];\n\tconst contentTypeNames: string[] = [];\n\n\tfor (const name in args.fields) {\n\t\tconst field = args.fields[name];\n\n\t\tconst fieldProperty = buildFieldProperty({\n\t\t\tname,\n\t\t\tfield,\n\t\t\tpath: args.path,\n\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\ttabName: args.tabName,\n\t\t});\n\n\t\tcode = addSection(fieldProperty.code, code);\n\n\t\tauxiliaryTypes.push(...fieldProperty.auxiliaryTypes);\n\t\tcontentTypeNames.push(...fieldProperty.contentTypeNames);\n\t}\n\n\treturn {\n\t\tcode,\n\t\tauxiliaryTypes,\n\t\tcontentTypeNames,\n\t};\n}\n"],"names":["buildFieldDocs","addLine","buildUnion","CustomTypeModelFieldType","buildTypeName","getHumanReadablePath","source","stripIndent","addSection"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"buildFieldProperties.cjs","sources":["../../../src/lib/buildFieldProperties.ts"],"sourcesContent":["import {\n\ttype CustomTypeModelField,\n\tCustomTypeModelFieldType,\n} from \"@prismicio/client\";\nimport { source, stripIndent } from \"common-tags\";\n\nimport { AuxiliaryType, FieldConfigs, FieldPath } from \"../types\";\n\nimport { addLine } from \"./addLine\";\nimport { addSection } from \"./addSection\";\nimport { buildFieldDocs } from \"./buildFieldDocs\";\nimport { buildTypeName } from \"./buildTypeName\";\nimport { buildUnion } from \"./buildUnion\";\nimport { getHumanReadablePath } from \"./getHumanReadablePath\";\n\ntype BuildFieldPropertyArgs = Pick<\n\tBuildFieldPropertiesArgs,\n\t\"path\" | \"fieldConfigs\" | \"tabName\"\n> & {\n\tname: string;\n\tfield: CustomTypeModelField;\n};\n\ntype BuildFieldPropertyReturnType = {\n\tcode: string;\n\tauxiliaryTypes: AuxiliaryType[];\n\tcontentTypeNames: string[];\n};\n\nfunction buildFieldProperty(\n\targs: BuildFieldPropertyArgs,\n): BuildFieldPropertyReturnType {\n\tlet code = buildFieldDocs({\n\t\tname: args.name,\n\t\tfield: args.field,\n\t\tpath: args.path,\n\t\ttabName: args.tabName,\n\t});\n\n\tconst auxiliaryTypes: AuxiliaryType[] = [];\n\tconst contentTypeNames: string[] = [];\n\n\tconst name =\n\t\targs.name.includes(\"-\") ||\n\t\targs.name.includes(\":\") ||\n\t\t/^[0-9]/.test(args.name)\n\t\t\t? `\"${args.name}\"`\n\t\t\t: args.name;\n\n\tswitch (args.field.type) {\n\t\tcase \"UID\": {\n\t\t\t// UID fields are not included in Data.\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Boolean\": {\n\t\t\tcode = addLine(`${name}: prismic.BooleanField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Color\": {\n\t\t\tcode = addLine(`${name}: prismic.ColorField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Date\": {\n\t\t\tcode = addLine(`${name}: prismic.DateField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Embed\": {\n\t\t\tconst providerTypes: string[] = [];\n\n\t\t\tif (args.fieldConfigs.embed?.providerTypes) {\n\t\t\t\tfor (const providerType in args.fieldConfigs.embed?.providerTypes) {\n\t\t\t\t\tconst configuredProviderType =\n\t\t\t\t\t\targs.fieldConfigs.embed?.providerTypes[providerType];\n\n\t\t\t\t\tproviderTypes.push(\n\t\t\t\t\t\t`({ provider_name: \"${providerType}\" } & ${configuredProviderType})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst providerTypesUnion = buildUnion(providerTypes);\n\n\t\t\tcode =\n\t\t\t\tproviderTypes.length > 0\n\t\t\t\t\t? addLine(\n\t\t\t\t\t\t\t`${name}: prismic.EmbedField<prismic.AnyOEmbed & prismic.OEmbedExtra & (${providerTypesUnion})>`,\n\t\t\t\t\t\t\tcode,\n\t\t\t\t\t )\n\t\t\t\t\t: addLine(`${name}: prismic.EmbedField`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"GeoPoint\": {\n\t\t\tcode = addLine(`${name}: prismic.GeoPointField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Image\": {\n\t\t\tif (\n\t\t\t\targs.field.config?.thumbnails &&\n\t\t\t\targs.field.config.thumbnails.length > 0\n\t\t\t) {\n\t\t\t\tconst thumbnailNames = buildUnion(\n\t\t\t\t\targs.field.config.thumbnails.map((thumb) => `\"${thumb.name}\"`),\n\t\t\t\t);\n\n\t\t\t\tcode = addLine(`${name}: prismic.ImageField<${thumbnailNames}>;`, code);\n\t\t\t} else {\n\t\t\t\tcode = addLine(`${name}: prismic.ImageField<never>;`, code);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"IntegrationFields\": {\n\t\t\tconst catalogType = args.field.config?.catalog\n\t\t\t\t? args.fieldConfigs.integrationFields?.catalogTypes?.[\n\t\t\t\t\t\targs.field.config.catalog\n\t\t\t\t ]\n\t\t\t\t: undefined;\n\n\t\t\tif (catalogType) {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.IntegrationField<${catalogType}>;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcode = addLine(`${name}: prismic.IntegrationField;`, code);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Link\": {\n\t\t\tconst variants =\n\t\t\t\targs.field.config &&\n\t\t\t\t\"variants\" in args.field.config &&\n\t\t\t\tArray.isArray(args.field.config.variants) &&\n\t\t\t\targs.field.config.variants.length > 0\n\t\t\t\t\t? args.field.config.variants\n\t\t\t\t\t\t\t.map((variant) => `\"${variant.replace(/\\\"/g, '\\\\\"')}\"`)\n\t\t\t\t\t\t\t.join(\" | \")\n\t\t\t\t\t: \"never\";\n\n\t\t\tswitch (args.field.config?.select) {\n\t\t\t\tcase \"document\": {\n\t\t\t\t\tif (\n\t\t\t\t\t\t\"customtypes\" in args.field.config &&\n\t\t\t\t\t\targs.field.config.customtypes &&\n\t\t\t\t\t\targs.field.config.customtypes.length > 0\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst customTypeIDsUnion = buildUnion(\n\t\t\t\t\t\t\targs.field.config.customtypes.map(\n\t\t\t\t\t\t\t\t(type) => `\"${typeof type === \"string\" ? type : type.id}\"`,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tcode = addLine(\n\t\t\t\t\t\t\t`${name}: prismic.ContentRelationshipField<${customTypeIDsUnion}>;`,\n\t\t\t\t\t\t\tcode,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcode = addLine(`${name}: prismic.ContentRelationshipField;`, code);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase \"media\": {\n\t\t\t\t\tcode = addLine(\n\t\t\t\t\t\t`${name}: prismic.LinkToMediaField<prismic.FieldState, ${variants}>;`,\n\t\t\t\t\t\tcode,\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tdefault: {\n\t\t\t\t\tlet type = `prismic.LinkField<string, string, unknown, prismic.FieldState, ${variants}>`;\n\n\t\t\t\t\tif (args.field.config?.repeat) {\n\t\t\t\t\t\ttype = `prismic.Repeatable<${type}>`;\n\t\t\t\t\t}\n\n\t\t\t\t\tcode = addLine(`${name}: ${type};`, code);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Number\": {\n\t\t\tcode = addLine(`${name}: prismic.NumberField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"StructuredText\": {\n\t\t\tcode = addLine(`${name}: prismic.RichTextField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Select\": {\n\t\t\tconst options: string[] =\n\t\t\t\targs.field.config?.options?.map((option) => `\"${option}\"`) || [];\n\t\t\tconst optionsType = options.length ? buildUnion(options) : \"string\";\n\n\t\t\tconst hasDefault = Boolean(args.field.config?.default_value);\n\n\t\t\tif (hasDefault) {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.SelectField<${optionsType}, \"filled\">;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.SelectField${\n\t\t\t\t\t\toptions.length > 0 ? `<${optionsType}>` : \"\"\n\t\t\t\t\t};`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Table\": {\n\t\t\tcode = addLine(`${name}: prismic.TableField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Text\": {\n\t\t\tcode = addLine(`${name}: prismic.KeyTextField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Timestamp\": {\n\t\t\tcode = addLine(`${name}: prismic.TimestampField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Group\": {\n\t\t\tconst groupPathParts = args.path.filter(\n\t\t\t\t(part) =>\n\t\t\t\t\tpart.model !== undefined &&\n\t\t\t\t\t\"type\" in part.model &&\n\t\t\t\t\tpart.model.type === CustomTypeModelFieldType.Group,\n\t\t\t);\n\t\t\tconst isNestedGroup = groupPathParts.length > 0;\n\n\t\t\tlet itemName;\n\t\t\tif (\n\t\t\t\targs.path[0].model &&\n\t\t\t\t\"type\" in args.path[0].model &&\n\t\t\t\targs.path[0].model.type === \"SharedSlice\"\n\t\t\t) {\n\t\t\t\tconst [slicePathPart, variationPathPart, zonePathPart] = args.path;\n\n\t\t\t\titemName = buildTypeName(\n\t\t\t\t\tslicePathPart.name,\n\t\t\t\t\t\"Slice\",\n\t\t\t\t\tvariationPathPart.name,\n\t\t\t\t\tzonePathPart.name,\n\t\t\t\t\t...groupPathParts.map((part) => part.name),\n\t\t\t\t\targs.name,\n\t\t\t\t\t\"Item\",\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\titemName = buildTypeName(\n\t\t\t\t\targs.path[0].name,\n\t\t\t\t\t\"Document\",\n\t\t\t\t\t\"Data\",\n\t\t\t\t\t...groupPathParts.map((part) => part.name),\n\t\t\t\t\targs.name,\n\t\t\t\t\t\"Item\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst path: FieldPath = [\n\t\t\t\t...args.path,\n\t\t\t\t{\n\t\t\t\t\tname: name,\n\t\t\t\t\tmodel: args.field,\n\t\t\t\t},\n\t\t\t];\n\t\t\tconst humanReadablePath = getHumanReadablePath({ path });\n\n\t\t\tconst itemFieldProperties = buildFieldProperties({\n\t\t\t\tfields: args.field.config?.fields || {},\n\t\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\t\tpath,\n\t\t\t});\n\t\t\tauxiliaryTypes.push(...itemFieldProperties.auxiliaryTypes);\n\t\t\tcontentTypeNames.push(...itemFieldProperties.contentTypeNames);\n\n\t\t\tauxiliaryTypes.push({\n\t\t\t\tname: itemName,\n\t\t\t\tcode: source`\n\t\t\t\t\t/**\n\t\t\t\t\t * Item in *${humanReadablePath}*\n\t\t\t\t\t */\n\t\t\t\t\texport interface ${itemName} {\n\t\t\t\t\t\t${itemFieldProperties.code}\n\t\t\t\t\t}\n\t\t\t\t`,\n\t\t\t});\n\t\t\tcontentTypeNames.push(itemName);\n\n\t\t\tif (isNestedGroup) {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.NestedGroupField<Simplify<${itemName}>>;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.GroupField<Simplify<${itemName}>>;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Slices\": {\n\t\t\tconst choiceNames: string[] = [];\n\n\t\t\tif (args.field.config?.choices) {\n\t\t\t\tfor (const choiceID in args.field.config.choices) {\n\t\t\t\t\tconst choice = args.field.config.choices[choiceID];\n\n\t\t\t\t\tif (choice.type === \"SharedSlice\") {\n\t\t\t\t\t\t// TODO: Verify that the Shared Slice\n\t\t\t\t\t\t// is provided to the global\n\t\t\t\t\t\t// `sharedSlices` array. If it is not,\n\t\t\t\t\t\t// the type won't exist, so we can't\n\t\t\t\t\t\t// add it to the union. We should\n\t\t\t\t\t\t// probably throw an error if we reach\n\t\t\t\t\t\t// that state, or maybe the input can\n\t\t\t\t\t\t// be validated early so we don't\n\t\t\t\t\t\t// generate any code using invalid\n\t\t\t\t\t\t// models.\n\t\t\t\t\t\tchoiceNames.push(buildTypeName(choiceID, \"Slice\"));\n\t\t\t\t\t} else if (choice.type === \"Slice\") {\n\t\t\t\t\t\tconst sliceName = buildTypeName(\n\t\t\t\t\t\t\targs.path[0].name,\n\t\t\t\t\t\t\t\"Document\",\n\t\t\t\t\t\t\t\"Data\",\n\t\t\t\t\t\t\targs.name,\n\t\t\t\t\t\t\tchoiceID,\n\t\t\t\t\t\t\t\"Slice\",\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tlet primaryInterfaceName: string | undefined;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tchoice[\"non-repeat\"] &&\n\t\t\t\t\t\t\tObject.keys(choice[\"non-repeat\"]).length > 0\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tprimaryInterfaceName = buildTypeName(sliceName, \"Primary\");\n\n\t\t\t\t\t\t\tconst path: FieldPath = [\n\t\t\t\t\t\t\t\t...args.path,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: args.name,\n\t\t\t\t\t\t\t\t\tmodel: args.field,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: choiceID,\n\t\t\t\t\t\t\t\t\tmodel: choice,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: \"primary\",\n\t\t\t\t\t\t\t\t\tlabel: \"Primary\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tconst humanReadablePath = getHumanReadablePath({ path });\n\n\t\t\t\t\t\t\tconst primaryFieldProperties = buildFieldProperties({\n\t\t\t\t\t\t\t\tfields: choice[\"non-repeat\"],\n\t\t\t\t\t\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tauxiliaryTypes.push(...primaryFieldProperties.auxiliaryTypes);\n\t\t\t\t\t\t\tcontentTypeNames.push(...primaryFieldProperties.contentTypeNames);\n\n\t\t\t\t\t\t\tlet primaryCode = stripIndent`\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * Primary content in *${humanReadablePath}*\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t`;\n\t\t\t\t\t\t\tprimaryCode = primaryFieldProperties.code\n\t\t\t\t\t\t\t\t? addLine(\n\t\t\t\t\t\t\t\t\t\tsource`\n\t\t\t\t\t\t\t\t\t\t\texport interface ${primaryInterfaceName} {\n\t\t\t\t\t\t\t\t\t\t\t\t${primaryFieldProperties.code}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\tprimaryCode,\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: addLine(\n\t\t\t\t\t\t\t\t\t\t`export interface ${primaryInterfaceName} {}`,\n\t\t\t\t\t\t\t\t\t\tprimaryCode,\n\t\t\t\t\t\t\t\t );\n\n\t\t\t\t\t\t\tauxiliaryTypes.push({\n\t\t\t\t\t\t\t\tname: primaryInterfaceName,\n\t\t\t\t\t\t\t\tcode: primaryCode,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tcontentTypeNames.push(primaryInterfaceName);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet itemInterfaceName: string | undefined;\n\t\t\t\t\t\tif (choice.repeat && Object.keys(choice.repeat).length > 0) {\n\t\t\t\t\t\t\titemInterfaceName = buildTypeName(sliceName, \"Item\");\n\n\t\t\t\t\t\t\tconst path: FieldPath = [\n\t\t\t\t\t\t\t\t...args.path,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: args.name,\n\t\t\t\t\t\t\t\t\tmodel: args.field,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: choiceID,\n\t\t\t\t\t\t\t\t\tmodel: choice,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: \"items\",\n\t\t\t\t\t\t\t\t\tlabel: \"Items\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tconst humanReadablePath = getHumanReadablePath({ path });\n\n\t\t\t\t\t\t\tconst itemFieldProperties = buildFieldProperties({\n\t\t\t\t\t\t\t\tfields: choice.repeat,\n\t\t\t\t\t\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tauxiliaryTypes.push(...itemFieldProperties.auxiliaryTypes);\n\t\t\t\t\t\t\tcontentTypeNames.push(...itemFieldProperties.contentTypeNames);\n\n\t\t\t\t\t\t\tlet itemCode = stripIndent`\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * Item content in *${humanReadablePath}*\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t`;\n\t\t\t\t\t\t\titemCode = itemFieldProperties.code\n\t\t\t\t\t\t\t\t? addLine(\n\t\t\t\t\t\t\t\t\t\tsource`\n\t\t\t\t\t\t\t\t\t\t\texport interface ${itemInterfaceName} {\n\t\t\t\t\t\t\t\t\t\t\t\t${itemFieldProperties.code}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\titemCode,\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: addLine(`export interface ${itemInterfaceName} {}`, itemCode);\n\n\t\t\t\t\t\t\tauxiliaryTypes.push({\n\t\t\t\t\t\t\t\tname: itemInterfaceName,\n\t\t\t\t\t\t\t\tcode: itemCode,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tcontentTypeNames.push(itemInterfaceName);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tauxiliaryTypes.push({\n\t\t\t\t\t\t\tname: sliceName,\n\t\t\t\t\t\t\tcode: stripIndent`\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * Slice for *${getHumanReadablePath({\n\t\t\t\t\t\t\t\t\t\tpath: [\n\t\t\t\t\t\t\t\t\t\t\t...args.path,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tname: args.name,\n\t\t\t\t\t\t\t\t\t\t\t\tmodel: args.field,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t})}*\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\texport type ${sliceName} = prismic.Slice<\"${choiceID}\", ${\n\t\t\t\t\t\t\t\tprimaryInterfaceName\n\t\t\t\t\t\t\t\t\t? `Simplify<${primaryInterfaceName}>`\n\t\t\t\t\t\t\t\t\t: `Record<string, never>`\n\t\t\t\t\t\t\t}, ${\n\t\t\t\t\t\t\t\titemInterfaceName ? `Simplify<${itemInterfaceName}>` : `never`\n\t\t\t\t\t\t\t}>\n\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tchoiceNames.push(sliceName);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst choiceUnionName = buildTypeName(\n\t\t\t\targs.path[0].name,\n\t\t\t\t\"Document\",\n\t\t\t\t\"Data\",\n\t\t\t\targs.name,\n\t\t\t\t\"Slice\",\n\t\t\t);\n\t\t\tconst choiceUnion = buildUnion(choiceNames);\n\t\t\tauxiliaryTypes.push({\n\t\t\t\tname: choiceUnionName,\n\t\t\t\tcode: `type ${choiceUnionName} = ${choiceUnion}`,\n\t\t\t});\n\t\t\tcontentTypeNames.push(choiceUnionName);\n\n\t\t\tcode = addLine(`${name}: prismic.SliceZone<${choiceUnionName}>;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tdefault: {\n\t\t\tcode = addLine(`${name}: unknown;`, code);\n\t\t}\n\t}\n\n\treturn {\n\t\tcode,\n\t\tauxiliaryTypes,\n\t\tcontentTypeNames,\n\t};\n}\n\ntype BuildFieldPropertiesArgs = {\n\tfields: Record<string, CustomTypeModelField>;\n\tpath: FieldPath;\n\tfieldConfigs: FieldConfigs;\n\ttabName?: string;\n};\n\ntype BuildFieldPropertiesReturnType = {\n\tcode: string;\n\tauxiliaryTypes: AuxiliaryType[];\n\tcontentTypeNames: string[];\n};\n\nexport function buildFieldProperties(\n\targs: BuildFieldPropertiesArgs,\n): BuildFieldPropertiesReturnType {\n\tlet code = \"\";\n\n\tconst auxiliaryTypes: AuxiliaryType[] = [];\n\tconst contentTypeNames: string[] = [];\n\n\tfor (const name in args.fields) {\n\t\tconst field = args.fields[name];\n\n\t\tconst fieldProperty = buildFieldProperty({\n\t\t\tname,\n\t\t\tfield,\n\t\t\tpath: args.path,\n\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\ttabName: args.tabName,\n\t\t});\n\n\t\tcode = addSection(fieldProperty.code, code);\n\n\t\tauxiliaryTypes.push(...fieldProperty.auxiliaryTypes);\n\t\tcontentTypeNames.push(...fieldProperty.contentTypeNames);\n\t}\n\n\treturn {\n\t\tcode,\n\t\tauxiliaryTypes,\n\t\tcontentTypeNames,\n\t};\n}\n"],"names":["buildFieldDocs","addLine","buildUnion","CustomTypeModelFieldType","buildTypeName","getHumanReadablePath","source","stripIndent","addSection"],"mappings":"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"}
|
|
@@ -72,7 +72,7 @@ function buildFieldProperty(args) {
|
|
|
72
72
|
switch ((_h = args.field.config) == null ? void 0 : _h.select) {
|
|
73
73
|
case "document": {
|
|
74
74
|
if ("customtypes" in args.field.config && args.field.config.customtypes && args.field.config.customtypes.length > 0) {
|
|
75
|
-
const customTypeIDsUnion = buildUnion(args.field.config.customtypes.map((type) => `"${type}"`));
|
|
75
|
+
const customTypeIDsUnion = buildUnion(args.field.config.customtypes.map((type) => `"${typeof type === "string" ? type : type.id}"`));
|
|
76
76
|
code = addLine(`${name}: prismic.ContentRelationshipField<${customTypeIDsUnion}>;`, code);
|
|
77
77
|
} else {
|
|
78
78
|
code = addLine(`${name}: prismic.ContentRelationshipField;`, code);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildFieldProperties.js","sources":["../../../src/lib/buildFieldProperties.ts"],"sourcesContent":["import {\n\ttype CustomTypeModelField,\n\tCustomTypeModelFieldType,\n} from \"@prismicio/client\";\nimport { source, stripIndent } from \"common-tags\";\n\nimport { AuxiliaryType, FieldConfigs, FieldPath } from \"../types\";\n\nimport { addLine } from \"./addLine\";\nimport { addSection } from \"./addSection\";\nimport { buildFieldDocs } from \"./buildFieldDocs\";\nimport { buildTypeName } from \"./buildTypeName\";\nimport { buildUnion } from \"./buildUnion\";\nimport { getHumanReadablePath } from \"./getHumanReadablePath\";\n\ntype BuildFieldPropertyArgs = Pick<\n\tBuildFieldPropertiesArgs,\n\t\"path\" | \"fieldConfigs\" | \"tabName\"\n> & {\n\tname: string;\n\tfield: CustomTypeModelField;\n};\n\ntype BuildFieldPropertyReturnType = {\n\tcode: string;\n\tauxiliaryTypes: AuxiliaryType[];\n\tcontentTypeNames: string[];\n};\n\nfunction buildFieldProperty(\n\targs: BuildFieldPropertyArgs,\n): BuildFieldPropertyReturnType {\n\tlet code = buildFieldDocs({\n\t\tname: args.name,\n\t\tfield: args.field,\n\t\tpath: args.path,\n\t\ttabName: args.tabName,\n\t});\n\n\tconst auxiliaryTypes: AuxiliaryType[] = [];\n\tconst contentTypeNames: string[] = [];\n\n\tconst name =\n\t\targs.name.includes(\"-\") ||\n\t\targs.name.includes(\":\") ||\n\t\t/^[0-9]/.test(args.name)\n\t\t\t? `\"${args.name}\"`\n\t\t\t: args.name;\n\n\tswitch (args.field.type) {\n\t\tcase \"UID\": {\n\t\t\t// UID fields are not included in Data.\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Boolean\": {\n\t\t\tcode = addLine(`${name}: prismic.BooleanField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Color\": {\n\t\t\tcode = addLine(`${name}: prismic.ColorField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Date\": {\n\t\t\tcode = addLine(`${name}: prismic.DateField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Embed\": {\n\t\t\tconst providerTypes: string[] = [];\n\n\t\t\tif (args.fieldConfigs.embed?.providerTypes) {\n\t\t\t\tfor (const providerType in args.fieldConfigs.embed?.providerTypes) {\n\t\t\t\t\tconst configuredProviderType =\n\t\t\t\t\t\targs.fieldConfigs.embed?.providerTypes[providerType];\n\n\t\t\t\t\tproviderTypes.push(\n\t\t\t\t\t\t`({ provider_name: \"${providerType}\" } & ${configuredProviderType})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst providerTypesUnion = buildUnion(providerTypes);\n\n\t\t\tcode =\n\t\t\t\tproviderTypes.length > 0\n\t\t\t\t\t? addLine(\n\t\t\t\t\t\t\t`${name}: prismic.EmbedField<prismic.AnyOEmbed & prismic.OEmbedExtra & (${providerTypesUnion})>`,\n\t\t\t\t\t\t\tcode,\n\t\t\t\t\t )\n\t\t\t\t\t: addLine(`${name}: prismic.EmbedField`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"GeoPoint\": {\n\t\t\tcode = addLine(`${name}: prismic.GeoPointField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Image\": {\n\t\t\tif (\n\t\t\t\targs.field.config?.thumbnails &&\n\t\t\t\targs.field.config.thumbnails.length > 0\n\t\t\t) {\n\t\t\t\tconst thumbnailNames = buildUnion(\n\t\t\t\t\targs.field.config.thumbnails.map((thumb) => `\"${thumb.name}\"`),\n\t\t\t\t);\n\n\t\t\t\tcode = addLine(`${name}: prismic.ImageField<${thumbnailNames}>;`, code);\n\t\t\t} else {\n\t\t\t\tcode = addLine(`${name}: prismic.ImageField<never>;`, code);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"IntegrationFields\": {\n\t\t\tconst catalogType = args.field.config?.catalog\n\t\t\t\t? args.fieldConfigs.integrationFields?.catalogTypes?.[\n\t\t\t\t\t\targs.field.config.catalog\n\t\t\t\t ]\n\t\t\t\t: undefined;\n\n\t\t\tif (catalogType) {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.IntegrationField<${catalogType}>;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcode = addLine(`${name}: prismic.IntegrationField;`, code);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Link\": {\n\t\t\tconst variants =\n\t\t\t\targs.field.config &&\n\t\t\t\t\"variants\" in args.field.config &&\n\t\t\t\tArray.isArray(args.field.config.variants) &&\n\t\t\t\targs.field.config.variants.length > 0\n\t\t\t\t\t? args.field.config.variants\n\t\t\t\t\t\t\t.map((variant) => `\"${variant.replace(/\\\"/g, '\\\\\"')}\"`)\n\t\t\t\t\t\t\t.join(\" | \")\n\t\t\t\t\t: \"never\";\n\n\t\t\tswitch (args.field.config?.select) {\n\t\t\t\tcase \"document\": {\n\t\t\t\t\tif (\n\t\t\t\t\t\t\"customtypes\" in args.field.config &&\n\t\t\t\t\t\targs.field.config.customtypes &&\n\t\t\t\t\t\targs.field.config.customtypes.length > 0\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst customTypeIDsUnion = buildUnion(\n\t\t\t\t\t\t\targs.field.config.customtypes.map((type) => `\"${type}\"`),\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tcode = addLine(\n\t\t\t\t\t\t\t`${name}: prismic.ContentRelationshipField<${customTypeIDsUnion}>;`,\n\t\t\t\t\t\t\tcode,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcode = addLine(`${name}: prismic.ContentRelationshipField;`, code);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase \"media\": {\n\t\t\t\t\tcode = addLine(\n\t\t\t\t\t\t`${name}: prismic.LinkToMediaField<prismic.FieldState, ${variants}>;`,\n\t\t\t\t\t\tcode,\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tdefault: {\n\t\t\t\t\tlet type = `prismic.LinkField<string, string, unknown, prismic.FieldState, ${variants}>`;\n\n\t\t\t\t\tif (args.field.config?.repeat) {\n\t\t\t\t\t\ttype = `prismic.Repeatable<${type}>`;\n\t\t\t\t\t}\n\n\t\t\t\t\tcode = addLine(`${name}: ${type};`, code);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Number\": {\n\t\t\tcode = addLine(`${name}: prismic.NumberField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"StructuredText\": {\n\t\t\tcode = addLine(`${name}: prismic.RichTextField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Select\": {\n\t\t\tconst options: string[] =\n\t\t\t\targs.field.config?.options?.map((option) => `\"${option}\"`) || [];\n\t\t\tconst optionsType = options.length ? buildUnion(options) : \"string\";\n\n\t\t\tconst hasDefault = Boolean(args.field.config?.default_value);\n\n\t\t\tif (hasDefault) {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.SelectField<${optionsType}, \"filled\">;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.SelectField${\n\t\t\t\t\t\toptions.length > 0 ? `<${optionsType}>` : \"\"\n\t\t\t\t\t};`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Table\": {\n\t\t\tcode = addLine(`${name}: prismic.TableField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Text\": {\n\t\t\tcode = addLine(`${name}: prismic.KeyTextField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Timestamp\": {\n\t\t\tcode = addLine(`${name}: prismic.TimestampField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Group\": {\n\t\t\tconst groupPathParts = args.path.filter(\n\t\t\t\t(part) =>\n\t\t\t\t\tpart.model !== undefined &&\n\t\t\t\t\t\"type\" in part.model &&\n\t\t\t\t\tpart.model.type === CustomTypeModelFieldType.Group,\n\t\t\t);\n\t\t\tconst isNestedGroup = groupPathParts.length > 0;\n\n\t\t\tlet itemName;\n\t\t\tif (\n\t\t\t\targs.path[0].model &&\n\t\t\t\t\"type\" in args.path[0].model &&\n\t\t\t\targs.path[0].model.type === \"SharedSlice\"\n\t\t\t) {\n\t\t\t\tconst [slicePathPart, variationPathPart, zonePathPart] = args.path;\n\n\t\t\t\titemName = buildTypeName(\n\t\t\t\t\tslicePathPart.name,\n\t\t\t\t\t\"Slice\",\n\t\t\t\t\tvariationPathPart.name,\n\t\t\t\t\tzonePathPart.name,\n\t\t\t\t\t...groupPathParts.map((part) => part.name),\n\t\t\t\t\targs.name,\n\t\t\t\t\t\"Item\",\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\titemName = buildTypeName(\n\t\t\t\t\targs.path[0].name,\n\t\t\t\t\t\"Document\",\n\t\t\t\t\t\"Data\",\n\t\t\t\t\t...groupPathParts.map((part) => part.name),\n\t\t\t\t\targs.name,\n\t\t\t\t\t\"Item\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst path: FieldPath = [\n\t\t\t\t...args.path,\n\t\t\t\t{\n\t\t\t\t\tname: name,\n\t\t\t\t\tmodel: args.field,\n\t\t\t\t},\n\t\t\t];\n\t\t\tconst humanReadablePath = getHumanReadablePath({ path });\n\n\t\t\tconst itemFieldProperties = buildFieldProperties({\n\t\t\t\tfields: args.field.config?.fields || {},\n\t\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\t\tpath,\n\t\t\t});\n\t\t\tauxiliaryTypes.push(...itemFieldProperties.auxiliaryTypes);\n\t\t\tcontentTypeNames.push(...itemFieldProperties.contentTypeNames);\n\n\t\t\tauxiliaryTypes.push({\n\t\t\t\tname: itemName,\n\t\t\t\tcode: source`\n\t\t\t\t\t/**\n\t\t\t\t\t * Item in *${humanReadablePath}*\n\t\t\t\t\t */\n\t\t\t\t\texport interface ${itemName} {\n\t\t\t\t\t\t${itemFieldProperties.code}\n\t\t\t\t\t}\n\t\t\t\t`,\n\t\t\t});\n\t\t\tcontentTypeNames.push(itemName);\n\n\t\t\tif (isNestedGroup) {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.NestedGroupField<Simplify<${itemName}>>;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.GroupField<Simplify<${itemName}>>;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Slices\": {\n\t\t\tconst choiceNames: string[] = [];\n\n\t\t\tif (args.field.config?.choices) {\n\t\t\t\tfor (const choiceID in args.field.config.choices) {\n\t\t\t\t\tconst choice = args.field.config.choices[choiceID];\n\n\t\t\t\t\tif (choice.type === \"SharedSlice\") {\n\t\t\t\t\t\t// TODO: Verify that the Shared Slice\n\t\t\t\t\t\t// is provided to the global\n\t\t\t\t\t\t// `sharedSlices` array. If it is not,\n\t\t\t\t\t\t// the type won't exist, so we can't\n\t\t\t\t\t\t// add it to the union. We should\n\t\t\t\t\t\t// probably throw an error if we reach\n\t\t\t\t\t\t// that state, or maybe the input can\n\t\t\t\t\t\t// be validated early so we don't\n\t\t\t\t\t\t// generate any code using invalid\n\t\t\t\t\t\t// models.\n\t\t\t\t\t\tchoiceNames.push(buildTypeName(choiceID, \"Slice\"));\n\t\t\t\t\t} else if (choice.type === \"Slice\") {\n\t\t\t\t\t\tconst sliceName = buildTypeName(\n\t\t\t\t\t\t\targs.path[0].name,\n\t\t\t\t\t\t\t\"Document\",\n\t\t\t\t\t\t\t\"Data\",\n\t\t\t\t\t\t\targs.name,\n\t\t\t\t\t\t\tchoiceID,\n\t\t\t\t\t\t\t\"Slice\",\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tlet primaryInterfaceName: string | undefined;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tchoice[\"non-repeat\"] &&\n\t\t\t\t\t\t\tObject.keys(choice[\"non-repeat\"]).length > 0\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tprimaryInterfaceName = buildTypeName(sliceName, \"Primary\");\n\n\t\t\t\t\t\t\tconst path: FieldPath = [\n\t\t\t\t\t\t\t\t...args.path,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: args.name,\n\t\t\t\t\t\t\t\t\tmodel: args.field,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: choiceID,\n\t\t\t\t\t\t\t\t\tmodel: choice,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: \"primary\",\n\t\t\t\t\t\t\t\t\tlabel: \"Primary\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tconst humanReadablePath = getHumanReadablePath({ path });\n\n\t\t\t\t\t\t\tconst primaryFieldProperties = buildFieldProperties({\n\t\t\t\t\t\t\t\tfields: choice[\"non-repeat\"],\n\t\t\t\t\t\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tauxiliaryTypes.push(...primaryFieldProperties.auxiliaryTypes);\n\t\t\t\t\t\t\tcontentTypeNames.push(...primaryFieldProperties.contentTypeNames);\n\n\t\t\t\t\t\t\tlet primaryCode = stripIndent`\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * Primary content in *${humanReadablePath}*\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t`;\n\t\t\t\t\t\t\tprimaryCode = primaryFieldProperties.code\n\t\t\t\t\t\t\t\t? addLine(\n\t\t\t\t\t\t\t\t\t\tsource`\n\t\t\t\t\t\t\t\t\t\t\texport interface ${primaryInterfaceName} {\n\t\t\t\t\t\t\t\t\t\t\t\t${primaryFieldProperties.code}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\tprimaryCode,\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: addLine(\n\t\t\t\t\t\t\t\t\t\t`export interface ${primaryInterfaceName} {}`,\n\t\t\t\t\t\t\t\t\t\tprimaryCode,\n\t\t\t\t\t\t\t\t );\n\n\t\t\t\t\t\t\tauxiliaryTypes.push({\n\t\t\t\t\t\t\t\tname: primaryInterfaceName,\n\t\t\t\t\t\t\t\tcode: primaryCode,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tcontentTypeNames.push(primaryInterfaceName);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet itemInterfaceName: string | undefined;\n\t\t\t\t\t\tif (choice.repeat && Object.keys(choice.repeat).length > 0) {\n\t\t\t\t\t\t\titemInterfaceName = buildTypeName(sliceName, \"Item\");\n\n\t\t\t\t\t\t\tconst path: FieldPath = [\n\t\t\t\t\t\t\t\t...args.path,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: args.name,\n\t\t\t\t\t\t\t\t\tmodel: args.field,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: choiceID,\n\t\t\t\t\t\t\t\t\tmodel: choice,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: \"items\",\n\t\t\t\t\t\t\t\t\tlabel: \"Items\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tconst humanReadablePath = getHumanReadablePath({ path });\n\n\t\t\t\t\t\t\tconst itemFieldProperties = buildFieldProperties({\n\t\t\t\t\t\t\t\tfields: choice.repeat,\n\t\t\t\t\t\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tauxiliaryTypes.push(...itemFieldProperties.auxiliaryTypes);\n\t\t\t\t\t\t\tcontentTypeNames.push(...itemFieldProperties.contentTypeNames);\n\n\t\t\t\t\t\t\tlet itemCode = stripIndent`\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * Item content in *${humanReadablePath}*\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t`;\n\t\t\t\t\t\t\titemCode = itemFieldProperties.code\n\t\t\t\t\t\t\t\t? addLine(\n\t\t\t\t\t\t\t\t\t\tsource`\n\t\t\t\t\t\t\t\t\t\t\texport interface ${itemInterfaceName} {\n\t\t\t\t\t\t\t\t\t\t\t\t${itemFieldProperties.code}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\titemCode,\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: addLine(`export interface ${itemInterfaceName} {}`, itemCode);\n\n\t\t\t\t\t\t\tauxiliaryTypes.push({\n\t\t\t\t\t\t\t\tname: itemInterfaceName,\n\t\t\t\t\t\t\t\tcode: itemCode,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tcontentTypeNames.push(itemInterfaceName);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tauxiliaryTypes.push({\n\t\t\t\t\t\t\tname: sliceName,\n\t\t\t\t\t\t\tcode: stripIndent`\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * Slice for *${getHumanReadablePath({\n\t\t\t\t\t\t\t\t\t\tpath: [\n\t\t\t\t\t\t\t\t\t\t\t...args.path,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tname: args.name,\n\t\t\t\t\t\t\t\t\t\t\t\tmodel: args.field,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t})}*\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\texport type ${sliceName} = prismic.Slice<\"${choiceID}\", ${\n\t\t\t\t\t\t\t\tprimaryInterfaceName\n\t\t\t\t\t\t\t\t\t? `Simplify<${primaryInterfaceName}>`\n\t\t\t\t\t\t\t\t\t: `Record<string, never>`\n\t\t\t\t\t\t\t}, ${\n\t\t\t\t\t\t\t\titemInterfaceName ? `Simplify<${itemInterfaceName}>` : `never`\n\t\t\t\t\t\t\t}>\n\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tchoiceNames.push(sliceName);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst choiceUnionName = buildTypeName(\n\t\t\t\targs.path[0].name,\n\t\t\t\t\"Document\",\n\t\t\t\t\"Data\",\n\t\t\t\targs.name,\n\t\t\t\t\"Slice\",\n\t\t\t);\n\t\t\tconst choiceUnion = buildUnion(choiceNames);\n\t\t\tauxiliaryTypes.push({\n\t\t\t\tname: choiceUnionName,\n\t\t\t\tcode: `type ${choiceUnionName} = ${choiceUnion}`,\n\t\t\t});\n\t\t\tcontentTypeNames.push(choiceUnionName);\n\n\t\t\tcode = addLine(`${name}: prismic.SliceZone<${choiceUnionName}>;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tdefault: {\n\t\t\tcode = addLine(`${name}: unknown;`, code);\n\t\t}\n\t}\n\n\treturn {\n\t\tcode,\n\t\tauxiliaryTypes,\n\t\tcontentTypeNames,\n\t};\n}\n\ntype BuildFieldPropertiesArgs = {\n\tfields: Record<string, CustomTypeModelField>;\n\tpath: FieldPath;\n\tfieldConfigs: FieldConfigs;\n\ttabName?: string;\n};\n\ntype BuildFieldPropertiesReturnType = {\n\tcode: string;\n\tauxiliaryTypes: AuxiliaryType[];\n\tcontentTypeNames: string[];\n};\n\nexport function buildFieldProperties(\n\targs: BuildFieldPropertiesArgs,\n): BuildFieldPropertiesReturnType {\n\tlet code = \"\";\n\n\tconst auxiliaryTypes: AuxiliaryType[] = [];\n\tconst contentTypeNames: string[] = [];\n\n\tfor (const name in args.fields) {\n\t\tconst field = args.fields[name];\n\n\t\tconst fieldProperty = buildFieldProperty({\n\t\t\tname,\n\t\t\tfield,\n\t\t\tpath: args.path,\n\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\ttabName: args.tabName,\n\t\t});\n\n\t\tcode = addSection(fieldProperty.code, code);\n\n\t\tauxiliaryTypes.push(...fieldProperty.auxiliaryTypes);\n\t\tcontentTypeNames.push(...fieldProperty.contentTypeNames);\n\t}\n\n\treturn {\n\t\tcode,\n\t\tauxiliaryTypes,\n\t\tcontentTypeNames,\n\t};\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"buildFieldProperties.js","sources":["../../../src/lib/buildFieldProperties.ts"],"sourcesContent":["import {\n\ttype CustomTypeModelField,\n\tCustomTypeModelFieldType,\n} from \"@prismicio/client\";\nimport { source, stripIndent } from \"common-tags\";\n\nimport { AuxiliaryType, FieldConfigs, FieldPath } from \"../types\";\n\nimport { addLine } from \"./addLine\";\nimport { addSection } from \"./addSection\";\nimport { buildFieldDocs } from \"./buildFieldDocs\";\nimport { buildTypeName } from \"./buildTypeName\";\nimport { buildUnion } from \"./buildUnion\";\nimport { getHumanReadablePath } from \"./getHumanReadablePath\";\n\ntype BuildFieldPropertyArgs = Pick<\n\tBuildFieldPropertiesArgs,\n\t\"path\" | \"fieldConfigs\" | \"tabName\"\n> & {\n\tname: string;\n\tfield: CustomTypeModelField;\n};\n\ntype BuildFieldPropertyReturnType = {\n\tcode: string;\n\tauxiliaryTypes: AuxiliaryType[];\n\tcontentTypeNames: string[];\n};\n\nfunction buildFieldProperty(\n\targs: BuildFieldPropertyArgs,\n): BuildFieldPropertyReturnType {\n\tlet code = buildFieldDocs({\n\t\tname: args.name,\n\t\tfield: args.field,\n\t\tpath: args.path,\n\t\ttabName: args.tabName,\n\t});\n\n\tconst auxiliaryTypes: AuxiliaryType[] = [];\n\tconst contentTypeNames: string[] = [];\n\n\tconst name =\n\t\targs.name.includes(\"-\") ||\n\t\targs.name.includes(\":\") ||\n\t\t/^[0-9]/.test(args.name)\n\t\t\t? `\"${args.name}\"`\n\t\t\t: args.name;\n\n\tswitch (args.field.type) {\n\t\tcase \"UID\": {\n\t\t\t// UID fields are not included in Data.\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Boolean\": {\n\t\t\tcode = addLine(`${name}: prismic.BooleanField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Color\": {\n\t\t\tcode = addLine(`${name}: prismic.ColorField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Date\": {\n\t\t\tcode = addLine(`${name}: prismic.DateField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Embed\": {\n\t\t\tconst providerTypes: string[] = [];\n\n\t\t\tif (args.fieldConfigs.embed?.providerTypes) {\n\t\t\t\tfor (const providerType in args.fieldConfigs.embed?.providerTypes) {\n\t\t\t\t\tconst configuredProviderType =\n\t\t\t\t\t\targs.fieldConfigs.embed?.providerTypes[providerType];\n\n\t\t\t\t\tproviderTypes.push(\n\t\t\t\t\t\t`({ provider_name: \"${providerType}\" } & ${configuredProviderType})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst providerTypesUnion = buildUnion(providerTypes);\n\n\t\t\tcode =\n\t\t\t\tproviderTypes.length > 0\n\t\t\t\t\t? addLine(\n\t\t\t\t\t\t\t`${name}: prismic.EmbedField<prismic.AnyOEmbed & prismic.OEmbedExtra & (${providerTypesUnion})>`,\n\t\t\t\t\t\t\tcode,\n\t\t\t\t\t )\n\t\t\t\t\t: addLine(`${name}: prismic.EmbedField`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"GeoPoint\": {\n\t\t\tcode = addLine(`${name}: prismic.GeoPointField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Image\": {\n\t\t\tif (\n\t\t\t\targs.field.config?.thumbnails &&\n\t\t\t\targs.field.config.thumbnails.length > 0\n\t\t\t) {\n\t\t\t\tconst thumbnailNames = buildUnion(\n\t\t\t\t\targs.field.config.thumbnails.map((thumb) => `\"${thumb.name}\"`),\n\t\t\t\t);\n\n\t\t\t\tcode = addLine(`${name}: prismic.ImageField<${thumbnailNames}>;`, code);\n\t\t\t} else {\n\t\t\t\tcode = addLine(`${name}: prismic.ImageField<never>;`, code);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"IntegrationFields\": {\n\t\t\tconst catalogType = args.field.config?.catalog\n\t\t\t\t? args.fieldConfigs.integrationFields?.catalogTypes?.[\n\t\t\t\t\t\targs.field.config.catalog\n\t\t\t\t ]\n\t\t\t\t: undefined;\n\n\t\t\tif (catalogType) {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.IntegrationField<${catalogType}>;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcode = addLine(`${name}: prismic.IntegrationField;`, code);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Link\": {\n\t\t\tconst variants =\n\t\t\t\targs.field.config &&\n\t\t\t\t\"variants\" in args.field.config &&\n\t\t\t\tArray.isArray(args.field.config.variants) &&\n\t\t\t\targs.field.config.variants.length > 0\n\t\t\t\t\t? args.field.config.variants\n\t\t\t\t\t\t\t.map((variant) => `\"${variant.replace(/\\\"/g, '\\\\\"')}\"`)\n\t\t\t\t\t\t\t.join(\" | \")\n\t\t\t\t\t: \"never\";\n\n\t\t\tswitch (args.field.config?.select) {\n\t\t\t\tcase \"document\": {\n\t\t\t\t\tif (\n\t\t\t\t\t\t\"customtypes\" in args.field.config &&\n\t\t\t\t\t\targs.field.config.customtypes &&\n\t\t\t\t\t\targs.field.config.customtypes.length > 0\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst customTypeIDsUnion = buildUnion(\n\t\t\t\t\t\t\targs.field.config.customtypes.map(\n\t\t\t\t\t\t\t\t(type) => `\"${typeof type === \"string\" ? type : type.id}\"`,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tcode = addLine(\n\t\t\t\t\t\t\t`${name}: prismic.ContentRelationshipField<${customTypeIDsUnion}>;`,\n\t\t\t\t\t\t\tcode,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcode = addLine(`${name}: prismic.ContentRelationshipField;`, code);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase \"media\": {\n\t\t\t\t\tcode = addLine(\n\t\t\t\t\t\t`${name}: prismic.LinkToMediaField<prismic.FieldState, ${variants}>;`,\n\t\t\t\t\t\tcode,\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tdefault: {\n\t\t\t\t\tlet type = `prismic.LinkField<string, string, unknown, prismic.FieldState, ${variants}>`;\n\n\t\t\t\t\tif (args.field.config?.repeat) {\n\t\t\t\t\t\ttype = `prismic.Repeatable<${type}>`;\n\t\t\t\t\t}\n\n\t\t\t\t\tcode = addLine(`${name}: ${type};`, code);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Number\": {\n\t\t\tcode = addLine(`${name}: prismic.NumberField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"StructuredText\": {\n\t\t\tcode = addLine(`${name}: prismic.RichTextField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Select\": {\n\t\t\tconst options: string[] =\n\t\t\t\targs.field.config?.options?.map((option) => `\"${option}\"`) || [];\n\t\t\tconst optionsType = options.length ? buildUnion(options) : \"string\";\n\n\t\t\tconst hasDefault = Boolean(args.field.config?.default_value);\n\n\t\t\tif (hasDefault) {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.SelectField<${optionsType}, \"filled\">;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.SelectField${\n\t\t\t\t\t\toptions.length > 0 ? `<${optionsType}>` : \"\"\n\t\t\t\t\t};`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Table\": {\n\t\t\tcode = addLine(`${name}: prismic.TableField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Text\": {\n\t\t\tcode = addLine(`${name}: prismic.KeyTextField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Timestamp\": {\n\t\t\tcode = addLine(`${name}: prismic.TimestampField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Group\": {\n\t\t\tconst groupPathParts = args.path.filter(\n\t\t\t\t(part) =>\n\t\t\t\t\tpart.model !== undefined &&\n\t\t\t\t\t\"type\" in part.model &&\n\t\t\t\t\tpart.model.type === CustomTypeModelFieldType.Group,\n\t\t\t);\n\t\t\tconst isNestedGroup = groupPathParts.length > 0;\n\n\t\t\tlet itemName;\n\t\t\tif (\n\t\t\t\targs.path[0].model &&\n\t\t\t\t\"type\" in args.path[0].model &&\n\t\t\t\targs.path[0].model.type === \"SharedSlice\"\n\t\t\t) {\n\t\t\t\tconst [slicePathPart, variationPathPart, zonePathPart] = args.path;\n\n\t\t\t\titemName = buildTypeName(\n\t\t\t\t\tslicePathPart.name,\n\t\t\t\t\t\"Slice\",\n\t\t\t\t\tvariationPathPart.name,\n\t\t\t\t\tzonePathPart.name,\n\t\t\t\t\t...groupPathParts.map((part) => part.name),\n\t\t\t\t\targs.name,\n\t\t\t\t\t\"Item\",\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\titemName = buildTypeName(\n\t\t\t\t\targs.path[0].name,\n\t\t\t\t\t\"Document\",\n\t\t\t\t\t\"Data\",\n\t\t\t\t\t...groupPathParts.map((part) => part.name),\n\t\t\t\t\targs.name,\n\t\t\t\t\t\"Item\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst path: FieldPath = [\n\t\t\t\t...args.path,\n\t\t\t\t{\n\t\t\t\t\tname: name,\n\t\t\t\t\tmodel: args.field,\n\t\t\t\t},\n\t\t\t];\n\t\t\tconst humanReadablePath = getHumanReadablePath({ path });\n\n\t\t\tconst itemFieldProperties = buildFieldProperties({\n\t\t\t\tfields: args.field.config?.fields || {},\n\t\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\t\tpath,\n\t\t\t});\n\t\t\tauxiliaryTypes.push(...itemFieldProperties.auxiliaryTypes);\n\t\t\tcontentTypeNames.push(...itemFieldProperties.contentTypeNames);\n\n\t\t\tauxiliaryTypes.push({\n\t\t\t\tname: itemName,\n\t\t\t\tcode: source`\n\t\t\t\t\t/**\n\t\t\t\t\t * Item in *${humanReadablePath}*\n\t\t\t\t\t */\n\t\t\t\t\texport interface ${itemName} {\n\t\t\t\t\t\t${itemFieldProperties.code}\n\t\t\t\t\t}\n\t\t\t\t`,\n\t\t\t});\n\t\t\tcontentTypeNames.push(itemName);\n\n\t\t\tif (isNestedGroup) {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.NestedGroupField<Simplify<${itemName}>>;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.GroupField<Simplify<${itemName}>>;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Slices\": {\n\t\t\tconst choiceNames: string[] = [];\n\n\t\t\tif (args.field.config?.choices) {\n\t\t\t\tfor (const choiceID in args.field.config.choices) {\n\t\t\t\t\tconst choice = args.field.config.choices[choiceID];\n\n\t\t\t\t\tif (choice.type === \"SharedSlice\") {\n\t\t\t\t\t\t// TODO: Verify that the Shared Slice\n\t\t\t\t\t\t// is provided to the global\n\t\t\t\t\t\t// `sharedSlices` array. If it is not,\n\t\t\t\t\t\t// the type won't exist, so we can't\n\t\t\t\t\t\t// add it to the union. We should\n\t\t\t\t\t\t// probably throw an error if we reach\n\t\t\t\t\t\t// that state, or maybe the input can\n\t\t\t\t\t\t// be validated early so we don't\n\t\t\t\t\t\t// generate any code using invalid\n\t\t\t\t\t\t// models.\n\t\t\t\t\t\tchoiceNames.push(buildTypeName(choiceID, \"Slice\"));\n\t\t\t\t\t} else if (choice.type === \"Slice\") {\n\t\t\t\t\t\tconst sliceName = buildTypeName(\n\t\t\t\t\t\t\targs.path[0].name,\n\t\t\t\t\t\t\t\"Document\",\n\t\t\t\t\t\t\t\"Data\",\n\t\t\t\t\t\t\targs.name,\n\t\t\t\t\t\t\tchoiceID,\n\t\t\t\t\t\t\t\"Slice\",\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tlet primaryInterfaceName: string | undefined;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tchoice[\"non-repeat\"] &&\n\t\t\t\t\t\t\tObject.keys(choice[\"non-repeat\"]).length > 0\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tprimaryInterfaceName = buildTypeName(sliceName, \"Primary\");\n\n\t\t\t\t\t\t\tconst path: FieldPath = [\n\t\t\t\t\t\t\t\t...args.path,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: args.name,\n\t\t\t\t\t\t\t\t\tmodel: args.field,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: choiceID,\n\t\t\t\t\t\t\t\t\tmodel: choice,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: \"primary\",\n\t\t\t\t\t\t\t\t\tlabel: \"Primary\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tconst humanReadablePath = getHumanReadablePath({ path });\n\n\t\t\t\t\t\t\tconst primaryFieldProperties = buildFieldProperties({\n\t\t\t\t\t\t\t\tfields: choice[\"non-repeat\"],\n\t\t\t\t\t\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tauxiliaryTypes.push(...primaryFieldProperties.auxiliaryTypes);\n\t\t\t\t\t\t\tcontentTypeNames.push(...primaryFieldProperties.contentTypeNames);\n\n\t\t\t\t\t\t\tlet primaryCode = stripIndent`\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * Primary content in *${humanReadablePath}*\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t`;\n\t\t\t\t\t\t\tprimaryCode = primaryFieldProperties.code\n\t\t\t\t\t\t\t\t? addLine(\n\t\t\t\t\t\t\t\t\t\tsource`\n\t\t\t\t\t\t\t\t\t\t\texport interface ${primaryInterfaceName} {\n\t\t\t\t\t\t\t\t\t\t\t\t${primaryFieldProperties.code}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\tprimaryCode,\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: addLine(\n\t\t\t\t\t\t\t\t\t\t`export interface ${primaryInterfaceName} {}`,\n\t\t\t\t\t\t\t\t\t\tprimaryCode,\n\t\t\t\t\t\t\t\t );\n\n\t\t\t\t\t\t\tauxiliaryTypes.push({\n\t\t\t\t\t\t\t\tname: primaryInterfaceName,\n\t\t\t\t\t\t\t\tcode: primaryCode,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tcontentTypeNames.push(primaryInterfaceName);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet itemInterfaceName: string | undefined;\n\t\t\t\t\t\tif (choice.repeat && Object.keys(choice.repeat).length > 0) {\n\t\t\t\t\t\t\titemInterfaceName = buildTypeName(sliceName, \"Item\");\n\n\t\t\t\t\t\t\tconst path: FieldPath = [\n\t\t\t\t\t\t\t\t...args.path,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: args.name,\n\t\t\t\t\t\t\t\t\tmodel: args.field,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: choiceID,\n\t\t\t\t\t\t\t\t\tmodel: choice,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: \"items\",\n\t\t\t\t\t\t\t\t\tlabel: \"Items\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tconst humanReadablePath = getHumanReadablePath({ path });\n\n\t\t\t\t\t\t\tconst itemFieldProperties = buildFieldProperties({\n\t\t\t\t\t\t\t\tfields: choice.repeat,\n\t\t\t\t\t\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tauxiliaryTypes.push(...itemFieldProperties.auxiliaryTypes);\n\t\t\t\t\t\t\tcontentTypeNames.push(...itemFieldProperties.contentTypeNames);\n\n\t\t\t\t\t\t\tlet itemCode = stripIndent`\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * Item content in *${humanReadablePath}*\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t`;\n\t\t\t\t\t\t\titemCode = itemFieldProperties.code\n\t\t\t\t\t\t\t\t? addLine(\n\t\t\t\t\t\t\t\t\t\tsource`\n\t\t\t\t\t\t\t\t\t\t\texport interface ${itemInterfaceName} {\n\t\t\t\t\t\t\t\t\t\t\t\t${itemFieldProperties.code}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\titemCode,\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: addLine(`export interface ${itemInterfaceName} {}`, itemCode);\n\n\t\t\t\t\t\t\tauxiliaryTypes.push({\n\t\t\t\t\t\t\t\tname: itemInterfaceName,\n\t\t\t\t\t\t\t\tcode: itemCode,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tcontentTypeNames.push(itemInterfaceName);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tauxiliaryTypes.push({\n\t\t\t\t\t\t\tname: sliceName,\n\t\t\t\t\t\t\tcode: stripIndent`\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * Slice for *${getHumanReadablePath({\n\t\t\t\t\t\t\t\t\t\tpath: [\n\t\t\t\t\t\t\t\t\t\t\t...args.path,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tname: args.name,\n\t\t\t\t\t\t\t\t\t\t\t\tmodel: args.field,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t})}*\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\texport type ${sliceName} = prismic.Slice<\"${choiceID}\", ${\n\t\t\t\t\t\t\t\tprimaryInterfaceName\n\t\t\t\t\t\t\t\t\t? `Simplify<${primaryInterfaceName}>`\n\t\t\t\t\t\t\t\t\t: `Record<string, never>`\n\t\t\t\t\t\t\t}, ${\n\t\t\t\t\t\t\t\titemInterfaceName ? `Simplify<${itemInterfaceName}>` : `never`\n\t\t\t\t\t\t\t}>\n\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tchoiceNames.push(sliceName);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst choiceUnionName = buildTypeName(\n\t\t\t\targs.path[0].name,\n\t\t\t\t\"Document\",\n\t\t\t\t\"Data\",\n\t\t\t\targs.name,\n\t\t\t\t\"Slice\",\n\t\t\t);\n\t\t\tconst choiceUnion = buildUnion(choiceNames);\n\t\t\tauxiliaryTypes.push({\n\t\t\t\tname: choiceUnionName,\n\t\t\t\tcode: `type ${choiceUnionName} = ${choiceUnion}`,\n\t\t\t});\n\t\t\tcontentTypeNames.push(choiceUnionName);\n\n\t\t\tcode = addLine(`${name}: prismic.SliceZone<${choiceUnionName}>;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tdefault: {\n\t\t\tcode = addLine(`${name}: unknown;`, code);\n\t\t}\n\t}\n\n\treturn {\n\t\tcode,\n\t\tauxiliaryTypes,\n\t\tcontentTypeNames,\n\t};\n}\n\ntype BuildFieldPropertiesArgs = {\n\tfields: Record<string, CustomTypeModelField>;\n\tpath: FieldPath;\n\tfieldConfigs: FieldConfigs;\n\ttabName?: string;\n};\n\ntype BuildFieldPropertiesReturnType = {\n\tcode: string;\n\tauxiliaryTypes: AuxiliaryType[];\n\tcontentTypeNames: string[];\n};\n\nexport function buildFieldProperties(\n\targs: BuildFieldPropertiesArgs,\n): BuildFieldPropertiesReturnType {\n\tlet code = \"\";\n\n\tconst auxiliaryTypes: AuxiliaryType[] = [];\n\tconst contentTypeNames: string[] = [];\n\n\tfor (const name in args.fields) {\n\t\tconst field = args.fields[name];\n\n\t\tconst fieldProperty = buildFieldProperty({\n\t\t\tname,\n\t\t\tfield,\n\t\t\tpath: args.path,\n\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\ttabName: args.tabName,\n\t\t});\n\n\t\tcode = addSection(fieldProperty.code, code);\n\n\t\tauxiliaryTypes.push(...fieldProperty.auxiliaryTypes);\n\t\tcontentTypeNames.push(...fieldProperty.contentTypeNames);\n\t}\n\n\treturn {\n\t\tcode,\n\t\tauxiliaryTypes,\n\t\tcontentTypeNames,\n\t};\n}\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -159,7 +159,9 @@ function buildFieldProperty(
|
|
|
159
159
|
args.field.config.customtypes.length > 0
|
|
160
160
|
) {
|
|
161
161
|
const customTypeIDsUnion = buildUnion(
|
|
162
|
-
args.field.config.customtypes.map(
|
|
162
|
+
args.field.config.customtypes.map(
|
|
163
|
+
(type) => `"${typeof type === "string" ? type : type.id}"`,
|
|
164
|
+
),
|
|
163
165
|
);
|
|
164
166
|
|
|
165
167
|
code = addLine(
|