refactor: Remove overused "Simple" prefix

This commit is contained in:
Joachim Van Herwegen
2020-09-02 14:28:39 +02:00
parent 6b8d57667b
commit 199d657097
46 changed files with 248 additions and 249 deletions

View File

@@ -0,0 +1,32 @@
import { TLSSocket } from 'tls';
import { format } from 'url';
import { HttpRequest } from '../../server/HttpRequest';
import { ResourceIdentifier } from '../representation/ResourceIdentifier';
import { TargetExtractor } from './TargetExtractor';
/**
* Extracts an identifier from an incoming {@link HttpRequest}.
* Uses URL library for basic parsing.
* TODO: input requires more extensive cleaning/parsing based on headers (see #22).
*/
export class BasicTargetExtractor extends TargetExtractor {
public async canHandle(input: HttpRequest): Promise<void> {
if (!input.url) {
throw new Error('Missing URL.');
}
if (!input.headers.host) {
throw new Error('Missing host.');
}
}
public async handle(input: HttpRequest): Promise<ResourceIdentifier> {
const isHttps = input.connection && (input.connection as TLSSocket).encrypted;
const url = format({
protocol: `http${isHttps ? 's' : ''}`,
host: input.headers.host,
pathname: input.url,
});
return { path: url };
}
}