diff --git a/packages/test-cases/cases/wrappers/wasm-go/asyncify/abis/memory-storage.graphql b/packages/test-cases/cases/wrappers/wasm-go/asyncify/abis/memory-storage.graphql new file mode 100644 index 0000000000..c10ae67370 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/asyncify/abis/memory-storage.graphql @@ -0,0 +1,5 @@ +type Module { + getData: Int32! + + setData(value: Int32!): Boolean! +} diff --git a/packages/test-cases/cases/wrappers/wasm-go/asyncify/go.mod b/packages/test-cases/cases/wrappers/wasm-go/asyncify/go.mod new file mode 100644 index 0000000000..dbfd3f2ddf --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/asyncify/go.mod @@ -0,0 +1,7 @@ +module github.com/testorg/testrepo + +go 1.17 + +require github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba + +require github.com/valyala/fastjson v1.6.3 // indirect diff --git a/packages/test-cases/cases/wrappers/wasm-go/asyncify/go.sum b/packages/test-cases/cases/wrappers/wasm-go/asyncify/go.sum new file mode 100644 index 0000000000..89ffed76d2 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/asyncify/go.sum @@ -0,0 +1,4 @@ +github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba h1:zalC+tj7u2wwOA53sJPvPwrIr6bgQF/5KiULuAi0tcE= +github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba/go.mod h1:IHk2chh2cl2rACqPLh5sE1LKTooxw19biP+zzYOiULg= +github.com/valyala/fastjson v1.6.3 h1:tAKFnnwmeMGPbwJ7IwxcTPCNr3uIzoIj3/Fh90ra4xc= +github.com/valyala/fastjson v1.6.3/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= diff --git a/packages/test-cases/cases/wrappers/wasm-go/asyncify/module/method.go b/packages/test-cases/cases/wrappers/wasm-go/asyncify/module/method.go new file mode 100644 index 0000000000..636b37e9be --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/asyncify/module/method.go @@ -0,0 +1,107 @@ +package module + +import ( + "strconv" + + "github.com/testorg/testrepo/wrap/imported/storage" + "github.com/testorg/testrepo/wrap/types" +) + +//go:generate polywrap build -v -m ../polywrap.yaml -o ../build + +func GetData() uint32 { + res, err := storage.MethodGetData(nil) + if err != nil { + panic(err) + } + return uint32(res) +} + +func ReturnTrue() bool { + return true +} + +func SetDataWithLargeArgs(args *types.MethodArgsSetDataWithLargeArgs) string { + largeString := args.Value + num, err := strconv.ParseInt(largeString, 10, 32) + if err != nil { + panic(err) + } + _, err = storage.MethodSetData(&storage.ArgsSetData{Value: int32(num)}) + if err != nil { + panic(err) + } + return largeString +} + +func SetDataWithManyArgs(args *types.MethodArgsSetDataWithManyArgs) string { + argsA := args.ValueA + argsB := args.ValueB + argsC := args.ValueC + argsD := args.ValueD + argsE := args.ValueE + argsF := args.ValueF + argsG := args.ValueG + argsH := args.ValueH + argsI := args.ValueI + argsJ := args.ValueJ + argsK := args.ValueK + argsL := args.ValueL + + _, err := storage.MethodSetData(&storage.ArgsSetData{Value: 55}) + if err != nil { + panic(err) + } + + return argsA + argsB + argsC + argsD + argsE + argsF + argsG + argsH + argsI + argsJ + argsK + argsL +} + +func SetDataWithManyStructuredArgs(args *types.MethodArgsSetDataWithManyStructuredArgs) bool { + _, err := storage.MethodSetData(&storage.ArgsSetData{Value: 44}) + if err != nil { + panic(err) + } + return true +} + +func LocalVarMethod() bool { + functionArg := false + functionArg = ReturnTrue() + + _, err := storage.MethodSetData(&storage.ArgsSetData{Value: 88}) + if err != nil { + panic(err) + } + + return functionArg +} + +var globalValue bool = false + +func GlobalVarMethod() bool { + globalValue = true + + _, err := storage.MethodSetData(&storage.ArgsSetData{Value: 77}) + if err != nil { + panic(err) + } + + return globalValue +} + +func SubsequentInvokes(args *types.MethodArgsSubsequentInvokes) []string { + result := make([]string, args.NumberOfTimes) + for i := int32(0); i < args.NumberOfTimes; i++ { + _, err := storage.MethodSetData(&storage.ArgsSetData{Value: i}) + if err != nil { + panic(err) + } + res, err := storage.MethodGetData(nil) + if err != nil { + panic(err) + } + result[i] = strconv.FormatInt(int64(res), 10) + } + + return result +} diff --git a/packages/test-cases/cases/wrappers/wasm-go/asyncify/polywrap.build.yaml b/packages/test-cases/cases/wrappers/wasm-go/asyncify/polywrap.build.yaml new file mode 100644 index 0000000000..e768939364 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/asyncify/polywrap.build.yaml @@ -0,0 +1,5 @@ +format: 0.1.0 +docker: + name: asyncify-wasm-go +config: + node_version: "16.13.0" diff --git a/packages/test-cases/cases/wrappers/wasm-go/asyncify/polywrap.yaml b/packages/test-cases/cases/wrappers/wasm-go/asyncify/polywrap.yaml new file mode 100644 index 0000000000..374d0c2aae --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/asyncify/polywrap.yaml @@ -0,0 +1,12 @@ +format: 0.2.0 +project: + name: Asyncify + type: wasm/golang +source: + schema: ./schema.graphql + module: ./go.mod + import_abis: + - uri: "ens/memory-storage.polywrap.eth" + abi: ./abis/memory-storage.graphql +extensions: + build: ./polywrap.build.yaml \ No newline at end of file diff --git a/packages/test-cases/cases/wrappers/wasm-go/asyncify/schema.graphql b/packages/test-cases/cases/wrappers/wasm-go/asyncify/schema.graphql new file mode 100644 index 0000000000..2660ba2f06 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/asyncify/schema.graphql @@ -0,0 +1,62 @@ +#import { Module } into Storage from "wrap://ens/memory-storage.polywrap.eth" + +type Module { + getData: UInt32! + + setDataWithLargeArgs( + value: String! + ): String! + + setDataWithManyArgs( + valueA: String! + valueB: String! + valueC: String! + valueD: String! + valueE: String! + valueF: String! + valueG: String! + valueH: String! + valueI: String! + valueJ: String! + valueK: String! + valueL: String! + ): String! + + setDataWithManyStructuredArgs( + valueA: BigObj! + valueB: BigObj! + valueC: BigObj! + valueD: BigObj! + valueE: BigObj! + valueF: BigObj! + valueG: BigObj! + valueH: BigObj! + valueI: BigObj! + valueJ: BigObj! + valueK: BigObj! + valueL: BigObj! + ): Boolean! + + localVarMethod: Boolean! + + globalVarMethod: Boolean! + + subsequentInvokes( + numberOfTimes: Int! + ): [String!]! +} + +type BigObj { + propA: String! + propB: String! + propC: String! + propD: String! + propE: String! + propF: String! + propG: String! + propH: String! + propI: String! + propJ: String! + propK: String! + propL: String! +} diff --git a/packages/test-cases/cases/wrappers/wasm-go/bigint-type/go.mod b/packages/test-cases/cases/wrappers/wasm-go/bigint-type/go.mod new file mode 100644 index 0000000000..dbfd3f2ddf --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/bigint-type/go.mod @@ -0,0 +1,7 @@ +module github.com/testorg/testrepo + +go 1.17 + +require github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba + +require github.com/valyala/fastjson v1.6.3 // indirect diff --git a/packages/test-cases/cases/wrappers/wasm-go/bigint-type/go.sum b/packages/test-cases/cases/wrappers/wasm-go/bigint-type/go.sum new file mode 100644 index 0000000000..89ffed76d2 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/bigint-type/go.sum @@ -0,0 +1,4 @@ +github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba h1:zalC+tj7u2wwOA53sJPvPwrIr6bgQF/5KiULuAi0tcE= +github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba/go.mod h1:IHk2chh2cl2rACqPLh5sE1LKTooxw19biP+zzYOiULg= +github.com/valyala/fastjson v1.6.3 h1:tAKFnnwmeMGPbwJ7IwxcTPCNr3uIzoIj3/Fh90ra4xc= +github.com/valyala/fastjson v1.6.3/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= diff --git a/packages/test-cases/cases/wrappers/wasm-go/bigint-type/module/method.go b/packages/test-cases/cases/wrappers/wasm-go/bigint-type/module/method.go new file mode 100644 index 0000000000..0b0b81b7d4 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/bigint-type/module/method.go @@ -0,0 +1,21 @@ +package module + +import ( + "github.com/consideritdone/polywrap-go/polywrap/msgpack/big" + "github.com/testorg/testrepo/wrap/types" +) + +//go:generate polywrap build -v -m ../polywrap.yaml -o ../build +func Method(args *types.MethodArgsMethod) *big.Int { + result := new(big.Int).Mul(args.Arg1, args.Obj.Prop1) + + if args.Arg2 != nil { + result = result.Mul(result, args.Arg2) + } + + if args.Obj.Prop2 != nil { + result = result.Mul(result, args.Obj.Prop2) + } + + return result +} diff --git a/packages/test-cases/cases/wrappers/wasm-go/bigint-type/polywrap.build.yaml b/packages/test-cases/cases/wrappers/wasm-go/bigint-type/polywrap.build.yaml new file mode 100644 index 0000000000..46c036809b --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/bigint-type/polywrap.build.yaml @@ -0,0 +1,5 @@ +format: 0.1.0 +docker: + name: bigint-type-wasm-go +config: + node_version: "16.13.0" diff --git a/packages/test-cases/cases/wrappers/wasm-go/bigint-type/polywrap.yaml b/packages/test-cases/cases/wrappers/wasm-go/bigint-type/polywrap.yaml new file mode 100644 index 0000000000..bea7b6b71b --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/bigint-type/polywrap.yaml @@ -0,0 +1,9 @@ +format: 0.2.0 +project: + name: BigInt + type: wasm/golang +source: + schema: ./schema.graphql + module: ./go.mod +extensions: + build: ./polywrap.build.yaml \ No newline at end of file diff --git a/packages/test-cases/cases/wrappers/wasm-go/bigint-type/schema.graphql b/packages/test-cases/cases/wrappers/wasm-go/bigint-type/schema.graphql new file mode 100644 index 0000000000..7696ac2202 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/bigint-type/schema.graphql @@ -0,0 +1,12 @@ +type Module { + method( + arg1: BigInt! + arg2: BigInt + obj: BigIntArg! + ): BigInt! +} + +type BigIntArg { + prop1: BigInt! + prop2: BigInt +} diff --git a/packages/test-cases/cases/wrappers/wasm-go/bytes-type/go.mod b/packages/test-cases/cases/wrappers/wasm-go/bytes-type/go.mod new file mode 100644 index 0000000000..dbfd3f2ddf --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/bytes-type/go.mod @@ -0,0 +1,7 @@ +module github.com/testorg/testrepo + +go 1.17 + +require github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba + +require github.com/valyala/fastjson v1.6.3 // indirect diff --git a/packages/test-cases/cases/wrappers/wasm-go/bytes-type/go.sum b/packages/test-cases/cases/wrappers/wasm-go/bytes-type/go.sum new file mode 100644 index 0000000000..89ffed76d2 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/bytes-type/go.sum @@ -0,0 +1,4 @@ +github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba h1:zalC+tj7u2wwOA53sJPvPwrIr6bgQF/5KiULuAi0tcE= +github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba/go.mod h1:IHk2chh2cl2rACqPLh5sE1LKTooxw19biP+zzYOiULg= +github.com/valyala/fastjson v1.6.3 h1:tAKFnnwmeMGPbwJ7IwxcTPCNr3uIzoIj3/Fh90ra4xc= +github.com/valyala/fastjson v1.6.3/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= diff --git a/packages/test-cases/cases/wrappers/wasm-go/bytes-type/module/bytesMethod.go b/packages/test-cases/cases/wrappers/wasm-go/bytes-type/module/bytesMethod.go new file mode 100644 index 0000000000..c57eba5f50 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/bytes-type/module/bytesMethod.go @@ -0,0 +1,18 @@ +package module + +import ( + "bytes" + + "github.com/testorg/testrepo/wrap/types" +) + +//go:generate polywrap build -v -m ../polywrap.yaml -o ../build +func BytesMethod(args *types.MethodArgsBytesMethod) []byte { + return bytes.Join( + [][]byte{ + args.Arg.Prop, + []byte("Sanity!"), + }, + []byte(" "), + ) +} diff --git a/packages/test-cases/cases/wrappers/wasm-go/bytes-type/polywrap.build.yaml b/packages/test-cases/cases/wrappers/wasm-go/bytes-type/polywrap.build.yaml new file mode 100644 index 0000000000..2657f101fd --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/bytes-type/polywrap.build.yaml @@ -0,0 +1,6 @@ +format: 0.1.0 +docker: + name: bytes-type-wasm-go +config: + node_version: "16.13.0" + diff --git a/packages/test-cases/cases/wrappers/wasm-go/bytes-type/polywrap.yaml b/packages/test-cases/cases/wrappers/wasm-go/bytes-type/polywrap.yaml new file mode 100644 index 0000000000..292392bba4 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/bytes-type/polywrap.yaml @@ -0,0 +1,9 @@ +format: 0.2.0 +project: + name: BytesType + type: wasm/golang +source: + schema: ./schema.graphql + module: ./go.mod +extensions: + build: ./polywrap.build.yaml \ No newline at end of file diff --git a/packages/test-cases/cases/wrappers/wasm-go/bytes-type/schema.graphql b/packages/test-cases/cases/wrappers/wasm-go/bytes-type/schema.graphql new file mode 100644 index 0000000000..44dc183585 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/bytes-type/schema.graphql @@ -0,0 +1,9 @@ +type Module { + bytesMethod( + arg: Args! + ): Bytes! +} + +type Args { + prop: Bytes! +} diff --git a/packages/test-cases/cases/wrappers/wasm-go/enum-types/go.mod b/packages/test-cases/cases/wrappers/wasm-go/enum-types/go.mod new file mode 100644 index 0000000000..dbfd3f2ddf --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/enum-types/go.mod @@ -0,0 +1,7 @@ +module github.com/testorg/testrepo + +go 1.17 + +require github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba + +require github.com/valyala/fastjson v1.6.3 // indirect diff --git a/packages/test-cases/cases/wrappers/wasm-go/enum-types/go.sum b/packages/test-cases/cases/wrappers/wasm-go/enum-types/go.sum new file mode 100644 index 0000000000..89ffed76d2 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/enum-types/go.sum @@ -0,0 +1,4 @@ +github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba h1:zalC+tj7u2wwOA53sJPvPwrIr6bgQF/5KiULuAi0tcE= +github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba/go.mod h1:IHk2chh2cl2rACqPLh5sE1LKTooxw19biP+zzYOiULg= +github.com/valyala/fastjson v1.6.3 h1:tAKFnnwmeMGPbwJ7IwxcTPCNr3uIzoIj3/Fh90ra4xc= +github.com/valyala/fastjson v1.6.3/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= diff --git a/packages/test-cases/cases/wrappers/wasm-go/enum-types/module/module.go b/packages/test-cases/cases/wrappers/wasm-go/enum-types/module/module.go new file mode 100644 index 0000000000..9e91033414 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/enum-types/module/module.go @@ -0,0 +1,13 @@ +package module + +import "github.com/testorg/testrepo/wrap/types" + +//go:generate polywrap build -v -m ../polywrap.yaml -o ../build + +func Method1(args *types.MethodArgsMethod1) types.SanityEnum { + return args.En +} + +func Method2(args *types.MethodArgsMethod2) []types.SanityEnum { + return args.EnumArray +} diff --git a/packages/test-cases/cases/wrappers/wasm-go/enum-types/polywrap.build.yaml b/packages/test-cases/cases/wrappers/wasm-go/enum-types/polywrap.build.yaml new file mode 100644 index 0000000000..f41ac3765e --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/enum-types/polywrap.build.yaml @@ -0,0 +1,4 @@ +format: 0.1.0 +config: + node_version: "16.13.0" + diff --git a/packages/test-cases/cases/wrappers/wasm-go/enum-types/polywrap.yaml b/packages/test-cases/cases/wrappers/wasm-go/enum-types/polywrap.yaml new file mode 100644 index 0000000000..49939f942e --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/enum-types/polywrap.yaml @@ -0,0 +1,9 @@ +format: 0.2.0 +project: + name: EnumTypes + type: wasm/golang +source: + schema: ./schema.graphql + module: ./go.mod +extensions: + build: ./polywrap.build.yaml \ No newline at end of file diff --git a/packages/test-cases/cases/wrappers/wasm-go/enum-types/schema.graphql b/packages/test-cases/cases/wrappers/wasm-go/enum-types/schema.graphql new file mode 100644 index 0000000000..3bfbc465be --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/enum-types/schema.graphql @@ -0,0 +1,17 @@ +type Module { + method1( + en: SanityEnum! + optEnum: SanityEnum + ): SanityEnum! + + method2( + enumArray: [SanityEnum!]! + optEnumArray: [SanityEnum] + ): [SanityEnum!]! +} + +enum SanityEnum { + OPTION1 + OPTION2 + OPTION3 +} diff --git a/packages/test-cases/cases/wrappers/wasm-go/env-types/external/go.mod b/packages/test-cases/cases/wrappers/wasm-go/env-types/external/go.mod new file mode 100644 index 0000000000..dbfd3f2ddf --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/env-types/external/go.mod @@ -0,0 +1,7 @@ +module github.com/testorg/testrepo + +go 1.17 + +require github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba + +require github.com/valyala/fastjson v1.6.3 // indirect diff --git a/packages/test-cases/cases/wrappers/wasm-go/env-types/external/go.sum b/packages/test-cases/cases/wrappers/wasm-go/env-types/external/go.sum new file mode 100644 index 0000000000..89ffed76d2 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/env-types/external/go.sum @@ -0,0 +1,4 @@ +github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba h1:zalC+tj7u2wwOA53sJPvPwrIr6bgQF/5KiULuAi0tcE= +github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba/go.mod h1:IHk2chh2cl2rACqPLh5sE1LKTooxw19biP+zzYOiULg= +github.com/valyala/fastjson v1.6.3 h1:tAKFnnwmeMGPbwJ7IwxcTPCNr3uIzoIj3/Fh90ra4xc= +github.com/valyala/fastjson v1.6.3/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= diff --git a/packages/test-cases/cases/wrappers/wasm-go/env-types/external/module/module.go b/packages/test-cases/cases/wrappers/wasm-go/env-types/external/module/module.go new file mode 100644 index 0000000000..63caecec92 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/env-types/external/module/module.go @@ -0,0 +1,8 @@ +package module + +import "github.com/testorg/testrepo/wrap/types" + +//go:generate polywrap build -v -m ../polywrap.yaml -o ../build +func ExternalEnvMethod(env *types.Env) types.Env { + return *env +} diff --git a/packages/test-cases/cases/wrappers/wasm-go/env-types/external/polywrap.build.yaml b/packages/test-cases/cases/wrappers/wasm-go/env-types/external/polywrap.build.yaml new file mode 100644 index 0000000000..f41ac3765e --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/env-types/external/polywrap.build.yaml @@ -0,0 +1,4 @@ +format: 0.1.0 +config: + node_version: "16.13.0" + diff --git a/packages/test-cases/cases/wrappers/wasm-go/env-types/external/polywrap.yaml b/packages/test-cases/cases/wrappers/wasm-go/env-types/external/polywrap.yaml new file mode 100644 index 0000000000..065819aec2 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/env-types/external/polywrap.yaml @@ -0,0 +1,9 @@ +format: 0.2.0 +project: + name: EnvTypeExternal + type: wasm/golang +source: + schema: ./schema.graphql + module: ./go.mod +extensions: + build: ./polywrap.build.yaml \ No newline at end of file diff --git a/packages/test-cases/cases/wrappers/wasm-go/env-types/external/schema.graphql b/packages/test-cases/cases/wrappers/wasm-go/env-types/external/schema.graphql new file mode 100644 index 0000000000..d2325113e2 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/env-types/external/schema.graphql @@ -0,0 +1,8 @@ +type Env { + externalArray: [UInt32!]! + externalString: String! +} + +type Module { + externalEnvMethod: Env! @env(required: true) +} diff --git a/packages/test-cases/cases/wrappers/wasm-go/implementations/test-interface/polywrap.yaml b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-interface/polywrap.yaml new file mode 100644 index 0000000000..b2e18e3c2f --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-interface/polywrap.yaml @@ -0,0 +1,6 @@ +format: 0.2.0 +project: + name: TestInterface + type: interface +source: + schema: ./schema.graphql diff --git a/packages/test-cases/cases/wrappers/wasm-go/implementations/test-interface/schema.graphql b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-interface/schema.graphql new file mode 100644 index 0000000000..b80a6e620b --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-interface/schema.graphql @@ -0,0 +1,13 @@ +type Module { + abstractModuleMethod( + arg: Argument! + ): String! +} + +type Argument { + str: String! +} + +type InterfaceType { + uint8: UInt8! +} \ No newline at end of file diff --git a/packages/test-cases/cases/wrappers/wasm-go/implementations/test-use-getImpl/go.mod b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-use-getImpl/go.mod new file mode 100644 index 0000000000..dbfd3f2ddf --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-use-getImpl/go.mod @@ -0,0 +1,7 @@ +module github.com/testorg/testrepo + +go 1.17 + +require github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba + +require github.com/valyala/fastjson v1.6.3 // indirect diff --git a/packages/test-cases/cases/wrappers/wasm-go/implementations/test-use-getImpl/go.sum b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-use-getImpl/go.sum new file mode 100644 index 0000000000..89ffed76d2 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-use-getImpl/go.sum @@ -0,0 +1,4 @@ +github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba h1:zalC+tj7u2wwOA53sJPvPwrIr6bgQF/5KiULuAi0tcE= +github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba/go.mod h1:IHk2chh2cl2rACqPLh5sE1LKTooxw19biP+zzYOiULg= +github.com/valyala/fastjson v1.6.3 h1:tAKFnnwmeMGPbwJ7IwxcTPCNr3uIzoIj3/Fh90ra4xc= +github.com/valyala/fastjson v1.6.3/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= diff --git a/packages/test-cases/cases/wrappers/wasm-go/implementations/test-use-getImpl/module/module.go b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-use-getImpl/module/module.go new file mode 100644 index 0000000000..9e4d85a0b2 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-use-getImpl/module/module.go @@ -0,0 +1,20 @@ +package module + +import ( + "github.com/testorg/testrepo/wrap/interfaces" + "github.com/testorg/testrepo/wrap/types" +) + +//go:generate polywrap build -v -m ../polywrap.yaml -o ../build + +func ModuleImplementations() []string { + return interfaces.InterfaceImplementations() +} + +func ModuleMethod(args *types.MethodArgsModuleMethod) types.ImplementationType { + return args.Arg +} + +func AbstractModuleMethod(args *types.MethodArgsAbstractModuleMethod) string { + return args.Arg.Str +} diff --git a/packages/test-cases/cases/wrappers/wasm-go/implementations/test-use-getImpl/polywrap.build.yaml b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-use-getImpl/polywrap.build.yaml new file mode 100644 index 0000000000..a7ca19eefa --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-use-getImpl/polywrap.build.yaml @@ -0,0 +1,5 @@ +format: 0.1.0 +docker: + name: test-use-get-impl-wasm-as +config: + node_version: "16.13.0" diff --git a/packages/test-cases/cases/wrappers/wasm-go/implementations/test-use-getImpl/polywrap.yaml b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-use-getImpl/polywrap.yaml new file mode 100644 index 0000000000..7d275c3de4 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-use-getImpl/polywrap.yaml @@ -0,0 +1,12 @@ +format: 0.2.0 +project: + name: TestUseGetImpl + type: wasm/golang +source: + schema: ./schema.graphql + module: ./go.mod + import_abis: + - uri: wrap://ens/interface.eth + abi: ../test-interface/build/wrap.info +extensions: + build: ./polywrap.build.yaml diff --git a/packages/test-cases/cases/wrappers/wasm-go/implementations/test-use-getImpl/schema.graphql b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-use-getImpl/schema.graphql new file mode 100644 index 0000000000..bd51ae7828 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-use-getImpl/schema.graphql @@ -0,0 +1,13 @@ +#import { Module, InterfaceType } into Interface from "wrap://ens/interface.eth" +#use { getImplementations } for Interface + +type Module implements Interface_Module { + moduleImplementations: [String!]! + moduleMethod( + arg: ImplementationType! + ): ImplementationType! +} + +type ImplementationType implements Interface_InterfaceType { + str: String! +} \ No newline at end of file diff --git a/packages/test-cases/cases/wrappers/wasm-go/implementations/test-wrapper/go.mod b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-wrapper/go.mod new file mode 100644 index 0000000000..dbfd3f2ddf --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-wrapper/go.mod @@ -0,0 +1,7 @@ +module github.com/testorg/testrepo + +go 1.17 + +require github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba + +require github.com/valyala/fastjson v1.6.3 // indirect diff --git a/packages/test-cases/cases/wrappers/wasm-go/implementations/test-wrapper/go.sum b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-wrapper/go.sum new file mode 100644 index 0000000000..89ffed76d2 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-wrapper/go.sum @@ -0,0 +1,4 @@ +github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba h1:zalC+tj7u2wwOA53sJPvPwrIr6bgQF/5KiULuAi0tcE= +github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba/go.mod h1:IHk2chh2cl2rACqPLh5sE1LKTooxw19biP+zzYOiULg= +github.com/valyala/fastjson v1.6.3 h1:tAKFnnwmeMGPbwJ7IwxcTPCNr3uIzoIj3/Fh90ra4xc= +github.com/valyala/fastjson v1.6.3/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= diff --git a/packages/test-cases/cases/wrappers/wasm-go/implementations/test-wrapper/module/module.go b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-wrapper/module/module.go new file mode 100644 index 0000000000..53dcaeb681 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-wrapper/module/module.go @@ -0,0 +1,15 @@ +package module + +import ( + "github.com/testorg/testrepo/wrap/types" +) + +//go:generate polywrap build -v -m ../polywrap.yaml -o ../build + +func ModuleMethod(args *types.MethodArgsModuleMethod) types.ImplementationType { + return args.Arg +} + +func AbstractModuleMethod(args *types.MethodArgsAbstractModuleMethod) string { + return args.Arg.Str +} diff --git a/packages/test-cases/cases/wrappers/wasm-go/implementations/test-wrapper/polywrap.build.yaml b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-wrapper/polywrap.build.yaml new file mode 100644 index 0000000000..aa5f7201ed --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-wrapper/polywrap.build.yaml @@ -0,0 +1,3 @@ +format: 0.1.0 +config: + node_version: "16.13.0" diff --git a/packages/test-cases/cases/wrappers/wasm-go/implementations/test-wrapper/polywrap.yaml b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-wrapper/polywrap.yaml new file mode 100644 index 0000000000..c9fafb06d2 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-wrapper/polywrap.yaml @@ -0,0 +1,12 @@ +format: 0.2.0 +project: + name: TestWrapper + type: wasm/golang +source: + schema: ./schema.graphql + module: ./go.mod + import_abis: + - uri: wrap://ens/interface.eth + abi: ../test-interface/build/wrap.info +extensions: + build: ./polywrap.build.yaml diff --git a/packages/test-cases/cases/wrappers/wasm-go/implementations/test-wrapper/schema.graphql b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-wrapper/schema.graphql new file mode 100644 index 0000000000..0b28cfb495 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/implementations/test-wrapper/schema.graphql @@ -0,0 +1,11 @@ +#import { Module, InterfaceType } into Interface from "wrap://ens/interface.eth" + +type Module implements Interface_Module { + moduleMethod( + arg: ImplementationType! + ): ImplementationType! +} + +type ImplementationType implements Interface_InterfaceType { + str: String! +} \ No newline at end of file diff --git a/packages/test-cases/cases/wrappers/wasm-go/invalid-types/go.mod b/packages/test-cases/cases/wrappers/wasm-go/invalid-types/go.mod new file mode 100644 index 0000000000..dbfd3f2ddf --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/invalid-types/go.mod @@ -0,0 +1,7 @@ +module github.com/testorg/testrepo + +go 1.17 + +require github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba + +require github.com/valyala/fastjson v1.6.3 // indirect diff --git a/packages/test-cases/cases/wrappers/wasm-go/invalid-types/go.sum b/packages/test-cases/cases/wrappers/wasm-go/invalid-types/go.sum new file mode 100644 index 0000000000..89ffed76d2 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/invalid-types/go.sum @@ -0,0 +1,4 @@ +github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba h1:zalC+tj7u2wwOA53sJPvPwrIr6bgQF/5KiULuAi0tcE= +github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba/go.mod h1:IHk2chh2cl2rACqPLh5sE1LKTooxw19biP+zzYOiULg= +github.com/valyala/fastjson v1.6.3 h1:tAKFnnwmeMGPbwJ7IwxcTPCNr3uIzoIj3/Fh90ra4xc= +github.com/valyala/fastjson v1.6.3/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= diff --git a/packages/test-cases/cases/wrappers/wasm-go/invalid-types/module/module.go b/packages/test-cases/cases/wrappers/wasm-go/invalid-types/module/module.go new file mode 100644 index 0000000000..5981ee38b3 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/invalid-types/module/module.go @@ -0,0 +1,26 @@ +package module + +import ( + "github.com/testorg/testrepo/wrap/types" +) + +//go:generate polywrap build -v -m ../polywrap.yaml -o ../build +func BoolMethod(args *types.MethodArgsBoolMethod) bool { + return args.Arg +} + +func IntMethod(args *types.MethodArgsIntMethod) int32 { + return args.Arg +} + +func UIntMethod(args *types.MethodArgsUIntMethod) uint32 { + return args.Arg +} + +func BytesMethod(args *types.MethodArgsBytesMethod) []byte { + return args.Arg +} + +func ArrayMethod(args *types.MethodArgsArrayMethod) []string { + return args.Arg +} diff --git a/packages/test-cases/cases/wrappers/wasm-go/invalid-types/polywrap.build.yaml b/packages/test-cases/cases/wrappers/wasm-go/invalid-types/polywrap.build.yaml new file mode 100644 index 0000000000..aa5f7201ed --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/invalid-types/polywrap.build.yaml @@ -0,0 +1,3 @@ +format: 0.1.0 +config: + node_version: "16.13.0" diff --git a/packages/test-cases/cases/wrappers/wasm-go/invalid-types/polywrap.yaml b/packages/test-cases/cases/wrappers/wasm-go/invalid-types/polywrap.yaml new file mode 100644 index 0000000000..5b2b05d01b --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/invalid-types/polywrap.yaml @@ -0,0 +1,9 @@ +format: 0.2.0 +project: + name: InvalidTypes + type: wasm/golang +source: + schema: ./schema.graphql + module: ./go.mod +extensions: + build: ./polywrap.build.yaml diff --git a/packages/test-cases/cases/wrappers/wasm-go/invalid-types/schema.graphql b/packages/test-cases/cases/wrappers/wasm-go/invalid-types/schema.graphql new file mode 100644 index 0000000000..5df1ac9c73 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/invalid-types/schema.graphql @@ -0,0 +1,21 @@ +type Module { + boolMethod( + arg: Boolean! + ): Boolean! + + intMethod( + arg: Int32! + ): Int32! + + uIntMethod( + arg: UInt32! + ): UInt32! + + bytesMethod( + arg: Bytes! + ): Bytes! + + arrayMethod( + arg: [String!]! + ): [String!] +} diff --git a/packages/test-cases/cases/wrappers/wasm-go/json-type/go.mod b/packages/test-cases/cases/wrappers/wasm-go/json-type/go.mod new file mode 100644 index 0000000000..6018d3c1c5 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/json-type/go.mod @@ -0,0 +1,8 @@ +module github.com/testorg/testrepo + +go 1.17 + +require ( + github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba + github.com/valyala/fastjson v1.6.3 +) diff --git a/packages/test-cases/cases/wrappers/wasm-go/json-type/go.sum b/packages/test-cases/cases/wrappers/wasm-go/json-type/go.sum new file mode 100644 index 0000000000..89ffed76d2 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/json-type/go.sum @@ -0,0 +1,4 @@ +github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba h1:zalC+tj7u2wwOA53sJPvPwrIr6bgQF/5KiULuAi0tcE= +github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba/go.mod h1:IHk2chh2cl2rACqPLh5sE1LKTooxw19biP+zzYOiULg= +github.com/valyala/fastjson v1.6.3 h1:tAKFnnwmeMGPbwJ7IwxcTPCNr3uIzoIj3/Fh90ra4xc= +github.com/valyala/fastjson v1.6.3/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= diff --git a/packages/test-cases/cases/wrappers/wasm-go/json-type/module/module.go b/packages/test-cases/cases/wrappers/wasm-go/json-type/module/module.go new file mode 100644 index 0000000000..62ab2b2d04 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/json-type/module/module.go @@ -0,0 +1,40 @@ +package module + +import ( + "github.com/testorg/testrepo/wrap/types" + "github.com/valyala/fastjson" +) + +//go:generate polywrap build -v -m ../polywrap.yaml -o ../build + +func Parse(args *types.MethodArgsParse) *fastjson.Value { + return fastjson.MustParse(args.Value) +} + +func Stringify(args *types.MethodArgsStringify) string { + str := "" + for i := range args.Values { + str += args.Values[i].String() + } + return str +} + +func StringifyObject(args *types.MethodArgsStringifyObject) string { + str := "" + str += args.Object.JsonA.String() + str += args.Object.JsonB.String() + return str +} + +func MethodJSON(args *types.MethodArgsMethodJSON) *fastjson.Value { + arena := new(fastjson.Arena) + result := arena.NewObject() + result.Set("valueA", arena.NewNumberInt(int(args.ValueA))) + result.Set("valueB", arena.NewString(args.ValueB)) + if args.ValueC { + result.Set("valueC", arena.NewTrue()) + } else { + result.Set("valueC", arena.NewFalse()) + } + return result +} diff --git a/packages/test-cases/cases/wrappers/wasm-go/json-type/polywrap.build.yaml b/packages/test-cases/cases/wrappers/wasm-go/json-type/polywrap.build.yaml new file mode 100644 index 0000000000..aa5f7201ed --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/json-type/polywrap.build.yaml @@ -0,0 +1,3 @@ +format: 0.1.0 +config: + node_version: "16.13.0" diff --git a/packages/test-cases/cases/wrappers/wasm-go/json-type/polywrap.yaml b/packages/test-cases/cases/wrappers/wasm-go/json-type/polywrap.yaml new file mode 100644 index 0000000000..91efb8d20a --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/json-type/polywrap.yaml @@ -0,0 +1,9 @@ +format: 0.2.0 +project: + name: JsonType + type: wasm/golang +source: + schema: ./schema.graphql + module: ./go.mod +extensions: + build: ./polywrap.build.yaml diff --git a/packages/test-cases/cases/wrappers/wasm-go/json-type/schema.graphql b/packages/test-cases/cases/wrappers/wasm-go/json-type/schema.graphql new file mode 100644 index 0000000000..cb60b87271 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/json-type/schema.graphql @@ -0,0 +1,24 @@ +type Module { + parse( + value: String! + ): JSON! + + stringify( + values: [JSON!]! + ): String! + + stringifyObject( + object: Object! + ): String! + + methodJSON( + valueA: Int! + valueB: String! + valueC: Boolean! + ): JSON! +} + +type Object { + jsonA: JSON! + jsonB: JSON! +} \ No newline at end of file diff --git a/packages/test-cases/cases/wrappers/wasm-go/map-type/go.mod b/packages/test-cases/cases/wrappers/wasm-go/map-type/go.mod new file mode 100644 index 0000000000..dbfd3f2ddf --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/map-type/go.mod @@ -0,0 +1,7 @@ +module github.com/testorg/testrepo + +go 1.17 + +require github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba + +require github.com/valyala/fastjson v1.6.3 // indirect diff --git a/packages/test-cases/cases/wrappers/wasm-go/map-type/go.sum b/packages/test-cases/cases/wrappers/wasm-go/map-type/go.sum new file mode 100644 index 0000000000..89ffed76d2 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/map-type/go.sum @@ -0,0 +1,4 @@ +github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba h1:zalC+tj7u2wwOA53sJPvPwrIr6bgQF/5KiULuAi0tcE= +github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba/go.mod h1:IHk2chh2cl2rACqPLh5sE1LKTooxw19biP+zzYOiULg= +github.com/valyala/fastjson v1.6.3 h1:tAKFnnwmeMGPbwJ7IwxcTPCNr3uIzoIj3/Fh90ra4xc= +github.com/valyala/fastjson v1.6.3/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= diff --git a/packages/test-cases/cases/wrappers/wasm-go/map-type/module/module.go b/packages/test-cases/cases/wrappers/wasm-go/map-type/module/module.go new file mode 100644 index 0000000000..511395f40e --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/map-type/module/module.go @@ -0,0 +1,17 @@ +package module + +import "github.com/testorg/testrepo/wrap/types" + +//go:generate polywrap build -v -m ../polywrap.yaml -o ../build + +func GetKey(args *types.MethodArgsGetKey) int32 { + return args.Foo.M_map[args.Key] +} + +func ReturnMap(args *types.MethodArgsReturnMap) map[string]int32 { + return args.M_map +} + +func ReturnCustomMap(args *types.MethodArgsReturnCustomMap) types.CustomMap { + return args.Foo +} diff --git a/packages/test-cases/cases/wrappers/wasm-go/map-type/polywrap.build.yaml b/packages/test-cases/cases/wrappers/wasm-go/map-type/polywrap.build.yaml new file mode 100644 index 0000000000..aa5f7201ed --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/map-type/polywrap.build.yaml @@ -0,0 +1,3 @@ +format: 0.1.0 +config: + node_version: "16.13.0" diff --git a/packages/test-cases/cases/wrappers/wasm-go/map-type/polywrap.yaml b/packages/test-cases/cases/wrappers/wasm-go/map-type/polywrap.yaml new file mode 100644 index 0000000000..292392bba4 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/map-type/polywrap.yaml @@ -0,0 +1,9 @@ +format: 0.2.0 +project: + name: BytesType + type: wasm/golang +source: + schema: ./schema.graphql + module: ./go.mod +extensions: + build: ./polywrap.build.yaml \ No newline at end of file diff --git a/packages/test-cases/cases/wrappers/wasm-go/map-type/schema.graphql b/packages/test-cases/cases/wrappers/wasm-go/map-type/schema.graphql new file mode 100644 index 0000000000..b79ca553c5 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/map-type/schema.graphql @@ -0,0 +1,18 @@ +type Module { + getKey( + key: String! + foo: CustomMap! + ): Int! + + returnMap( + map: Map! @annotate(type: "Map!") + ): Map! @annotate(type: "Map!") + + returnCustomMap( + foo: CustomMap! + ): CustomMap! +} + +type CustomMap { + map: Map! @annotate(type: "Map!") +} diff --git a/packages/test-cases/cases/wrappers/wasm-go/number-types/go.mod b/packages/test-cases/cases/wrappers/wasm-go/number-types/go.mod new file mode 100644 index 0000000000..dbfd3f2ddf --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/number-types/go.mod @@ -0,0 +1,7 @@ +module github.com/testorg/testrepo + +go 1.17 + +require github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba + +require github.com/valyala/fastjson v1.6.3 // indirect diff --git a/packages/test-cases/cases/wrappers/wasm-go/number-types/go.sum b/packages/test-cases/cases/wrappers/wasm-go/number-types/go.sum new file mode 100644 index 0000000000..89ffed76d2 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/number-types/go.sum @@ -0,0 +1,4 @@ +github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba h1:zalC+tj7u2wwOA53sJPvPwrIr6bgQF/5KiULuAi0tcE= +github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba/go.mod h1:IHk2chh2cl2rACqPLh5sE1LKTooxw19biP+zzYOiULg= +github.com/valyala/fastjson v1.6.3 h1:tAKFnnwmeMGPbwJ7IwxcTPCNr3uIzoIj3/Fh90ra4xc= +github.com/valyala/fastjson v1.6.3/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= diff --git a/packages/test-cases/cases/wrappers/wasm-go/number-types/module/module.go b/packages/test-cases/cases/wrappers/wasm-go/number-types/module/module.go new file mode 100644 index 0000000000..35be7fc298 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/number-types/module/module.go @@ -0,0 +1,29 @@ +package module + +import "github.com/testorg/testrepo/wrap/types" + +//go:generate polywrap build -v -m ../polywrap.yaml -o ../build + +func I8Method(args *types.MethodArgsI8Method) int8 { + return args.First + args.Second +} + +func U8Method(args *types.MethodArgsU8Method) uint8 { + return args.First + args.Second +} + +func I16Method(args *types.MethodArgsI16Method) int16 { + return args.First + args.Second +} + +func U16Method(args *types.MethodArgsU16Method) uint16 { + return args.First + args.Second +} + +func I32Method(args *types.MethodArgsI32Method) int32 { + return args.First + args.Second +} + +func U32Method(args *types.MethodArgsU32Method) uint32 { + return args.First + args.Second +} diff --git a/packages/test-cases/cases/wrappers/wasm-go/number-types/polywrap.build.yaml b/packages/test-cases/cases/wrappers/wasm-go/number-types/polywrap.build.yaml new file mode 100644 index 0000000000..d16e9c9f18 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/number-types/polywrap.build.yaml @@ -0,0 +1,3 @@ +format: 0.1.0 +config: + node_version: "16.13.0" \ No newline at end of file diff --git a/packages/test-cases/cases/wrappers/wasm-go/number-types/polywrap.yaml b/packages/test-cases/cases/wrappers/wasm-go/number-types/polywrap.yaml new file mode 100644 index 0000000000..cbef1cd38d --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/number-types/polywrap.yaml @@ -0,0 +1,9 @@ +format: 0.2.0 +project: + name: NumberTypes + type: wasm/golang +source: + schema: ./schema.graphql + module: ./go.mod +extensions: + build: ./polywrap.build.yaml \ No newline at end of file diff --git a/packages/test-cases/cases/wrappers/wasm-go/number-types/schema.graphql b/packages/test-cases/cases/wrappers/wasm-go/number-types/schema.graphql new file mode 100644 index 0000000000..81d5005b5a --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/number-types/schema.graphql @@ -0,0 +1,32 @@ +type Module { + + i8Method( + first: Int8! + second: Int8! + ): Int8! + + u8Method( + first: UInt8! + second: UInt8! + ): UInt8! + + i16Method( + first: Int16! + second: Int16! + ): Int16! + + u16Method( + first: UInt16! + second: UInt16! + ): UInt16! + + i32Method( + first: Int! + second: Int! + ): Int! + + u32Method( + first: UInt32! + second: UInt32! + ): UInt32! +} \ No newline at end of file diff --git a/packages/test-cases/cases/wrappers/wasm-go/object-types/go.mod b/packages/test-cases/cases/wrappers/wasm-go/object-types/go.mod new file mode 100644 index 0000000000..dbfd3f2ddf --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/object-types/go.mod @@ -0,0 +1,7 @@ +module github.com/testorg/testrepo + +go 1.17 + +require github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba + +require github.com/valyala/fastjson v1.6.3 // indirect diff --git a/packages/test-cases/cases/wrappers/wasm-go/object-types/go.sum b/packages/test-cases/cases/wrappers/wasm-go/object-types/go.sum new file mode 100644 index 0000000000..89ffed76d2 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/object-types/go.sum @@ -0,0 +1,4 @@ +github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba h1:zalC+tj7u2wwOA53sJPvPwrIr6bgQF/5KiULuAi0tcE= +github.com/consideritdone/polywrap-go v0.0.0-20220828165033-42498c4ffdba/go.mod h1:IHk2chh2cl2rACqPLh5sE1LKTooxw19biP+zzYOiULg= +github.com/valyala/fastjson v1.6.3 h1:tAKFnnwmeMGPbwJ7IwxcTPCNr3uIzoIj3/Fh90ra4xc= +github.com/valyala/fastjson v1.6.3/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= diff --git a/packages/test-cases/cases/wrappers/wasm-go/object-types/module/module.go b/packages/test-cases/cases/wrappers/wasm-go/object-types/module/module.go new file mode 100644 index 0000000000..9ecf0355cc --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/object-types/module/module.go @@ -0,0 +1,55 @@ +package module + +import "github.com/testorg/testrepo/wrap/types" + +//go:generate polywrap build -v -m ../polywrap.yaml -o ../build + +func Method1(args *types.MethodArgsMethod1) []types.Output { + out1 := types.Output{ + Prop: args.Arg1.Prop, + Nested: types.Nested{ + Prop: args.Arg1.Nested.Prop, + }, + } + out2 := types.Output{} + if args.Arg2 != nil { + out2 = types.Output{ + Prop: args.Arg2.Prop, + Nested: types.Nested{ + Prop: args.Arg2.Circular.Prop, + }, + } + } + return []types.Output{out1, out2} +} + +func Method2(args *types.MethodArgsMethod2) *types.Output { + if args == nil { + return nil + } + return &types.Output{ + Prop: args.Arg.Prop, + Nested: types.Nested{ + Prop: args.Arg.Nested.Prop, + }, + } +} + +func Method3(args *types.MethodArgsMethod3) []*types.Output { + out2 := &types.Output{ + Prop: args.Arg.Prop, + Nested: types.Nested{ + Prop: args.Arg.Nested.Prop, + }, + } + return []*types.Output{nil, out2} +} + +func Method5(args *types.MethodArgsMethod5) types.Output { + return types.Output{ + Prop: string(args.Arg.Prop), + Nested: types.Nested{ + Prop: "nested prop", + }, + } +} diff --git a/packages/test-cases/cases/wrappers/wasm-go/object-types/polywrap.build.yaml b/packages/test-cases/cases/wrappers/wasm-go/object-types/polywrap.build.yaml new file mode 100644 index 0000000000..d16e9c9f18 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/object-types/polywrap.build.yaml @@ -0,0 +1,3 @@ +format: 0.1.0 +config: + node_version: "16.13.0" \ No newline at end of file diff --git a/packages/test-cases/cases/wrappers/wasm-go/object-types/polywrap.yaml b/packages/test-cases/cases/wrappers/wasm-go/object-types/polywrap.yaml new file mode 100644 index 0000000000..1bf4bdb549 --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/object-types/polywrap.yaml @@ -0,0 +1,9 @@ +format: 0.2.0 +project: + name: ObjectTypes + type: wasm/golang +source: + schema: ./schema.graphql + module: ./go.mod +extensions: + build: ./polywrap.build.yaml \ No newline at end of file diff --git a/packages/test-cases/cases/wrappers/wasm-go/object-types/schema.graphql b/packages/test-cases/cases/wrappers/wasm-go/object-types/schema.graphql new file mode 100644 index 0000000000..03f068148a --- /dev/null +++ b/packages/test-cases/cases/wrappers/wasm-go/object-types/schema.graphql @@ -0,0 +1,45 @@ +type Module { + method1( + arg1: Arg1! + arg2: Arg2 + ): [Output!]! + + method2( + arg: Arg1! + ): Output + + method3( + arg: Arg1! + ): [Output]! + + method5( + arg: Arg3! + ): Output! +} + +type Arg1 { + prop: String! + nested: Nested! +} + +type Arg2 { + prop: String! + circular: Circular! +} + +type Arg3 { + prop: Bytes! +} + +type Output { + prop: String! + nested: Nested! +} + +type Nested { + prop: String! +} + +type Circular { + prop: String! +}