Skip to content

Commit ebe3ca5

Browse files
committed
fix(openrpc jsonrpc schema): guard against methods and params not existing
1 parent af39acf commit ebe3ca5

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ docs
66
dist
77
/**/build
88
package/
9+
*.tgz

src/helpers/openrpcDocumentToJSONRPCSchema.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ const openrpcDocumentToJSONRPCSchema = (openrpcDocument: OpenrpcDocument) => {
3838
method: {
3939
type: "string",
4040
description: "Method Name",
41-
oneOf: openrpcDocument.methods.map((method) => {
41+
oneOf: openrpcDocument && openrpcDocument.methods && openrpcDocument.methods.map((method) => {
4242
return {
4343
const: method.name,
4444
markdownDescription: method.description || method.summary,
@@ -47,7 +47,7 @@ const openrpcDocumentToJSONRPCSchema = (openrpcDocument: OpenrpcDocument) => {
4747
}),
4848
},
4949
},
50-
allOf: openrpcDocument.methods.map((method: MethodObject) => {
50+
allOf: openrpcDocument && openrpcDocument.methods && openrpcDocument.methods.map((method: MethodObject) => {
5151
return {
5252
if: {
5353
properties: {
@@ -62,13 +62,13 @@ const openrpcDocumentToJSONRPCSchema = (openrpcDocument: OpenrpcDocument) => {
6262
oneOf: [
6363
{
6464
type: "array",
65-
minItems: method.params.filter((param: any) => param.required).length,
66-
maxItems: method.params.length,
65+
minItems: method.params && method.params.filter((param: any) => param.required).length,
66+
maxItems: method.params && method.params.length,
6767
defaultSnippets: method.examples ? method.examples.map((example: any) => {
6868
return {
6969
label: example.name,
7070
description: example.description || example.summary,
71-
body: example.params.map((ex: ExampleObject) => ex.value),
71+
body: example.params && example.params.map((ex: ExampleObject) => ex.value),
7272
};
7373
}) : [],
7474
items: method.params.map((param: any) => {
@@ -82,7 +82,7 @@ const openrpcDocumentToJSONRPCSchema = (openrpcDocument: OpenrpcDocument) => {
8282
},
8383
{
8484
type: "object",
85-
properties: (method.params as ContentDescriptorObject[])
85+
properties: method.params && (method.params as ContentDescriptorObject[])
8686
.reduce((memo: any, param: ContentDescriptorObject) => {
8787
memo[param.name] = {
8888
...param.schema,

0 commit comments

Comments
 (0)