refactor: Allow IfNeededConverter to short-circuit.

This commit is contained in:
Ruben Verborgh
2021-01-19 21:55:50 +01:00
parent dd9d873122
commit a21532ebf8
3 changed files with 35 additions and 19 deletions

View File

@@ -1,10 +1,13 @@
import type { Representation } from '../../ldp/representation/Representation';
import { getLoggerFor } from '../../logging/LogUtil';
import { InternalServerError } from '../../util/errors/InternalServerError';
import { UnsupportedAsyncHandler } from '../../util/UnsupportedAsyncHandler';
import { matchingMediaTypes } from './ConversionUtil';
import { RepresentationConverter } from './RepresentationConverter';
import type { RepresentationConverterArgs } from './RepresentationConverter';
const EMPTY_CONVERTER = new UnsupportedAsyncHandler('The content type does not match the preferences');
/**
* A {@link RepresentationConverter} that only converts representations
* that are not compatible with the preferences.
@@ -13,7 +16,7 @@ export class IfNeededConverter extends RepresentationConverter {
private readonly converter: RepresentationConverter;
protected readonly logger = getLoggerFor(this);
public constructor(converter: RepresentationConverter) {
public constructor(converter: RepresentationConverter = EMPTY_CONVERTER) {
super();
this.converter = converter;
}