everything-dev
Version:
A consolidated product package for building Module Federation apps with oRPC APIs.
1 lines • 4.6 kB
Source Map (JSON)
{"version":3,"file":"metadata.mjs","names":[],"sources":["../../src/ui/metadata.ts"],"sourcesContent":["export const SOCIAL_IMAGE_WIDTH = 1200;\nexport const SOCIAL_IMAGE_HEIGHT = 630;\n\nexport interface SocialImageMetaOptions {\n imageUrl: string;\n title: string;\n description: string;\n siteName?: string;\n siteUrl?: string;\n type?: string;\n alt?: string;\n width?: number;\n height?: number;\n mimeType?: string;\n}\n\nexport function getSocialImageMeta(options: SocialImageMetaOptions) {\n const {\n imageUrl,\n title,\n description,\n siteName,\n siteUrl,\n type = \"website\",\n alt,\n width = SOCIAL_IMAGE_WIDTH,\n height = SOCIAL_IMAGE_HEIGHT,\n mimeType = \"image/png\",\n } = options;\n\n return [\n { property: \"og:title\", content: title },\n { property: \"og:description\", content: description },\n { property: \"og:type\", content: type },\n { property: \"og:image\", content: imageUrl },\n { property: \"og:image:type\", content: mimeType },\n { property: \"og:image:width\", content: String(width) },\n { property: \"og:image:height\", content: String(height) },\n ...(alt ? [{ property: \"og:image:alt\", content: alt }] : []),\n ...(siteName ? [{ property: \"og:site_name\", content: siteName }] : []),\n ...(siteUrl ? [{ property: \"og:url\", content: siteUrl }] : []),\n { name: \"twitter:card\", content: \"summary_large_image\" },\n { name: \"twitter:title\", content: title },\n { name: \"twitter:description\", content: description },\n { name: \"twitter:image\", content: imageUrl },\n ...(alt ? [{ name: \"twitter:image:alt\", content: alt }] : []),\n ];\n}\n\nexport interface DotIconSvgOptions {\n size?: number;\n color?: string;\n radius?: number;\n background?: string;\n}\n\nexport function createDotIconSvg(options: DotIconSvgOptions = {}) {\n const {\n size = 64,\n color = \"#111111\",\n radius = size * 0.34,\n background = \"transparent\",\n } = options;\n const center = size / 2;\n\n return `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\n <rect width=\"${size}\" height=\"${size}\" fill=\"${background}\" />\n <circle cx=\"${center}\" cy=\"${center}\" r=\"${radius}\" fill=\"${color}\" />\n</svg>`;\n}\n\nexport function createPngIcoBuffer(png: Uint8Array, width: number, height: number) {\n const header = new Uint8Array(22);\n const view = new DataView(header.buffer);\n\n view.setUint16(0, 0, true);\n view.setUint16(2, 1, true);\n view.setUint16(4, 1, true);\n\n header[6] = width >= 256 ? 0 : width;\n header[7] = height >= 256 ? 0 : height;\n header[8] = 0;\n header[9] = 0;\n\n view.setUint16(10, 1, true);\n view.setUint16(12, 32, true);\n view.setUint32(14, png.byteLength, true);\n view.setUint32(18, 22, true);\n\n const ico = new Uint8Array(22 + png.byteLength);\n ico.set(header, 0);\n ico.set(png, 22);\n return ico;\n}\n"],"mappings":";AAAA,MAAa,qBAAqB;AAClC,MAAa,sBAAsB;AAenC,SAAgB,mBAAmB,SAAiC;CAClE,MAAM,EACJ,UACA,OACA,aACA,UACA,SACA,OAAO,WACP,KACA,QAAQ,oBACR,cACA,WAAW,gBACT;CAEJ,OAAO;EACL;GAAE,UAAU;GAAY,SAAS;EAAM;EACvC;GAAE,UAAU;GAAkB,SAAS;EAAY;EACnD;GAAE,UAAU;GAAW,SAAS;EAAK;EACrC;GAAE,UAAU;GAAY,SAAS;EAAS;EAC1C;GAAE,UAAU;GAAiB,SAAS;EAAS;EAC/C;GAAE,UAAU;GAAkB,SAAS,OAAO,KAAK;EAAE;EACrD;GAAE,UAAU;GAAmB,SAAS,OAAO,MAAM;EAAE;EACvD,GAAI,MAAM,CAAC;GAAE,UAAU;GAAgB,SAAS;EAAI,CAAC,IAAI,CAAC;EAC1D,GAAI,WAAW,CAAC;GAAE,UAAU;GAAgB,SAAS;EAAS,CAAC,IAAI,CAAC;EACpE,GAAI,UAAU,CAAC;GAAE,UAAU;GAAU,SAAS;EAAQ,CAAC,IAAI,CAAC;EAC5D;GAAE,MAAM;GAAgB,SAAS;EAAsB;EACvD;GAAE,MAAM;GAAiB,SAAS;EAAM;EACxC;GAAE,MAAM;GAAuB,SAAS;EAAY;EACpD;GAAE,MAAM;GAAiB,SAAS;EAAS;EAC3C,GAAI,MAAM,CAAC;GAAE,MAAM;GAAqB,SAAS;EAAI,CAAC,IAAI,CAAC;CAC7D;AACF;AASA,SAAgB,iBAAiB,UAA6B,CAAC,GAAG;CAChE,MAAM,EACJ,OAAO,IACP,QAAQ,WACR,SAAS,OAAO,KAChB,aAAa,kBACX;CACJ,MAAM,SAAS,OAAO;CAEtB,OAAO;iDACwC,KAAK,YAAY,KAAK,iBAAiB,KAAK,GAAG,KAAK;iBACpF,KAAK,YAAY,KAAK,UAAU,WAAW;gBAC5C,OAAO,QAAQ,OAAO,OAAO,OAAO,UAAU,MAAM;;AAEpE;AAEA,SAAgB,mBAAmB,KAAiB,OAAe,QAAgB;CACjF,MAAM,yBAAS,IAAI,WAAW,EAAE;CAChC,MAAM,OAAO,IAAI,SAAS,OAAO,MAAM;CAEvC,KAAK,UAAU,GAAG,GAAG,IAAI;CACzB,KAAK,UAAU,GAAG,GAAG,IAAI;CACzB,KAAK,UAAU,GAAG,GAAG,IAAI;CAEzB,OAAO,KAAK,SAAS,MAAM,IAAI;CAC/B,OAAO,KAAK,UAAU,MAAM,IAAI;CAChC,OAAO,KAAK;CACZ,OAAO,KAAK;CAEZ,KAAK,UAAU,IAAI,GAAG,IAAI;CAC1B,KAAK,UAAU,IAAI,IAAI,IAAI;CAC3B,KAAK,UAAU,IAAI,IAAI,YAAY,IAAI;CACvC,KAAK,UAAU,IAAI,IAAI,IAAI;CAE3B,MAAM,MAAM,IAAI,WAAW,KAAK,IAAI,UAAU;CAC9C,IAAI,IAAI,QAAQ,CAAC;CACjB,IAAI,IAAI,KAAK,EAAE;CACf,OAAO;AACT"}