/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/static-server-function@1.0.4/server.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
const http=require("http"),urlTool=require("url"),path=require("path"),fs=require("fs"),ejs=require("ejs"),mimes=require("./mimes/mimes"),zlib=require("zlib"),etag=require("etag"),config=require("./config/config"),open=require("./libs/open");class H51227{constructor(e){Object.assign(config,e),console.log(config)}run(){http.createServer(((e,t)=>{let r=urlTool.parse(e.url).pathname,i=config.root+r;fs.stat(i,((n,o)=>{if(n)return t.statusCode=404,void t.end("<h1>404 Not Found</h1>");if(o.isDirectory())fs.readdir(i,((e,i)=>{if(e)return t.statusCode=500,void t.end("<h1>500 Internal Error</h1>");t.setHeader("content-type","text/html;charset/utf-8");let n=path.resolve(__dirname,"views/directory.html");ejs.renderFile(n,{data:i,url:r},((e,r)=>{if(e)return t.statusCode=500,void t.end("<h1>500 Internal Error</h1>");t.end(r)}))}));else{if(config.cache.xieCache){let r=e.headers["if-none-match"],i=e.headers["if-modified-since"],n=etag(o),s=o.mtime.toUTCString();if(r===n||i===s)return t.statusCode=304,void t.end()}const n=r.split(".").pop();void 0===mimes[n]?t.setHeader("content-type","text/plain;charset=utf-8"):t.setHeader("content-type",mimes[n]),config.cache.qiangCache&&t.setHeader("cache-control","max-age="+config.cache.cacheTime);let s=etag(o);t.setHeader("Etag",s),t.setHeader("last-modified",o.mtime.toUTCString()),fs.readFile(i,((r,i)=>{if(r)return t.statusCode=500,void t.end("<h1>Interval server Error</h1>");let n=e.headers["accept-encoding"];void 0!==n?-1!==n.indexOf("gzip")?(t.setHeader("content-encoding","gzip"),zlib.gzip(i,((e,r)=>{if(e)return t.statusCode=500,void t.end("<h1>Interval server Error</h1>");t.end(r)}))):-1!==n.indexOf("deflate")?(t.setHeader("context-encoding","deflate"),zlib.deflate(i,((e,r)=>{if(e)return t.statusCode=500,void t.end("<h1>Interval server Error</h1>");t.end(r)}))):-1!==n.indexOf("br")&&(t.setHeader("context-encoding","br"),zlib.brotliCompress(i,((e,r)=>{if(e)return t.statusCode=500,void t.end("<h1>Interval server Error</h1>");t.end(r)}))):t.end(i)}))}}))})).listen(config.port,(()=>{console.log(`服务已经启动,端口${config.port}监听中`),open(`http://127.0.0.1:${config.port}`)}))}}module.exports=H51227;
//# sourceMappingURL=/sm/8ce1f2882a0cb167b70bde99ec5d99ef1fbc915b2a32bfb40609397f941953d6.map