diff --git a/config/presets/ldp/request-parser.json b/config/presets/ldp/request-parser.json index a1717518c..07efda2f8 100644 --- a/config/presets/ldp/request-parser.json +++ b/config/presets/ldp/request-parser.json @@ -27,7 +27,7 @@ }, { "@id": "urn:solid-server:default:TargetExtractor", - "@type": "BasicTargetExtractor" + "@type": "OriginalUrlExtractor" } ] } diff --git a/src/index.ts b/src/index.ts index 185f02166..8cd49c65d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -43,9 +43,9 @@ export * from './ldp/http/response/ResponseDescription'; export * from './ldp/http/AcceptPreferenceParser'; export * from './ldp/http/BasicRequestParser'; export * from './ldp/http/BasicResponseWriter'; -export * from './ldp/http/BasicTargetExtractor'; export * from './ldp/http/BodyParser'; export * from './ldp/http/ErrorResponseWriter'; +export * from './ldp/http/OriginalUrlExtractor'; export * from './ldp/http/Patch'; export * from './ldp/http/PreferenceParser'; export * from './ldp/http/RawBodyParser'; diff --git a/src/ldp/http/BasicTargetExtractor.ts b/src/ldp/http/OriginalUrlExtractor.ts similarity index 84% rename from src/ldp/http/BasicTargetExtractor.ts rename to src/ldp/http/OriginalUrlExtractor.ts index 17d400db7..57306aa27 100644 --- a/src/ldp/http/BasicTargetExtractor.ts +++ b/src/ldp/http/OriginalUrlExtractor.ts @@ -6,11 +6,9 @@ import type { 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). + * Reconstructs the original URL of an incoming {@link HttpRequest}. */ -export class BasicTargetExtractor extends TargetExtractor { +export class OriginalUrlExtractor extends TargetExtractor { public async handle({ request: { url, connection, headers }}: { request: HttpRequest }): Promise { if (!url) { throw new Error('Missing URL'); diff --git a/test/integration/RequestParser.test.ts b/test/integration/RequestParser.test.ts index d5a10c95c..d8db689be 100644 --- a/test/integration/RequestParser.test.ts +++ b/test/integration/RequestParser.test.ts @@ -3,15 +3,15 @@ import arrayifyStream from 'arrayify-stream'; import streamifyArray from 'streamify-array'; import { AcceptPreferenceParser } from '../../src/ldp/http/AcceptPreferenceParser'; import { BasicRequestParser } from '../../src/ldp/http/BasicRequestParser'; -import { BasicTargetExtractor } from '../../src/ldp/http/BasicTargetExtractor'; import { BasicMetadataExtractor } from '../../src/ldp/http/metadata/BasicMetadataExtractor'; import { ContentTypeParser } from '../../src/ldp/http/metadata/ContentTypeParser'; +import { OriginalUrlExtractor } from '../../src/ldp/http/OriginalUrlExtractor'; import { RawBodyParser } from '../../src/ldp/http/RawBodyParser'; import { RepresentationMetadata } from '../../src/ldp/representation/RepresentationMetadata'; import type { HttpRequest } from '../../src/server/HttpRequest'; describe('A BasicRequestParser with simple input parsers', (): void => { - const targetExtractor = new BasicTargetExtractor(); + const targetExtractor = new OriginalUrlExtractor(); const preferenceParser = new AcceptPreferenceParser(); const metadataExtractor = new BasicMetadataExtractor([ new ContentTypeParser() ]); const bodyParser = new RawBodyParser(); diff --git a/test/unit/ldp/http/BasicTargetExtractor.test.ts b/test/unit/ldp/http/OriginalUrlExtractor.test.ts similarity index 94% rename from test/unit/ldp/http/BasicTargetExtractor.test.ts rename to test/unit/ldp/http/OriginalUrlExtractor.test.ts index adc65e814..408e63925 100644 --- a/test/unit/ldp/http/BasicTargetExtractor.test.ts +++ b/test/unit/ldp/http/OriginalUrlExtractor.test.ts @@ -1,7 +1,7 @@ -import { BasicTargetExtractor } from '../../../../src/ldp/http/BasicTargetExtractor'; +import { OriginalUrlExtractor } from '../../../../src/ldp/http/OriginalUrlExtractor'; -describe('A BasicTargetExtractor', (): void => { - const extractor = new BasicTargetExtractor(); +describe('A OriginalUrlExtractor', (): void => { + const extractor = new OriginalUrlExtractor(); it('can handle any input.', async(): Promise => { await expect(extractor.canHandle({} as any)).resolves.toBeUndefined();