22 lines
809 B
TypeScript
22 lines
809 B
TypeScript
import * as interfaces from '../interfaces/index.js';
|
|
import { WorkerEvent } from '../classes.workerevent.js';
|
|
|
|
export const urlFormattingResponder: interfaces.TRequestResponser = async (eventArg: WorkerEvent) => {
|
|
let shouldCorrect = false;
|
|
const correctedUrl = new URL(eventArg.request.url);
|
|
if (eventArg.parsedUrl.hostname.startsWith('www.')) {
|
|
shouldCorrect = true;
|
|
correctedUrl.hostname = eventArg.parsedUrl.hostname.substring(
|
|
4,
|
|
eventArg.parsedUrl.hostname.length
|
|
);
|
|
}
|
|
if (eventArg.parsedUrl.protocol.startsWith('http:')) {
|
|
shouldCorrect = true;
|
|
correctedUrl.protocol = 'https:';
|
|
}
|
|
if (shouldCorrect) {
|
|
eventArg.setResponse(Response.redirect(`${correctedUrl.protocol}//${correctedUrl.host}${correctedUrl.pathname}${correctedUrl.search}`, 301));
|
|
}
|
|
};
|