hudada-cli
Version:
专为程序员准备的本地文档搜索,快捷开发工具
3 lines (2 loc) • 1.34 kB
JavaScript
import t from"chalk";import o from"fs";import e from"path";import s from"https";import n from"http";async function r(r){try{r.startsWith("http://")||r.startsWith("https://")?await async function(t){const o=t.startsWith("https")?s:n;return new Promise(((e,s)=>{o.get(t,(o=>{if(200!==o.statusCode)return void s(new Error(`请求失败,状态码: ${o.statusCode}`));const n=[];o.on("data",(t=>n.push(t))),o.on("end",(()=>{const o=Buffer.concat(n).toString("base64"),s=a(t);i(t,s,o),e(null)}))})).on("error",s)}))}(r):await async function(t){const s=e.isAbsolute(t)?t:e.resolve(process.cwd(),t);if(!o.existsSync(s))throw new Error("文件不存在");const n=o.readFileSync(s).toString("base64"),r=a(t);i(t,r,n)}(r)}catch(o){console.error(t.red("转换失败:"),o.message)}}function a(t){return{".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".svg":"image/svg+xml",".pdf":"application/pdf",".txt":"text/plain",".html":"text/html",".css":"text/css",".js":"application/javascript",".json":"application/json"}[e.extname(t).toLowerCase()]||"application/octet-stream"}function i(o,e,s){console.log(t.green("文件路径:")+o),console.log(t.green("MIME 类型:")+e),console.log(t.green("Base64 字符串:")),console.log(`data:${e};base64,${s}`)}export{r as base64String};