import { type Children } from "@alloy-js/core"; import type { EncodingDefaults } from "../../context/encoding/types.js"; import { EncodingProvider } from "../encoding-provider.jsx"; export interface ContentTypeEncodingProviderProps { contentType?: string; children?: Children; } export function ContentTypeEncodingProvider(props: ContentTypeEncodingProviderProps) { const contentType = props.contentType ?? "application/json"; let defaults: EncodingDefaults = { bytes: "none", datetime: "rfc3339", }; // Follows the media type conventions from RFC 6838 section 4.2.8, which standardizes the +json suffix for JSON-structured syntaxes. if (contentType?.includes("application/json") || contentType.trim()?.endsWith("+json")) { defaults = { bytes: "base64", datetime: "rfc3339", }; } return {props.children}; }