@whatwg-node/router
Version:
Fetch API compliant HTTP Router
50 lines (45 loc) • 1.49 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
const server = require('@whatwg-node/server');
const ittyRouter = require('itty-router');
const fetch = require('@whatwg-node/fetch');
function createRouter(options) {
var _a;
let ittyRouter$1 = ittyRouter.Router({
base: options === null || options === void 0 ? void 0 : options.base,
});
ittyRouter$1.all('*', request => {
let parsedUrl;
Object.defineProperty(request, 'parsedUrl', {
get() {
if (!parsedUrl) {
parsedUrl = new URL(request.url);
}
return parsedUrl;
},
});
});
(_a = options === null || options === void 0 ? void 0 : options.plugins) === null || _a === void 0 ? void 0 : _a.forEach(plugin => {
ittyRouter$1 = plugin(ittyRouter$1);
});
return server.createServerAdapter(ittyRouter$1, (options === null || options === void 0 ? void 0 : options.RequestCtor) || fetch.Request);
}
Object.defineProperty(exports, 'withCORS', {
enumerable: true,
get: function () {
return server.withCORS;
}
});
Object.defineProperty(exports, 'withErrorHandling', {
enumerable: true,
get: function () {
return server.withErrorHandling;
}
});
Object.defineProperty(exports, 'Response', {
enumerable: true,
get: function () {
return fetch.Response;
}
});
exports.createRouter = createRouter;