Skip to content

Commit

Permalink
Define new webrpc errors (#244)
Browse files Browse the repository at this point in the history
* Define new webrpc errors

* Regenerate examples
  • Loading branch information
VojtechVitek committed Dec 11, 2023
1 parent 61d6934 commit c02074c
Show file tree
Hide file tree
Showing 10 changed files with 178 additions and 49 deletions.
19 changes: 11 additions & 8 deletions _examples/golang-basics/example.gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 11 additions & 8 deletions _examples/golang-nodejs/server/server.gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 11 additions & 8 deletions _examples/hello-webrpc-ts/server/hello_api.gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

45 changes: 45 additions & 0 deletions _examples/hello-webrpc-ts/webapp/src/client.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,45 @@ export class WebrpcInternalErrorError extends WebrpcError {
}
}

export class WebrpcClientDisconnectedError extends WebrpcError {
constructor(
name: string = 'WebrpcClientDisconnected',
code: number = -8,
message: string = 'client disconnected',
status: number = 0,
cause?: string
) {
super(name, code, message, status, cause)
Object.setPrototypeOf(this, WebrpcClientDisconnectedError.prototype)
}
}

export class WebrpcStreamLostError extends WebrpcError {
constructor(
name: string = 'WebrpcStreamLost',
code: number = -9,
message: string = 'stream lost',
status: number = 0,
cause?: string
) {
super(name, code, message, status, cause)
Object.setPrototypeOf(this, WebrpcStreamLostError.prototype)
}
}

export class WebrpcStreamFinishedError extends WebrpcError {
constructor(
name: string = 'WebrpcStreamFinished',
code: number = -10,
message: string = 'stream finished',
status: number = 0,
cause?: string
) {
super(name, code, message, status, cause)
Object.setPrototypeOf(this, WebrpcStreamFinishedError.prototype)
}
}


// Schema errors

Expand All @@ -310,6 +349,9 @@ export enum errors {
WebrpcBadResponse = 'WebrpcBadResponse',
WebrpcServerPanic = 'WebrpcServerPanic',
WebrpcInternalError = 'WebrpcInternalError',
WebrpcClientDisconnected = 'WebrpcClientDisconnected',
WebrpcStreamLost = 'WebrpcStreamLost',
WebrpcStreamFinished = 'WebrpcStreamFinished',
}

const webrpcErrorByCode: { [code: number]: any } = {
Expand All @@ -321,6 +363,9 @@ const webrpcErrorByCode: { [code: number]: any } = {
[-5]: WebrpcBadResponseError,
[-6]: WebrpcServerPanicError,
[-7]: WebrpcInternalErrorError,
[-8]: WebrpcClientDisconnectedError,
[-9]: WebrpcStreamLostError,
[-10]: WebrpcStreamFinishedError,
}

export type Fetch = (input: RequestInfo, init?: RequestInit) => Promise<Response>
19 changes: 11 additions & 8 deletions _examples/hello-webrpc/server/hello_api.gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

45 changes: 45 additions & 0 deletions _examples/node-ts/webapp/client.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -272,6 +272,45 @@ export class WebrpcInternalErrorError extends WebrpcError {
}
}

export class WebrpcClientDisconnectedError extends WebrpcError {
constructor(
name: string = 'WebrpcClientDisconnected',
code: number = -8,
message: string = 'client disconnected',
status: number = 0,
cause?: string
) {
super(name, code, message, status, cause)
Object.setPrototypeOf(this, WebrpcClientDisconnectedError.prototype)
}
}

export class WebrpcStreamLostError extends WebrpcError {
constructor(
name: string = 'WebrpcStreamLost',
code: number = -9,
message: string = 'stream lost',
status: number = 0,
cause?: string
) {
super(name, code, message, status, cause)
Object.setPrototypeOf(this, WebrpcStreamLostError.prototype)
}
}

