import { file, serve } from "bun"; import { existsSync, statSync } from "fs"; serve({ fetch(req: Request) { let pathname = new URL(req.url).pathname.substring(1); if (pathname == "") { pathname = import.meta.url.replace("file://", ""); } if (!existsSync(pathname)) { return new Response(null, { status: 404 }); } const stats = statSync(pathname); // https://github.com/gornostay25/svelte-adapter-bun/blob/master/src/sirv.js const headers = new Headers({ "Content-Length": "" + stats.size, "Last-Modified": stats.mtime.toUTCString(), ETag: `W/"${stats.size}-${stats.mtime.getTime()}"`, }); if (req.headers.get("if-none-match") === headers.get("ETag")) { return new Response(null, { status: 304 }); } const opts = { code: 200, start: 0, end: Infinity, range: false }; if (req.headers.has("range")) { opts.code = 206; let [x, y] = req.headers.get("range")!.replace("bytes=", "").split("-"); let end = (opts.end = parseInt(y, 10) || stats.size - 1); let start = (opts.start = parseInt(x, 10) || 0); if (start >= stats.size || end >= stats.size) { headers.set("Content-Range", `bytes */${stats.size}`); return new Response(null, { headers: headers, status: 416, }); } headers.set("Content-Range", `bytes ${start}-${end}/${stats.size}`); headers.set("Content-Length", "" + (end - start + 1)); headers.set("Accept-Ranges", "bytes"); opts.range = true; } if (opts.range) { return new Response(file(pathname).slice(opts.start, opts.end), { headers, status: opts.code, }); } return new Response(file(pathname), { headers, status: opts.code }); }, // this is called when fetch() throws or rejects // error(err: Error) { // return new Response("uh oh! :(" + String(err.toString()), { status: 500 }); // }, // this boolean enables the bun's default error handler // sometime after the initial release, it will auto reload as well development: process.env.NODE_ENV !== "production", // note: this isn't node, but for compatibility bun supports process.env + more stuff in process // SSL is enabled if these two are set // certFile: './cert.pem', // keyFile: './key.pem', port: 3000, // number or string hostname: "localhost", // defaults to 0.0.0.0 }); 'q' value=''/>
path: root/include/cliargsparser.h (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2024-09-14Don't retry feed retrieval on HTTP 304 (Not Modified)Gravatar Dennis van der Schagt 3-1/+10
2023-03-26Release 2.31r2.31Gravatar Alexander Batischev 6-22/+30
2023-03-26Bump copyright noticesGravatar Alexander Batischev 3-6/+6
2023-03-26CI: bump Rust to 1.68.1Gravatar Alexander Batischev 4-10/+10
2023-03-24Update Russian and Ukrainian translationsGravatar Alexander Batischev 2-10/+15
2023-03-23Chore(deps): bump cxx-build from 1.0.92 to 1.0.93Gravatar dependabot[bot] 1-3/+3
2023-03-21Chore(deps): bump curl-sys from 0.4.60+curl-7.88.1 to 0.4.61+curl-8.0.1Gravatar dependabot[bot] 2-3/+3
2023-03-20Chore(deps): bump bitflags from 2.0.1 to 2.0.2Gravatar dependabot[bot] 1-3/+3
2023-03-20Chore(deps): bump cxx from 1.0.92 to 1.0.93Gravatar dependabot[bot] 1-15/+26
2023-03-18Avoid calling virtual functions from destructorGravatar Alexander Batischev 1-3/+3
2023-03-18Do not shadow variablesGravatar Alexander Batischev 1-26/+26
2023-03-18Use std algorithm instead of a raw loopGravatar Alexander Batischev 1-6/+4
2023-03-18Mark overriden virtual functions with `override`Gravatar Alexander Batischev 1-6/+6
2023-03-18Avoid passing `std::string` by valueGravatar Alexander Batischev 3-7/+7
2023-03-18Mark single-argument constructors `explicit`Gravatar Alexander Batischev 3-3/+3
2023-03-18Reduce scope of some variables in testsGravatar Alexander Batischev 3-24/+19
2023-03-18Use proper Catch2 macros to test for true/falseGravatar Alexander Batischev 1-2/+2
2023-03-18tr.po: remove old translationGravatar Alexander Batischev 1-1/+1
2023-03-18Chore(deps): bump libc from 0.2.139 to 0.2.140Gravatar dependabot[bot] 1-2/+2
2023-03-17Update Italian translationGravatar Mauro Scomparin 1-5/+6
2023-03-16chore(l10n): Update Polish translationGravatar Carno 1-5/+5
2023-03-16Update Dutch translationGravatar Dennis van der Schagt 1-6/+8
2023-03-16Update Turkish translationsGravatar Emir SARI 1-6/+6
2023-03-16Chore(deps): bump bitflags from 1.3.2 to 2.0.1Gravatar dependabot[bot] 2-5/+11
2023-03-15Fix keybinds not working outside feedlist (#2358)Gravatar Alexander Batischev 17-16/+69
2023-03-15Update German translationsGravatar Lysander Trischler 1-52/+52
2023-03-15CI: bump Rust to 1.68.0Gravatar Alexander Batischev 4-10/+10
2023-03-15Update .pot and .po filesGravatar Alexander Batischev 19-3707/+3997
2023-03-13Chore(deps): bump chrono from 0.4.23 to 0.4.24Gravatar dependabot[bot] 1-2/+2