From f5f12106d4c0c90d9a984217f058de3f6ac89774 Mon Sep 17 00:00:00 2001 From: Jan Romann Date: Wed, 29 Nov 2023 13:52:54 +0100 Subject: [PATCH] refactor: remove now obsolete nullish coalescing --- packages/binding-coap/src/coap-client.ts | 4 ++-- packages/binding-coap/src/coap-server.ts | 2 +- packages/binding-coap/src/coaps-client.ts | 6 +++--- packages/binding-http/src/subscription-protocols.ts | 5 +---- packages/binding-modbus/src/modbus-connection.ts | 2 +- packages/binding-mqtt/src/mqtt-broker-server.ts | 8 ++++---- packages/binding-mqtt/src/mqtt-client.ts | 2 +- packages/binding-opcua/src/opcua-protocol-client.ts | 6 ++---- packages/core/src/consumed-thing.ts | 8 +++----- packages/core/src/exposed-thing.ts | 2 +- 10 files changed, 19 insertions(+), 26 deletions(-) diff --git a/packages/binding-coap/src/coap-client.ts b/packages/binding-coap/src/coap-client.ts index 9cddc9033..b79f58f23 100644 --- a/packages/binding-coap/src/coap-client.ts +++ b/packages/binding-coap/src/coap-client.ts @@ -159,7 +159,7 @@ export default class CoapClient implements ProtocolClient { debug(`CoapClient received Content-Format: ${res.headers["Content-Format"]}`); // FIXME does not work with blockwise because of node-coap - const contentType = res.headers["Content-Format"] ?? form.contentType ?? ContentSerdes.DEFAULT; + const contentType = res.headers["Content-Format"] ?? form.contentType; res.on("data", (data: Buffer) => { next(new Content(`${contentType}`, Readable.from(res.payload))); @@ -253,7 +253,7 @@ export default class CoapClient implements ProtocolClient { const method = form["cov:method"] ?? defaultMethod; debug(`CoapClient got Form "method" ${method}`); - const contentFormat = form["cov:contentFormat"] ?? form.contentType ?? "application/json"; + const contentFormat = form["cov:contentFormat"] ?? form.contentType; debug(`"CoapClient got Form 'contentType' ${contentFormat} `); const accept = form["cov:accept"]; diff --git a/packages/binding-coap/src/coap-server.ts b/packages/binding-coap/src/coap-server.ts index af9529edf..0c730c4ea 100644 --- a/packages/binding-coap/src/coap-server.ts +++ b/packages/binding-coap/src/coap-server.ts @@ -901,7 +901,7 @@ export default class CoapServer implements ProtocolServer { ); } - return contentType ?? ContentSerdes.DEFAULT; + return contentType; } private checkContentTypeSupportForInput(method: string, contentType: string): boolean { diff --git a/packages/binding-coap/src/coaps-client.ts b/packages/binding-coap/src/coaps-client.ts index 6379f6a9c..154007b2d 100644 --- a/packages/binding-coap/src/coaps-client.ts +++ b/packages/binding-coap/src/coaps-client.ts @@ -47,7 +47,7 @@ export default class CoapsClient implements ProtocolClient { debug(`CoapsClient received ${res.code} from ${form.href}`); // FIXME: Add toString conversion for response Content-Format - const contentType = form.contentType ?? ContentSerdes.DEFAULT; + const contentType = form.contentType; const body = Readable.from(res.payload ?? Buffer.alloc(0)); resolve(new Content(contentType, body)); @@ -79,7 +79,7 @@ export default class CoapsClient implements ProtocolClient { debug(`CoapsClient received ${res.code} from ${form.href}`); // FIXME: Add toString conversion for response Content-Format - const contentType = form.contentType ?? ContentSerdes.DEFAULT; + const contentType = form.contentType; const body = Readable.from(res.payload ?? Buffer.alloc(0)); resolve(new Content(contentType, body)); @@ -118,7 +118,7 @@ export default class CoapsClient implements ProtocolClient { const callback = (resp: CoapResponse) => { if (resp.payload != null) { - next(new Content(form?.contentType ?? ContentSerdes.DEFAULT, Readable.from(resp.payload))); + next(new Content(form?.contentType, Readable.from(resp.payload))); } }; diff --git a/packages/binding-http/src/subscription-protocols.ts b/packages/binding-http/src/subscription-protocols.ts index 819d81265..3d500e091 100644 --- a/packages/binding-http/src/subscription-protocols.ts +++ b/packages/binding-http/src/subscription-protocols.ts @@ -117,10 +117,7 @@ export class SSESubscription implements InternalSubscription { }; this.eventSource.onmessage = (event) => { debug(`HttpClient received ${JSON.stringify(event)} from ${this.form.href}`); - const output = new Content( - this.form.contentType ?? ContentSerdes.DEFAULT, - Readable.from(JSON.stringify(event)) - ); + const output = new Content(this.form.contentType, Readable.from(JSON.stringify(event))); next(output); }; this.eventSource.onerror = function (event) { diff --git a/packages/binding-modbus/src/modbus-connection.ts b/packages/binding-modbus/src/modbus-connection.ts index 86f6cc92b..4f449a9ba 100644 --- a/packages/binding-modbus/src/modbus-connection.ts +++ b/packages/binding-modbus/src/modbus-connection.ts @@ -449,7 +449,7 @@ export class PropertyOperation { this.quantity = form["modbus:quantity"]; this.function = form["modbus:function"] as ModbusFunction; this.endianness = endianness; - this.contentType = form.contentType ?? ContentSerdes.DEFAULT; + this.contentType = form.contentType; this.content = content; this.transaction = null; } diff --git a/packages/binding-mqtt/src/mqtt-broker-server.ts b/packages/binding-mqtt/src/mqtt-broker-server.ts index a060f3fdf..59f2bd6c6 100644 --- a/packages/binding-mqtt/src/mqtt-broker-server.ts +++ b/packages/binding-mqtt/src/mqtt-broker-server.ts @@ -277,7 +277,7 @@ export default class MqttBrokerServer implements ProtocolServer { * https://github.com/mqttjs/MQTT.js/pull/1103 * For further discussion see https://github.com/eclipse-thingweb/node-wot/pull/253 */ - const contentType = packet?.properties?.contentType ?? ContentSerdes.DEFAULT; + const contentType = packet?.properties?.contentType; const options: InteractionOptions & { formIndex: number } = { formIndex: ProtocolHelpers.findRequestMatchingFormIndex( @@ -288,7 +288,7 @@ export default class MqttBrokerServer implements ProtocolServer { ), }; - const formContentType = action.forms[options.formIndex].contentType ?? ContentSerdes.DEFAULT; + const formContentType = action.forms[options.formIndex].contentType; const inputContent = new Content(formContentType, Readable.from(payload)); thing @@ -320,7 +320,7 @@ export default class MqttBrokerServer implements ProtocolServer { ) { const readOnly = property.readOnly ?? false; if (!readOnly) { - const contentType = packet?.properties?.contentType ?? ContentSerdes.DEFAULT; + const contentType = packet?.properties?.contentType; const options: InteractionOptions & { formIndex: number } = { formIndex: ProtocolHelpers.findRequestMatchingFormIndex( @@ -331,7 +331,7 @@ export default class MqttBrokerServer implements ProtocolServer { ), }; - const formContentType = property.forms[options.formIndex].contentType ?? ContentSerdes.DEFAULT; + const formContentType = property.forms[options.formIndex].contentType; const inputContent = new Content(formContentType, Readable.from(payload)); try { diff --git a/packages/binding-mqtt/src/mqtt-client.ts b/packages/binding-mqtt/src/mqtt-client.ts index a87f7c64e..d58200b2b 100644 --- a/packages/binding-mqtt/src/mqtt-client.ts +++ b/packages/binding-mqtt/src/mqtt-client.ts @@ -50,7 +50,7 @@ export default class MqttClient implements ProtocolClient { ): Promise { return new Promise((resolve, reject) => { // get MQTT-based metadata - const contentType = form.contentType ?? ContentSerdes.DEFAULT; + const contentType = form.contentType; const requestUri = new url.URL(form.href); const topic = requestUri.pathname.slice(1); const brokerUri: string = `${this.scheme}://` + requestUri.host; diff --git a/packages/binding-opcua/src/opcua-protocol-client.ts b/packages/binding-opcua/src/opcua-protocol-client.ts index 85ac6813d..67748932b 100644 --- a/packages/binding-opcua/src/opcua-protocol-client.ts +++ b/packages/binding-opcua/src/opcua-protocol-client.ts @@ -466,7 +466,7 @@ export class OPCUAProtocolClient implements ProtocolClient { /// private async _dataValueToContent(form: OPCUAForm, dataValue: DataValue): Promise { - const contentType = form.contentType ?? "application/json"; + const contentType = form.contentType; // QUESTION: how can we extend the default contentSerDes.valueToContent for application/json, const contentSerDes = ContentSerdes.get(); @@ -615,13 +615,11 @@ export class OPCUAProtocolClient implements ProtocolClient { ): Promise { const outputArguments = (argumentDefinition.outputArguments ?? []) as unknown as Argument[]; - const contentType = form.contentType ?? "application/json"; - const body: Record = {}; for (let index = 0; index < outputArguments.length; index++) { const argument = outputArguments[index]; const { name } = argument; - const element = _variantToJSON(outputVariants[index], contentType); + const element = _variantToJSON(outputVariants[index], form.contentType); body[name ?? "null"] = element; } diff --git a/packages/core/src/consumed-thing.ts b/packages/core/src/consumed-thing.ts index dd40b6797..0a4b38086 100644 --- a/packages/core/src/consumed-thing.ts +++ b/packages/core/src/consumed-thing.ts @@ -675,7 +675,7 @@ export default class ConsumedThing extends TD.Thing implements IConsumedThing { const content = await client.invokeResource(form, input); // infer media type from form if not in response metadata - if (!content.type) content.type = form.contentType ?? "application/json"; + content.type ??= form.contentType; // check if returned media type is the same as expected media type (from TD) if (form.response != null) { @@ -725,8 +725,7 @@ export default class ConsumedThing extends TD.Thing implements IConsumedThing { formWithoutURITemplates, // next (content) => { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- tsc get confused when nullables are to listeners lambdas - if (!content.type) content.type = form!.contentType ?? "application/json"; + content.type ??= form.contentType; try { listener(new InteractionOutput(content, form, tp)); } catch (e) { @@ -782,8 +781,7 @@ export default class ConsumedThing extends TD.Thing implements IConsumedThing { await client.subscribeResource( formWithoutURITemplates, (content) => { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- tsc get confused when nullables are to listeners lambdas - if (!content.type) content.type = form!.contentType ?? "application/json"; + content.type ??= form.contentType; try { listener(new InteractionOutput(content, form, te.data)); } catch (e) { diff --git a/packages/core/src/exposed-thing.ts b/packages/core/src/exposed-thing.ts index 5a9894b5d..365106237 100644 --- a/packages/core/src/exposed-thing.ts +++ b/packages/core/src/exposed-thing.ts @@ -412,7 +412,7 @@ export default class ExposedThing extends TD.Thing implements WoT.ExposedThing { return ContentManager.valueToContent( result, this.properties[propertyName], - form?.contentType ?? "application/json" + form.contentType ); } else { throw new Error(`ExposedThing '${this.title}' has no readHandler for Property '${propertyName}'`);