@analogjs/content
Version:
Content Rendering for Analog
1 lines • 3 kB
Source Map (JSON)
{"version":3,"file":"analogjs-content-og.mjs","sources":["../../../../packages/content/og/src/lib/og.ts","../../../../packages/content/og/src/analogjs-content-og.ts"],"sourcesContent":["// Credit for modified source: https://github.com/etherCorps/sveltekit-og/blob/main/src/lib/api.ts\n\nimport satori from 'satori';\nimport { html as toReactElement } from 'satori-html';\nimport sharp from 'sharp';\n\nimport { ImageResponseOptions } from './options';\n\nexport const generateImage = async (\n element: string,\n options: ImageResponseOptions,\n) => {\n const elementHtml = toReactElement(element);\n const svg = await satori(elementHtml as any, {\n width: options.width || 1200,\n height: options.height || 630,\n fonts: options.fonts?.length ? options.fonts : [],\n tailwindConfig: options.tailwindConfig,\n });\n const svgBuffer = Buffer.from(svg);\n const png = sharp(svgBuffer).png().toBuffer();\n\n const pngBuffer = await png;\n\n return pngBuffer;\n};\n\nexport class ImageResponse extends Response {\n constructor(element: string, options: ImageResponseOptions = {}) {\n super();\n\n const body = new ReadableStream({\n async start(controller) {\n const buffer = await generateImage(element, options);\n controller.enqueue(buffer);\n controller.close();\n },\n });\n\n return new Response(body, {\n headers: {\n 'Content-Type': 'image/png',\n 'Cache-Control': options.debug\n ? 'no-cache, no-store'\n : 'public, immutable, no-transform, max-age=31536000',\n ...options.headers,\n },\n status: options.status || 200,\n statusText: options.statusText,\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["toReactElement"],"mappings":";;;;AAAA;AAQO,MAAM,aAAa,GAAG,OAC3B,OAAe,EACf,OAA6B,KAC3B;AACF,IAAA,MAAM,WAAW,GAAGA,IAAc,CAAC,OAAO,CAAC;AAC3C,IAAA,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,WAAkB,EAAE;AAC3C,QAAA,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI;AAC5B,QAAA,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,GAAG;AAC7B,QAAA,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,EAAE;QACjD,cAAc,EAAE,OAAO,CAAC,cAAc;AACvC,KAAA,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AAClC,IAAA,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;AAE7C,IAAA,MAAM,SAAS,GAAG,MAAM,GAAG;AAE3B,IAAA,OAAO,SAAS;AAClB,CAAC;AAEK,MAAO,aAAc,SAAQ,QAAQ,CAAA;IACzC,WAAY,CAAA,OAAe,EAAE,OAAA,GAAgC,EAAE,EAAA;AAC7D,QAAA,KAAK,EAAE;AAEP,QAAA,MAAM,IAAI,GAAG,IAAI,cAAc,CAAC;YAC9B,MAAM,KAAK,CAAC,UAAU,EAAA;gBACpB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC;AACpD,gBAAA,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC1B,UAAU,CAAC,KAAK,EAAE;aACnB;AACF,SAAA,CAAC;AAEF,QAAA,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;AACxB,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,WAAW;gBAC3B,eAAe,EAAE,OAAO,CAAC;AACvB,sBAAE;AACF,sBAAE,mDAAmD;gBACvD,GAAG,OAAO,CAAC,OAAO;AACnB,aAAA;AACD,YAAA,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,GAAG;YAC7B,UAAU,EAAE,OAAO,CAAC,UAAU;AAC/B,SAAA,CAAC;;AAEL;;ACnDD;;AAEG;;;;"}