export class WebrpcStreamFinishedError extends WebrpcError {
constructor(
name: string = 'WebrpcStreamFinished',
code: number = -10,
message: string = 'stream finished',
status: number = 0,
cause?: string
) {
super(name, code, message, status, cause)
Object.setPrototypeOf(this, WebrpcStreamFinishedError.prototype)
}
}


// Schema errors

Expand All @@ -285,6 +324,9 @@ export enum errors {
WebrpcBadResponse = 'WebrpcBadResponse',
WebrpcServerPanic = 'WebrpcServerPanic',
WebrpcInternalError = 'WebrpcInternalError',
WebrpcClientDisconnected = 'WebrpcClientDisconnected',
WebrpcStreamLost = 'WebrpcStreamLost',
WebrpcStreamFinished = 'WebrpcStreamFinished',
}

const webrpcErrorByCode: { [code: number]: any } = {
Expand All @@ -296,6 +338,9 @@ const webrpcErrorByCode: { [code: number]: any } = {
[-5]: WebrpcBadResponseError,
[-6]: WebrpcServerPanicError,
[-7]: WebrpcInternalErrorError,
[-8]: WebrpcClientDisconnectedError,
[-9]: WebrpcStreamLostError,
[-10]: WebrpcStreamFinishedError,
}

export type Fetch = (input: RequestInfo, init?: RequestInit) => Promise<Response>
3 changes: 3 additions & 0 deletions gen/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ var WebrpcErrors = []*schema.Error{
{Code: -5, Name: "WebrpcBadResponse", Message: "bad response", HTTPStatus: 500},
{Code: -6, Name: "WebrpcServerPanic", Message: "server panic", HTTPStatus: 500},
{Code: -7, Name: "WebrpcInternalError", Message: "internal error", HTTPStatus: 500},
{Code: -8, Name: "WebrpcClientDisconnected", Message: "client disconnected", HTTPStatus: 400},
{Code: -9, Name: "WebrpcStreamLost", Message: "stream lost", HTTPStatus: 400},
{Code: -10, Name: "WebrpcStreamFinished", Message: "stream finished", HTTPStatus: 200},
// Note: Do not change existing values. Append only.
// Keep the list short. Code and Name must be unique.
}
19 changes: 11 additions & 8 deletions tests/client/client.gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 19 additions & 1 deletion tests/schema/test.debug.gen.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2537,7 +2537,7 @@
WebrpcGenVersion: (string) (len=11) "v0.14.0-dev",
WebrpcGenCommand: (string) (len=84) "webrpc-gen -schema=./schema/test.ridl -target=debug -out=./schema/test.debug.gen.txt",
WebrpcTarget: (string) (len=5) "debug",
WebrpcErrors: ([]*schema.Error) (len=8 cap=8) {
WebrpcErrors: ([]*schema.Error) (len=11 cap=11) {
(*schema.Error)({
Code: (int) 0,
Name: (string) (len=14) "WebrpcEndpoint",
Expand Down Expand Up @@ -2585,6 +2585,24 @@
Name: (string) (len=19) "WebrpcInternalError",
Message: (string) (len=14) "internal error",
HTTPStatus: (int) 500
}),
(*schema.Error)({
Code: (int) -8,
Name: (string) (len=24) "WebrpcClientDisconnected",
Message: (string) (len=19) "client disconnected",
HTTPStatus: (int) 400
}),
(*schema.Error)({
Code: (int) -9,
Name: (string) (len=16) "WebrpcStreamLost",
Message: (string) (len=11) "stream lost",
HTTPStatus: (int) 400
}),
(*schema.Error)({
Code: (int) -10,
Name: (string) (len=20) "WebrpcStreamFinished",
Message: (string) (len=15) "stream finished",
HTTPStatus: (int) 200
})
},
Opts: (map[string]interface {}) {
Expand Down
19 changes: 11 additions & 8 deletions tests/server/server.gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit c02074c

Please sign in to comment.