UNPKG

@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
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==