Skip to content

Commit

Permalink
Merge pull request #53 from foomo/fix/union-string
Browse files Browse the repository at this point in the history
fix: union string
  • Loading branch information
franklinkim authored Nov 8, 2024
2 parents d3f1958 + 805e098 commit b831188
Show file tree
Hide file tree
Showing 19 changed files with 76 additions and 41 deletions.
27 changes: 22 additions & 5 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,7 @@ on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
merge_group:
branches: [ main ]
workflow_dispatch:

concurrency:
Expand All @@ -17,6 +15,11 @@ env:
GOFLAGS: -mod=readonly
GOPROXY: https://proxy.golang.org

permissions:
contents: read
pull-requests: read
checks: write

jobs:
test:
runs-on: ubuntu-latest
Expand All @@ -28,10 +31,24 @@ jobs:
check-latest: true
go-version-file: go.mod

- uses: actions/setup-node@v4

- name: Run yarn install
working-directory: example
run: yarn install

- name: Run go mod tidy
run: |
make tidy
git diff --exit-code
- uses: golangci/golangci-lint-action@v5
with:
working-directory: ${{ matrix.gomod }}

- name: Run tests
run: go test -v ./...
run: make test

- name: Make examples
run: |
make examples
git diff --exit-code
30 changes: 25 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,27 @@
!.git*
/vendor/
dist/
.idea
.*
bin/
dist/
tmp/
**/node_modules/

## Git ##
!.gitignore
!.gitkeep

## GitHub ##
!.github/

## Node ##
**/node_modules/

## TypeScript ###
*.tsbuildinfo

## Goreleaser ###
!.goreleaser.yaml

### Go ###
/go.mod
/go.sum
/go.work
/go.work.sum
!.golangci.yaml
1 change: 1 addition & 0 deletions example/basic/client/src/service-vo.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/* eslint:disable */
// Code generated by gotsrpc https://github.com/foomo/gotsrpc/v2 - DO NOT EDIT.
import * as github_com_foomo_gotsrpc_v2_example_basic_service from './service-vo'; // ./client/src/service-vo.ts to ./client/src/service-vo.ts

