abi.js
Version:
[![typescript-icon]][typescript-link] [![license-icon]][license-link] [![status-icon]][status-link] [![ci-icon]][ci-link] [![twitter-icon]][twitter-link]
86 lines (84 loc) • 2.41 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/context.ts
var context_exports = {};
__export(context_exports, {
Context: () => Context
});
module.exports = __toCommonJS(context_exports);
var Context = class {
constructor(request, logger = console) {
this.request = request;
this.logger = logger;
}
get url() {
return new URL(this.request.url);
}
get method() {
return this.request.method;
}
get pathname() {
return decodeURIComponent(this.url.pathname);
}
respond(body, headers, status, statusText) {
return new Response(body, { status, statusText, headers });
}
redirect(location, status) {
return Response.redirect(location, status);
}
json(arg1, arg2) {
if (arg1 === void 0 && arg2 === void 0) {
return this.request.json();
}
return new Response(JSON.stringify(arg1), arg2);
}
text(body, init) {
return new Response(body, init);
}
render(result) {
if (result instanceof Response) {
return result;
}
if (typeof result === "string") {
return this.text(result);
}
if (typeof result === "number") {
return this.respond(null, {}, result);
}
return this.json(result);
}
abort(code = 500, message, headers) {
const err = `Error ${code}${message ? `: ${message}` : ""}`;
this.logger.error(err);
return this.respond(err, headers, code);
}
log(...args) {
this.logger.log(...args);
}
warn(...args) {
this.logger.warn(...args);
}
error(...args) {
this.logger.error(...args);
}
};
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
Context
});