diff --git a/src/http/HttpResponse.ts b/src/http/HttpResponse.ts index a71d43c..53b4027 100644 --- a/src/http/HttpResponse.ts +++ b/src/http/HttpResponse.ts @@ -6,7 +6,6 @@ import { HttpResponseInit } from '@azure/functions'; import { Blob } from 'buffer'; import { ReadableStream } from 'stream/web'; import { FormData, Headers, Response as uResponse, ResponseInit as uResponseInit } from 'undici'; -import { isDefined } from '../utils/nonNull'; interface InternalHttpResponseInit extends HttpResponseInit { undiciResponse?: uResponse; @@ -27,7 +26,7 @@ export class HttpResponse implements types.HttpResponse { this.#uRes = init.undiciResponse; } else { const uResInit: uResponseInit = { status: init.status, headers: init.headers }; - if (isDefined(init.jsonBody)) { + if (init.jsonBody !== undefined) { this.#uRes = uResponse.json(init.jsonBody, uResInit); } else { this.#uRes = new uResponse(init.body, uResInit); diff --git a/test/converters/toRpcHttp.test.ts b/test/converters/toRpcHttp.test.ts index bbc056f..7d928ba 100644 --- a/test/converters/toRpcHttp.test.ts +++ b/test/converters/toRpcHttp.test.ts @@ -54,6 +54,21 @@ describe('toRpcHttp', () => { ); }); + it('response class json null', async () => { + const result = await toRpcHttp('invocId', new HttpResponse({ jsonBody: null })); + expect(result).to.deep.equal(getExpectedRpcHttp('null', jsonHeaders)); + }); + + it('response class json boolean false', async () => { + const result = await toRpcHttp('invocId', new HttpResponse({ jsonBody: false })); + expect(result).to.deep.equal(getExpectedRpcHttp('false', jsonHeaders)); + }); + + it('response class json number zero', async () => { + const result = await toRpcHttp('invocId', new HttpResponse({ jsonBody: 0 })); + expect(result).to.deep.equal(getExpectedRpcHttp('0', jsonHeaders)); + }); + it('undefined', async () => { const result = await toRpcHttp('invocId', {}); expect(result).to.deep.equal(getExpectedRpcHttp('', {})); diff --git a/types/InvocationContext.d.ts b/types/InvocationContext.d.ts index 8815bdf..c991557 100644 --- a/types/InvocationContext.d.ts +++ b/types/InvocationContext.d.ts @@ -129,7 +129,7 @@ export interface InvocationContextExtraInputs { * @input the configuration object for this SQL input */ get(input: SqlInput): unknown; - + /** * Get a secondary MySql items input for this invocation * @input the configuration object for this MySql input @@ -223,7 +223,7 @@ export interface InvocationContextExtraOutputs { * @message the output event(s) value */ set(output: EventGridOutput, events: EventGridPartialEvent | EventGridPartialEvent[]): void; - + /** * Set a secondary MySql items output for this invocation * @output the configuration object for this MySql output diff --git a/types/input.d.ts b/types/input.d.ts index 52d8c68..b264405 100644 --- a/types/input.d.ts +++ b/types/input.d.ts @@ -4,10 +4,10 @@ import { CosmosDBInput, CosmosDBInputOptions } from './cosmosDB'; import { GenericInputOptions } from './generic'; import { FunctionInput } from './index'; +import { MySqlInput, MySqlInputOptions } from './mySql'; import { SqlInput, SqlInputOptions } from './sql'; import { StorageBlobInput, StorageBlobInputOptions } from './storage'; import { TableInput, TableInputOptions } from './table'; -import { MySqlInput, MySqlInputOptions } from './mySql'; import { WebPubSubConnectionInput, WebPubSubConnectionInputOptions, diff --git a/types/output.d.ts b/types/output.d.ts index b9d9d83..e9e08d9 100644 --- a/types/output.d.ts +++ b/types/output.d.ts @@ -7,6 +7,7 @@ import { EventHubOutput, EventHubOutputOptions } from './eventHub'; import { GenericOutputOptions } from './generic'; import { HttpOutput, HttpOutputOptions } from './http'; import { FunctionOutput } from './index'; +import { MySqlOutput, MySqlOutputOptions } from './mySql'; import { ServiceBusQueueOutput, ServiceBusQueueOutputOptions, @@ -16,7 +17,6 @@ import { import { SqlOutput, SqlOutputOptions } from './sql'; import { StorageBlobOutput, StorageBlobOutputOptions, StorageQueueOutput, StorageQueueOutputOptions } from './storage'; import { TableOutput, TableOutputOptions } from './table'; -import { MySqlOutput, MySqlOutputOptions } from './mySql'; import { WebPubSubOutput, WebPubSubOutputOptions } from './webpubsub'; /**