UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

1 lines • 3.13 kB
{"version":3,"file":"getImageData.js","names":[],"sources":["esm/image/getImageData.js"],"sourcesContent":["import { existsSync } from \"node:fs\";\nimport { resolve } from \"node:path\";\nlet sharpWarned = false;\nasync function getSharp() {\n try {\n const sharpModule = await import(\"sharp\");\n return sharpModule.default;\n } catch (e) {\n if (!sharpWarned) {\n sharpWarned = true;\n console.warn(`\n[one] To use getImageData, install sharp:\n\n npm install sharp\n`);\n }\n return null;\n }\n}\nasync function processImageMeta(filePath) {\n const sharp = await getSharp();\n if (!sharp) {\n return null;\n }\n try {\n const image = sharp(filePath);\n const metadata = await image.metadata();\n const { width = 0, height = 0 } = metadata;\n const blurBuffer = await image.resize(10).blur(1).jpeg({ quality: 40 }).toBuffer();\n const blurDataURL = `data:image/jpeg;base64,${blurBuffer.toString(\"base64\")}`;\n return { width, height, blurDataURL };\n } catch (e) {\n console.warn(`[one] processImageMeta: Failed to process ${filePath}:`, e);\n return null;\n }\n}\nasync function getImageData(filePath) {\n let resolvedPath;\n let src;\n if (filePath.startsWith(\"/\")) {\n resolvedPath = resolve(\"./public\", filePath.slice(1));\n src = filePath;\n } else {\n resolvedPath = resolve(filePath);\n src = filePath.replace(/^\\.\\.?\\//, \"\").replace(/^public\\//, \"\");\n if (!src.startsWith(\"/\")) {\n src = \"/\" + src;\n }\n }\n const defaultResult = { src, width: 0, height: 0, blurDataURL: \"\" };\n if (!existsSync(resolvedPath)) {\n console.warn(`[one] getImageData: File not found: ${resolvedPath}`);\n return defaultResult;\n }\n const meta = await processImageMeta(resolvedPath);\n if (!meta) {\n return defaultResult;\n }\n return { src, ...meta };\n}\nexport {\n getImageData,\n getSharp,\n processImageMeta\n};\n//# sourceMappingURL=getImageData.js.map\n"],"mappings":";;;;AAEA,IAAI,cAAc;AAClB,eAAe,WAAW;CACxB,IAAI;EACF,MAAM,cAAc,MAAM,OAAO;EACjC,OAAO,YAAY;CACrB,SAAS,GAAG;EACV,IAAI,CAAC,aAAa;GAChB,cAAc;GACd,QAAQ,KAAK;;;;CAIlB;EACG;EACA,OAAO;CACT;AACF;AACA,eAAe,iBAAiB,UAAU;CACxC,MAAM,QAAQ,MAAM,SAAS;CAC7B,IAAI,CAAC,OAAO;EACV,OAAO;CACT;CACA,IAAI;EACF,MAAM,QAAQ,MAAM,QAAQ;EAC5B,MAAM,WAAW,MAAM,MAAM,SAAS;EACtC,MAAM,EAAE,QAAQ,GAAG,SAAS,MAAM;EAClC,MAAM,aAAa,MAAM,MAAM,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,SAAS;EACjF,MAAM,cAAc,0BAA0B,WAAW,SAAS,QAAQ;EAC1E,OAAO;GAAE;GAAO;GAAQ;EAAY;CACtC,SAAS,GAAG;EACV,QAAQ,KAAK,6CAA6C,SAAS,IAAI,CAAC;EACxE,OAAO;CACT;AACF;AACA,eAAe,aAAa,UAAU;CACpC,IAAI;CACJ,IAAI;CACJ,IAAI,SAAS,WAAW,GAAG,GAAG;EAC5B,eAAe,QAAQ,YAAY,SAAS,MAAM,CAAC,CAAC;EACpD,MAAM;CACR,OAAO;EACL,eAAe,QAAQ,QAAQ;EAC/B,MAAM,SAAS,QAAQ,YAAY,EAAE,CAAC,CAAC,QAAQ,aAAa,EAAE;EAC9D,IAAI,CAAC,IAAI,WAAW,GAAG,GAAG;GACxB,MAAM,MAAM;EACd;CACF;CACA,MAAM,gBAAgB;EAAE;EAAK,OAAO;EAAG,QAAQ;EAAG,aAAa;CAAG;CAClE,IAAI,CAAC,WAAW,YAAY,GAAG;EAC7B,QAAQ,KAAK,uCAAuC,cAAc;EAClE,OAAO;CACT;CACA,MAAM,OAAO,MAAM,iBAAiB,YAAY;CAChD,IAAI,CAAC,MAAM;EACT,OAAO;CACT;CACA,OAAO;EAAE;EAAK,GAAG;CAAK;AACxB"}