{"version":3,"file":"buildFieldDocs.cjs","names":["FIELD_DOCUMENTATION_URLS","getHumanReadableModelName","getHumanReadablePath","addLine","getAPIIDPath"],"sources":["../../src/lib/buildFieldDocs.ts"],"sourcesContent":["import type { CustomTypeModelField } from \"@prismicio/client\";\n\nimport { FIELD_DOCUMENTATION_URLS } from \"../constants\";\nimport type { FieldPath } from \"../types\";\nimport { addLine } from \"./addLine\";\nimport { getAPIIDPath } from \"./getAPIIDPath\";\nimport { getHumanReadableModelName } from \"./getHumanReadableModelName\";\nimport { getHumanReadablePath } from \"./getHumanReadablePath\";\n\ntype GetFieldHumanReadableTypeArgs = {\n\tfield: CustomTypeModelField;\n};\n\nfunction getHumanReadableFieldType(args: GetFieldHumanReadableTypeArgs): string {\n\tswitch (args.field.type) {\n\t\tcase \"StructuredText\": {\n\t\t\treturn \"Rich Text\";\n\t\t}\n\n\t\tcase \"IntegrationFields\": {\n\t\t\tconst catalog = args.field.config?.catalog;\n\n\t\t\treturn `Integration Fields (Catalog: ${catalog ? `\\`${catalog}\\`` : \"*unknown*\"})`;\n\t\t}\n\n\t\tcase \"Link\": {\n\t\t\tswitch (args.field.config?.select) {\n\t\t\t\tcase \"document\": {\n\t\t\t\t\treturn \"Content Relationship\";\n\t\t\t\t}\n\n\t\t\t\tcase \"media\": {\n\t\t\t\t\treturn \"Link to Media\";\n\t\t\t\t}\n\n\t\t\t\tdefault: {\n\t\t\t\t\treturn \"Link\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tcase \"Slices\": {\n\t\t\treturn \"Slice Zone\";\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn args.field.type;\n\t\t}\n\t}\n}\n\ntype getDocumentationURLArgs = {\n\tfield: CustomTypeModelField;\n};\n\nfunction getDocumentationURL(args: getDocumentationURLArgs) {\n\tswitch (args.field.type) {\n\t\tcase \"Link\": {\n\t\t\tconst urls = FIELD_DOCUMENTATION_URLS.Link;\n\n\t\t\tswitch (args.field.config?.select) {\n\t\t\t\tcase \"document\": {\n\t\t\t\t\treturn urls.contentRelationship;\n\t\t\t\t}\n\n\t\t\t\tcase \"media\": {\n\t\t\t\t\treturn urls.linkToMedia;\n\t\t\t\t}\n\n\t\t\t\tdefault: {\n\t\t\t\t\treturn urls.link;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdefault: {\n\t\t\tconst url =\n\t\t\t\tFIELD_DOCUMENTATION_URLS[args.field.type as keyof typeof FIELD_DOCUMENTATION_URLS];\n\n\t\t\tif (typeof url === \"string\") {\n\t\t\t\treturn url;\n\t\t\t}\n\t\t}\n\t}\n}\n\ntype BuildFieldDocsArgs = {\n\tname: string;\n\tfield: CustomTypeModelField;\n\tpath: FieldPath;\n\ttabName?: string;\n};\n\nexport function buildFieldDocs(args: BuildFieldDocsArgs): string {\n\tlet result = \"/**\";\n\n\tconst humanReadableName = getHumanReadableModelName({\n\t\tmodel: args.field,\n\t\tname: args.name,\n\t});\n\tconst humanReadablePath = getHumanReadablePath({ path: args.path });\n\tconst humanReadableFieldType = getHumanReadableFieldType({\n\t\tfield: args.field,\n\t});\n\n\tresult = addLine(` * ${humanReadableName} field in *${humanReadablePath}*`, result);\n\n\tresult = addLine(\" *\", result);\n\n\tresult = addLine(` * - **Field Type**: ${humanReadableFieldType}`, result);\n\n\tconst placeholder =\n\t\t(args.field.config && \"placeholder\" in args.field.config && args.field.config.placeholder) ||\n\t\t`*None*`;\n\tresult = addLine(` * - **Placeholder**: ${placeholder}`, result);\n\n\tconst defaultValue =\n\t\targs.field.config && \"default_value\" in args.field.config\n\t\t\t? args.field.config.default_value\n\t\t\t: undefined;\n\tif (defaultValue !== undefined) {\n\t\tconst stringifiedDefaultValue =\n\t\t\ttypeof defaultValue === \"boolean\" ? `${defaultValue}` : defaultValue;\n\n\t\tresult = addLine(` * - **Default Value**: ${stringifiedDefaultValue}`, result);\n\t}\n\n\tconst apiIDPath = getAPIIDPath({\n\t\tpath: [...args.path, { name: args.name, model: args.field }],\n\t});\n\tresult = addLine(` * - **API ID Path**: ${apiIDPath}`, result);\n\n\tif (args.tabName) {\n\t\tresult = addLine(` * - **Tab**: ${args.tabName}`, result);\n\t}\n\n\tconst documentationURL = getDocumentationURL({ field: args.field });\n\tif (documentationURL) {\n\t\tresult = addLine(` * - **Documentation**: ${documentationURL}`, result);\n\t}\n\n\tresult = addLine(\" */\", result);\n\n\treturn result;\n}\n"],"mappings":";;;;;;AAaA,SAAS,0BAA0B,MAA6C;AAC/E,SAAQ,KAAK,MAAM,MAAnB;EACC,KAAK,iBACJ,QAAO;EAGR,KAAK,qBAAqB;GACzB,MAAM,UAAU,KAAK,MAAM,QAAQ;AAEnC,UAAO,gCAAgC,UAAU,KAAK,QAAQ,MAAM,YAAY;;EAGjF,KAAK,OACJ,SAAQ,KAAK,MAAM,QAAQ,QAA3B;GACC,KAAK,WACJ,QAAO;GAGR,KAAK,QACJ,QAAO;GAGR,QACC,QAAO;;EAKV,KAAK,SACJ,QAAO;EAGR,QACC,QAAO,KAAK,MAAM;;;AASrB,SAAS,oBAAoB,MAA+B;AAC3D,SAAQ,KAAK,MAAM,MAAnB;EACC,KAAK,QAAQ;GACZ,MAAM,OAAOA,kBAAAA,yBAAyB;AAEtC,WAAQ,KAAK,MAAM,QAAQ,QAA3B;IACC,KAAK,WACJ,QAAO,KAAK;IAGb,KAAK,QACJ,QAAO,KAAK;IAGb,QACC,QAAO,KAAK;;;EAKf,SAAS;GACR,MAAM,MACLA,kBAAAA,yBAAyB,KAAK,MAAM;AAErC,OAAI,OAAO,QAAQ,SAClB,QAAO;;;;AAaX,SAAgB,eAAe,MAAkC;CAChE,IAAI,SAAS;CAEb,MAAM,oBAAoBC,kCAAAA,0BAA0B;EACnD,OAAO,KAAK;EACZ,MAAM,KAAK;EACX,CAAC;CACF,MAAM,oBAAoBC,6BAAAA,qBAAqB,EAAE,MAAM,KAAK,MAAM,CAAC;CACnE,MAAM,yBAAyB,0BAA0B,EACxD,OAAO,KAAK,OACZ,CAAC;AAEF,UAASC,gBAAAA,QAAQ,MAAM,kBAAkB,aAAa,kBAAkB,IAAI,OAAO;AAEnF,UAASA,gBAAAA,QAAQ,MAAM,OAAO;AAE9B,UAASA,gBAAAA,QAAQ,wBAAwB,0BAA0B,OAAO;AAK1E,UAASA,gBAAAA,QAAQ,yBAFf,KAAK,MAAM,UAAU,iBAAiB,KAAK,MAAM,UAAU,KAAK,MAAM,OAAO,eAC9E,YACwD,OAAO;CAEhE,MAAM,eACL,KAAK,MAAM,UAAU,mBAAmB,KAAK,MAAM,SAChD,KAAK,MAAM,OAAO,gBAClB,KAAA;AACJ,KAAI,iBAAiB,KAAA,EAIpB,UAASA,gBAAAA,QAAQ,2BAFhB,OAAO,iBAAiB,YAAY,GAAG,iBAAiB,gBAEc,OAAO;AAM/E,UAASA,gBAAAA,QAAQ,yBAHCC,qBAAAA,aAAa,EAC9B,MAAM,CAAC,GAAG,KAAK,MAAM;EAAE,MAAM,KAAK;EAAM,OAAO,KAAK;EAAO,CAAC,EAC5D,CAAC,IACqD,OAAO;AAE9D,KAAI,KAAK,QACR,UAASD,gBAAAA,QAAQ,iBAAiB,KAAK,WAAW,OAAO;CAG1D,MAAM,mBAAmB,oBAAoB,EAAE,OAAO,KAAK,OAAO,CAAC;AACnE,KAAI,iBACH,UAASA,gBAAAA,QAAQ,2BAA2B,oBAAoB,OAAO;AAGxE,UAASA,gBAAAA,QAAQ,OAAO,OAAO;AAE/B,QAAO"}