import type { IntegrationFieldContent } from "@prismicio/types-internal/lib/content" import type { IntegrationField } from "@prismicio/types-internal/lib/customtypes" import type { Renderer } from "../../models" import type RenderContext from "../../models/RenderContext" const IntegrationFieldRenderer: (ctx: RenderContext) => Renderer = (ctx) => { const integrationFieldsEncoder = ctx.Extension?.encoders.integrationFields return { renderV1(content: IntegrationFieldContent): unknown { if (!integrationFieldsEncoder) return { value: {}, } try { return { type: "IntegrationFields", value: integrationFieldsEncoder.encode(content.value), } } catch (e) { //todo report error somewhere return { value: {}, } } }, renderV2(_def: IntegrationField, content: IntegrationFieldContent): unknown { if (!integrationFieldsEncoder) return {} try { return integrationFieldsEncoder.encode(content.value) } catch (e) { //todo report error somewhere return {} } }, renderDefault(_def: IntegrationField): unknown { return null }, renderMocks(def: IntegrationField): unknown { return this.renderDefault(def) }, } } export default IntegrationFieldRenderer