@api.global/typedserver
Version:
A TypeScript-based project for easy serving of static files with support for live reloading, compression, and typed requests.
57 lines • 4.51 kB
JavaScript
import * as interfaces from './interfaces/index.js';
import * as plugins from './plugins.js';
import { WorkerEvent } from './classes.workerevent.js';
import * as domainInstructions from './domaininstructions/index.js';
export class DomainRouter {
constructor() {
this.smartmatches = [];
for (const key of Object.keys(domainInstructions.instructionObject)) {
this.smartmatches.push(new plugins.smartmatch.SmartMatch(key));
}
}
/**
*
* @param cworkerevent
*/
routeToResponder(cworkerevent) {
const match = this.smartmatches.find(smartmatchArg => {
return smartmatchArg.match(cworkerevent.request.url);
});
cworkerevent.responderInstruction = match
? domainInstructions.instructionObject[match.wildcard]
: {
type: 'cache'
};
}
/**
* rendertronRouter
*/
checkWetherReRouteToRendertron(cworkerevent) {
let needsRendertron = false;
for (const botAgentIdentifier of domainInstructions.botUserAgents) {
if (needsRendertron) {
continue;
}
if (cworkerevent.request.headers.get('user-agent') &&
cworkerevent.request.headers.get('user-agent').toLowerCase().includes(botAgentIdentifier.toLowerCase()) &&
!cworkerevent.request.url.includes('lossless.one')) {
needsRendertron = true;
}
}
if (needsRendertron) {
cworkerevent.routedThroughRendertron = true;
}
}
/**
* check wether this is a preflight request that should be handled
*/
checkWetherIsPreflight(cworkerevent) {
if (cworkerevent.request.method === 'OPTIONS' &&
cworkerevent.request.headers.get('Origin') !== null &&
cworkerevent.request.headers.get('Access-Control-Request-Method') !== null &&
cworkerevent.request.headers.get('Access-Control-Request-Headers') !== null) {
cworkerevent.isPreflight = true;
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5kb21haW5yb3V0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90c19lZGdld29ya2VyL2NsYXNzZXMuZG9tYWlucm91dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxVQUFVLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXZELE9BQU8sS0FBSyxrQkFBa0IsTUFBTSwrQkFBK0IsQ0FBQztBQUVwRSxNQUFNLE9BQU8sWUFBWTtJQUd2QjtRQUZRLGlCQUFZLEdBQW9DLEVBQUUsQ0FBQztRQUd6RCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1lBQ3BFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqRSxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGdCQUFnQixDQUFDLFlBQXlCO1FBQy9DLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ25ELE9BQU8sYUFBYSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZELENBQUMsQ0FBQyxDQUFDO1FBQ0gsWUFBWSxDQUFDLG9CQUFvQixHQUFHLEtBQUs7WUFDdkMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDdEQsQ0FBQyxDQUFDO2dCQUNFLElBQUksRUFBRSxPQUFPO2FBQ2QsQ0FBQztJQUNSLENBQUM7SUFFRDs7T0FFRztJQUNJLDhCQUE4QixDQUFDLFlBQXlCO1FBQzdELElBQUksZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM1QixLQUFLLE1BQU0sa0JBQWtCLElBQUksa0JBQWtCLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbEUsSUFBSSxlQUFlLEVBQUUsQ0FBQztnQkFDcEIsU0FBUztZQUNYLENBQUM7WUFDRCxJQUNFLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7Z0JBQzlDLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3ZHLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUNsRCxDQUFDO2dCQUNELGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDekIsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3BCLFlBQVksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7UUFDOUMsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLHNCQUFzQixDQUFFLFlBQXlCO1FBQ3RELElBQ0UsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssU0FBUztZQUN6QyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSTtZQUNuRCxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsK0JBQStCLENBQUMsS0FBSyxJQUFJO1lBQzFFLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsQ0FBQyxLQUFLLElBQUksRUFDM0UsQ0FBQztZQUNELFlBQVksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDO0NBRUYifQ==