diff --git a/packages/schema/bind/src/bindings/golang/functions.ts b/packages/schema/bind/src/bindings/golang/functions.ts index 132a5962c7..6c5e836981 100644 --- a/packages/schema/bind/src/bindings/golang/functions.ts +++ b/packages/schema/bind/src/bindings/golang/functions.ts @@ -99,41 +99,38 @@ export const makeImports: MustacheFn = () => { return (text: string, render: (template: string) => string): string => { const types = render(text).split(","); const exist: { [key: string]: boolean } = {}; - const pattern = new RegExp( - "^(https?:\\/\\/)?" + // protocol - "((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|" + // domain name - "((\\d{1,3}\\.){3}\\d{1,3}))" + // OR ip (v4) address - "(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*" + // port and path - "(\\?[;&a-z\\d%_.~+=-]*)?" + // query string - "(\\#[-a-z\\d_]*)?$", - "i" - ); - for (const t of types) { - switch (t) { - case "*big.Int": - exist[ - "github.com/consideritdone/polywrap-go/polywrap/msgpack/big" - ] = true; - break; - case "*fastjson.Value": - exist["github.com/valyala/fastjson"] = true; - break; - default: - if (pattern.test(t)) { - exist[t] = true; - } - break; + for (let t of types) { + t = t.trim(); + if (t.endsWith("big.Int")) { + exist[ + "github.com/consideritdone/polywrap-go/polywrap/msgpack/big" + ] = true; + } else if (t.endsWith("fastjson.Value")) { + exist["github.com/valyala/fastjson"] = true; + } else if (/([^/\s]+\/)(.*)/.test(t)) { + exist[t] = true; } } - const imports: Array = [ - "github.com/consideritdone/polywrap-go/polywrap/msgpack", - ]; + const imports: Array = []; imports.push(...Object.keys(exist)); const txt = imports .sort() - .map((imp) => `\t"${imp}"`) + .map((imp) => { + let res = ""; + if (imp.startsWith(". ")) { + res = `. "${imp.slice(2)}"`; + } else { + const parts = imp.split(" as "); + if (parts.length > 1) { + res = `${parts[1]} "${parts[0]}"`; + } else { + res = `"${imp}"`; + } + } + return `\t${res}`; + }) .join("\n"); - return `import (\n${txt}\n)`; + return txt !== "" ? `\nimport (\n${txt}\n)\n\n` : "\n"; }; }; @@ -220,33 +217,6 @@ export const toMsgPack: MustacheFn = () => { }; }; -export const typeable: MustacheFn = () => { - return (value: string, render: (template: string) => string) => { - const type = render(value); - switch (type) { - case "int8": - case "int16": - case "int32": - case "int64": - case "uint8": - case "uint16": - case "uint32": - case "uint64": - case "string": - case "bool": - case "[]byte": - case "*big.Int": - case "*fastjson.Value": - return type; - default: - if (type.startsWith("*")) { - return `*types.${type.slice(1)}`; - } - return `types.${type}`; - } - }; -}; - export const toWasm: MustacheFn = () => { return (value: string, render: (template: string) => string) => { let type = render(value); @@ -376,69 +346,32 @@ const applyOptional = (type: string, optional: boolean, _: boolean): string => { } }; -function replaceAt(str: string, index: number, replacement: string): string { - return ( - str.substr(0, index) + replacement + str.substr(index + replacement.length) - ); -} - export const toLower: MustacheFn = () => { return (value: string, render: (template: string) => string) => { - let type = render(value); - - for (let i = 0; i < type.length; ++i) { - const char = type.charAt(i); - const lower = char.toLowerCase(); - - if (char !== lower) { - // Replace the uppercase char w/ the lowercase version - type = replaceAt(type, i, lower); - - // if (i !== 0 && type[i - 1] !== "_") { - // // Make sure all lowercase conversions have an underscore before them - // type = insertAt(type, i, "_"); - // } - } - } - - return type; + return render(value) + .split("") + .map((v) => v.toLowerCase()) + .join(""); }; }; export const toFirstLower: MustacheFn = () => { return (value: string, render: (template: string) => string) => { - let type = render(value); - - // First character must always be upper case - const firstChar = type.charAt(0); - const firstLower = firstChar.toLowerCase(); - type = replaceAt(type, 0, firstLower); - - return type; + const type = render(value); + return type.charAt(0).toLowerCase() + type.slice(1); }; }; export const toUpper: MustacheFn = () => { return (value: string, render: (template: string) => string) => { - let type = render(value); - - // First character must always be upper case - const firstChar = type.charAt(0); - const firstUpper = firstChar.toUpperCase(); - type = replaceAt(type, 0, firstUpper); - - // Look for any underscores, remove them if they exist, and make next letter uppercase - // for (let i = 0; i < type.length; ++i) { - // const char = type.charAt(i); - // - // if (char === "_") { - // const nextChar = type.charAt(i + 1); - // const nextCharUpper = nextChar.toUpperCase(); - // type = replaceAt(type, i + 1, nextCharUpper); - // type = removeAt(type, i); - // } - // } + const type = render(value); + return type.charAt(0).toUpperCase() + type.slice(1); + }; +}; - return type; +export const pkgName: MustacheFn = () => { + return (text: string, render: (template: string) => string): string => { + const name = render(text); + return reservedWordsAS.has(name) ? `pkg${name}` : name; }; }; diff --git a/packages/schema/bind/src/bindings/golang/reservedWords.ts b/packages/schema/bind/src/bindings/golang/reservedWords.ts index f962c6f7b5..696a767cb4 100644 --- a/packages/schema/bind/src/bindings/golang/reservedWords.ts +++ b/packages/schema/bind/src/bindings/golang/reservedWords.ts @@ -198,4 +198,29 @@ export const reservedWordsAS: Set = new Set([ "__visit", "__newBuffer", "__newArray", + "break", + "default", + "func", + "interface", + "select", + "case", + "defer", + "go", + "map", + "struct", + "chan", + "else", + "goto", + "package", + "switch", + "const", + "fallthrough", + "if", + "range", + "type", + "continue", + "for", + "import", + "return", + "var", ]); diff --git a/packages/schema/bind/src/bindings/golang/wasm/index.ts b/packages/schema/bind/src/bindings/golang/wasm/index.ts index 3102d038b3..8eb30576ad 100644 --- a/packages/schema/bind/src/bindings/golang/wasm/index.ts +++ b/packages/schema/bind/src/bindings/golang/wasm/index.ts @@ -3,6 +3,7 @@ import { GenerateBindingFn } from "../.."; import { renderTemplates } from "../.."; import { loadSubTemplates } from "../../utils"; import { BindOptions, BindOutput } from "../../.."; +import { reservedWordsAS } from "../reservedWords"; import { Abi, @@ -19,6 +20,10 @@ const subTemplates = loadSubTemplates(templatesDir.entries); const templatePath = (subpath: string) => path.join(__dirname, "./templates", subpath); +function pkgName(str: string): string { + return reservedWordsAS.has(str) ? `pkg${str}` : str; +} + function camel2snake(str: string): string { str = str.replace(/([A-Z])/g, "_$1"); str = str.startsWith("_") ? str.slice(1) : str; @@ -61,7 +66,7 @@ export const generateBinding: GenerateBindingFn = ( for (const importedModuleType of abi.importedModuleTypes) { importEntries.push({ type: "Directory", - name: `${camel2snake(importedModuleType.namespace)}`, + name: `${pkgName(camel2snake(importedModuleType.namespace))}`, data: renderTemplates( templatePath("imported/module-type"), importedModuleType, @@ -76,7 +81,7 @@ export const generateBinding: GenerateBindingFn = ( for (const importedEnvType of abi.importedEnvTypes) { importEntries.push({ type: "Directory", - name: `${camel2snake(importedEnvType.namespace)}`, + name: `${pkgName(camel2snake(importedEnvType.namespace))}`, data: renderTemplates( templatePath("imported/env-type"), importedEnvType, @@ -91,7 +96,7 @@ export const generateBinding: GenerateBindingFn = ( for (const importedEnumType of abi.importedEnumTypes) { importEntries.push({ type: "Directory", - name: `${camel2snake(importedEnumType.namespace)}`, + name: `${pkgName(camel2snake(importedEnumType.namespace))}`, data: renderTemplates( templatePath("imported/enum-type"), importedEnumType, @@ -106,7 +111,7 @@ export const generateBinding: GenerateBindingFn = ( for (const importedObectType of abi.importedObjectTypes) { importEntries.push({ type: "Directory", - name: `${camel2snake(importedObectType.namespace)}`, + name: `${pkgName(camel2snake(importedObectType.namespace))}`, data: renderTemplates( templatePath("imported/object-type"), importedObectType, @@ -144,12 +149,26 @@ export const generateBinding: GenerateBindingFn = ( // Generate module type folders if (abi.moduleType) { + const imports: { [key: string]: boolean } = {}; + abi.moduleType.methods?.forEach(function (method) { + method.arguments?.forEach(function (arg) { + const tp = abi.importedObjectTypes?.find(function (mt) { + return mt.type === arg.type; + }); + if (tp) { + imports[tp.namespace] = true; + } + }); + }); + const importedTypes = Object.keys(imports).map((namespace) => ({ + namespace, + })); output.entries.push({ type: "Directory", name: "types", data: renderTemplates( templatePath("module-type/types"), - { goImport, ...abi.moduleType }, + { importedTypes, goImport, ...abi.moduleType }, subTemplates ), }); @@ -158,7 +177,7 @@ export const generateBinding: GenerateBindingFn = ( name: "module", data: renderTemplates( templatePath("module-type/module"), - { goImport, ...abi.moduleType }, + { importedTypes, goImport, ...abi.moduleType }, subTemplates ), }); diff --git a/packages/schema/bind/src/bindings/golang/wasm/templates/env-type/Env%type%-go.mustache b/packages/schema/bind/src/bindings/golang/wasm/templates/env-type/Env%type%-go.mustache index 4cc1a1eea6..5f8f4bb605 100644 --- a/packages/schema/bind/src/bindings/golang/wasm/templates/env-type/Env%type%-go.mustache +++ b/packages/schema/bind/src/bindings/golang/wasm/templates/env-type/Env%type%-go.mustache @@ -1,6 +1,6 @@ package types -{{#makeImports}}{{#properties}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{^last}},{{/last}}{{/properties}}{{/makeImports}} +{{#makeImports}}github.com/consideritdone/polywrap-go/polywrap/msgpack,{{#properties}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{^last}},{{/last}}{{/properties}}{{/makeImports}} type {{#toUpper}}{{type}}{{/toUpper}} struct { {{#stuctProps}} diff --git a/packages/schema/bind/src/bindings/golang/wasm/templates/env-type/Env%type%Serialization-go.mustache b/packages/schema/bind/src/bindings/golang/wasm/templates/env-type/Env%type%Serialization-go.mustache index 0574f0e584..e5f6038776 100644 --- a/packages/schema/bind/src/bindings/golang/wasm/templates/env-type/Env%type%Serialization-go.mustache +++ b/packages/schema/bind/src/bindings/golang/wasm/templates/env-type/Env%type%Serialization-go.mustache @@ -1,6 +1,6 @@ package types -{{#makeImports}}{{#properties}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{^last}},{{/last}}{{/properties}}{{/makeImports}} +{{#makeImports}}github.com/consideritdone/polywrap-go/polywrap/msgpack,{{#properties}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{^last}},{{/last}}{{/properties}}{{/makeImports}} func serialize{{#toUpper}}{{type}}{{/toUpper}}(value *{{#toUpper}}{{type}}{{/toUpper}}) []byte { ctx := msgpack.NewContext("Serializing (encoding) env-type: {{#toUpper}}{{type}}{{/toUpper}}") diff --git a/packages/schema/bind/src/bindings/golang/wasm/templates/imported/enum-type/Enum%type%-go.mustache b/packages/schema/bind/src/bindings/golang/wasm/templates/imported/enum-type/Enum%type%-go.mustache index 1bd32360c5..72cd7bfeb6 100644 --- a/packages/schema/bind/src/bindings/golang/wasm/templates/imported/enum-type/Enum%type%-go.mustache +++ b/packages/schema/bind/src/bindings/golang/wasm/templates/imported/enum-type/Enum%type%-go.mustache @@ -1,4 +1,4 @@ -package {{#toSnakeCase}}{{namespace}}{{/toSnakeCase}} +package {{#pkgName}}{{#toSnakeCase}}{{namespace}}{{/toSnakeCase}}{{/pkgName}} type {{#toUpper}}{{type}}{{/toUpper}} int32 diff --git a/packages/schema/bind/src/bindings/golang/wasm/templates/imported/env-type/Env%type%-go.mustache b/packages/schema/bind/src/bindings/golang/wasm/templates/imported/env-type/Env%type%-go.mustache index 7f50e2c6a6..b650c91755 100644 --- a/packages/schema/bind/src/bindings/golang/wasm/templates/imported/env-type/Env%type%-go.mustache +++ b/packages/schema/bind/src/bindings/golang/wasm/templates/imported/env-type/Env%type%-go.mustache @@ -1,7 +1,10 @@ -package {{#toSnakeCase}}{{namespace}}{{/toSnakeCase}} - -{{#makeImports}}{{#properties}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{^last}},{{/last}}{{/properties}}{{/makeImports}} - +package {{#pkgName}}{{#toSnakeCase}}{{namespace}}{{/toSnakeCase}}{{/pkgName}} +{{#makeImports}} + github.com/consideritdone/polywrap-go/polywrap/msgpack, + {{#properties}} + {{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{^last}},{{/last}} + {{/properties}} +{{/makeImports}} type {{#toUpper}}{{type}}{{/toUpper}} struct { {{#stuctProps}} {{#properties}} diff --git a/packages/schema/bind/src/bindings/golang/wasm/templates/imported/env-type/Env%type%Serialization-go.mustache b/packages/schema/bind/src/bindings/golang/wasm/templates/imported/env-type/Env%type%Serialization-go.mustache index ac4ea04a6f..af9a965b12 100644 --- a/packages/schema/bind/src/bindings/golang/wasm/templates/imported/env-type/Env%type%Serialization-go.mustache +++ b/packages/schema/bind/src/bindings/golang/wasm/templates/imported/env-type/Env%type%Serialization-go.mustache @@ -1,7 +1,10 @@ -package {{#toSnakeCase}}{{namespace}}{{/toSnakeCase}} - -{{#makeImports}}{{#properties}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{^last}},{{/last}}{{/properties}}{{/makeImports}} - +package {{#pkgName}}{{#toSnakeCase}}{{namespace}}{{/toSnakeCase}}{{/pkgName}} +{{#makeImports}} + github.com/consideritdone/polywrap-go/polywrap/msgpack, + {{#properties}} + {{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{^last}},{{/last}} + {{/properties}} +{{/makeImports}} func serialize{{#toUpper}}{{type}}{{/toUpper}}(value *{{#toUpper}}{{type}}{{/toUpper}}) []byte { ctx := msgpack.NewContext("Serializing (encoding) env-type: {{#toUpper}}{{type}}{{/toUpper}}") encoder := msgpack.NewWriteEncoder(ctx) diff --git a/packages/schema/bind/src/bindings/golang/wasm/templates/imported/interface-type/%type%-go.mustache b/packages/schema/bind/src/bindings/golang/wasm/templates/imported/interface-type/%type%-go.mustache index c63551016a..c433d42468 100644 --- a/packages/schema/bind/src/bindings/golang/wasm/templates/imported/interface-type/%type%-go.mustache +++ b/packages/schema/bind/src/bindings/golang/wasm/templates/imported/interface-type/%type%-go.mustache @@ -1,4 +1,4 @@ -package {{#toSnakeCase}}{{namespace}}{{/toSnakeCase}} +package {{#pkgName}}{{#toSnakeCase}}{{namespace}}{{/toSnakeCase}}{{/pkgName}} {{#capabilities}} {{#getImplementations}} diff --git a/packages/schema/bind/src/bindings/golang/wasm/templates/imported/module-type/%type%Serialization-go.mustache b/packages/schema/bind/src/bindings/golang/wasm/templates/imported/module-type/%type%Serialization-go.mustache index e908e48bfc..c30f7d21ec 100644 --- a/packages/schema/bind/src/bindings/golang/wasm/templates/imported/module-type/%type%Serialization-go.mustache +++ b/packages/schema/bind/src/bindings/golang/wasm/templates/imported/module-type/%type%Serialization-go.mustache @@ -1,7 +1,10 @@ -package {{#toSnakeCase}}{{namespace}}{{/toSnakeCase}} - -{{#makeImports}}{{#arguments}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{^last}},{{/last}}{{/arguments}}{{/makeImports}} - +package {{#pkgName}}{{#toSnakeCase}}{{namespace}}{{/toSnakeCase}}{{/pkgName}} +{{#makeImports}} + github.com/consideritdone/polywrap-go/polywrap/msgpack, + {{#arguments}} + {{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{^last}},{{/last}} + {{/arguments}} +{{/makeImports}} {{#methods}} type Args{{#toUpper}}{{name}}{{/toUpper}} struct { {{#stuctProps}} @@ -19,6 +22,7 @@ func Serialize{{#toUpper}}{{name}}{{/toUpper}}Args(value *Args{{#toUpper}}{{name } func Write{{#toUpper}}{{name}}{{/toUpper}}Args(writer msgpack.Write, value *Args{{#toUpper}}{{name}}{{/toUpper}}) { + {{#arguments.length}} writer.WriteMapLength({{arguments.length}}) {{#arguments}} writer.Context().Push("{{name}}", "{{#toWasm}}{{toGraphQLType}}{{/toWasm}}", "writing property") @@ -44,6 +48,7 @@ func Write{{#toUpper}}{{name}}{{/toUpper}}Args(writer msgpack.Write, value *Args {{/enum}} writer.Context().Pop() {{/arguments}} + {{/arguments.length}} } func Deserialize{{#toUpper}}{{name}}{{/toUpper}}Result(argsBuf []byte) {{#return}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{/return}} { diff --git a/packages/schema/bind/src/bindings/golang/wasm/templates/imported/module-type/%type%Wrapped-go.mustache b/packages/schema/bind/src/bindings/golang/wasm/templates/imported/module-type/%type%Wrapped-go.mustache index 74b5f3e794..3f4fe38bd8 100644 --- a/packages/schema/bind/src/bindings/golang/wasm/templates/imported/module-type/%type%Wrapped-go.mustache +++ b/packages/schema/bind/src/bindings/golang/wasm/templates/imported/module-type/%type%Wrapped-go.mustache @@ -1,4 +1,4 @@ -package {{#toSnakeCase}}{{namespace}}{{/toSnakeCase}} +package {{#pkgName}}{{#toSnakeCase}}{{namespace}}{{/toSnakeCase}}{{/pkgName}} {{#methods.length}} import ( @@ -10,11 +10,16 @@ import ( {{#methods}} func {{#toUpper}}{{type}}{{/toUpper}}{{#toUpper}}{{name}}{{/toUpper}}(args *Args{{#toUpper}}{{name}}{{/toUpper}}) ({{#return}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{/return}}, error) { argsBuf := Serialize{{#toUpper}}{{name}}{{/toUpper}}Args(args) - data, err := polywrap.WrapSubinvoke("{{uri}}", "{{name}}", argsBuf) - if err != nil { - return nil, result.Error() + var ( + err error + raw []byte + data {{#return}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{/return}} + ) + raw, err = polywrap.WrapSubinvoke("{{uri}}", "{{name}}", argsBuf) + if err == nil { + data = Deserialize{{#toUpper}}{{name}}{{/toUpper}}Result(raw) } - return Deserialize{{#toUpper}}{{name}}{{/toUpper}}Result(result.unwrap()), nil + return data, err } {{^last}} @@ -25,11 +30,16 @@ func {{#toUpper}}{{type}}{{/toUpper}}{{#toUpper}}{{name}}{{/toUpper}}(args *Args {{#methods}} func {{#toUpper}}{{type}}{{/toUpper}}{{#toUpper}}{{name}}{{/toUpper}}(uri string, args *Args{{#toUpper}}{{name}}{{/toUpper}}) ({{#return}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{/return}}, error) { argsBuf := Serialize{{#toUpper}}{{name}}{{/toUpper}}Args(args) - data, err := polywrap.WrapSubinvokeImplementation("{{uri}}", uri, "{{name}}", argsBuf) - if err != nil { - return nil, err + var ( + err error + raw []byte + data {{#return}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{/return}} + ) + raw, err = polywrap.WrapSubinvokeImplementation("{{uri}}", uri, "{{name}}", argsBuf) + if err == nil { + data = Deserialize{{#toUpper}}{{name}}{{/toUpper}}Result(raw) } - return Deserialize{{#toUpper}}{{name}}{{/toUpper}}Result(data), nil + return data, err } {{^last}} diff --git a/packages/schema/bind/src/bindings/golang/wasm/templates/imported/object-type/Object%type%-go.mustache b/packages/schema/bind/src/bindings/golang/wasm/templates/imported/object-type/Object%type%-go.mustache index 7f50e2c6a6..b650c91755 100644 --- a/packages/schema/bind/src/bindings/golang/wasm/templates/imported/object-type/Object%type%-go.mustache +++ b/packages/schema/bind/src/bindings/golang/wasm/templates/imported/object-type/Object%type%-go.mustache @@ -1,7 +1,10 @@ -package {{#toSnakeCase}}{{namespace}}{{/toSnakeCase}} - -{{#makeImports}}{{#properties}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{^last}},{{/last}}{{/properties}}{{/makeImports}} - +package {{#pkgName}}{{#toSnakeCase}}{{namespace}}{{/toSnakeCase}}{{/pkgName}} +{{#makeImports}} + github.com/consideritdone/polywrap-go/polywrap/msgpack, + {{#properties}} + {{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{^last}},{{/last}} + {{/properties}} +{{/makeImports}} type {{#toUpper}}{{type}}{{/toUpper}} struct { {{#stuctProps}} {{#properties}} diff --git a/packages/schema/bind/src/bindings/golang/wasm/templates/imported/object-type/Object%type%Serialization-go.mustache b/packages/schema/bind/src/bindings/golang/wasm/templates/imported/object-type/Object%type%Serialization-go.mustache index 3274d8b9c4..8623350c71 100644 --- a/packages/schema/bind/src/bindings/golang/wasm/templates/imported/object-type/Object%type%Serialization-go.mustache +++ b/packages/schema/bind/src/bindings/golang/wasm/templates/imported/object-type/Object%type%Serialization-go.mustache @@ -1,7 +1,10 @@ -package {{#toSnakeCase}}{{namespace}}{{/toSnakeCase}} - -{{#makeImports}}{{#properties}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{^last}},{{/last}}{{/properties}}{{/makeImports}} - +package {{#pkgName}}{{#toSnakeCase}}{{namespace}}{{/toSnakeCase}}{{/pkgName}} +{{#makeImports}} + github.com/consideritdone/polywrap-go/polywrap/msgpack, + {{#properties}} + {{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{^last}},{{/last}} + {{/properties}} +{{/makeImports}} func serialize{{#toUpper}}{{type}}{{/toUpper}}(value *{{#toUpper}}{{type}}{{/toUpper}}) []byte { ctx := msgpack.NewContext("Serializing (encoding) env-type: {{#toUpper}}{{type}}{{/toUpper}}") encoder := msgpack.NewWriteEncoder(ctx) diff --git a/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/module/%type%Serialization-go.mustache b/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/module/%type%Serialization-go.mustache index 6bd9f9c0f1..2cc45f280f 100644 --- a/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/module/%type%Serialization-go.mustache +++ b/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/module/%type%Serialization-go.mustache @@ -1,11 +1,18 @@ package module - -{{#makeImports}}{{goImport}}/wrap/types,{{#arguments}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{^last}},{{/last}}{{/arguments}}{{/makeImports}} - +{{#makeImports}} + github.com/consideritdone/polywrap-go/polywrap/msgpack, + . {{goImport}}/wrap/types, + {{#importedTypes}} + . {{goImport}}/wrap/imported/{{#pkgName}}{{#toSnakeCase}}{{namespace}}{{/toSnakeCase}}{{/pkgName}}, + {{/importedTypes}} + {{#methods}} + {{#return}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{/return}}, + {{/methods}} +{{/makeImports}} {{#methods}} -func deserialize{{#toUpper}}{{name}}{{/toUpper}}Args(argsBuf []byte) *types.Args{{#toUpper}}{{name}}{{/toUpper}} { +{{#arguments.length}} +func Deserialize{{#toUpper}}{{name}}{{/toUpper}}Args(argsBuf []byte) *MethodArgs{{#toUpper}}{{name}}{{/toUpper}} { ctx := msgpack.NewContext("Deserializing module-type: {{#toUpper}}{{name}}{{/toUpper}}") - {{#arguments.length}} reader := msgpack.NewReadDecoder(ctx, argsBuf) var ( @@ -51,8 +58,8 @@ func deserialize{{#toUpper}}{{name}}{{/toUpper}}Args(argsBuf []byte) *types.Args reader.Context().Pop() {{/arguments}} } - reader.Context().Pop() - } + reader.Context().Pop() + } {{#arguments}} {{#required}} @@ -61,9 +68,8 @@ func deserialize{{#toUpper}}{{name}}{{/toUpper}}Args(argsBuf []byte) *types.Args } {{/required}} {{/arguments}} - {{/arguments.length}} - return &types.Args{{#toUpper}}{{name}}{{/toUpper}}{ + return &MethodArgs{{#toUpper}}{{name}}{{/toUpper}}{ {{#stuctProps}} {{#arguments}} {{#toUpper}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toUpper}}: _{{name}}, @@ -71,15 +77,16 @@ func deserialize{{#toUpper}}{{name}}{{/toUpper}}Args(argsBuf []byte) *types.Args {{/stuctProps}} } } +{{/arguments.length}} -func Serialize{{#toUpper}}{{name}}{{/toUpper}}Result(value {{#return}}{{#typeable}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{/typeable}}{{/return}}) []byte { +func Serialize{{#toUpper}}{{name}}{{/toUpper}}Result(value {{#return}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{/return}}) []byte { ctx := msgpack.NewContext("Serializing module-type: {{#toUpper}}{{name}}{{/toUpper}}") encoder := msgpack.NewWriteEncoder(ctx) Write{{#toUpper}}{{name}}{{/toUpper}}Result(encoder, value); return encoder.Buffer() } -func Write{{#toUpper}}{{name}}{{/toUpper}}Result(writer msgpack.Write, value {{#return}}{{#typeable}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{/typeable}}{{/return}}) { +func Write{{#toUpper}}{{name}}{{/toUpper}}Result(writer msgpack.Write, value {{#return}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{/return}}) { {{#return}} writer.Context().Push("{{name}}", "{{#toWasm}}{{toGraphQLType}}{{/toWasm}}", "writing property") {{#scalar}} diff --git a/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/module/%type%Wrapped-go.mustache b/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/module/%type%Wrapped-go.mustache index f3da3b7cfe..65dd8ec082 100644 --- a/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/module/%type%Wrapped-go.mustache +++ b/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/module/%type%Wrapped-go.mustache @@ -1,14 +1,8 @@ package module - -{{#methods.length}} -import ( - {{#env}} - "github.com/consideritdone/polywrap-go/polywrap" - {{/env}} - methods "{{goImport}}/module" -) -{{/methods.length}} - +{{#makeImports}} + {{#methods}}{{#env}}github.com/consideritdone/polywrap-go/polywrap,. {{goImport}}/wrap/types,{{/env}}{{/methods}} + {{goImport}}/module as methods, +{{/makeImports}} {{#methods}} func {{#toUpper}}{{name}}{{/toUpper}}Wrapped(argsBuf []byte, envSize uint32) []byte { {{#env}} @@ -25,11 +19,13 @@ func {{#toUpper}}{{name}}{{/toUpper}}Wrapped(argsBuf []byte, envSize uint32) []b {{/env}} {{#arguments.length}} - args := deserialize{{#toUpper}}{{name}}{{/toUpper}}Args(argsBuf) + args := Deserialize{{#toUpper}}{{name}}{{/toUpper}}Args(argsBuf) {{/arguments.length}} - result := methods.{{#toUpper}}{{name}}{{/toUpper}}({{#arguments.length}}args{{/arguments.length}}{{^arguments.length}}nil{{/arguments.length}}{{#env}}, env{{/env}}) + result := methods.{{#toUpper}}{{name}}{{/toUpper}}({{#arguments.length}}args{{#env}},{{/env}}{{/arguments.length}}{{#env}}env{{/env}}) return Serialize{{#toUpper}}{{name}}{{/toUpper}}Result(result) } +{{^last}} -{{/methods}} +{{/last}} +{{/methods}} \ No newline at end of file diff --git a/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/types/%type%Args-go.mustache b/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/types/%type%Args-go.mustache index 6beabd9e0e..cfcdeba108 100644 --- a/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/types/%type%Args-go.mustache +++ b/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/types/%type%Args-go.mustache @@ -1,14 +1,24 @@ package types - - +{{#makeImports}} + {{#importedTypes}} + . {{goImport}}/wrap/imported/{{#pkgName}}{{#toSnakeCase}}{{namespace}}{{/toSnakeCase}}{{/pkgName}}, + {{/importedTypes}} + {{#methods}} + {{#arguments}} + {{#toWasm}}{{toGraphQLType}}{{/toWasm}}, + {{/arguments}} + {{/methods}} +{{/makeImports}} {{#methods}} -type Args{{#toUpper}}{{name}}{{/toUpper}} struct { +{{#arguments.length}} +type MethodArgs{{#toUpper}}{{name}}{{/toUpper}} struct { {{#stuctProps}} {{#arguments}} {{#toUpper}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toUpper}} {{#toWasm}}{{toGraphQLType}}{{/toWasm}} {{/arguments}} {{/stuctProps}} } +{{/arguments.length}} {{^last}} {{/last}} diff --git a/packages/schema/bind/src/bindings/golang/wasm/templates/object-type/Object%type%-go.mustache b/packages/schema/bind/src/bindings/golang/wasm/templates/object-type/Object%type%-go.mustache index b17610926a..ad2d15cd14 100644 --- a/packages/schema/bind/src/bindings/golang/wasm/templates/object-type/Object%type%-go.mustache +++ b/packages/schema/bind/src/bindings/golang/wasm/templates/object-type/Object%type%-go.mustache @@ -1,7 +1,10 @@ package types - -{{#makeImports}}{{#properties}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{^last}},{{/last}}{{/properties}}{{/makeImports}} - +{{#makeImports}} + github.com/consideritdone/polywrap-go/polywrap/msgpack, + {{#properties}} + {{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{^last}},{{/last}} + {{/properties}} +{{/makeImports}} type {{#toUpper}}{{type}}{{/toUpper}} struct { {{#stuctProps}} {{#properties}} diff --git a/packages/schema/bind/src/bindings/golang/wasm/templates/object-type/Object%type%Serialization-go.mustache b/packages/schema/bind/src/bindings/golang/wasm/templates/object-type/Object%type%Serialization-go.mustache index 93bec1a7d4..f5964d5008 100644 --- a/packages/schema/bind/src/bindings/golang/wasm/templates/object-type/Object%type%Serialization-go.mustache +++ b/packages/schema/bind/src/bindings/golang/wasm/templates/object-type/Object%type%Serialization-go.mustache @@ -1,7 +1,10 @@ package types - -{{#makeImports}}{{#properties}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{^last}},{{/last}}{{/properties}}{{/makeImports}} - +{{#makeImports}} + github.com/consideritdone/polywrap-go/polywrap/msgpack, + {{#properties}} + {{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{^last}},{{/last}} + {{/properties}} +{{/makeImports}} func serialize{{#toUpper}}{{type}}{{/toUpper}}(value *{{#toUpper}}{{type}}{{/toUpper}}) []byte { ctx := msgpack.NewContext("Serializing (encoding) env-type: {{#toUpper}}{{type}}{{/toUpper}}") encoder := msgpack.NewWriteEncoder(ctx) diff --git a/packages/schema/bind/src/bindings/golang/wasm/templates/value_serialize_object.mustache b/packages/schema/bind/src/bindings/golang/wasm/templates/value_serialize_object.mustache index b01650869d..3b6ae4d7c6 100644 --- a/packages/schema/bind/src/bindings/golang/wasm/templates/value_serialize_object.mustache +++ b/packages/schema/bind/src/bindings/golang/wasm/templates/value_serialize_object.mustache @@ -1,9 +1,9 @@ { v := value{{#lastFullIter}}i{{/lastFullIter}} {{#required}} - types.{{#toUpper}}{{type}}{{/toUpper}}Write(writer, &v) + {{#toUpper}}{{type}}{{/toUpper}}Write(writer, &v) {{/required}} {{^required}} - types.{{#toUpper}}{{type}}{{/toUpper}}Write(writer, v) + {{#toUpper}}{{type}}{{/toUpper}}Write(writer, v) {{/required}} } diff --git a/packages/test-cases/cases/bind/sanity/output/wasm-go/imported/test_import/test_import__module_wrapped.go b/packages/test-cases/cases/bind/sanity/output/wasm-go/imported/test_import/test_import__module_wrapped.go index 9273cd4e30..4a46374cc5 100644 --- a/packages/test-cases/cases/bind/sanity/output/wasm-go/imported/test_import/test_import__module_wrapped.go +++ b/packages/test-cases/cases/bind/sanity/output/wasm-go/imported/test_import/test_import__module_wrapped.go @@ -6,18 +6,28 @@ import ( func MethodImportedMethod(uri string, args *ArgsImportedMethod) (*TestImport_Object, error) { argsBuf := SerializeImportedMethodArgs(args) - data, err := polywrap.WrapSubinvokeImplementation("testimport.uri.eth", uri, "importedMethod", argsBuf) - if err != nil { - return nil, err + var ( + err error + raw []byte + data *TestImport_Object + ) + raw, err = polywrap.WrapSubinvokeImplementation("testimport.uri.eth", uri, "importedMethod", argsBuf) + if err == nil { + data = DeserializeImportedMethodResult(raw) } - return DeserializeImportedMethodResult(data), nil + return data, err } func MethodAnotherMethod(uri string, args *ArgsAnotherMethod) (int32, error) { argsBuf := SerializeAnotherMethodArgs(args) - data, err := polywrap.WrapSubinvokeImplementation("testimport.uri.eth", uri, "anotherMethod", argsBuf) - if err != nil { - return nil, err + var ( + err error + raw []byte + data int32 + ) + raw, err = polywrap.WrapSubinvokeImplementation("testimport.uri.eth", uri, "anotherMethod", argsBuf) + if err == nil { + data = DeserializeAnotherMethodResult(raw) } - return DeserializeAnotherMethodResult(data), nil + return data, err } diff --git a/packages/test-cases/cases/bind/sanity/output/wasm-go/module/module_serialization.go b/packages/test-cases/cases/bind/sanity/output/wasm-go/module/module_serialization.go index b076f507c3..2bc6f24e14 100644 --- a/packages/test-cases/cases/bind/sanity/output/wasm-go/module/module_serialization.go +++ b/packages/test-cases/cases/bind/sanity/output/wasm-go/module/module_serialization.go @@ -1,11 +1,11 @@ package module import ( + . "github.com/testorg/testrepo/wrap/types" "github.com/consideritdone/polywrap-go/polywrap/msgpack" - "github.com/testorg/testrepo/wrap/types" ) -func DeserializeModuleMethodArgs(argsBuf []byte) *types.ArgsModuleMethod { +func DeserializeModuleMethodArgs(argsBuf []byte) *MethodArgsModuleMethod { ctx := msgpack.NewContext("Deserializing module-type: ModuleMethod") reader := msgpack.NewReadDecoder(ctx, argsBuf) @@ -32,27 +32,26 @@ func DeserializeModuleMethodArgs(argsBuf []byte) *types.ArgsModuleMethod { for i := int32(reader.ReadMapLength()); i > 0; i-- { field := reader.ReadString() reader.Context().Push(field, "unknown", "searching for property type") - reader.Context().Pop() switch field { - case "Str": + case "str": reader.Context().Push(field, "string", "type found, reading property") _str = reader.ReadString() _strSet = true reader.Context().Pop() - case "OptStr": + case "optStr": reader.Context().Push(field, "*string", "type found, reading property") if !reader.IsNil() { v := reader.ReadString() _optStr = &v } reader.Context().Pop() - case "En": + case "en": reader.Context().Push(field, "CustomEnum", "type found, reading property") _en = CustomEnum(reader.ReadI32()) SanitizeCustomEnumValue(int32(_en)) _enSet = true reader.Context().Pop() - case "OptEnum": + case "optEnum": reader.Context().Push(field, "*CustomEnum", "type found, reading property") if !reader.IsNil() { v := CustomEnum(reader.ReadI32()) @@ -60,7 +59,7 @@ func DeserializeModuleMethodArgs(argsBuf []byte) *types.ArgsModuleMethod { _optEnum = &v } reader.Context().Pop() - case "EnumArray": + case "enumArray": reader.Context().Push(field, "[]CustomEnum", "type found, reading property") if reader.IsNil() { _enumArray = nil @@ -74,7 +73,7 @@ func DeserializeModuleMethodArgs(argsBuf []byte) *types.ArgsModuleMethod { } _enumArraySet = true reader.Context().Pop() - case "OptEnumArray": + case "optEnumArray": reader.Context().Push(field, "[]*CustomEnum", "type found, reading property") if reader.IsNil() { _optEnumArray = nil @@ -90,7 +89,7 @@ func DeserializeModuleMethodArgs(argsBuf []byte) *types.ArgsModuleMethod { } } reader.Context().Pop() - case "Map": + case "m_map": reader.Context().Push(field, "map[string]int32", "type found, reading property") if reader.IsNil() { _map = nil @@ -104,7 +103,7 @@ func DeserializeModuleMethodArgs(argsBuf []byte) *types.ArgsModuleMethod { } _mapSet = true reader.Context().Pop() - case "MapOfArr": + case "mapOfArr": reader.Context().Push(field, "map[string][]int32", "type found, reading property") if reader.IsNil() { _mapOfArr = nil @@ -126,7 +125,7 @@ func DeserializeModuleMethodArgs(argsBuf []byte) *types.ArgsModuleMethod { } _mapOfArrSet = true reader.Context().Pop() - case "MapOfObj": + case "mapOfObj": reader.Context().Push(field, "map[string]AnotherType", "type found, reading property") if reader.IsNil() { _mapOfObj = nil @@ -142,7 +141,7 @@ func DeserializeModuleMethodArgs(argsBuf []byte) *types.ArgsModuleMethod { } _mapOfObjSet = true reader.Context().Pop() - case "MapOfArrOfObj": + case "mapOfArrOfObj": reader.Context().Push(field, "map[string][]AnotherType", "type found, reading property") if reader.IsNil() { _mapOfArrOfObj = nil @@ -167,6 +166,7 @@ func DeserializeModuleMethodArgs(argsBuf []byte) *types.ArgsModuleMethod { _mapOfArrOfObjSet = true reader.Context().Pop() } + reader.Context().Pop() } if !_strSet { @@ -191,14 +191,14 @@ func DeserializeModuleMethodArgs(argsBuf []byte) *types.ArgsModuleMethod { panic(reader.Context().PrintWithContext("Missing required property: 'mapOfArrOfObj: Map'")) } - return &types.ArgsModuleMethod{ + return &MethodArgsModuleMethod{ Str: _str, OptStr: _optStr, En: _en, OptEnum: _optEnum, EnumArray: _enumArray, OptEnumArray: _optEnumArray, - Map: _map, + M_map: _map, MapOfArr: _mapOfArr, MapOfObj: _mapOfObj, MapOfArrOfObj: _mapOfArrOfObj, @@ -221,7 +221,7 @@ func WriteModuleMethodResult(writer msgpack.Write, value int32) { writer.Context().Pop() } -func DeserializeObjectMethodArgs(argsBuf []byte) *types.ArgsObjectMethod { +func DeserializeObjectMethodArgs(argsBuf []byte) *MethodArgsObjectMethod { ctx := msgpack.NewContext("Deserializing module-type: ObjectMethod") reader := msgpack.NewReadDecoder(ctx, argsBuf) @@ -237,22 +237,21 @@ func DeserializeObjectMethodArgs(argsBuf []byte) *types.ArgsObjectMethod { for i := int32(reader.ReadMapLength()); i > 0; i-- { field := reader.ReadString() reader.Context().Push(field, "unknown", "searching for property type") - reader.Context().Pop() switch field { - case "Object": + case "object": reader.Context().Push(field, "AnotherType", "type found, reading property") if v := AnotherTypeRead(reader); v != nil { _object = *v } _objectSet = true reader.Context().Pop() - case "OptObject": + case "optObject": reader.Context().Push(field, "*AnotherType", "type found, reading property") if v := AnotherTypeRead(reader); v != nil { _optObject = v } reader.Context().Pop() - case "ObjectArray": + case "objectArray": reader.Context().Push(field, "[]AnotherType", "type found, reading property") if reader.IsNil() { _objectArray = nil @@ -267,7 +266,7 @@ func DeserializeObjectMethodArgs(argsBuf []byte) *types.ArgsObjectMethod { } _objectArraySet = true reader.Context().Pop() - case "OptObjectArray": + case "optObjectArray": reader.Context().Push(field, "[]*AnotherType", "type found, reading property") if reader.IsNil() { _optObjectArray = nil @@ -282,6 +281,7 @@ func DeserializeObjectMethodArgs(argsBuf []byte) *types.ArgsObjectMethod { } reader.Context().Pop() } + reader.Context().Pop() } if !_objectSet { @@ -291,7 +291,7 @@ func DeserializeObjectMethodArgs(argsBuf []byte) *types.ArgsObjectMethod { panic(reader.Context().PrintWithContext("Missing required property: 'objectArray: [AnotherType]'")) } - return &types.ArgsObjectMethod{ + return &MethodArgsObjectMethod{ Object: _object, OptObject: _optObject, ObjectArray: _objectArray, @@ -299,23 +299,23 @@ func DeserializeObjectMethodArgs(argsBuf []byte) *types.ArgsObjectMethod { } } -func SerializeObjectMethodResult(value *types.AnotherType) []byte { +func SerializeObjectMethodResult(value *AnotherType) []byte { ctx := msgpack.NewContext("Serializing module-type: ObjectMethod") encoder := msgpack.NewWriteEncoder(ctx) WriteObjectMethodResult(encoder, value); return encoder.Buffer() } -func WriteObjectMethodResult(writer msgpack.Write, value *types.AnotherType) { +func WriteObjectMethodResult(writer msgpack.Write, value *AnotherType) { writer.Context().Push("objectMethod", "*AnotherType", "writing property") { v := value - types.AnotherTypeWrite(writer, v) + AnotherTypeWrite(writer, v) } writer.Context().Pop() } -func DeserializeOptionalEnvMethodArgs(argsBuf []byte) *types.ArgsOptionalEnvMethod { +func DeserializeOptionalEnvMethodArgs(argsBuf []byte) *MethodArgsOptionalEnvMethod { ctx := msgpack.NewContext("Deserializing module-type: OptionalEnvMethod") reader := msgpack.NewReadDecoder(ctx, argsBuf) @@ -331,22 +331,21 @@ func DeserializeOptionalEnvMethodArgs(argsBuf []byte) *types.ArgsOptionalEnvMeth for i := int32(reader.ReadMapLength()); i > 0; i-- { field := reader.ReadString() reader.Context().Push(field, "unknown", "searching for property type") - reader.Context().Pop() switch field { - case "Object": + case "object": reader.Context().Push(field, "AnotherType", "type found, reading property") if v := AnotherTypeRead(reader); v != nil { _object = *v } _objectSet = true reader.Context().Pop() - case "OptObject": + case "optObject": reader.Context().Push(field, "*AnotherType", "type found, reading property") if v := AnotherTypeRead(reader); v != nil { _optObject = v } reader.Context().Pop() - case "ObjectArray": + case "objectArray": reader.Context().Push(field, "[]AnotherType", "type found, reading property") if reader.IsNil() { _objectArray = nil @@ -361,7 +360,7 @@ func DeserializeOptionalEnvMethodArgs(argsBuf []byte) *types.ArgsOptionalEnvMeth } _objectArraySet = true reader.Context().Pop() - case "OptObjectArray": + case "optObjectArray": reader.Context().Push(field, "[]*AnotherType", "type found, reading property") if reader.IsNil() { _optObjectArray = nil @@ -376,6 +375,7 @@ func DeserializeOptionalEnvMethodArgs(argsBuf []byte) *types.ArgsOptionalEnvMeth } reader.Context().Pop() } + reader.Context().Pop() } if !_objectSet { @@ -385,7 +385,7 @@ func DeserializeOptionalEnvMethodArgs(argsBuf []byte) *types.ArgsOptionalEnvMeth panic(reader.Context().PrintWithContext("Missing required property: 'objectArray: [AnotherType]'")) } - return &types.ArgsOptionalEnvMethod{ + return &MethodArgsOptionalEnvMethod{ Object: _object, OptObject: _optObject, ObjectArray: _objectArray, @@ -393,23 +393,23 @@ func DeserializeOptionalEnvMethodArgs(argsBuf []byte) *types.ArgsOptionalEnvMeth } } -func SerializeOptionalEnvMethodResult(value *types.AnotherType) []byte { +func SerializeOptionalEnvMethodResult(value *AnotherType) []byte { ctx := msgpack.NewContext("Serializing module-type: OptionalEnvMethod") encoder := msgpack.NewWriteEncoder(ctx) WriteOptionalEnvMethodResult(encoder, value); return encoder.Buffer() } -func WriteOptionalEnvMethodResult(writer msgpack.Write, value *types.AnotherType) { +func WriteOptionalEnvMethodResult(writer msgpack.Write, value *AnotherType) { writer.Context().Push("optionalEnvMethod", "*AnotherType", "writing property") { v := value - types.AnotherTypeWrite(writer, v) + AnotherTypeWrite(writer, v) } writer.Context().Pop() } -func DeserializeIfArgs(argsBuf []byte) *types.ArgsIf { +func DeserializeIfArgs(argsBuf []byte) *MethodArgsIf { ctx := msgpack.NewContext("Deserializing module-type: If") reader := msgpack.NewReadDecoder(ctx, argsBuf) @@ -421,9 +421,8 @@ func DeserializeIfArgs(argsBuf []byte) *types.ArgsIf { for i := int32(reader.ReadMapLength()); i > 0; i-- { field := reader.ReadString() reader.Context().Push(field, "unknown", "searching for property type") - reader.Context().Pop() switch field { - case "M_if": + case "m_if": reader.Context().Push(field, "Else", "type found, reading property") if v := ElseRead(reader); v != nil { _if = *v @@ -431,29 +430,30 @@ func DeserializeIfArgs(argsBuf []byte) *types.ArgsIf { _ifSet = true reader.Context().Pop() } + reader.Context().Pop() } if !_ifSet { panic(reader.Context().PrintWithContext("Missing required property: 'if: else'")) } - return &types.ArgsIf{ + return &MethodArgsIf{ M_if: _if, } } -func SerializeIfResult(value types.Else) []byte { +func SerializeIfResult(value Else) []byte { ctx := msgpack.NewContext("Serializing module-type: If") encoder := msgpack.NewWriteEncoder(ctx) WriteIfResult(encoder, value); return encoder.Buffer() } -func WriteIfResult(writer msgpack.Write, value types.Else) { +func WriteIfResult(writer msgpack.Write, value Else) { writer.Context().Push("if", "Else", "writing property") { v := value - types.ElseWrite(writer, &v) + ElseWrite(writer, &v) } writer.Context().Pop() } diff --git a/packages/test-cases/cases/bind/sanity/output/wasm-go/module/module_wrapped.go b/packages/test-cases/cases/bind/sanity/output/wasm-go/module/module_wrapped.go index 3e003cad4b..286449f746 100644 --- a/packages/test-cases/cases/bind/sanity/output/wasm-go/module/module_wrapped.go +++ b/packages/test-cases/cases/bind/sanity/output/wasm-go/module/module_wrapped.go @@ -1,8 +1,9 @@ package module import ( + . "github.com/testorg/testrepo/wrap/types" "github.com/consideritdone/polywrap-go/polywrap" - methods "github.com/testorg/testrepo" + methods "github.com/testorg/testrepo/module" ) func ModuleMethodWrapped(argsBuf []byte, envSize uint32) []byte { @@ -25,7 +26,7 @@ func ObjectMethodWrapped(argsBuf []byte, envSize uint32) []byte { args := DeserializeObjectMethodArgs(argsBuf) - result := methods.ObjectMethod(args, env) + result := methods.ObjectMethod(args,env) return SerializeObjectMethodResult(result) } @@ -38,7 +39,7 @@ func OptionalEnvMethodWrapped(argsBuf []byte, envSize uint32) []byte { args := DeserializeOptionalEnvMethodArgs(argsBuf) - result := methods.OptionalEnvMethod(args, env) + result := methods.OptionalEnvMethod(args,env) return SerializeOptionalEnvMethodResult(result) } @@ -49,4 +50,3 @@ func IfWrapped(argsBuf []byte, envSize uint32) []byte { result := methods.If(args) return SerializeIfResult(result) } - diff --git a/packages/test-cases/cases/bind/sanity/output/wasm-go/types/module_args.go b/packages/test-cases/cases/bind/sanity/output/wasm-go/types/module_args.go index fba2f3ead7..2ec6424513 100644 --- a/packages/test-cases/cases/bind/sanity/output/wasm-go/types/module_args.go +++ b/packages/test-cases/cases/bind/sanity/output/wasm-go/types/module_args.go @@ -1,36 +1,32 @@ package types -import ( - "github.com/consideritdone/polywrap-go/polywrap/msgpack" -) - -type ArgsModuleMethod struct { +type MethodArgsModuleMethod struct { Str string OptStr *string En CustomEnum OptEnum *CustomEnum EnumArray []CustomEnum OptEnumArray []*CustomEnum - Map map[string]int32 + M_map map[string]int32 MapOfArr map[string][]int32 MapOfObj map[string]AnotherType MapOfArrOfObj map[string][]AnotherType } -type ArgsObjectMethod struct { +type MethodArgsObjectMethod struct { Object AnotherType OptObject *AnotherType ObjectArray []AnotherType OptObjectArray []*AnotherType } -type ArgsOptionalEnvMethod struct { +type MethodArgsOptionalEnvMethod struct { Object AnotherType OptObject *AnotherType ObjectArray []AnotherType OptObjectArray []*AnotherType } -type ArgsIf struct { +type MethodArgsIf struct { M_if Else } diff --git a/packages/test-cases/cases/bind/sanity/output/wasm-go/types/object_custom_type.go b/packages/test-cases/cases/bind/sanity/output/wasm-go/types/object_custom_type.go index 129eedcb94..ae268082e8 100644 --- a/packages/test-cases/cases/bind/sanity/output/wasm-go/types/object_custom_type.go +++ b/packages/test-cases/cases/bind/sanity/output/wasm-go/types/object_custom_type.go @@ -44,7 +44,7 @@ type CustomType struct { OptEnum *CustomEnum EnumArray []CustomEnum OptEnumArray []*CustomEnum - Map map[string]int32 + M_map map[string]int32 MapOfArr map[string][]int32 MapOfObj map[string]AnotherType MapOfArrOfObj map[string][]AnotherType diff --git a/packages/test-cases/cases/bind/sanity/output/wasm-go/types/object_custom_type_serialization.go b/packages/test-cases/cases/bind/sanity/output/wasm-go/types/object_custom_type_serialization.go index 743b468443..67a836ae91 100644 --- a/packages/test-cases/cases/bind/sanity/output/wasm-go/types/object_custom_type_serialization.go +++ b/packages/test-cases/cases/bind/sanity/output/wasm-go/types/object_custom_type_serialization.go @@ -474,17 +474,17 @@ func writeCustomType(writer msgpack.Write, value *CustomType) { } } writer.Context().Pop() - writer.Context().Push("Map", "map[string]int32", "writing property") - writer.WriteString("Map") - if value.Map == nil { + writer.Context().Push("M_map", "map[string]int32", "writing property") + writer.WriteString("M_map") + if value.M_map == nil { writer.WriteNil() - } else if len(value.Map) == 0 { + } else if len(value.M_map) == 0 { writer.WriteNil() } else { - for i0 := range value.Map { + for i0 := range value.M_map { writer.WriteString(i0) { - v := value.Map[i0] + v := value.M_map[i0] writer.WriteI32(v) } } @@ -1025,7 +1025,7 @@ func readCustomType(reader msgpack.Read) *CustomType { } } reader.Context().Pop() - case "Map": + case "M_map": reader.Context().Push(field, "map[string]int32", "type found, reading property") if reader.IsNil() { _map = nil @@ -1240,7 +1240,7 @@ func readCustomType(reader msgpack.Read) *CustomType { OptEnum: _optEnum, EnumArray: _enumArray, OptEnumArray: _optEnumArray, - Map: _map, + M_map: _map, MapOfArr: _mapOfArr, MapOfObj: _mapOfObj, MapOfArrOfObj: _mapOfArrOfObj,