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.5 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 { smartmatches = []; constructor() { 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5kb21haW5yb3V0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90c19lZGdld29ya2VyL2NsYXNzZXMuZG9tYWlucm91dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxVQUFVLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXZELE9BQU8sS0FBSyxrQkFBa0IsTUFBTSwrQkFBK0IsQ0FBQztBQUVwRSxNQUFNLE9BQU8sWUFBWTtJQUNmLFlBQVksR0FBb0MsRUFBRSxDQUFDO0lBRTNEO1FBQ0UsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUNwRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDakUsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSSxnQkFBZ0IsQ0FBQyxZQUF5QjtRQUMvQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUNuRCxPQUFPLGFBQWEsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2RCxDQUFDLENBQUMsQ0FBQztRQUNILFlBQVksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLO1lBQ3ZDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO1lBQ3RELENBQUMsQ0FBQztnQkFDRSxJQUFJLEVBQUUsT0FBTzthQUNkLENBQUM7SUFDUixDQUFDO0lBRUQ7O09BRUc7SUFDSSw4QkFBOEIsQ0FBQyxZQUF5QjtRQUM3RCxJQUFJLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDNUIsS0FBSyxNQUFNLGtCQUFrQixJQUFJLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2xFLElBQUksZUFBZSxFQUFFLENBQUM7Z0JBQ3BCLFNBQVM7WUFDWCxDQUFDO1lBQ0QsSUFDRSxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDO2dCQUM5QyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUN2RyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFDbEQsQ0FBQztnQkFDRCxlQUFlLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixZQUFZLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDO1FBQzlDLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxzQkFBc0IsQ0FBRSxZQUF5QjtRQUN0RCxJQUNFLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVM7WUFDekMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUk7WUFDbkQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLEtBQUssSUFBSTtZQUMxRSxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLENBQUMsS0FBSyxJQUFJLEVBQzNFLENBQUM7WUFDRCxZQUFZLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUNsQyxDQUFDO0lBQ0gsQ0FBQztDQUVGIn0=