From 411884b7273e179462b4cc7630d96f7e4df6ff19 Mon Sep 17 00:00:00 2001 From: Ari Lotter Date: Fri, 27 Oct 2023 16:07:24 -0400 Subject: [PATCH 1/2] Emit enum integer values in TS code as a second enum --- types.go.tmpl | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/types.go.tmpl b/types.go.tmpl index a408eee..a40be8e 100644 --- a/types.go.tmpl +++ b/types.go.tmpl @@ -18,6 +18,13 @@ export enum {{$type.Name}} { {{$field.Name}} = '{{$field.Name}}' {{- end}} } + +export enum {{$type.Name}}Value { +{{- range $i, $field := $type.Fields}} + {{- if $i}},{{end}} + {{$field.Name}} = {{$field.TypeExtra.Value}} +{{- end}} +} {{end -}} {{- if isStructType $type }} From c7b7124beb574c01db9024716faee8dae3e2e895 Mon Sep 17 00:00:00 2001 From: Ari Lotter Date: Fri, 27 Oct 2023 16:44:45 -0400 Subject: [PATCH 2/2] regenerate ts examples --- _examples/node-ts/server/server.gen.ts | 7 ++++++- _examples/node-ts/webapp/client.gen.ts | 22 +++++++++++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/_examples/node-ts/server/server.gen.ts b/_examples/node-ts/server/server.gen.ts index 5c7b4ee..15836b5 100644 --- a/_examples/node-ts/server/server.gen.ts +++ b/_examples/node-ts/server/server.gen.ts @@ -1,7 +1,7 @@ /* eslint-disable */ // node-ts v1.0.0 2167bb6fb0a186ff099cd8a309c6ffbbd7d1b9c0 // -- -// Code generated by webrpc-gen@v0.11.0 with custom generator. DO NOT EDIT. +// Code generated by webrpc-gen@v0.13.1 with ../../ generator. DO NOT EDIT. // // webrpc-gen -schema=service.ridl -target=../../ -server -out=./server/server.gen.ts @@ -24,6 +24,11 @@ export enum Kind { ADMIN = 'ADMIN' } +export enum KindValue { + USER = 0, + ADMIN = 1 +} + export interface User { id: number USERNAME: string diff --git a/_examples/node-ts/webapp/client.gen.ts b/_examples/node-ts/webapp/client.gen.ts index 3f9c6ea..c6c05a0 100644 --- a/_examples/node-ts/webapp/client.gen.ts +++ b/_examples/node-ts/webapp/client.gen.ts @@ -1,7 +1,7 @@ /* eslint-disable */ // node-ts v1.0.0 2167bb6fb0a186ff099cd8a309c6ffbbd7d1b9c0 // -- -// Code generated by webrpc-gen@v0.11.0 with custom generator. DO NOT EDIT. +// Code generated by webrpc-gen@v0.13.1 with ../../ generator. DO NOT EDIT. // // webrpc-gen -schema=service.ridl -target=../../ -client -out=./webapp/client.gen.ts @@ -24,6 +24,11 @@ export enum Kind { ADMIN = 'ADMIN' } +export enum KindValue { + USER = 0, + ADMIN = 1 +} + export interface User { id: number USERNAME: string @@ -259,6 +264,19 @@ export class WebrpcServerPanicError extends WebrpcError { } } +export class WebrpcInternalErrorError extends WebrpcError { + constructor( + name: string = 'WebrpcInternalError', + code: number = -7, + message: string = 'internal error', + status: number = 0, + cause?: string + ) { + super(name, code, message, status, cause) + Object.setPrototypeOf(this, WebrpcInternalErrorError.prototype) + } +} + // Schema errors @@ -271,6 +289,7 @@ export enum errors { WebrpcBadRequest = 'WebrpcBadRequest', WebrpcBadResponse = 'WebrpcBadResponse', WebrpcServerPanic = 'WebrpcServerPanic', + WebrpcInternalError = 'WebrpcInternalError', } const webrpcErrorByCode: { [code: number]: any } = { @@ -281,6 +300,7 @@ const webrpcErrorByCode: { [code: number]: any } = { [-4]: WebrpcBadRequestError, [-5]: WebrpcBadResponseError, [-6]: WebrpcServerPanicError, + [-7]: WebrpcInternalErrorError, } export type Fetch = (input: RequestInfo, init?: RequestInit) => Promise