diff --git a/CHANGELOG.md b/CHANGELOG.md index bb0bc913..8044b214 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,17 @@ +## [2.1.1-next.2](https://github.com/rdkcentral/firebolt-openrpc/compare/v2.1.1-next.1...v2.1.1-next.2) (2023-11-01) + + +### Bug Fixes + +* Errors thrown in async provider methods do not send the JSONRPC error response ([#143](https://github.com/rdkcentral/firebolt-openrpc/issues/143)) ([ec8e259](https://github.com/rdkcentral/firebolt-openrpc/commit/ec8e2599d530f9d2bd38fbb53b36e13c038edf2a)) + +## [2.1.1-next.1](https://github.com/rdkcentral/firebolt-openrpc/compare/v2.1.0...v2.1.1-next.1) (2023-09-14) + + +### Bug Fixes + +* Macro not replaced for provider docs ([ef1aecd](https://github.com/rdkcentral/firebolt-openrpc/commit/ef1aecd0092a8652bc7b936604f9478b7b55df27)) + # [2.1.0](https://github.com/rdkcentral/firebolt-openrpc/compare/v2.0.4...v2.1.0) (2023-09-07) diff --git a/languages/javascript/src/shared/ProvideManager/index.mjs b/languages/javascript/src/shared/ProvideManager/index.mjs index dde64557..68ce6e9c 100644 --- a/languages/javascript/src/shared/ProvideManager/index.mjs +++ b/languages/javascript/src/shared/ProvideManager/index.mjs @@ -93,6 +93,18 @@ const provide = function(capability, provider) { const response = { correlationId: request.correlationId } + let handleError = error => { + response.error = { + code: error.code || 1000, // todo: should be some reserved code for "Unknown" + message: error.message || `An error occured while calling provided ${method} method.` + } + + if (error.data) { + response.error.data = JSON.parse(JSON.stringify(error.data)) + } + + Transport.send(module, `${method}Error`, response) + } try { const result = provider[method].apply(provider, providerCallArgs) @@ -107,19 +119,10 @@ const provide = function(capability, provider) { } Transport.send(module, `${method}Response`, response) - }) + }).catch(err => handleError(err)) } catch(error) { - response.error = { - code: error.code || 1000, // todo: should be some reserved code for "Unknown" - message: error.message || `An error occured while calling provided ${method} method.` - } - - if (error.data) { - response.error.data = JSON.parse(JSON.stringify(error.data)) - } - - Transport.send(module, `${method}Error`, response) + handleError(error) } }) }) diff --git a/package-lock.json b/package-lock.json index d0c42608..a5dcd108 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@firebolt-js/openrpc", - "version": "2.1.0", + "version": "2.1.1-next.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@firebolt-js/openrpc", - "version": "2.1.0", + "version": "2.1.1-next.2", "license": "Apache-2.0", "dependencies": { "ajv": "^8.3.0", diff --git a/package.json b/package.json index 18dfe9b1..6039a61a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@firebolt-js/openrpc", - "version": "2.1.0", + "version": "2.1.1-next.2", "description": "The Firebolt SDK Code & Doc Generator", "main": "languages/javascript/src/sdk.mjs", "type": "module", diff --git a/src/macrofier/engine.mjs b/src/macrofier/engine.mjs index 6332ba39..aa9f4656 100644 --- a/src/macrofier/engine.mjs +++ b/src/macrofier/engine.mjs @@ -1512,6 +1512,8 @@ function insertProviderInterfaceMacros(template, capability, moduleJson = {}, te } } methodBlock = lines.join('\n') + methodBlock = methodBlock.replace(/\$\{if\.provider\.params\}/gms, '') + methodBlock = methodBlock.replace(/\$\{end\.if\.provider\.params\}/gms, '') } else { methodBlock = methodBlock.replace(/\$\{if\.provider\.params\}.*?\$\{end\.if\.provider\.params\}/gms, '')