UNPKG

abi.js

Version:

[![typescript-icon]][typescript-link] [![license-icon]][license-link] [![status-icon]][status-link] [![ci-icon]][ci-link] [![twitter-icon]][twitter-link]

56 lines (55 loc) 2.06 kB
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; var _Server_handlers; import { serve } from './serve.js'; export class Server { constructor(root, assets = '') { Object.defineProperty(this, "root", { enumerable: true, configurable: true, writable: true, value: root }); Object.defineProperty(this, "assets", { enumerable: true, configurable: true, writable: true, value: assets }); _Server_handlers.set(this, new Set()); this.fetch = this.fetch.bind(this); } pipe(handler, ...handlers) { __classPrivateFieldGet(this, _Server_handlers, "f").add(handler); for (const _handler of handlers) { __classPrivateFieldGet(this, _Server_handlers, "f").add(_handler); } return this; } async fetch(request) { for (const handler of __classPrivateFieldGet(this, _Server_handlers, "f")) { const response = await handler(request); if (response.ok) { return response; } } return this.error(`Cannot ${request.method} ${request.url}`); } start() { serve(this.fetch); } listen(arg1, arg2) { const args = [arg1, arg2].filter((arg) => arg !== undefined && arg !== null); serve(...args, this.fetch); } error(err) { console.log(`Unexpected server error: ${err}`); return new Response('Error 500: Server error.', { status: 500, }); } } _Server_handlers = new WeakMap();