@qezor/resmake
v2.0.4
Published
Zero-dependency HTTP response builder for Node.js, Edge Runtime, Cloudflare Workers and AWS Lambda
Maintainers
Readme
@qezor/resmake
Zero-dependency HTTP response builder for Node.js, Edge Runtime, Cloudflare Workers, and AWS Lambda.
resmake is now focused on HTTP only.
Use @qezor/nettool for raw TCP/UDP response helpers and low-level socket-oriented utilities.
Installation
npm install @qezor/resmakeImport
const { normalize, context, create } = require("@qezor/resmake")Eager Mode
const { normalize } = require("@qezor/resmake")
http.createServer((req, res) => {
const r = normalize(res)
r.status(200).json({ hello: "world" })
})Lazy Mode
const { create } = require("@qezor/resmake")
export default {
async fetch(request) {
const res = create()
res.status(200).json({ hello: "edge" })
return res.toResponse()
},
}API
Shared methods:
status(code)header(key, value)headers(object)type(value)vary(field)cookie(name, value, opts)clearCookie(name, opts)json(data, code?)html(str, code?)text(str, code?)binary(buf, mime?)send(body, mime?)stream(readable, mime?)file(filePath, opts?)redirect(url, code?)end(code?)sse()
Notes
file()supports ETag, Last-Modified, conditional304,206 Partial Content, and proper416 Range Not Satisfiableresponses.toResponse()is synchronous for normal bodies and streaming bodies.toResponse()returnsPromise<Response>forfile()because file stat/read is async.- response headers are normalized to lowercase internally.
- repeated
vary()values are deduped case-insensitively.
Runtime Adapter Hooks
const { setRuntimeAdapter } = require("@qezor/resmake")Available runtime adapter fields:
BufferHeadersResponseTransformStreamReadableStreamTextEncoderrequireBuiltin(name)reportError(error, meta?)
Benchmarking
npm run bench