// github.com/foomo/gotsrpc/v2/example/basic/service.Float32Type
export enum Float32Type {
Float32AType = 1,
Expand Down
4 changes: 2 additions & 2 deletions example/basic/gotsrpc.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module:
name: github.com/foomo/gotsrpc/v2/example/basic
path: ./
name: github.com/foomo/gotsrpc/v2
path: ../../

targets:
basic:
Expand Down
4 changes: 3 additions & 1 deletion example/errors/client/src/service-vo.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
/* eslint:disable */
// Code generated by gotsrpc https://github.com/foomo/gotsrpc/v2 - DO NOT EDIT.
import * as github_com_foomo_gotsrpc_v2_example_errors_service_frontend from './service-vo'; // ./client/src/service-vo.ts to ./client/src/service-vo.ts

// github.com/foomo/gotsrpc/v2/example/errors/service/frontend.ErrMulti
export type ErrMulti = (typeof github_com_foomo_gotsrpc_v2_example_errors_service_frontend.ErrMultiA) & (typeof github_com_foomo_gotsrpc_v2_example_errors_service_frontend.ErrMultiB)
export const ErrMulti = { ...github_com_foomo_gotsrpc_v2_example_errors_service_frontend.ErrMultiA, ...github_com_foomo_gotsrpc_v2_example_errors_service_frontend.ErrMultiB }
export type ErrMulti = typeof ErrMulti
// github.com/foomo/gotsrpc/v2/example/errors/service/frontend.ErrMultiA
export enum ErrMultiA {
One = "one",
Expand Down
4 changes: 2 additions & 2 deletions example/errors/gotsrpc.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module:
name: github.com/foomo/gotsrpc/v2/example/errors
path: ./
name: github.com/foomo/gotsrpc/v2
path: ../../

targets:
frontend:
Expand Down
4 changes: 2 additions & 2 deletions example/monitor/gotsrpc.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module:
name: github.com/foomo/gotsrpc/v2/example/monitor
path: ./
name: github.com/foomo/gotsrpc/v2
path: ../../

targets:
monitor:
Expand Down
1 change: 1 addition & 0 deletions example/nullable/client/src/service-vo.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/* eslint:disable */
// Code generated by gotsrpc https://github.com/foomo/gotsrpc/v2 - DO NOT EDIT.
import * as github_com_foomo_gotsrpc_v2_example_nullable_service from './service-vo'; // ./client/src/service-vo.ts to ./client/src/service-vo.ts

// github.com/foomo/gotsrpc/v2/example/nullable/service.ACustomType
export enum ACustomType {
One = "one",
Expand Down
4 changes: 2 additions & 2 deletions example/nullable/gotsrpc.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module:
name: github.com/foomo/gotsrpc/v2/example/nullable
path: ./
name: github.com/foomo/gotsrpc/v2
path: ../../

targets:
nullable:
Expand Down
2 changes: 1 addition & 1 deletion example/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
"version": "0.1.0",
"name": "@foomo/gotsrpc-examples",
"devDependencies": {
"typescript": "^4.6.2"
"typescript": "5.6.3"
}
}
1 change: 0 additions & 1 deletion example/time/client/src/service-client.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
/* eslint:disable */
// Code generated by gotsrpc https://github.com/foomo/gotsrpc/v2 - DO NOT EDIT.
import * as github_com_foomo_gotsrpc_v2_example_time_service from './service-vo-service'; // ./client/src/service-client.ts to ./client/src/service-vo-service.ts
import * as time from './service-vo-time'; // ./client/src/service-client.ts to ./client/src/service-vo-time.ts

export class ServiceClient {
public static defaultEndpoint = "/service";
Expand Down
3 changes: 1 addition & 2 deletions example/time/client/src/service-vo-service.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
/* eslint:disable */
// Code generated by gotsrpc https://github.com/foomo/gotsrpc/v2 - DO NOT EDIT.
import * as github_com_foomo_gotsrpc_v2_example_time_service from './service-vo-service'; // ./client/src/service-vo-service.ts to ./client/src/service-vo-service.ts
import * as time from './service-vo-time'; // ./client/src/service-vo-service.ts to ./client/src/service-vo-time.ts

// github.com/foomo/gotsrpc/v2/example/time/service.TimeStruct
export interface TimeStruct {
time:number;
Expand Down
2 changes: 1 addition & 1 deletion example/time/client/src/service-vo-time.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/* eslint:disable */
// Code generated by gotsrpc https://github.com/foomo/gotsrpc/v2 - DO NOT EDIT.
import * as github_com_foomo_gotsrpc_v2_example_time_service from './service-vo-service'; // ./client/src/service-vo-time.ts to ./client/src/service-vo-service.ts
import * as time from './service-vo-time'; // ./client/src/service-vo-time.ts to ./client/src/service-vo-time.ts

// time.Time
export interface Time {
}
Expand Down
4 changes: 2 additions & 2 deletions example/time/gotsrpc.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module:
name: github.com/foomo/gotsrpc/v2/example/time
path: ./
name: github.com/foomo/gotsrpc/v2
path: ../../

targets:
time:
Expand Down
2 changes: 1 addition & 1 deletion example/union/client/src/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,4 @@ function assertExhaustive(
message: string = 'msg'
): never {
throw new Error(message);
}
}
4 changes: 3 additions & 1 deletion example/union/client/src/service-vo.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/* eslint:disable */
// Code generated by gotsrpc https://github.com/foomo/gotsrpc/v2 - DO NOT EDIT.
import * as github_com_foomo_gotsrpc_v2_example_union_service from './service-vo'; // ./client/src/service-vo.ts to ./client/src/service-vo.ts

// github.com/foomo/gotsrpc/v2/example/union/service.InlineStruct
export interface InlineStruct extends github_com_foomo_gotsrpc_v2_example_union_service.InlineStructA , github_com_foomo_gotsrpc_v2_example_union_service.InlineStructB {
value:string;
Expand All @@ -19,7 +20,8 @@ export interface InlineStructPtr extends Partial<github_com_foomo_gotsrpc_v2_exa
value:string;
}
// github.com/foomo/gotsrpc/v2/example/union/service.UnionString
export type UnionString = (typeof github_com_foomo_gotsrpc_v2_example_union_service.UnionStringA) & (typeof github_com_foomo_gotsrpc_v2_example_union_service.UnionStringB)
export const UnionString = { ...github_com_foomo_gotsrpc_v2_example_union_service.UnionStringA, ...github_com_foomo_gotsrpc_v2_example_union_service.UnionStringB }
export type UnionString = typeof UnionString
// github.com/foomo/gotsrpc/v2/example/union/service.UnionStringA
export enum UnionStringA {
One = "one",
Expand Down
4 changes: 2 additions & 2 deletions example/union/gotsrpc.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module:
name: github.com/foomo/gotsrpc/v2/example/union
path: ./
name: github.com/foomo/gotsrpc/v2
path: ../../

targets:
union:
Expand Down
8 changes: 4 additions & 4 deletions example/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# yarn lockfile v1


typescript@^4.6.2:
version "4.6.2"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4"
integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==
typescript@5.6.3:
version "5.6.3"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.6.3.tgz#5f3449e31c9d94febb17de03cc081dd56d81db5b"
integrity sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==
8 changes: 1 addition & 7 deletions typescript.go
Original file line number Diff line number Diff line change
Expand Up @@ -185,13 +185,7 @@ func renderTypescriptStruct(str *Struct, mappings config.TypeScriptMappings, sca
}
ts.app(" }")
ts.nl()
ts.app("export type " + str.Name + " = ")
for i, field := range str.UnionFields {
if i > 0 {
ts.app(" | ")
}
field.Value.tsType(mappings, scalars, structs, ts, &JSONInfo{OmitEmpty: true})
}
ts.app("export type " + str.Name + " = typeof " + str.Name)
ts.nl()
default:
return errors.New("could not resolve this union type")
Expand Down

0 comments on commit b831188

Please sign in to comment.