/** * Schema Injection Utility * Injects JSON-LD structured data into page head */ // Schema type definitions export type SchemaType = 'Product' | 'Event' | 'LocalBusiness' | 'FAQPage' | 'Article' | 'Organization' interface SchemaConfig { type: SchemaType data: Record } /** * Generates JSON-LD script tag for structured data */ export function generateSchemaScript(config: SchemaConfig | SchemaConfig[]): string { const schemas = Array.isArray(config) ? config : [config] const structuredData = schemas.map(({ type, data }) => ({ '@context': 'https://schema.org', '@type': type, ...data, })) // Return single schema or array const output = structuredData.length === 1 ? structuredData[0] : structuredData return JSON.stringify(output) } /** * React component for injecting schema in Next.js */ export function SchemaInjector({ config }: { config: SchemaConfig | SchemaConfig[] }) { const schemaJson = generateSchemaScript(config) return (