diff --git a/examples/dapr-example/src/service/user/v1/command/getAllUsers/getAllUsersCommandBuilder.ts b/examples/dapr-example/src/service/user/v1/command/getAllUsers/getAllUsersCommandBuilder.ts index e37a46cae..482dda298 100644 --- a/examples/dapr-example/src/service/user/v1/command/getAllUsers/getAllUsersCommandBuilder.ts +++ b/examples/dapr-example/src/service/user/v1/command/getAllUsers/getAllUsersCommandBuilder.ts @@ -14,8 +14,8 @@ export const getAllUsersCommandBuilder = userV1ServiceBuilder .addOutputSchema(userV1GetAllUsersOutputPayloadSchema) .exposeAsHttpEndpoint('GET', '/user') .setCommandFunction(async function (context, _payload, _parameter) { - const result: { users?: User[] } = await context.states.getState(StateStoreKey.Users) - const users = result.users || [] + const result = (await context.states.getState(StateStoreKey.Users)) as { [StateStoreKey.Users]: User[] | undefined } + const users = result.users ?? [] return users }) diff --git a/examples/dapr-example/src/service/user/v1/command/getUserById/getUserByIdCommandBuilder.ts b/examples/dapr-example/src/service/user/v1/command/getUserById/getUserByIdCommandBuilder.ts index a1254ef4e..8d8e25d5f 100644 --- a/examples/dapr-example/src/service/user/v1/command/getUserById/getUserByIdCommandBuilder.ts +++ b/examples/dapr-example/src/service/user/v1/command/getUserById/getUserByIdCommandBuilder.ts @@ -16,8 +16,8 @@ export const getUserByIdCommandBuilder = userV1ServiceBuilder .addOutputSchema(userV1GetUserByIdOutputPayloadSchema) .exposeAsHttpEndpoint('GET', 'user/:userId') .setCommandFunction(async function (context, _payload, parameter) { - const result: { users?: User[] } = await context.states.getState(StateStoreKey.Users) - const users = result.users || [] + const result = (await context.states.getState(StateStoreKey.Users)) as { [StateStoreKey.Users]: User[] | undefined } + const users = result.users ?? [] const user = users.find((user) => (user.userId = parameter.userId)) diff --git a/examples/dapr-example/src/service/user/v1/command/signUp/signUpCommandBuilder.ts b/examples/dapr-example/src/service/user/v1/command/signUp/signUpCommandBuilder.ts index a736b7d20..b44bbb80c 100644 --- a/examples/dapr-example/src/service/user/v1/command/signUp/signUpCommandBuilder.ts +++ b/examples/dapr-example/src/service/user/v1/command/signUp/signUpCommandBuilder.ts @@ -20,7 +20,7 @@ export const signUpCommandBuilder = userV1ServiceBuilder .addOutputSchema(userV1SignUpOutputPayloadSchema) .exposeAsHttpEndpoint('POST', 'user/signup') .setCommandFunction(async function (context, payload, _parameter) { - const result: { users?: User[] } = await context.states.getState(StateStoreKey.Users) + const result = (await context.states.getState(StateStoreKey.Users)) as { [StateStoreKey.Users]: User[] | undefined } if (result.users?.some((user) => user.email === payload.email)) { throw new HandledError(StatusCode.BadRequest, 'the user already exists') @@ -31,7 +31,7 @@ export const signUpCommandBuilder = userV1ServiceBuilder userId: randomUUID(), } - const users = result.users || [] + const users = result.users ?? [] users.push(user) await context.states.setState(StateStoreKey.Users, users) diff --git a/examples/fullexample/src/service/user/v1/command/getAllUsers/getAllUsersCommandBuilder.ts b/examples/fullexample/src/service/user/v1/command/getAllUsers/getAllUsersCommandBuilder.ts index e37a46cae..482dda298 100644 --- a/examples/fullexample/src/service/user/v1/command/getAllUsers/getAllUsersCommandBuilder.ts +++ b/examples/fullexample/src/service/user/v1/command/getAllUsers/getAllUsersCommandBuilder.ts @@ -14,8 +14,8 @@ export const getAllUsersCommandBuilder = userV1ServiceBuilder .addOutputSchema(userV1GetAllUsersOutputPayloadSchema) .exposeAsHttpEndpoint('GET', '/user') .setCommandFunction(async function (context, _payload, _parameter) { - const result: { users?: User[] } = await context.states.getState(StateStoreKey.Users) - const users = result.users || [] + const result = (await context.states.getState(StateStoreKey.Users)) as { [StateStoreKey.Users]: User[] | undefined } + const users = result.users ?? [] return users }) diff --git a/examples/fullexample/src/service/user/v1/command/getUserById/getUserByIdCommandBuilder.ts b/examples/fullexample/src/service/user/v1/command/getUserById/getUserByIdCommandBuilder.ts index a1254ef4e..8d8e25d5f 100644 --- a/examples/fullexample/src/service/user/v1/command/getUserById/getUserByIdCommandBuilder.ts +++ b/examples/fullexample/src/service/user/v1/command/getUserById/getUserByIdCommandBuilder.ts @@ -16,8 +16,8 @@ export const getUserByIdCommandBuilder = userV1ServiceBuilder .addOutputSchema(userV1GetUserByIdOutputPayloadSchema) .exposeAsHttpEndpoint('GET', 'user/:userId') .setCommandFunction(async function (context, _payload, parameter) { - const result: { users?: User[] } = await context.states.getState(StateStoreKey.Users) - const users = result.users || [] + const result = (await context.states.getState(StateStoreKey.Users)) as { [StateStoreKey.Users]: User[] | undefined } + const users = result.users ?? [] const user = users.find((user) => (user.userId = parameter.userId)) diff --git a/examples/fullexample/src/service/user/v1/command/signUp/signUpCommandBuilder.ts b/examples/fullexample/src/service/user/v1/command/signUp/signUpCommandBuilder.ts index a736b7d20..b44bbb80c 100644 --- a/examples/fullexample/src/service/user/v1/command/signUp/signUpCommandBuilder.ts +++ b/examples/fullexample/src/service/user/v1/command/signUp/signUpCommandBuilder.ts @@ -20,7 +20,7 @@ export const signUpCommandBuilder = userV1ServiceBuilder .addOutputSchema(userV1SignUpOutputPayloadSchema) .exposeAsHttpEndpoint('POST', 'user/signup') .setCommandFunction(async function (context, payload, _parameter) { - const result: { users?: User[] } = await context.states.getState(StateStoreKey.Users) + const result = (await context.states.getState(StateStoreKey.Users)) as { [StateStoreKey.Users]: User[] | undefined } if (result.users?.some((user) => user.email === payload.email)) { throw new HandledError(StatusCode.BadRequest, 'the user already exists') @@ -31,7 +31,7 @@ export const signUpCommandBuilder = userV1ServiceBuilder userId: randomUUID(), } - const users = result.users || [] + const users = result.users ?? [] users.push(user) await context.states.setState(StateStoreKey.Users, users) diff --git a/examples/kubernetes/src/index.ts b/examples/kubernetes/src/index.ts index 2a6a15a27..dca6d346a 100644 --- a/examples/kubernetes/src/index.ts +++ b/examples/kubernetes/src/index.ts @@ -44,7 +44,7 @@ const main = async () => { // set up the eventbridge and start the event bridge const eventBridge = new AmqpBridge({ spanProcessor, - instanceId: process.env.HOSTNAME || getNewInstanceId(), + instanceId: process.env.HOSTNAME ?? getNewInstanceId(), url: process.env.AMQP_URL, }) await eventBridge.start() diff --git a/examples/mqtt-bridge/src/service/user/v1/command/getAllUsers/getAllUsersCommandBuilder.ts b/examples/mqtt-bridge/src/service/user/v1/command/getAllUsers/getAllUsersCommandBuilder.ts index e37a46cae..482dda298 100644 --- a/examples/mqtt-bridge/src/service/user/v1/command/getAllUsers/getAllUsersCommandBuilder.ts +++ b/examples/mqtt-bridge/src/service/user/v1/command/getAllUsers/getAllUsersCommandBuilder.ts @@ -14,8 +14,8 @@ export const getAllUsersCommandBuilder = userV1ServiceBuilder .addOutputSchema(userV1GetAllUsersOutputPayloadSchema) .exposeAsHttpEndpoint('GET', '/user') .setCommandFunction(async function (context, _payload, _parameter) { - const result: { users?: User[] } = await context.states.getState(StateStoreKey.Users) - const users = result.users || [] + const result = (await context.states.getState(StateStoreKey.Users)) as { [StateStoreKey.Users]: User[] | undefined } + const users = result.users ?? [] return users }) diff --git a/examples/mqtt-bridge/src/service/user/v1/command/getUserById/getUserByIdCommandBuilder.ts b/examples/mqtt-bridge/src/service/user/v1/command/getUserById/getUserByIdCommandBuilder.ts index a1254ef4e..8d8e25d5f 100644 --- a/examples/mqtt-bridge/src/service/user/v1/command/getUserById/getUserByIdCommandBuilder.ts +++ b/examples/mqtt-bridge/src/service/user/v1/command/getUserById/getUserByIdCommandBuilder.ts @@ -16,8 +16,8 @@ export const getUserByIdCommandBuilder = userV1ServiceBuilder .addOutputSchema(userV1GetUserByIdOutputPayloadSchema) .exposeAsHttpEndpoint('GET', 'user/:userId') .setCommandFunction(async function (context, _payload, parameter) { - const result: { users?: User[] } = await context.states.getState(StateStoreKey.Users) - const users = result.users || [] + const result = (await context.states.getState(StateStoreKey.Users)) as { [StateStoreKey.Users]: User[] | undefined } + const users = result.users ?? [] const user = users.find((user) => (user.userId = parameter.userId)) diff --git a/examples/mqtt-bridge/src/service/user/v1/command/signUp/signUpCommandBuilder.ts b/examples/mqtt-bridge/src/service/user/v1/command/signUp/signUpCommandBuilder.ts index a736b7d20..b44bbb80c 100644 --- a/examples/mqtt-bridge/src/service/user/v1/command/signUp/signUpCommandBuilder.ts +++ b/examples/mqtt-bridge/src/service/user/v1/command/signUp/signUpCommandBuilder.ts @@ -20,7 +20,7 @@ export const signUpCommandBuilder = userV1ServiceBuilder .addOutputSchema(userV1SignUpOutputPayloadSchema) .exposeAsHttpEndpoint('POST', 'user/signup') .setCommandFunction(async function (context, payload, _parameter) { - const result: { users?: User[] } = await context.states.getState(StateStoreKey.Users) + const result = (await context.states.getState(StateStoreKey.Users)) as { [StateStoreKey.Users]: User[] | undefined } if (result.users?.some((user) => user.email === payload.email)) { throw new HandledError(StatusCode.BadRequest, 'the user already exists') @@ -31,7 +31,7 @@ export const signUpCommandBuilder = userV1ServiceBuilder userId: randomUUID(), } - const users = result.users || [] + const users = result.users ?? [] users.push(user) await context.states.setState(StateStoreKey.Users, users) diff --git a/examples/nats-bridge/src/service/user/v1/command/getAllUsers/getAllUsersCommandBuilder.ts b/examples/nats-bridge/src/service/user/v1/command/getAllUsers/getAllUsersCommandBuilder.ts index e37a46cae..482dda298 100644 --- a/examples/nats-bridge/src/service/user/v1/command/getAllUsers/getAllUsersCommandBuilder.ts +++ b/examples/nats-bridge/src/service/user/v1/command/getAllUsers/getAllUsersCommandBuilder.ts @@ -14,8 +14,8 @@ export const getAllUsersCommandBuilder = userV1ServiceBuilder .addOutputSchema(userV1GetAllUsersOutputPayloadSchema) .exposeAsHttpEndpoint('GET', '/user') .setCommandFunction(async function (context, _payload, _parameter) { - const result: { users?: User[] } = await context.states.getState(StateStoreKey.Users) - const users = result.users || [] + const result = (await context.states.getState(StateStoreKey.Users)) as { [StateStoreKey.Users]: User[] | undefined } + const users = result.users ?? [] return users }) diff --git a/examples/nats-bridge/src/service/user/v1/command/getUserById/getUserByIdCommandBuilder.ts b/examples/nats-bridge/src/service/user/v1/command/getUserById/getUserByIdCommandBuilder.ts index a1254ef4e..8d8e25d5f 100644 --- a/examples/nats-bridge/src/service/user/v1/command/getUserById/getUserByIdCommandBuilder.ts +++ b/examples/nats-bridge/src/service/user/v1/command/getUserById/getUserByIdCommandBuilder.ts @@ -16,8 +16,8 @@ export const getUserByIdCommandBuilder = userV1ServiceBuilder .addOutputSchema(userV1GetUserByIdOutputPayloadSchema) .exposeAsHttpEndpoint('GET', 'user/:userId') .setCommandFunction(async function (context, _payload, parameter) { - const result: { users?: User[] } = await context.states.getState(StateStoreKey.Users) - const users = result.users || [] + const result = (await context.states.getState(StateStoreKey.Users)) as { [StateStoreKey.Users]: User[] | undefined } + const users = result.users ?? [] const user = users.find((user) => (user.userId = parameter.userId)) diff --git a/examples/nats-bridge/src/service/user/v1/command/signUp/signUpCommandBuilder.ts b/examples/nats-bridge/src/service/user/v1/command/signUp/signUpCommandBuilder.ts index a736b7d20..b44bbb80c 100644 --- a/examples/nats-bridge/src/service/user/v1/command/signUp/signUpCommandBuilder.ts +++ b/examples/nats-bridge/src/service/user/v1/command/signUp/signUpCommandBuilder.ts @@ -20,7 +20,7 @@ export const signUpCommandBuilder = userV1ServiceBuilder .addOutputSchema(userV1SignUpOutputPayloadSchema) .exposeAsHttpEndpoint('POST', 'user/signup') .setCommandFunction(async function (context, payload, _parameter) { - const result: { users?: User[] } = await context.states.getState(StateStoreKey.Users) + const result = (await context.states.getState(StateStoreKey.Users)) as { [StateStoreKey.Users]: User[] | undefined } if (result.users?.some((user) => user.email === payload.email)) { throw new HandledError(StatusCode.BadRequest, 'the user already exists') @@ -31,7 +31,7 @@ export const signUpCommandBuilder = userV1ServiceBuilder userId: randomUUID(), } - const users = result.users || [] + const users = result.users ?? [] users.push(user) await context.states.setState(StateStoreKey.Users, users) diff --git a/examples/nats-bridge/src/types/StateStoreKey.enum.ts b/examples/nats-bridge/src/types/StateStoreKey.enum.ts index a25d9271c..2d5e51b84 100644 --- a/examples/nats-bridge/src/types/StateStoreKey.enum.ts +++ b/examples/nats-bridge/src/types/StateStoreKey.enum.ts @@ -1,3 +1,3 @@ -export enum StateStoreKey { - Users = 'users', -} +export const StateStoreKey = { + Users: 'users', +} as const diff --git a/package.json b/package.json index 764c898e4..1865168b9 100644 --- a/package.json +++ b/package.json @@ -5,8 +5,8 @@ "scripts": { "start": "npm run dev -w examples/fullexample", "build": "npm run build --workspaces --if-present", - "lint": "eslint . --cache . --fix", - "lint:fix": "eslint . --cache .", + "lint": "eslint . --cache .", + "lint:fix": "eslint . --cache . --fix", "test": "vitest -c vite.config.all.ts", "test:unit": "vitest -c vite.config.ts", "test:integration": "vitest -c vite.config.integration.ts", diff --git a/packages/amqpbridge/src/AmqpBridge.impl.ts b/packages/amqpbridge/src/AmqpBridge.impl.ts index c7e5d5e50..7159a4c54 100644 --- a/packages/amqpbridge/src/AmqpBridge.impl.ts +++ b/packages/amqpbridge/src/AmqpBridge.impl.ts @@ -135,7 +135,7 @@ export class AmqpBridge extends EventBridgeBaseClass implement async start() { await super.start() try { - this.connection = await amqplib.connect(this.config.url || getDefaultConfig().url, this.config.socketOptions) + this.connection = await amqplib.connect(this.config.url ?? getDefaultConfig().url, this.config.socketOptions) } catch (err) { this.emit(EventBridgeEventNames.EventbridgeConnectionError, err) this.logger.fatal({ err }, 'unable to connect to broker') @@ -173,13 +173,13 @@ export class AmqpBridge extends EventBridgeBaseClass implement this.logger.debug('ensured: default exchange') await this.channel.assertExchange( - this.config.exchangeName || getDefaultConfig().exchangeName, + this.config.exchangeName ?? getDefaultConfig().exchangeName, 'headers', this.config.exchangeOptions, ) const responseQueue = await this.channel.assertQueue('', { exclusive: true, autoDelete: true, durable: false }) this.replyQueueName = responseQueue.queue - await this.channel.bindQueue(this.replyQueueName, this.config.exchangeName || getDefaultConfig().exchangeName, '', { + await this.channel.bindQueue(this.replyQueueName, this.config.exchangeName ?? getDefaultConfig().exchangeName, '', { 'x-match': 'all', replyTo: this.replyQueueName, }) @@ -337,7 +337,7 @@ export class AmqpBridge extends EventBridgeBaseClass implement const payload = await this.encodeContent(msg, contentType, contentEncoding) - await this.channel.publish(this.config.exchangeName || getDefaultConfig().exchangeName, '', payload, { + await this.channel.publish(this.config.exchangeName ?? getDefaultConfig().exchangeName, '', payload, { messageId: msg.id, timestamp: msg.timestamp, contentType, @@ -446,7 +446,7 @@ export class AmqpBridge extends EventBridgeBaseClass implement const content = await this.encodeContent(command, 'application/json', 'utf-8') - this.channel.publish(this.config.exchangeName || getDefaultConfig().exchangeName, '', content, { + this.channel.publish(this.config.exchangeName ?? getDefaultConfig().exchangeName, '', content, { messageId: command.id, timestamp: command.timestamp, correlationId: command.correlationId, @@ -483,7 +483,7 @@ export class AmqpBridge extends EventBridgeBaseClass implement const channel = await this.connection.createChannel() - const noAck = eventBridgeConfig.autoacknowledge === undefined ? true : eventBridgeConfig.autoacknowledge + const noAck = eventBridgeConfig.autoacknowledge ?? true channel.on('close', () => { this.healthy = false @@ -498,7 +498,7 @@ export class AmqpBridge extends EventBridgeBaseClass implement }) const queue = await channel.assertQueue(queueName, { durable: !!eventBridgeConfig.durable, autoDelete: true }) - await channel.bindQueue(queue.queue, this.config.exchangeName || getDefaultConfig().exchangeName, '', { + await channel.bindQueue(queue.queue, this.config.exchangeName ?? getDefaultConfig().exchangeName, '', { 'x-match': 'all', messageType: EBMessageType.Command, receiverServiceName: address.serviceName, @@ -575,7 +575,7 @@ export class AmqpBridge extends EventBridgeBaseClass implement const payload = await this.encodeContent(responseMessage, contentType, contentEncoding) - this.channel?.publish(this.config.exchangeName || getDefaultConfig().exchangeName, '', payload, { + this.channel?.publish(this.config.exchangeName ?? getDefaultConfig().exchangeName, '', payload, { messageId: responseMessage.id, timestamp: responseMessage.timestamp, correlationId: msg.properties.correlationId, @@ -686,7 +686,7 @@ export class AmqpBridge extends EventBridgeBaseClass implement }) const queue = await channel.assertQueue(queueName, queueOptions) - await channel.bindQueue(queue.queue, this.config.exchangeName || getDefaultConfig().exchangeName, '', { + await channel.bindQueue(queue.queue, this.config.exchangeName ?? getDefaultConfig().exchangeName, '', { 'x-match': 'all', messageType: subscription.messageType, senderServiceName: subscription.sender?.serviceName, diff --git a/packages/base-http-bridge/src/HttpEventBridge/HttpEventBridge.impl.ts b/packages/base-http-bridge/src/HttpEventBridge/HttpEventBridge.impl.ts index 412f1ce5d..03dd0bd04 100644 --- a/packages/base-http-bridge/src/HttpEventBridge/HttpEventBridge.impl.ts +++ b/packages/base-http-bridge/src/HttpEventBridge/HttpEventBridge.impl.ts @@ -80,7 +80,7 @@ export class HttpEventBridge ...config, } - super(conf.name || 'HttpEventBridge', conf) + super(conf.name ?? 'HttpEventBridge', conf) this.client = client diff --git a/packages/base-http-bridge/src/HttpEventBridge/getCommandHandler.impl.ts b/packages/base-http-bridge/src/HttpEventBridge/getCommandHandler.impl.ts index 394299762..13b126c53 100644 --- a/packages/base-http-bridge/src/HttpEventBridge/getCommandHandler.impl.ts +++ b/packages/base-http-bridge/src/HttpEventBridge/getCommandHandler.impl.ts @@ -46,7 +46,7 @@ export const getCommandHandler = function ( { kind: SpanKind.CONSUMER }, parentContext, async (span) => { - const hostname = process.env.HOSTNAME || 'unknown' + const hostname = process.env.HOSTNAME ?? 'unknown' span.setAttribute(SemanticAttributes.HTTP_URL, c.req.url || '') span.setAttribute(SemanticAttributes.HTTP_METHOD, c.req.method || '') span.setAttribute(SemanticAttributes.HTTP_HOST, hostname) diff --git a/packages/base-http-bridge/src/HttpEventBridge/getCommandHandlerRestApi.impl.ts b/packages/base-http-bridge/src/HttpEventBridge/getCommandHandlerRestApi.impl.ts index 29de6a8ff..24b945570 100644 --- a/packages/base-http-bridge/src/HttpEventBridge/getCommandHandlerRestApi.impl.ts +++ b/packages/base-http-bridge/src/HttpEventBridge/getCommandHandlerRestApi.impl.ts @@ -46,7 +46,7 @@ export const getCommandHandlerRestApi = function ( { kind: SpanKind.CONSUMER }, parentContext, async (span) => { - const hostname = process.env.HOSTNAME || 'unknown' + const hostname = process.env.HOSTNAME ?? 'unknown' span.setAttribute(SemanticAttributes.HTTP_URL, c.req.url || '') span.setAttribute(SemanticAttributes.HTTP_METHOD, c.req.method || '') span.setAttribute(SemanticAttributes.HTTP_HOST, hostname) @@ -67,7 +67,7 @@ export const getCommandHandlerRestApi = function ( let body: unknown if (c.req.method === 'POST' || c.req.method === 'PUT' || c.req.method === 'PATCH') { - const contentType = metadata.expose.contentTypeRequest || 'application/json' + const contentType = metadata.expose.contentTypeRequest ?? 'application/json' body = contentType.toLowerCase() === 'application/json' ? await c.req.json() : await c.req.text() } @@ -79,8 +79,8 @@ export const getCommandHandlerRestApi = function ( messageType: EBMessageType.Command, correlationId: '', timestamp: Date.now(), - contentType: metadata.expose.contentTypeResponse || 'application/json', - contentEncoding: metadata.expose.contentEncodingResponse || 'utf-8', + contentType: metadata.expose.contentTypeResponse ?? 'application/json', + contentEncoding: metadata.expose.contentEncodingResponse ?? 'utf-8', otp: serializeOtp(), receiver: { ...address, @@ -131,7 +131,7 @@ export const getCommandHandlerRestApi = function ( statusText: getErrorMessageForCode(status), headers: { 'content-type': `${metadata.expose.contentTypeResponse} || 'application/json'; charset=${ - metadata.expose.contentEncodingResponse || 'utf-8' + metadata.expose.contentEncodingResponse ?? 'utf-8' }`, }, }) @@ -154,7 +154,7 @@ export const getCommandHandlerRestApi = function ( statusText: getErrorMessageForCode(status), headers: { 'content-type': `${metadata.expose.contentTypeResponse} || 'application/json'; charset=${ - metadata.expose.contentEncodingResponse || 'utf-8' + metadata.expose.contentEncodingResponse ?? 'utf-8' }`, }, }) diff --git a/packages/base-http-bridge/src/HttpEventBridge/getSubscriptionHandler.impl.ts b/packages/base-http-bridge/src/HttpEventBridge/getSubscriptionHandler.impl.ts index 12ca0298f..3d7c7a883 100644 --- a/packages/base-http-bridge/src/HttpEventBridge/getSubscriptionHandler.impl.ts +++ b/packages/base-http-bridge/src/HttpEventBridge/getSubscriptionHandler.impl.ts @@ -32,7 +32,7 @@ export const getSubscriptionHandler = function ( { kind: SpanKind.CONSUMER }, parentContext, async (span) => { - const hostname = process.env.HOSTNAME || 'unknown' + const hostname = process.env.HOSTNAME ?? 'unknown' span.setAttribute(SemanticAttributes.HTTP_URL, c.req.url || '') span.setAttribute(SemanticAttributes.HTTP_METHOD, c.req.method || '') span.setAttribute(SemanticAttributes.HTTP_HOST, hostname) diff --git a/packages/cli/src/helper/installInfo.ts b/packages/cli/src/helper/installInfo.ts index dffbf0ec0..7b40f9c32 100644 --- a/packages/cli/src/helper/installInfo.ts +++ b/packages/cli/src/helper/installInfo.ts @@ -67,8 +67,8 @@ const getServiceVersions = (startFolder: string, serviceName: string) => { service.version = parseInt(versionInfo[1]) service.path = path.join(serviceName, path.basename(file)) - service.builderFile = getBuilderFile(name) || '' - service.serviceFile = getServiceFile(name) || '' + service.builderFile = getBuilderFile(name) ?? '' + service.serviceFile = getServiceFile(name) ?? '' } } else { const infoName = path.basename(file) diff --git a/packages/core/src/DefaultLogger/DefaultLogger.impl.ts b/packages/core/src/DefaultLogger/DefaultLogger.impl.ts index 24909c370..9bb5afd61 100644 --- a/packages/core/src/DefaultLogger/DefaultLogger.impl.ts +++ b/packages/core/src/DefaultLogger/DefaultLogger.impl.ts @@ -62,7 +62,7 @@ export class DefaultLogger extends Logger implements ILogger { const parameter: LoggerOptions = { ...options, name: undefined, - module: options.module || options.name || prefix.join('-'), + module: options.module ?? options.name ?? prefix.join('-'), } const child = this.log.child(parameter) diff --git a/packages/core/src/HttpClient/HttpClient.impl.ts b/packages/core/src/HttpClient/HttpClient.impl.ts index db1add6d7..a4829c657 100644 --- a/packages/core/src/HttpClient/HttpClient.impl.ts +++ b/packages/core/src/HttpClient/HttpClient.impl.ts @@ -42,7 +42,7 @@ export class HttpClient = {}> imple const name = config.name ?? this.name this.name = name - const logger = config.logger?.getChildLogger({ name }) || initLogger(config.logLevel, { name }) + const logger = config.logger?.getChildLogger({ name }) ?? initLogger(config.logLevel, { name }) this.config = { logger, @@ -137,7 +137,7 @@ export class HttpClient = {}> imple const url = new URL(fullPath, this.baseUrl) - for (const [key, value] of Object.entries(options?.query || {})) { + for (const [key, value] of Object.entries(options?.query ?? {})) { url.searchParams.set(key, value) } diff --git a/packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts b/packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts index 0ec8cd954..8595addf6 100644 --- a/packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts +++ b/packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts @@ -787,11 +787,11 @@ export class SubscriptionDefinitionBuilder< throw new Error(`SubscriptionDefinitionBuilder: missing function implementation for ${this.subscriptionName}`) } - const inputPayloadSchema: Schema | undefined = this.hooks.transformInput?.transformInputSchema || this.inputSchema + const inputPayloadSchema: Schema | undefined = this.hooks.transformInput?.transformInputSchema ?? this.inputSchema const inputParameterSchema: Schema | undefined = - this.hooks.transformInput?.transformParameterSchema || this.parameterSchema + this.hooks.transformInput?.transformParameterSchema ?? this.parameterSchema const outputPayloadSchema: Schema | undefined = - this.hooks.transformOutput?.transformOutputSchema || this.outputSchema + this.hooks.transformOutput?.transformOutputSchema ?? this.outputSchema const eventBridgeConfig: Complete = { durable: this.durable, diff --git a/packages/core/src/core/ConfigStore/ConfigStoreBaseClass.impl.ts b/packages/core/src/core/ConfigStore/ConfigStoreBaseClass.impl.ts index 1e0e4a340..6649e5623 100644 --- a/packages/core/src/core/ConfigStore/ConfigStoreBaseClass.impl.ts +++ b/packages/core/src/core/ConfigStore/ConfigStoreBaseClass.impl.ts @@ -26,7 +26,7 @@ export abstract class ConfigStoreBaseClass) { - const logger = config?.logger || initLogger(config?.logLevel) + const logger = config?.logger ?? initLogger(config?.logLevel) this.logger = logger.getChildLogger({ name }) this.name = name diff --git a/packages/core/src/core/Error/HandledError.impl.ts b/packages/core/src/core/Error/HandledError.impl.ts index f8a56fe06..0ce93c45a 100644 --- a/packages/core/src/core/Error/HandledError.impl.ts +++ b/packages/core/src/core/Error/HandledError.impl.ts @@ -16,7 +16,7 @@ export class HandledError extends Error { public traceId?: TraceId, ) { /* Calling the constructor of the parent class (Error) and passing the message. */ - super(message || getErrorMessageForCode(errorCode)) + super(message ?? getErrorMessageForCode(errorCode)) Error.captureStackTrace(this, this.constructor) Object.setPrototypeOf(this, HandledError.prototype) @@ -52,7 +52,7 @@ export class HandledError extends Error { t = err.traceId } - const error = new HandledError(errorCode || StatusCode.InternalServerError, err.message, data, traceId || t) + const error = new HandledError(errorCode ?? StatusCode.InternalServerError, err.message, data, traceId ?? t) error.stack = err.stack error.cause = err.cause return error @@ -67,7 +67,7 @@ export class HandledError extends Error { status: this.errorCode, message: this.message, data: this.data, - traceId: this.traceId || traceId, + traceId: this.traceId ?? traceId, }) return errorResponse diff --git a/packages/core/src/core/Error/UnhandledError.impl.ts b/packages/core/src/core/Error/UnhandledError.impl.ts index 616be0fc8..a4648cd36 100644 --- a/packages/core/src/core/Error/UnhandledError.impl.ts +++ b/packages/core/src/core/Error/UnhandledError.impl.ts @@ -17,7 +17,7 @@ export class UnhandledError extends Error { public data?: unknown, public traceId?: TraceId, ) { - super(message || getErrorMessageForCode(errorCode)) + super(message ?? getErrorMessageForCode(errorCode)) Error.captureStackTrace(this, this.constructor) Object.setPrototypeOf(this, UnhandledError.prototype) @@ -48,7 +48,7 @@ export class UnhandledError extends Error { if (err instanceof HandledError || err instanceof UnhandledError) { t = err.traceId } - const error = new UnhandledError(errorCode || StatusCode.InternalServerError, err.message, data, traceId || t) + const error = new UnhandledError(errorCode ?? StatusCode.InternalServerError, err.message, data, traceId ?? t) error.stack = err.stack error.cause = err.cause return error diff --git a/packages/core/src/core/EventBridge/EventBridgeBaseClass.impl.ts b/packages/core/src/core/EventBridge/EventBridgeBaseClass.impl.ts index c369c70ec..32b4bc373 100644 --- a/packages/core/src/core/EventBridge/EventBridgeBaseClass.impl.ts +++ b/packages/core/src/core/EventBridge/EventBridgeBaseClass.impl.ts @@ -30,19 +30,19 @@ export class EventBridgeBaseClass extends GenericEventEmitter) { super() this.name = name - const logger = config?.logger || initLogger(config?.logLevel) + const logger = config?.logger ?? initLogger(config?.logLevel) this.logger = logger.getChildLogger({ name }) - this.instanceId = config.instanceId || getNewInstanceId() + this.instanceId = config.instanceId ?? getNewInstanceId() this.config = { logger: logger.getChildLogger({ name }), instanceId: this.instanceId, - defaultCommandTimeout: config.defaultCommandTimeout || 30000, + defaultCommandTimeout: config.defaultCommandTimeout ?? 30000, spanProcessor: undefined, ...config, } - this.defaultCommandTimeout = config.defaultCommandTimeout || 30000 + this.defaultCommandTimeout = config.defaultCommandTimeout ?? 30000 const resource = Resource.default().merge( new Resource({ diff --git a/packages/core/src/core/SecretStore/SecretStoreBaseClass.impl.ts b/packages/core/src/core/SecretStore/SecretStoreBaseClass.impl.ts index 4a51a212c..4ff93dcee 100644 --- a/packages/core/src/core/SecretStore/SecretStoreBaseClass.impl.ts +++ b/packages/core/src/core/SecretStore/SecretStoreBaseClass.impl.ts @@ -26,7 +26,7 @@ export abstract class SecretStoreBaseClass) { - const logger = config?.logger || initLogger(config?.logLevel) + const logger = config?.logger ?? initLogger(config?.logLevel) this.logger = logger.getChildLogger({ name }) this.name = name diff --git a/packages/core/src/core/Service/Service.impl.ts b/packages/core/src/core/Service/Service.impl.ts index 6c7bc8e6f..d0b5aaf7d 100644 --- a/packages/core/src/core/Service/Service.impl.ts +++ b/packages/core/src/core/Service/Service.impl.ts @@ -670,7 +670,7 @@ export class Service extends ServiceBaseClass implements S }, ) - if (Object.keys(command.hooks.afterGuard || {}).length) { + if (Object.keys(command.hooks.afterGuard ?? {}).length) { const guards = command.hooks.afterGuard await this.startActiveSpan(command.commandName + '.afterGuardHooks', {}, undefined, async () => { @@ -893,7 +893,7 @@ export class Service extends ServiceBaseClass implements S }, ) - if (Object.keys(subscription.hooks.afterGuard || {}).length) { + if (Object.keys(subscription.hooks.afterGuard ?? {}).length) { const guards = subscription.hooks.afterGuard await this.startActiveSpan(subscription.subscriptionName + '.afterGuardHooks', {}, undefined, async () => { diff --git a/packages/core/src/core/Service/ServiceBaseClass/ServiceBaseClass.impl.ts b/packages/core/src/core/Service/ServiceBaseClass/ServiceBaseClass.impl.ts index d023e43a9..8ed8a1334 100644 --- a/packages/core/src/core/Service/ServiceBaseClass/ServiceBaseClass.impl.ts +++ b/packages/core/src/core/Service/ServiceBaseClass/ServiceBaseClass.impl.ts @@ -110,8 +110,8 @@ export class ServiceBaseClass extends GenericEventEmitter { */ getTracer(name?: string, version?: string) { return this.traceProvider.getTracer( - name || this.serviceInfo.serviceName, - version || this.serviceInfo.serviceVersion, + name ?? this.serviceInfo.serviceName, + version ?? this.serviceInfo.serviceVersion, ) } diff --git a/packages/core/src/core/StateStore/StateStoreBaseClass.impl.ts b/packages/core/src/core/StateStore/StateStoreBaseClass.impl.ts index b914ea800..a27d07641 100644 --- a/packages/core/src/core/StateStore/StateStoreBaseClass.impl.ts +++ b/packages/core/src/core/StateStore/StateStoreBaseClass.impl.ts @@ -22,7 +22,7 @@ export abstract class StateStoreBaseClass) { - const logger = config?.logger || initLogger(config?.logLevel) + const logger = config?.logger ?? initLogger(config?.logLevel) this.logger = logger.getChildLogger({ name }) this.name = name diff --git a/packages/core/src/core/helper/createErrorResponse.impl.ts b/packages/core/src/core/helper/createErrorResponse.impl.ts index c92902223..a2db28a0f 100644 --- a/packages/core/src/core/helper/createErrorResponse.impl.ts +++ b/packages/core/src/core/helper/createErrorResponse.impl.ts @@ -31,7 +31,7 @@ export const createErrorResponse = ( errorTraceId = error.traceId } - const traceId = originalEBMessage.traceId || errorTraceId || getNewTraceId() + const traceId = originalEBMessage.traceId ?? errorTraceId ?? getNewTraceId() const errorResponse: Readonly = Object.freeze({ id: originalEBMessage.id, diff --git a/packages/core/src/core/helper/createSuccessResponse.impl.ts b/packages/core/src/core/helper/createSuccessResponse.impl.ts index dc6d7c350..8443ef4ba 100644 --- a/packages/core/src/core/helper/createSuccessResponse.impl.ts +++ b/packages/core/src/core/helper/createSuccessResponse.impl.ts @@ -24,7 +24,7 @@ export const createSuccessResponse = ( const successResponse: CommandSuccessResponse = Object.freeze({ id: originalEBMessage.id, correlationId: originalEBMessage.correlationId, - traceId: originalEBMessage.traceId || getNewTraceId(), + traceId: originalEBMessage.traceId ?? getNewTraceId(), principalId: originalEBMessage.principalId, tenantId: originalEBMessage.tenantId, contentType, diff --git a/packages/core/src/helper/string/convertToCamelCase.impl.ts b/packages/core/src/helper/string/convertToCamelCase.impl.ts index c6690c0c6..b4e25f935 100644 --- a/packages/core/src/helper/string/convertToCamelCase.impl.ts +++ b/packages/core/src/helper/string/convertToCamelCase.impl.ts @@ -11,6 +11,6 @@ export const convertToCamelCase = (str: string): string => { str .match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g) ?.map((x) => x.slice(0, 1).toUpperCase() + x.slice(1).toLowerCase()) - .join('') || str + .join('') ?? str return s.slice(0, 1).toLowerCase() + s.slice(1) } diff --git a/packages/core/src/helper/string/convertToKebabCase.impl.ts b/packages/core/src/helper/string/convertToKebabCase.impl.ts index 62470ff08..383ee3fac 100644 --- a/packages/core/src/helper/string/convertToKebabCase.impl.ts +++ b/packages/core/src/helper/string/convertToKebabCase.impl.ts @@ -10,4 +10,4 @@ export const convertToKebabCase = (str: string): string => str .match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g) ?.map((x) => x.toLowerCase()) - .join('-') || str + .join('-') ?? str diff --git a/packages/core/src/helper/string/convertToPascalCase.impl.ts b/packages/core/src/helper/string/convertToPascalCase.impl.ts index 9a6c1b41f..9a6055fa5 100644 --- a/packages/core/src/helper/string/convertToPascalCase.impl.ts +++ b/packages/core/src/helper/string/convertToPascalCase.impl.ts @@ -10,4 +10,4 @@ export const convertToPascalCase = (str: string): string => str .match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g) ?.map((x) => x.charAt(0).toUpperCase() + x.slice(1).toLowerCase()) - .join('') || str + .join('') ?? str diff --git a/packages/core/src/helper/string/convertToSnakeCase.impl.ts b/packages/core/src/helper/string/convertToSnakeCase.impl.ts index 2c7e8a4eb..33da530fb 100644 --- a/packages/core/src/helper/string/convertToSnakeCase.impl.ts +++ b/packages/core/src/helper/string/convertToSnakeCase.impl.ts @@ -10,4 +10,4 @@ export const convertToSnakeCase = (str: string): string => str .match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g) ?.map((x) => x.toLowerCase()) - .join('_') || str + .join('_') ?? str diff --git a/packages/core/src/mocks/getCommandTransformContext.mock.ts b/packages/core/src/mocks/getCommandTransformContext.mock.ts index 517515ebc..4c608aa01 100644 --- a/packages/core/src/mocks/getCommandTransformContext.mock.ts +++ b/packages/core/src/mocks/getCommandTransformContext.mock.ts @@ -18,17 +18,17 @@ export const getCommandTransformContextMock = } => { - const emitMessage = sandbox?.stub() || stub() - const registerCommand = sandbox?.stub() || stub() - const registerSubscription = sandbox?.stub() || stub() - const unregisterCommand = sandbox?.stub() || stub() - const unregisterSubscription = sandbox?.stub() || stub() - const invoke = sandbox?.stub() || stub() - const start = sandbox?.stub() || stub() - const isReady = sandbox?.stub().resolves(true) || stub().resolves(true) - const isHealthy = sandbox?.stub().resolves(true) || stub().resolves(true) - const destroy = sandbox?.stub().resolves() || stub().resolves() + const emitMessage = sandbox?.stub() ?? stub() + const registerCommand = sandbox?.stub() ?? stub() + const registerSubscription = sandbox?.stub() ?? stub() + const unregisterCommand = sandbox?.stub() ?? stub() + const unregisterSubscription = sandbox?.stub() ?? stub() + const invoke = sandbox?.stub() ?? stub() + const start = sandbox?.stub() ?? stub() + const isReady = sandbox?.stub().resolves(true) ?? stub().resolves(true) + const isHealthy = sandbox?.stub().resolves(true) ?? stub().resolves(true) + const destroy = sandbox?.stub().resolves() ?? stub().resolves() const mock: EventBridge = { name: 'EventBridgeMock', diff --git a/packages/core/src/mocks/getLogger.mock.ts b/packages/core/src/mocks/getLogger.mock.ts index 9179453a3..688b01f36 100644 --- a/packages/core/src/mocks/getLogger.mock.ts +++ b/packages/core/src/mocks/getLogger.mock.ts @@ -9,12 +9,12 @@ import type { Logger } from '../core/index.js' * @group Unit test helper */ export const getLoggerMock = (sandbox?: SinonSandbox) => { - const info = sandbox?.stub() || stub() - const error = sandbox?.stub() || stub() - const warn = sandbox?.stub() || stub() - const debug = sandbox?.stub() || stub() - const trace = sandbox?.stub() || stub() - const fatal = sandbox?.stub() || stub() + const info = sandbox?.stub() ?? stub() + const error = sandbox?.stub() ?? stub() + const warn = sandbox?.stub() ?? stub() + const debug = sandbox?.stub() ?? stub() + const trace = sandbox?.stub() ?? stub() + const fatal = sandbox?.stub() ?? stub() const mock: Logger = { info, diff --git a/packages/core/src/mocks/getSubscriptionContext.mock.ts b/packages/core/src/mocks/getSubscriptionContext.mock.ts index 2012129a3..47535b58c 100644 --- a/packages/core/src/mocks/getSubscriptionContext.mock.ts +++ b/packages/core/src/mocks/getSubscriptionContext.mock.ts @@ -37,14 +37,14 @@ export const getSubscriptionContextMock = ( traceFlags: 0, } }, - setAttribute: sandbox?.stub() || stub(), - setAttributes: sandbox?.stub() || stub(), - addEvent: sandbox?.stub() || stub(), - setStatus: sandbox?.stub() || stub(), - updateName: sandbox?.stub() || stub(), - end: sandbox?.stub() || stub(), + setAttribute: sandbox?.stub() ?? stub(), + setAttributes: sandbox?.stub() ?? stub(), + addEvent: sandbox?.stub() ?? stub(), + setStatus: sandbox?.stub() ?? stub(), + updateName: sandbox?.stub() ?? stub(), + end: sandbox?.stub() ?? stub(), isRecording: () => true, - recordException: (sandbox?.stub() || stub()).callsFake((err: any) => { + recordException: (sandbox?.stub() ?? stub()).callsFake((err: any) => { // eslint-disable-next-line no-console console.error(err) }), @@ -95,7 +95,7 @@ export const getSubscriptionContextMock = ( serviceTarget: name, } if (!invokeMocks[na.serviceName][na.serviceVersion][na.serviceTarget]) { - invokeMocks[na.serviceName][na.serviceVersion][na.serviceTarget] = sandbox?.stub() || stub() + invokeMocks[na.serviceName][na.serviceVersion][na.serviceTarget] = sandbox?.stub() ?? stub() invokeMocks[na.serviceName][na.serviceVersion][na.serviceTarget].rejects( new Error( @@ -109,28 +109,28 @@ export const getSubscriptionContextMock = ( }) as TFaux } - const eventList = Object.keys(emitList || {}).reduce((prev, current) => { + const eventList = Object.keys(emitList ?? {}).reduce((prev, current) => { return { ...prev, - [current]: sandbox?.stub() || stub().resolves(), + [current]: sandbox?.stub() ?? stub().resolves(), } }, {}) as FromEmitToOtherType const stubs = { logger: logger.stubs, emit: eventList, - invoke: sandbox?.stub() || stub(), - wrapInSpan: sandbox?.stub() || stub(), - startActiveSpan: sandbox?.stub() || stub(), - getSecret: sandbox?.stub() || stub(), - setSecret: sandbox?.stub() || stub(), - removeSecret: sandbox?.stub() || stub(), - getConfig: sandbox?.stub() || stub(), - setConfig: sandbox?.stub() || stub(), - removeConfig: sandbox?.stub() || stub(), - getState: sandbox?.stub() || stub(), - setState: sandbox?.stub() || stub(), - removeState: sandbox?.stub() || stub(), + invoke: sandbox?.stub() ?? stub(), + wrapInSpan: sandbox?.stub() ?? stub(), + startActiveSpan: sandbox?.stub() ?? stub(), + getSecret: sandbox?.stub() ?? stub(), + setSecret: sandbox?.stub() ?? stub(), + removeSecret: sandbox?.stub() ?? stub(), + getConfig: sandbox?.stub() ?? stub(), + setConfig: sandbox?.stub() ?? stub(), + removeConfig: sandbox?.stub() ?? stub(), + getState: sandbox?.stub() ?? stub(), + setState: sandbox?.stub() ?? stub(), + removeState: sandbox?.stub() ?? stub(), service: getInvokeProxy>(), } diff --git a/packages/core/src/mocks/getSubscriptionTransformContext.mock.ts b/packages/core/src/mocks/getSubscriptionTransformContext.mock.ts index 5a0810827..1abff6847 100644 --- a/packages/core/src/mocks/getSubscriptionTransformContext.mock.ts +++ b/packages/core/src/mocks/getSubscriptionTransformContext.mock.ts @@ -13,17 +13,17 @@ export const getSubscriptionTransformContextMock = (message: EBMessage, sandbox? const logger = getLoggerMock(sandbox) const stubs = { logger: logger.stubs, - wrapInSpan: sandbox?.stub() || stub(), - startActiveSpan: sandbox?.stub() || stub(), - getSecret: sandbox?.stub() || stub(), - setSecret: sandbox?.stub() || stub(), - removeSecret: sandbox?.stub() || stub(), - getConfig: sandbox?.stub() || stub(), - setConfig: sandbox?.stub() || stub(), - removeConfig: sandbox?.stub() || stub(), - getState: sandbox?.stub() || stub(), - setState: sandbox?.stub() || stub(), - removeState: sandbox?.stub() || stub(), + wrapInSpan: sandbox?.stub() ?? stub(), + startActiveSpan: sandbox?.stub() ?? stub(), + getSecret: sandbox?.stub() ?? stub(), + setSecret: sandbox?.stub() ?? stub(), + removeSecret: sandbox?.stub() ?? stub(), + getConfig: sandbox?.stub() ?? stub(), + setConfig: sandbox?.stub() ?? stub(), + removeConfig: sandbox?.stub() ?? stub(), + getState: sandbox?.stub() ?? stub(), + setState: sandbox?.stub() ?? stub(), + removeState: sandbox?.stub() ?? stub(), } const mock: SubscriptionTransformFunctionContext = { diff --git a/packages/core/src/mocks/messages/getCommandErrorMessage.mock.ts b/packages/core/src/mocks/messages/getCommandErrorMessage.mock.ts index cedfaab7f..bf9abdeba 100644 --- a/packages/core/src/mocks/messages/getCommandErrorMessage.mock.ts +++ b/packages/core/src/mocks/messages/getCommandErrorMessage.mock.ts @@ -18,7 +18,7 @@ export const getCommandErrorMessageMock = ( input?: Partial, commandMessage?: Command, ): Readonly => { - const cmdMessage: Readonly> = commandMessage || getCommandMessageMock() + const cmdMessage: Readonly> = commandMessage ?? getCommandMessageMock() const successResponse: Readonly = Object.freeze({ ...createErrorResponse(getNewInstanceId(), cmdMessage, error?.errorCode, error), diff --git a/packages/core/src/mocks/messages/getCommandMessage.mock.ts b/packages/core/src/mocks/messages/getCommandMessage.mock.ts index 286a920bd..2a0bbb92f 100644 --- a/packages/core/src/mocks/messages/getCommandMessage.mock.ts +++ b/packages/core/src/mocks/messages/getCommandMessage.mock.ts @@ -44,7 +44,7 @@ export const getCommandMessageMock = ( }, payload: { payload: input?.payload?.payload as Payload, - parameter: (input?.payload?.parameter || {}) as Parameter, + parameter: (input?.payload?.parameter ?? {}) as Parameter, }, ...input, }) diff --git a/packages/core/src/mocks/messages/getCommandSuccessMessage.mock.ts b/packages/core/src/mocks/messages/getCommandSuccessMessage.mock.ts index 18dd937f1..0758627d6 100644 --- a/packages/core/src/mocks/messages/getCommandSuccessMessage.mock.ts +++ b/packages/core/src/mocks/messages/getCommandSuccessMessage.mock.ts @@ -12,10 +12,10 @@ export const getCommandSuccessMessageMock = ( input?: Partial>, commandMessage?: Command, ): Readonly> => { - const cmdMessage: Readonly> = commandMessage || getCommandMessageMock() + const cmdMessage: Readonly> = commandMessage ?? getCommandMessageMock() const successResponse: Readonly> = Object.freeze({ - ...createSuccessResponse(commandMessage?.receiver.instanceId || getNewInstanceId(), cmdMessage, payload), + ...createSuccessResponse(commandMessage?.receiver.instanceId ?? getNewInstanceId(), cmdMessage, payload), ...input, }) diff --git a/packages/core/src/zodOpenApi/zodOpenApi.impl.ts b/packages/core/src/zodOpenApi/zodOpenApi.impl.ts index c36c28fc3..2367ecce0 100644 --- a/packages/core/src/zodOpenApi/zodOpenApi.impl.ts +++ b/packages/core/src/zodOpenApi/zodOpenApi.impl.ts @@ -24,7 +24,7 @@ interface ParsingArgs { } export function extendApi(schema: T, SchemaObject: SchemaObject = {}): T { - schema.metaOpenApi = Object.assign(schema.metaOpenApi || {}, SchemaObject) + schema.metaOpenApi = Object.assign(schema.metaOpenApi ?? {}, SchemaObject) return schema } diff --git a/packages/dapr-sdk/src/DaprClient/DaprClient.impl.ts b/packages/dapr-sdk/src/DaprClient/DaprClient.impl.ts index f505eacee..88a847094 100644 --- a/packages/dapr-sdk/src/DaprClient/DaprClient.impl.ts +++ b/packages/dapr-sdk/src/DaprClient/DaprClient.impl.ts @@ -17,25 +17,25 @@ import { DAPR_API_VERSION } from '../types/index.js' export class DaprClient extends HttpClient> implements HttpEventBridgeClient { getInternalPathForSubscription(address: EBMessageAddress) { // [baseUrl]/v1.0/invoke/app-user-v1/method/purista/subscription/[subscription-name] - return join(this.config.pathPrefix || 'purista', 'subscription', convertToKebabCase(address.serviceTarget)) + return join(this.config.pathPrefix ?? 'purista', 'subscription', convertToKebabCase(address.serviceTarget)) } getInternalPathForCommand(address: EBMessageAddress) { // [baseUrl]/v1.0/invoke/user-v1/method/purista/command/[command-name] - return join(this.config.pathPrefix || 'purista', 'command', convertToKebabCase(address.serviceTarget)) + return join(this.config.pathPrefix ?? 'purista', 'command', convertToKebabCase(address.serviceTarget)) } getApiPathForCommand(addess: EBMessageAddress, metadata: HttpExposedServiceMeta) { // [baseUrl]/api/v1/[command expose.http.path] - return join(this.config.apiPrefix || 'api', `v${addess.serviceVersion}`, metadata.expose.http.path) + return join(this.config.apiPrefix ?? 'api', `v${addess.serviceVersion}`, metadata.expose.http.path) } async invoke(command: Command, headers?: Record, timeout?: number): Promise { // [baseUrl]/v1.0/invoke/user-v1/method/purista/command/[commandName] const path = join( - this.config.clientConfig?.daprApiVersion || DAPR_API_VERSION, + this.config.clientConfig?.daprApiVersion ?? DAPR_API_VERSION, 'invoke', - `${this.config.clientConfig?.appPrefix || ''}${convertToKebabCase( + `${this.config.clientConfig?.appPrefix ?? ''}${convertToKebabCase( command.receiver.serviceName, )}-v${convertToKebabCase(command.receiver.serviceVersion)}`, 'method', @@ -51,9 +51,9 @@ export class DaprClient extends HttpClient { return { - daprHost: process.env.DAPR_HOST || DEFAULT_DAPR_HOST, - daprPort: process.env.DAPR_HTTP_PORT || DEFAULT_DAPR_PORT, + daprHost: process.env.DAPR_HOST ?? DEFAULT_DAPR_HOST, + daprPort: process.env.DAPR_HTTP_PORT ?? DEFAULT_DAPR_PORT, daprApiToken: undefined, isKeepAlive: true, pubSubName: 'pubsub', diff --git a/packages/dapr-sdk/src/DaprConfigStore/DaprConfigStore.impl.ts b/packages/dapr-sdk/src/DaprConfigStore/DaprConfigStore.impl.ts index d80e727ae..1891f46fe 100644 --- a/packages/dapr-sdk/src/DaprConfigStore/DaprConfigStore.impl.ts +++ b/packages/dapr-sdk/src/DaprConfigStore/DaprConfigStore.impl.ts @@ -17,7 +17,7 @@ export class DaprConfigStore extends ConfigStoreBaseClass private client: HttpClient constructor(config?: StoreBaseConfig) { - super(config?.configStoreName || 'DaprConfigStore', { ...config }) + super(config?.configStoreName ?? 'DaprConfigStore', { ...config }) const logger = this.logger const conf = { configStoreName: 'configStore', @@ -56,7 +56,7 @@ export class DaprConfigStore extends ConfigStoreBaseClass ): Promise> { const fetchConfigFromStore = async (configName: string) => { const path = join( - this.config.clientConfig?.daprApiToken || DAPR_API_VERSION, + this.config.clientConfig?.daprApiToken ?? DAPR_API_VERSION, 'configuration', this.config.configStoreName as string, ) diff --git a/packages/dapr-sdk/src/DaprEventBridge/DaprEventBridge.impl.ts b/packages/dapr-sdk/src/DaprEventBridge/DaprEventBridge.impl.ts index efdeda630..b1ccff5c8 100644 --- a/packages/dapr-sdk/src/DaprEventBridge/DaprEventBridge.impl.ts +++ b/packages/dapr-sdk/src/DaprEventBridge/DaprEventBridge.impl.ts @@ -49,7 +49,7 @@ export class DaprEventBridge extends HttpEventBridge impl ...config, } - const logger = conf.logger || initLogger(config.logLevel, { name: conf.name || 'DaprEventBridge' }) + const logger = conf.logger ?? initLogger(config.logLevel, { name: conf.name || 'DaprEventBridge' }) const clientConfig = conf.clientConfig diff --git a/packages/dapr-sdk/src/DaprEventBridge/getDefaultConfig.impl.ts b/packages/dapr-sdk/src/DaprEventBridge/getDefaultConfig.impl.ts index 1a9eba8d6..c789392dd 100644 --- a/packages/dapr-sdk/src/DaprEventBridge/getDefaultConfig.impl.ts +++ b/packages/dapr-sdk/src/DaprEventBridge/getDefaultConfig.impl.ts @@ -5,7 +5,7 @@ export const getDefaultConfig = () => { return { name: 'DaprEventBridge', - serverHost: process.env.SERVER_HOST || '127.0.0.1', + serverHost: process.env.SERVER_HOST ?? '127.0.0.1', serverPort, pathPrefix: 'purista', apiPrefix: 'api', diff --git a/packages/dapr-sdk/src/DaprSecretStore/DaprSecretStore.impl.ts b/packages/dapr-sdk/src/DaprSecretStore/DaprSecretStore.impl.ts index 5e77bc9c8..113db017f 100644 --- a/packages/dapr-sdk/src/DaprSecretStore/DaprSecretStore.impl.ts +++ b/packages/dapr-sdk/src/DaprSecretStore/DaprSecretStore.impl.ts @@ -18,7 +18,7 @@ export class DaprSecretStore extends SecretStoreBaseClass private client: HttpClient constructor(config?: StoreBaseConfig) { - super(config?.secretStoreName || 'DaprSecretStore', { ...config }) + super(config?.secretStoreName ?? 'DaprSecretStore', { ...config }) const logger = this.logger const conf = { secretStoreName: 'secretStore', @@ -57,7 +57,7 @@ export class DaprSecretStore extends SecretStoreBaseClass ): Promise> { const fetchSecretFromStore = async (secretName: string) => { const path = join( - this.config.clientConfig?.daprApiToken || DAPR_API_VERSION, + this.config.clientConfig?.daprApiToken ?? DAPR_API_VERSION, 'secrets', this.config.secretStoreName as string, secretName, diff --git a/packages/dapr-sdk/src/DaprStateStore/DaprStateStore.impl.ts b/packages/dapr-sdk/src/DaprStateStore/DaprStateStore.impl.ts index e4aa9b3a4..d9c095b3d 100644 --- a/packages/dapr-sdk/src/DaprStateStore/DaprStateStore.impl.ts +++ b/packages/dapr-sdk/src/DaprStateStore/DaprStateStore.impl.ts @@ -16,7 +16,7 @@ export class DaprStateStore extends StateStoreBaseClass { private client: HttpClient constructor(config?: StoreBaseConfig) { - super(config?.stateStoreName || 'DaprStateStore', { ...config }) + super(config?.stateStoreName ?? 'DaprStateStore', { ...config }) const logger = this.logger const conf = { stateStoreName: 'stateStore', @@ -55,7 +55,7 @@ export class DaprStateStore extends StateStoreBaseClass { ): Promise> { const fetchStatesFromStore = async (stateName: string) => { const path = join( - this.config.clientConfig?.daprApiToken || DAPR_API_VERSION, + this.config.clientConfig?.daprApiToken ?? DAPR_API_VERSION, 'state', this.config.stateStoreName as string, stateName, @@ -73,7 +73,7 @@ export class DaprStateStore extends StateStoreBaseClass { const returnValue: Record = {} stateNames.forEach((value, index) => { - returnValue[value] = result[index] as string + returnValue[value] = result[index] }) return returnValue as ObjectWithKeysFromStringArray @@ -81,7 +81,7 @@ export class DaprStateStore extends StateStoreBaseClass { protected async setStateImpl(stateName: string, stateValue: unknown) { const path = join( - this.config.clientConfig?.daprApiToken || DAPR_API_VERSION, + this.config.clientConfig?.daprApiToken ?? DAPR_API_VERSION, 'state', this.config.stateStoreName as string, ) @@ -98,7 +98,7 @@ export class DaprStateStore extends StateStoreBaseClass { protected async removeStateImpl(stateName: string) { const path = join( - this.config.clientConfig?.daprApiToken || DAPR_API_VERSION, + this.config.clientConfig?.daprApiToken ?? DAPR_API_VERSION, 'state', this.config.stateStoreName as string, stateName, diff --git a/packages/hono-http-server/src/helper/addPathToOpenApi.ts b/packages/hono-http-server/src/helper/addPathToOpenApi.ts index 015c8a28b..46d865b95 100644 --- a/packages/hono-http-server/src/helper/addPathToOpenApi.ts +++ b/packages/hono-http-server/src/helper/addPathToOpenApi.ts @@ -21,16 +21,16 @@ export const addPathToOpenApi = ( const method = expose.http.method.toLowerCase() as 'put' | 'post' | 'patch' | 'get' | 'delete' - const requestContentType = expose.contentTypeRequest || 'application/json' - const _requestEncodingType = expose.contentEncodingRequest || 'utf-8' + const requestContentType = expose.contentTypeRequest ?? 'application/json' + const _requestEncodingType = expose.contentEncodingRequest ?? 'utf-8' - const responseContentType = expose.contentTypeResponse || 'application/json' - const responseEncodingType = expose.contentEncodingResponse || 'utf-8' + const responseContentType = expose.contentTypeResponse ?? 'application/json' + const responseEncodingType = expose.contentEncodingResponse ?? 'utf-8' const traceIdParameter: ParameterObject = { in: 'header', required: false, - name: config.traceHeaderField || 'x-trace-id', + name: config.traceHeaderField ?? 'x-trace-id', schema: { type: 'string' }, example: '022bcd32-0a7c-4635-90ce-7940d0b9793f', description: 'TraceID which can be used by business logic', @@ -44,13 +44,13 @@ export const addPathToOpenApi = ( description: 'see: https://www.w3.org/TR/trace-context/#traceparent-header-field-values', } - const securitySchema = Object.keys(openApiBuilder.rootDoc.components?.securitySchemes || {}).map((name) => ({ + const securitySchema = Object.keys(openApiBuilder.rootDoc.components?.securitySchemes ?? {}).map((name) => ({ [name]: [], })) const okCode = expose.outputPayload?.type ? StatusCode.OK : StatusCode.NoContent - const errorCodes: Set = new Set([...(expose.http.openApi?.additionalStatusCodes || [])]) + const errorCodes: Set = new Set([...(expose.http.openApi?.additionalStatusCodes ?? [])]) if (expose.http.openApi?.isSecure) { errorCodes.add(StatusCode.Unauthorized) diff --git a/packages/hono-http-server/src/helper/getParameterDefinition.ts b/packages/hono-http-server/src/helper/getParameterDefinition.ts index 9c0c460b7..7828ed807 100644 --- a/packages/hono-http-server/src/helper/getParameterDefinition.ts +++ b/packages/hono-http-server/src/helper/getParameterDefinition.ts @@ -35,7 +35,7 @@ export const getParameterDefinition = (path: string, parameterschema?: SchemaObj name, required, schema, - description: schema?.description || schema?.title, + description: schema?.description ?? schema?.title, } }) } diff --git a/packages/hono-http-server/src/helper/getQueryDefintion.ts b/packages/hono-http-server/src/helper/getQueryDefintion.ts index e59b5a43c..36450bccc 100644 --- a/packages/hono-http-server/src/helper/getQueryDefintion.ts +++ b/packages/hono-http-server/src/helper/getQueryDefintion.ts @@ -29,7 +29,7 @@ export const getQueryDefintion = ( name, required, schema, - description: schema?.description || schema?.title, + description: schema?.description ?? schema?.title, } }) } diff --git a/packages/httpserver/src/service/httpServer/v1/HttpServerClass.impl.ts b/packages/httpserver/src/service/httpServer/v1/HttpServerClass.impl.ts index 58f80b2ce..7cf98a671 100644 --- a/packages/httpserver/src/service/httpServer/v1/HttpServerClass.impl.ts +++ b/packages/httpserver/src/service/httpServer/v1/HttpServerClass.impl.ts @@ -160,7 +160,7 @@ export class HttpServerClass ex } } - const apiBasePath = posix.join(this.config.apiMountPath || 'api', '/v*') + const apiBasePath = posix.join(this.config.apiMountPath ?? 'api', '/v*') this.server?.all(apiBasePath, async (request, reply) => { const parentContext = propagation.extract(context.active(), request.headers) @@ -172,7 +172,7 @@ export class HttpServerClass ex addHeaders(span, reply) const match = (request.params as Record)['*'] - const path = posix.join(this.config.apiMountPath || 'api', `v${match}`) + const path = posix.join(this.config.apiMountPath ?? 'api', `v${match}`) const route = this.routes.find(request.method as Methods, path) const firstHandler = route.handlers[0] diff --git a/packages/httpserver/src/service/httpServer/v1/routes/openapi/getOpenApiJson.impl.ts b/packages/httpserver/src/service/httpServer/v1/routes/openapi/getOpenApiJson.impl.ts index b754c9d0e..dfb20fc27 100644 --- a/packages/httpserver/src/service/httpServer/v1/routes/openapi/getOpenApiJson.impl.ts +++ b/packages/httpserver/src/service/httpServer/v1/routes/openapi/getOpenApiJson.impl.ts @@ -17,13 +17,13 @@ import { OPENAPI_DEFAULT_INFO } from '../../httpServerServiceConfig.js' * @returns A route definition for the openApi.json file */ export const getOpenApiJson = function (this: HttpServerClass): RouteOptions { - const paths: Record> = this.config.openApi?.paths || {} + const paths: Record> = this.config.openApi?.paths ?? {} const p = (this.config.openApi?.path ? this.config.openApi.path : this.config.apiMountPath) as string const url = posix.join(p, '/openapi.json') const info = { ...OPENAPI_DEFAULT_INFO, ...this.config.openApi?.info } - const servers = this.config.openApi?.servers || [ + const servers = this.config.openApi?.servers ?? [ { url: `${this.config.fastify?.https ? 'https' : 'http'}://${this.config.domain}:${this.config.port}` }, ] const components = this.config.openApi?.components @@ -135,7 +135,7 @@ export const getOpenApiJson = function (this: HttpServerClass { @@ -180,7 +180,7 @@ export const getOpenApiJson = function (this: HttpServerClass { return async (request: FastifyRequest, reply: FastifyReply, parameter: Record) => { diff --git a/packages/k8s-sdk/src/getHttpServer.impl.ts b/packages/k8s-sdk/src/getHttpServer.impl.ts index 5b3d02974..d1f9adf26 100644 --- a/packages/k8s-sdk/src/getHttpServer.impl.ts +++ b/packages/k8s-sdk/src/getHttpServer.impl.ts @@ -21,12 +21,12 @@ import { puristaVersion } from './version.js' export const getHttpServer = (input: GetHttpServerConfig, name = 'K8sHttpHelperServer') => { const { healthFn, services, hostname, apiMountPath } = input - const hostnameWithFallback = hostname || process.env.HOSTNAME + const hostnameWithFallback = hostname ?? process.env.HOSTNAME const logger = input.logger.getChildLogger({ name, puristaVersion, hostname: hostnameWithFallback }) const app = new Hono() - if (input.enableHttpCompression || input.enableHttpCompression === undefined) { + if (input.enableHttpCompression ?? input.enableHttpCompression === undefined) { app.use('*', compress()) } diff --git a/packages/mqttbridge/src/MqttEventBridge.ts b/packages/mqttbridge/src/MqttEventBridge.ts index e01148f21..0789af264 100644 --- a/packages/mqttbridge/src/MqttEventBridge.ts +++ b/packages/mqttbridge/src/MqttEventBridge.ts @@ -74,7 +74,7 @@ export class MqttBridge extends EventBridgeBaseClass implement const conf = { ...getDefaultMqttBridgeConfig(), ...config, - clientId: config?.clientId || config?.instanceId || getNewInstanceId(), + clientId: config?.clientId ?? config?.instanceId ?? getNewInstanceId(), } super('MqttBridge', conf) } diff --git a/packages/mqttbridge/src/handler/getCommandHandler.impl.ts b/packages/mqttbridge/src/handler/getCommandHandler.impl.ts index cd1c4223a..50ce1c706 100644 --- a/packages/mqttbridge/src/handler/getCommandHandler.impl.ts +++ b/packages/mqttbridge/src/handler/getCommandHandler.impl.ts @@ -67,7 +67,7 @@ export const getCommandHandler = ( ...result.sender, instanceId: this.instanceId, }, - otp: result.otp || serializeOtp(), + otp: result.otp ?? serializeOtp(), } subSpan.setAttribute(PuristaSpanTag.SenderServiceName, responseMessage.sender.serviceName) diff --git a/packages/mqttbridge/src/handler/handleCommandResponse.impl.ts b/packages/mqttbridge/src/handler/handleCommandResponse.impl.ts index 9f7ae966e..72ea9084a 100644 --- a/packages/mqttbridge/src/handler/handleCommandResponse.impl.ts +++ b/packages/mqttbridge/src/handler/handleCommandResponse.impl.ts @@ -38,7 +38,7 @@ export const handleCommandResponse: IncomingMessageFunction = async function (me return } - const correlationId = packet.properties?.correlationData?.toString() || message.correlationId + const correlationId = packet.properties?.correlationData?.toString() ?? message.correlationId const invocation = this.pendingInvocations.get(correlationId) diff --git a/packages/mqttbridge/src/topic/TopicRouter.ts b/packages/mqttbridge/src/topic/TopicRouter.ts index cec7fa48a..4a25dba1e 100644 --- a/packages/mqttbridge/src/topic/TopicRouter.ts +++ b/packages/mqttbridge/src/topic/TopicRouter.ts @@ -11,7 +11,7 @@ export class TopicRouter { counter = 1 constructor(logger?: Logger) { - const log = logger || initLogger() + const log = logger ?? initLogger() this.logger = log.getChildLogger({ name: 'TopicRouter' }) } diff --git a/packages/mqttbridge/src/topic/getSubscriptionTopic.impl.ts b/packages/mqttbridge/src/topic/getSubscriptionTopic.impl.ts index ba083ce29..b4e63c26c 100644 --- a/packages/mqttbridge/src/topic/getSubscriptionTopic.impl.ts +++ b/packages/mqttbridge/src/topic/getSubscriptionTopic.impl.ts @@ -10,17 +10,17 @@ type GetSubscriptionTopicFn = (this: MqttBridge, subscription: Subscription) => export const getSubscriptionTopic: GetSubscriptionTopicFn = function (subscription) { return join( this.config.topicPrefix, - convertToSnakeCase(subscription.messageType || '+'), - convertToSnakeCase(subscription.principalId || '+'), - convertToSnakeCase(subscription.tenantId || '+'), - convertToSnakeCase(subscription.sender?.instanceId || '+'), - convertToSnakeCase(subscription.sender?.serviceName || '+'), - convertToSnakeCase(subscription.sender?.serviceVersion || '+'), - convertToSnakeCase(subscription.sender?.serviceTarget || '+'), - convertToSnakeCase(subscription.eventName || '+'), - convertToSnakeCase(subscription.receiver?.instanceId || '+'), - convertToSnakeCase(subscription.receiver?.serviceName || '+'), - convertToSnakeCase(subscription.receiver?.serviceVersion || '+'), - convertToSnakeCase(subscription.receiver?.serviceTarget || '+'), + convertToSnakeCase(subscription.messageType ?? '+'), + convertToSnakeCase(subscription.principalId ?? '+'), + convertToSnakeCase(subscription.tenantId ?? '+'), + convertToSnakeCase(subscription.sender?.instanceId ?? '+'), + convertToSnakeCase(subscription.sender?.serviceName ?? '+'), + convertToSnakeCase(subscription.sender?.serviceVersion ?? '+'), + convertToSnakeCase(subscription.sender?.serviceTarget ?? '+'), + convertToSnakeCase(subscription.eventName ?? '+'), + convertToSnakeCase(subscription.receiver?.instanceId ?? '+'), + convertToSnakeCase(subscription.receiver?.serviceName ?? '+'), + convertToSnakeCase(subscription.receiver?.serviceVersion ?? '+'), + convertToSnakeCase(subscription.receiver?.serviceTarget ?? '+'), ) } diff --git a/packages/mqttbridge/src/topic/getTopicName.impl.ts b/packages/mqttbridge/src/topic/getTopicName.impl.ts index ad86e6d98..4fb357ee3 100644 --- a/packages/mqttbridge/src/topic/getTopicName.impl.ts +++ b/packages/mqttbridge/src/topic/getTopicName.impl.ts @@ -34,16 +34,16 @@ export const getTopicName: GetTopicNameFn = function (message: EBMessage) { return join( this.config.topicPrefix, convertToSnakeCase(message.messageType), - convertToSnakeCase(message.principalId || empty), - convertToSnakeCase(message.tenantId || empty), + convertToSnakeCase(message.principalId ?? empty), + convertToSnakeCase(message.tenantId ?? empty), convertToSnakeCase(message.sender.instanceId), convertToSnakeCase(message.sender.serviceName), convertToSnakeCase(message.sender.serviceVersion), convertToSnakeCase(message.sender.serviceTarget), - convertToSnakeCase(message.eventName || empty), - convertToSnakeCase((message as Command).receiver?.instanceId || empty), - convertToSnakeCase((message as Command).receiver?.serviceName || empty), - convertToSnakeCase((message as Command).receiver?.serviceVersion || empty), - convertToSnakeCase((message as Command).receiver?.serviceTarget || empty), + convertToSnakeCase(message.eventName ?? empty), + convertToSnakeCase((message as Command).receiver?.instanceId ?? empty), + convertToSnakeCase((message as Command).receiver?.serviceName ?? empty), + convertToSnakeCase((message as Command).receiver?.serviceVersion ?? empty), + convertToSnakeCase((message as Command).receiver?.serviceTarget ?? empty), ) } diff --git a/packages/natsbridge/src/handler/getCommandHandler.impl.ts b/packages/natsbridge/src/handler/getCommandHandler.impl.ts index 5af945251..77243e535 100644 --- a/packages/natsbridge/src/handler/getCommandHandler.impl.ts +++ b/packages/natsbridge/src/handler/getCommandHandler.impl.ts @@ -7,7 +7,6 @@ import type { CommandSuccessResponse, DefinitionEventBridgeConfig, EBMessageAddress, - InstanceId, } from '@purista/core' import { deserializeOtp, @@ -83,7 +82,7 @@ export const getCommandHandler = ( ...result.sender, instanceId: this.instanceId, }, - otp: result.otp || serializeOtp(), + otp: result.otp ?? serializeOtp(), } subSpan.setAttribute(PuristaSpanTag.SenderServiceName, responseMessage.sender.serviceName) @@ -107,7 +106,7 @@ export const getCommandHandler = ( receiverServiceName: responseMessage.receiver.serviceName, receiverServiceVersion: responseMessage.receiver.serviceVersion, receiverServiceTarget: responseMessage.receiver.serviceTarget, - receiverInstanceId: responseMessage.receiver.instanceId as InstanceId, + receiverInstanceId: responseMessage.receiver.instanceId, }) if (responseMessage.eventName) { @@ -137,8 +136,8 @@ export const getCommandHandler = ( // emit the message 2nd time as event if ( - this.config.commandResponsePublishTwice === 'always' || - (responseMessage.eventName && this.config.commandResponsePublishTwice === 'eventOnly') || + (this.config.commandResponsePublishTwice === 'always' || + (responseMessage.eventName && this.config.commandResponsePublishTwice === 'eventOnly')) ?? (isCommandErrorResponse(responseMessage) && this.config.commandResponsePublishTwice === 'eventAndError') ) { const eventTopic = getTopicName.bind(this)(responseMessage) diff --git a/packages/natsbridge/src/topic/getSubscriptionTopic.impl.ts b/packages/natsbridge/src/topic/getSubscriptionTopic.impl.ts index ea0cbf6c2..a36a12985 100644 --- a/packages/natsbridge/src/topic/getSubscriptionTopic.impl.ts +++ b/packages/natsbridge/src/topic/getSubscriptionTopic.impl.ts @@ -8,17 +8,17 @@ type GetSubscriptionTopicFn = (this: NatsBridge, subscription: Subscription) => export const getSubscriptionTopic: GetSubscriptionTopicFn = function (subscription) { return [ this.config.topicPrefix, - convertToSnakeCase(subscription.messageType || '*'), - convertToSnakeCase(subscription.principalId || '*'), - convertToSnakeCase(subscription.tenantId || '*'), - convertToSnakeCase(subscription.sender?.instanceId || '*'), - convertToSnakeCase(subscription.sender?.serviceName || '*'), - convertToSnakeCase(subscription.sender?.serviceVersion || '*'), - convertToSnakeCase(subscription.sender?.serviceTarget || '*'), - convertToSnakeCase(subscription.eventName || '*'), - convertToSnakeCase(subscription.receiver?.instanceId || '*'), - convertToSnakeCase(subscription.receiver?.serviceName || '*'), - convertToSnakeCase(subscription.receiver?.serviceVersion || '*'), - convertToSnakeCase(subscription.receiver?.serviceTarget || '*'), + convertToSnakeCase(subscription.messageType ?? '*'), + convertToSnakeCase(subscription.principalId ?? '*'), + convertToSnakeCase(subscription.tenantId ?? '*'), + convertToSnakeCase(subscription.sender?.instanceId ?? '*'), + convertToSnakeCase(subscription.sender?.serviceName ?? '*'), + convertToSnakeCase(subscription.sender?.serviceVersion ?? '*'), + convertToSnakeCase(subscription.sender?.serviceTarget ?? '*'), + convertToSnakeCase(subscription.eventName ?? '*'), + convertToSnakeCase(subscription.receiver?.instanceId ?? '*'), + convertToSnakeCase(subscription.receiver?.serviceName ?? '*'), + convertToSnakeCase(subscription.receiver?.serviceVersion ?? '*'), + convertToSnakeCase(subscription.receiver?.serviceTarget ?? '*'), ].join('.') } diff --git a/packages/natsbridge/src/topic/getTopicName.impl.ts b/packages/natsbridge/src/topic/getTopicName.impl.ts index 46f472b27..0dae9fe26 100644 --- a/packages/natsbridge/src/topic/getTopicName.impl.ts +++ b/packages/natsbridge/src/topic/getTopicName.impl.ts @@ -21,16 +21,16 @@ export const getTopicName: GetTopicNameFn = function (message: EBMessage) { return [ this.config.topicPrefix, convertToSnakeCase(message.messageType), - convertToSnakeCase(message.principalId || empty), - convertToSnakeCase(message.tenantId || empty), - convertToSnakeCase(message.sender.instanceId || empty), + convertToSnakeCase(message.principalId ?? empty), + convertToSnakeCase(message.tenantId ?? empty), + convertToSnakeCase(message.sender.instanceId ?? empty), convertToSnakeCase(message.sender.serviceName), convertToSnakeCase(message.sender.serviceVersion), convertToSnakeCase(message.sender.serviceTarget), - convertToSnakeCase(message.eventName || empty), - convertToSnakeCase((message as Command).receiver?.instanceId || empty), - convertToSnakeCase((message as Command).receiver?.serviceName || empty), - convertToSnakeCase((message as Command).receiver?.serviceVersion || empty), - convertToSnakeCase((message as Command).receiver?.serviceTarget || empty), + convertToSnakeCase(message.eventName ?? empty), + convertToSnakeCase((message as Command).receiver?.instanceId ?? empty), + convertToSnakeCase((message as Command).receiver?.serviceName ?? empty), + convertToSnakeCase((message as Command).receiver?.serviceVersion ?? empty), + convertToSnakeCase((message as Command).receiver?.serviceTarget ?? empty), ].join('.') }