From c50c4d79a180ac5b20e552be0b546a59be6e6b57 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Sat, 15 Jul 2023 13:44:39 +0800 Subject: [PATCH 01/14] wip: import fix --- .../src/bindings/golang/transforms/index.ts | 1 + .../transforms/moduleNeedsImportedTypes.ts | 74 +++++++++++++++++++ .../bind/src/bindings/golang/wasm/index.ts | 1 + .../%type%Serialization-go.mustache | 6 +- 4 files changed, 79 insertions(+), 3 deletions(-) create mode 100644 packages/schema/bind/src/bindings/golang/transforms/moduleNeedsImportedTypes.ts diff --git a/packages/schema/bind/src/bindings/golang/transforms/index.ts b/packages/schema/bind/src/bindings/golang/transforms/index.ts index 7533ca018..c1d98bed8 100644 --- a/packages/schema/bind/src/bindings/golang/transforms/index.ts +++ b/packages/schema/bind/src/bindings/golang/transforms/index.ts @@ -1 +1,2 @@ export * from "./moduleNeedsTypes"; +export * from "./moduleNeedsImportedTypes"; diff --git a/packages/schema/bind/src/bindings/golang/transforms/moduleNeedsImportedTypes.ts b/packages/schema/bind/src/bindings/golang/transforms/moduleNeedsImportedTypes.ts new file mode 100644 index 000000000..76972aabe --- /dev/null +++ b/packages/schema/bind/src/bindings/golang/transforms/moduleNeedsImportedTypes.ts @@ -0,0 +1,74 @@ +/* eslint-disable @typescript-eslint/naming-convention */ +import { + ImportedEnumDefinition, + ImportedEnvDefinition, + ImportedModuleDefinition, + ImportedObjectDefinition, + MethodDefinition, + ModuleDefinition, +} from "@polywrap/wrap-manifest-types-js"; +import { AbiTransforms } from "@polywrap/schema-parse"; + +interface ModuleNeedsTypesState { + needsImportedNamespaces: Set; + importedTypes: Map; +} + +export function moduleNeedsImportedTypes(): AbiTransforms { + const state: ModuleNeedsTypesState = { + importedTypes: new Map(), + needsImportedNamespaces: new Set(), + }; + + return { + enter: { + ImportedEnumDefinition: (def: ImportedEnumDefinition) => { + state.importedTypes.set(def.type, def.namespace); + return def; + }, + ImportedEnvDefinition: (def: ImportedEnvDefinition) => { + state.importedTypes.set(def.type, def.namespace); + return def; + }, + ImportedModuleDefinition: (def: ImportedModuleDefinition) => { + state.importedTypes.set(def.type, def.namespace); + return def; + }, + ImportedObjectDefinition: (def: ImportedObjectDefinition) => { + state.importedTypes.set(def.type, def.namespace); + return def; + }, + MethodDefinition: (def: MethodDefinition) => { + if (def.arguments && def.arguments.length > 0) { + for (const arg of def.arguments) { + const argType = arg.type; + const importNamespace = state.importedTypes.get(argType); + if (importNamespace) { + state.needsImportedNamespaces.add(importNamespace); + } + } + } + + if (def.return) { + const returnType = def.return.type; + const importNamespace = state.importedTypes.get(returnType); + if (importNamespace) { + state.needsImportedNamespaces.add(importNamespace); + } + } + return def; + }, + }, + leave: { + ModuleDefinition: (def: ModuleDefinition) => { + const needsImportedNamespaces = state.needsImportedNamespaces; + state.needsImportedNamespaces = new Set(); + state.importedTypes = new Map(); + return { + ...def, + needsImportedNamespaces, + }; + }, + }, + }; +} diff --git a/packages/schema/bind/src/bindings/golang/wasm/index.ts b/packages/schema/bind/src/bindings/golang/wasm/index.ts index c6a5e8994..eda507632 100644 --- a/packages/schema/bind/src/bindings/golang/wasm/index.ts +++ b/packages/schema/bind/src/bindings/golang/wasm/index.ts @@ -272,6 +272,7 @@ function applyTransforms(abi: Abi): Abi { addFirstLast, toPrefixedGraphQLType, Transforms.moduleNeedsTypes(), + Transforms.moduleNeedsImportedTypes(), ]; for (const transform of transforms) { diff --git a/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/module_wrapped/%type%Serialization-go.mustache b/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/module_wrapped/%type%Serialization-go.mustache index 9f6defac5..01f436ee0 100644 --- a/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/module_wrapped/%type%Serialization-go.mustache +++ b/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/module_wrapped/%type%Serialization-go.mustache @@ -4,9 +4,9 @@ package module_wrapped {{#needsTypes}} . {{goImport}}/module/wrap/types, {{/needsTypes}} - {{#importedTypes}} - . {{goImport}}/module/wrap/imported/{{#pkgName}}{{#toSnakeCase}}{{namespace}}{{/toSnakeCase}}{{/pkgName}}, - {{/importedTypes}} + {{#needsImportedTypes}} + . {{goImport}}/module/wrap/imported/{{#pkgName}}{{#toSnakeCase}}{{.}}{{/toSnakeCase}}{{/pkgName}}, + {{/needsImportedTypes}} {{#methods}} {{#return}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{/return}}, {{/methods}} From f03f4b27a0f0347286d56d0b2c26cd332cd5c748 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Sun, 16 Jul 2023 22:12:38 +0800 Subject: [PATCH 02/14] fix: needed imported bindings in golang --- .../transforms/moduleNeedsImportedTypes.ts | 87 +++++++++++++++---- .../bind/src/bindings/golang/wasm/index.ts | 4 +- .../%type%Serialization-go.mustache | 4 +- 3 files changed, 76 insertions(+), 19 deletions(-) diff --git a/packages/schema/bind/src/bindings/golang/transforms/moduleNeedsImportedTypes.ts b/packages/schema/bind/src/bindings/golang/transforms/moduleNeedsImportedTypes.ts index 76972aabe..05b6d37d6 100644 --- a/packages/schema/bind/src/bindings/golang/transforms/moduleNeedsImportedTypes.ts +++ b/packages/schema/bind/src/bindings/golang/transforms/moduleNeedsImportedTypes.ts @@ -1,5 +1,6 @@ /* eslint-disable @typescript-eslint/naming-convention */ import { + Abi, ImportedEnumDefinition, ImportedEnvDefinition, ImportedModuleDefinition, @@ -9,61 +10,115 @@ import { } from "@polywrap/wrap-manifest-types-js"; import { AbiTransforms } from "@polywrap/schema-parse"; -interface ModuleNeedsTypesState { - needsImportedNamespaces: Set; +interface ImportedTypesState { importedTypes: Map; } -export function moduleNeedsImportedTypes(): AbiTransforms { - const state: ModuleNeedsTypesState = { +interface ModuleNeedsImportedTypesState extends ImportedTypesState { + needsImportedNamespaces: Set; +} + +export function extractImportedTypes(): AbiTransforms { + const state: ImportedTypesState = { importedTypes: new Map(), - needsImportedNamespaces: new Set(), }; return { enter: { ImportedEnumDefinition: (def: ImportedEnumDefinition) => { - state.importedTypes.set(def.type, def.namespace); + state.importedTypes = state.importedTypes.set(def.type, def.namespace); return def; }, ImportedEnvDefinition: (def: ImportedEnvDefinition) => { - state.importedTypes.set(def.type, def.namespace); + state.importedTypes = state.importedTypes.set(def.type, def.namespace); return def; }, ImportedModuleDefinition: (def: ImportedModuleDefinition) => { - state.importedTypes.set(def.type, def.namespace); + state.importedTypes = state.importedTypes.set(def.type, def.namespace); return def; }, ImportedObjectDefinition: (def: ImportedObjectDefinition) => { - state.importedTypes.set(def.type, def.namespace); + state.importedTypes = state.importedTypes.set(def.type, def.namespace); return def; }, + }, + leave: { + Abi(abi: Abi) { + return { + ...abi, + _importedTypes: state.importedTypes, + }; + }, + }, + }; +} + +export function extractNeededImportedNamespaces(): AbiTransforms { + const state: ModuleNeedsImportedTypesState = { + importedTypes: new Map(), + needsImportedNamespaces: new Set(), + }; + + return { + enter: { + Abi: (abi: Abi) => { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + state.importedTypes = abi._importedTypes; + return abi; + }, MethodDefinition: (def: MethodDefinition) => { if (def.arguments && def.arguments.length > 0) { for (const arg of def.arguments) { const argType = arg.type; - const importNamespace = state.importedTypes.get(argType); + const importNamespace = state.importedTypes?.get(argType); if (importNamespace) { - state.needsImportedNamespaces.add(importNamespace); + state.needsImportedNamespaces?.add(importNamespace); } } } if (def.return) { const returnType = def.return.type; - const importNamespace = state.importedTypes.get(returnType); + const importNamespace = state.importedTypes?.get(returnType); if (importNamespace) { - state.needsImportedNamespaces.add(importNamespace); + state.needsImportedNamespaces?.add(importNamespace); } } return def; }, }, + leave: { + Abi: (abi: Abi) => { + return { + ...abi, + _needsImportedNamespaces: state.needsImportedNamespaces, + }; + }, + }, + }; +} + +export function needsImportedNamespaces(): AbiTransforms { + const state: ModuleNeedsImportedTypesState = { + importedTypes: new Map(), + needsImportedNamespaces: new Set(), + }; + + return { + enter: { + Abi: (abi: Abi) => { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + state.needsImportedNamespaces = abi._needsImportedNamespaces; + return abi; + }, + }, leave: { ModuleDefinition: (def: ModuleDefinition) => { - const needsImportedNamespaces = state.needsImportedNamespaces; - state.needsImportedNamespaces = new Set(); - state.importedTypes = new Map(); + const needsImportedNamespaces = Array.from( + state.needsImportedNamespaces + ); return { ...def, needsImportedNamespaces, diff --git a/packages/schema/bind/src/bindings/golang/wasm/index.ts b/packages/schema/bind/src/bindings/golang/wasm/index.ts index eda507632..27033fb91 100644 --- a/packages/schema/bind/src/bindings/golang/wasm/index.ts +++ b/packages/schema/bind/src/bindings/golang/wasm/index.ts @@ -272,7 +272,9 @@ function applyTransforms(abi: Abi): Abi { addFirstLast, toPrefixedGraphQLType, Transforms.moduleNeedsTypes(), - Transforms.moduleNeedsImportedTypes(), + Transforms.extractImportedTypes(), + Transforms.extractNeededImportedNamespaces(), + Transforms.needsImportedNamespaces(), ]; for (const transform of transforms) { diff --git a/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/module_wrapped/%type%Serialization-go.mustache b/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/module_wrapped/%type%Serialization-go.mustache index 01f436ee0..57d8c176e 100644 --- a/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/module_wrapped/%type%Serialization-go.mustache +++ b/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/module_wrapped/%type%Serialization-go.mustache @@ -4,9 +4,9 @@ package module_wrapped {{#needsTypes}} . {{goImport}}/module/wrap/types, {{/needsTypes}} - {{#needsImportedTypes}} + {{#needsImportedNamespaces}} . {{goImport}}/module/wrap/imported/{{#pkgName}}{{#toSnakeCase}}{{.}}{{/toSnakeCase}}{{/pkgName}}, - {{/needsImportedTypes}} + {{/needsImportedNamespaces}} {{#methods}} {{#return}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{/return}}, {{/methods}} From 288f47fc2153b8ee1e3900a43b32dda4bea0cc98 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Mon, 17 Jul 2023 21:21:26 +0800 Subject: [PATCH 03/14] fix: add namespace for imported args --- .../imported/module-type/%type%Serialization-go.mustache | 6 +++--- .../imported/module-type/%type%Wrapped-go.mustache | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) 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 24e8033ed..5a0ded815 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 @@ -6,7 +6,7 @@ package {{#pkgName}}{{#toSnakeCase}}{{namespace}}{{/toSnakeCase}}{{/pkgName}} {{/arguments}} {{/makeImports}} {{#methods}} -type Args{{#toUpper}}{{name}}{{/toUpper}} struct { +type {{#toUpper}}{{namespace}}{{/toUpper}}_Args{{#toUpper}}{{name}}{{/toUpper}} struct { {{#stuctProps}} {{#arguments}} {{#toUpper}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toUpper}} {{#toWasm}}{{toGraphQLType}}{{/toWasm}} `json:"{{name}}"` @@ -14,14 +14,14 @@ type Args{{#toUpper}}{{name}}{{/toUpper}} struct { {{/stuctProps}} } -func Serialize{{#toUpper}}{{name}}{{/toUpper}}Args(value *Args{{#toUpper}}{{name}}{{/toUpper}}) []byte { +func Serialize{{#toUpper}}{{name}}{{/toUpper}}Args(value *{{#toUpper}}{{namespace}}{{/toUpper}}_Args{{#toUpper}}{{name}}{{/toUpper}}) []byte { ctx := msgpack.NewContext("Serializing module-type: {{#toUpper}}{{name}}{{/toUpper}}") encoder := msgpack.NewWriteEncoder(ctx) Write{{#toUpper}}{{name}}{{/toUpper}}Args(encoder, value) return encoder.Buffer() } -func Write{{#toUpper}}{{name}}{{/toUpper}}Args(writer msgpack.Write, value *Args{{#toUpper}}{{name}}{{/toUpper}}) { +func Write{{#toUpper}}{{name}}{{/toUpper}}Args(writer msgpack.Write, value *{{#toUpper}}{{namespace}}{{/toUpper}}_Args{{#toUpper}}{{name}}{{/toUpper}}) { {{#arguments.length}} writer.WriteMapLength({{arguments.length}}) {{/arguments.length}} 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 72c3adf3c..6096e114a 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 @@ -8,7 +8,7 @@ import ( {{^isInterface}} {{#methods}} -func {{#toUpper}}{{name}}{{/toUpper}}(args *Args{{#toUpper}}{{name}}{{/toUpper}}) ({{#return}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{/return}}, error) { +func {{#toUpper}}{{name}}{{/toUpper}}(args *{{#toUpper}}{{namespace}}{{/toUpper}}_Args{{#toUpper}}{{name}}{{/toUpper}}) ({{#return}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{/return}}, error) { argsBuf := Serialize{{#toUpper}}{{name}}{{/toUpper}}Args(args) var ( err error @@ -28,7 +28,7 @@ func {{#toUpper}}{{name}}{{/toUpper}}(args *Args{{#toUpper}}{{name}}{{/toUpper}} {{/isInterface}} {{#isInterface}} {{#methods}} -func {{#toUpper}}{{name}}{{/toUpper}}(uri string, args *Args{{#toUpper}}{{name}}{{/toUpper}}) ({{#return}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{/return}}, error) { +func {{#toUpper}}{{name}}{{/toUpper}}(uri string, args *{{#toUpper}}{{namespace}}{{/toUpper}}_Args{{#toUpper}}{{name}}{{/toUpper}}) ({{#return}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{/return}}, error) { argsBuf := Serialize{{#toUpper}}{{name}}{{/toUpper}}Args(args) var ( err error From c1debbe9d6b030fde8155d2d6c38dbfc0553b915 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Mon, 17 Jul 2023 23:18:30 +0800 Subject: [PATCH 04/14] fix: issues --- .../module-type/%type%Serialization-go.mustache | 8 ++++---- .../imported/module-type/%type%Wrapped-go.mustache | 10 +++++----- .../wasm/templates/interface-type/%type%-go.mustache | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) 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 5a0ded815..f3487aee8 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 @@ -14,14 +14,14 @@ type {{#toUpper}}{{namespace}}{{/toUpper}}_Args{{#toUpper}}{{name}}{{/toUpper}} {{/stuctProps}} } -func Serialize{{#toUpper}}{{name}}{{/toUpper}}Args(value *{{#toUpper}}{{namespace}}{{/toUpper}}_Args{{#toUpper}}{{name}}{{/toUpper}}) []byte { +func Serialize{{#toUpper}}{{namespace}}{{/toUpper}}_{{#toUpper}}{{name}}{{/toUpper}}Args(value *{{#toUpper}}{{namespace}}{{/toUpper}}_Args{{#toUpper}}{{name}}{{/toUpper}}) []byte { ctx := msgpack.NewContext("Serializing module-type: {{#toUpper}}{{name}}{{/toUpper}}") encoder := msgpack.NewWriteEncoder(ctx) - Write{{#toUpper}}{{name}}{{/toUpper}}Args(encoder, value) + Write{{#toUpper}}{{namespace}}{{/toUpper}}_{{#toUpper}}{{name}}{{/toUpper}}Args(encoder, value) return encoder.Buffer() } -func Write{{#toUpper}}{{name}}{{/toUpper}}Args(writer msgpack.Write, value *{{#toUpper}}{{namespace}}{{/toUpper}}_Args{{#toUpper}}{{name}}{{/toUpper}}) { +func Write{{#toUpper}}{{namespace}}{{/toUpper}}_{{#toUpper}}{{name}}{{/toUpper}}Args(writer msgpack.Write, value *{{#toUpper}}{{namespace}}{{/toUpper}}_Args{{#toUpper}}{{name}}{{/toUpper}}) { {{#arguments.length}} writer.WriteMapLength({{arguments.length}}) {{/arguments.length}} @@ -54,7 +54,7 @@ func Write{{#toUpper}}{{name}}{{/toUpper}}Args(writer msgpack.Write, value *{{#t {{/arguments}} } -func Deserialize{{#toUpper}}{{name}}{{/toUpper}}Result(argsBuf []byte) {{#return}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{/return}} { +func Deserialize{{#toUpper}}{{namespace}}{{/toUpper}}_{{#toUpper}}{{name}}{{/toUpper}}Result(argsBuf []byte) {{#return}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{/return}} { ctx := msgpack.NewContext("Deserializing module-type: {{#toUpper}}{{name}}{{/toUpper}}") reader := msgpack.NewReadDecoder(ctx, argsBuf) 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 6096e114a..40da8e701 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 @@ -8,8 +8,8 @@ import ( {{^isInterface}} {{#methods}} -func {{#toUpper}}{{name}}{{/toUpper}}(args *{{#toUpper}}{{namespace}}{{/toUpper}}_Args{{#toUpper}}{{name}}{{/toUpper}}) ({{#return}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{/return}}, error) { - argsBuf := Serialize{{#toUpper}}{{name}}{{/toUpper}}Args(args) +func {{#toUpper}}{{namespace}}{{/toUpper}}_{{#toUpper}}{{name}}{{/toUpper}}(args *{{#toUpper}}{{namespace}}{{/toUpper}}_Args{{#toUpper}}{{name}}{{/toUpper}}) ({{#return}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{/return}}, error) { + argsBuf := Serialize{{#toUpper}}{{namespace}}{{/toUpper}}_{{#toUpper}}{{name}}{{/toUpper}}Args(args) var ( err error raw []byte @@ -17,7 +17,7 @@ func {{#toUpper}}{{name}}{{/toUpper}}(args *{{#toUpper}}{{namespace}}{{/toUpper} ) raw, err = wrap.WrapSubinvoke("{{uri}}", "{{name}}", argsBuf) if err == nil { - data = Deserialize{{#toUpper}}{{name}}{{/toUpper}}Result(raw) + data = Deserialize{{#toUpper}}{{namespace}}{{/toUpper}}_{{#toUpper}}{{name}}{{/toUpper}}Result(raw) } return data, err } @@ -29,7 +29,7 @@ func {{#toUpper}}{{name}}{{/toUpper}}(args *{{#toUpper}}{{namespace}}{{/toUpper} {{#isInterface}} {{#methods}} func {{#toUpper}}{{name}}{{/toUpper}}(uri string, args *{{#toUpper}}{{namespace}}{{/toUpper}}_Args{{#toUpper}}{{name}}{{/toUpper}}) ({{#return}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{/return}}, error) { - argsBuf := Serialize{{#toUpper}}{{name}}{{/toUpper}}Args(args) + argsBuf := Serialize{{#toUpper}}{{namespace}}{{/toUpper}}_{{#toUpper}}{{name}}{{/toUpper}}Args(args) var ( err error raw []byte @@ -37,7 +37,7 @@ func {{#toUpper}}{{name}}{{/toUpper}}(uri string, args *{{#toUpper}}{{namespace} ) raw, err = wrap.WrapSubinvokeImplementation("{{uri}}", uri, "{{name}}", argsBuf) if err == nil { - data = Deserialize{{#toUpper}}{{name}}{{/toUpper}}Result(raw) + data = Deserialize{{#toUpper}}{{namespace}}{{/toUpper}}_{{#toUpper}}{{name}}{{/toUpper}}Result(raw) } return data, err } diff --git a/packages/schema/bind/src/bindings/golang/wasm/templates/interface-type/%type%-go.mustache b/packages/schema/bind/src/bindings/golang/wasm/templates/interface-type/%type%-go.mustache index a3fa1c1a6..953c66a21 100644 --- a/packages/schema/bind/src/bindings/golang/wasm/templates/interface-type/%type%-go.mustache +++ b/packages/schema/bind/src/bindings/golang/wasm/templates/interface-type/%type%-go.mustache @@ -11,7 +11,7 @@ import "github.com/polywrap/go-wrap/wrap" {{#capabilities}} {{#getImplementations}} {{#enabled}} -func {{#toUpper}}{{namespace}}{{/toUpper}}Implementations() []string { +func {{#toUpper}}{{namespace}}{{/toUpper}}_GetImplementations() []string { return wrap.WrapGetImplementations("{{uri}}") } {{/enabled}} From 717b7a925101a71810f46a1401f5e095af09459e Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Mon, 17 Jul 2023 23:50:35 +0800 Subject: [PATCH 05/14] wip: issues --- .../bind/sanity/output/plugin-rs/module.rs | 32 +++++++---- .../bind/sanity/output/plugin-rs/types.rs | 38 +++++++++---- .../test_import__module_serialization.go | 12 ++--- .../output/wrap-go/interfaces/test_import.go | 2 +- .../module_wrapped/module_serialization.go | 1 + yarn.lock | 53 +++++++++++++++---- 6 files changed, 101 insertions(+), 37 deletions(-) diff --git a/packages/test-cases/cases/bind/sanity/output/plugin-rs/module.rs b/packages/test-cases/cases/bind/sanity/output/plugin-rs/module.rs index db0deb793..451457af4 100644 --- a/packages/test-cases/cases/bind/sanity/output/plugin-rs/module.rs +++ b/packages/test-cases/cases/bind/sanity/output/plugin-rs/module.rs @@ -2,8 +2,20 @@ /// All modifications will be overwritten. use std::sync::Arc; -use polywrap_core::invoke::Invoker; +use polywrap_core::invoker::Invoker; use polywrap_plugin::{error::PluginError, module::PluginModule}; +use polywrap_msgpack::{ + to_vec, + from_slice, + BigInt, + BigNumber, + JSON, + bytes, + wrappers::{ + polywrap_bigint as bigint, + polywrap_json as json + } +}; use serde::{Serialize, Deserialize}; use super::types::*; @@ -19,15 +31,15 @@ pub struct ArgsModuleMethod { pub enum_array: Vec, #[serde(rename = "optEnumArray")] pub opt_enum_array: Option>>, - pub map: Map, - #[serde(rename = "mapOfArr")] - pub map_of_arr: Map>, - #[serde(rename = "mapOfMap")] - pub map_of_map: Map>, - #[serde(rename = "mapOfObj")] - pub map_of_obj: Map, - #[serde(rename = "mapOfArrOfObj")] - pub map_of_arr_of_obj: Map>, + pub BTreeMap: BTreeMap, + #[serde(rename = "BTreeMapOfArr")] + pub BTreeMap_of_arr: BTreeMap>, + #[serde(rename = "BTreeMapOfBTreeMap")] + pub BTreeMap_of_BTreeMap: BTreeMap>, + #[serde(rename = "BTreeMapOfObj")] + pub BTreeMap_of_obj: BTreeMap, + #[serde(rename = "BTreeMapOfArrOfObj")] + pub BTreeMap_of_arr_of_obj: BTreeMap>, } #[derive(Clone, Debug, Deserialize, Serialize)] diff --git a/packages/test-cases/cases/bind/sanity/output/plugin-rs/types.rs b/packages/test-cases/cases/bind/sanity/output/plugin-rs/types.rs index fe3c18556..bb1f21c25 100644 --- a/packages/test-cases/cases/bind/sanity/output/plugin-rs/types.rs +++ b/packages/test-cases/cases/bind/sanity/output/plugin-rs/types.rs @@ -3,9 +3,21 @@ // NOTE: This is an auto-generated file. // All modifications will be overwritten. -use polywrap_core::{invoke::Invoker, uri::Uri}; -use polywrap_msgpack::{decode, serialize}; -use polywrap_plugin::{error::PluginError, BigInt, BigNumber, Map, JSON}; +use polywrap_core::{invoker::Invoker, uri::Uri}; +use polywrap_plugin::error::PluginError; +use polywrap_msgpack::{ + to_vec, + from_slice, + BigInt, + BigNumber, + JSON, + bytes, + wrappers::{ + polywrap_bigint as bigint, + polywrap_json as json + } +}; +use std::collections::BTreeMap; use serde::{Serialize, Deserialize}; use std::sync::Arc; @@ -17,7 +29,7 @@ pub struct Env { #[serde(rename = "optProp")] pub opt_prop: Option, #[serde(rename = "optMap")] - pub opt_map: Option>>, + pub opt_map: Option>>, } // Env END // @@ -38,18 +50,22 @@ pub struct CustomType { pub i8: i8, pub i16: i16, pub i32: i32, + #[serde(with = "bigint")] pub bigint: BigInt, + #[serde(with = "bigint")] #[serde(rename = "optBigint")] pub opt_bigint: Option, pub bignumber: BigNumber, #[serde(rename = "optBignumber")] pub opt_bignumber: Option, + #[serde(with = "json")] pub json: JSON::Value, + #[serde(with = "json")] #[serde(rename = "optJson")] pub opt_json: Option, - #[serde(with = "serde_bytes")] + #[serde(with = "bytes")] pub bytes: Vec, - #[serde(with = "serde_bytes")] + #[serde(with = "bytes")] #[serde(rename = "optBytes")] pub opt_bytes: Option>, pub boolean: bool, @@ -84,15 +100,15 @@ pub struct CustomType { pub enum_array: Vec, #[serde(rename = "optEnumArray")] pub opt_enum_array: Option>>, - pub map: Map, + pub map: BTreeMap, #[serde(rename = "mapOfArr")] - pub map_of_arr: Map>, + pub map_of_arr: BTreeMap>, #[serde(rename = "mapOfObj")] - pub map_of_obj: Map, + pub map_of_obj: BTreeMap, #[serde(rename = "mapOfArrOfObj")] - pub map_of_arr_of_obj: Map>, + pub map_of_arr_of_obj: BTreeMap>, #[serde(rename = "mapCustomValue")] - pub map_custom_value: Map>, + pub map_custom_value: BTreeMap>, } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct AnotherType { diff --git a/packages/test-cases/cases/bind/sanity/output/wrap-go/imported/test_import/test_import__module_serialization.go b/packages/test-cases/cases/bind/sanity/output/wrap-go/imported/test_import/test_import__module_serialization.go index 461da72df..e8f3ecbe1 100644 --- a/packages/test-cases/cases/bind/sanity/output/wrap-go/imported/test_import/test_import__module_serialization.go +++ b/packages/test-cases/cases/bind/sanity/output/wrap-go/imported/test_import/test_import__module_serialization.go @@ -4,7 +4,7 @@ import ( "github.com/polywrap/go-wrap/msgpack" ) -type ArgsImportedMethod struct { +type TestImport_ArgsImportedMethod struct { Str string `json:"str"` OptStr *string `json:"optStr"` U uint32 `json:"u"` @@ -20,14 +20,14 @@ type ArgsImportedMethod struct { OptEnumArray []*TestImport_Enum `json:"optEnumArray"` } -func SerializeImportedMethodArgs(value *ArgsImportedMethod) []byte { +func SerializeImportedMethodArgs(value *TestImport_ArgsImportedMethod) []byte { ctx := msgpack.NewContext("Serializing module-type: ImportedMethod") encoder := msgpack.NewWriteEncoder(ctx) WriteImportedMethodArgs(encoder, value) return encoder.Buffer() } -func WriteImportedMethodArgs(writer msgpack.Write, value *ArgsImportedMethod) { +func WriteImportedMethodArgs(writer msgpack.Write, value *TestImport_ArgsImportedMethod) { writer.WriteMapLength(13) writer.Context().Push("str", "string", "writing property") writer.WriteString("str") @@ -209,18 +209,18 @@ func DeserializeImportedMethodResult(argsBuf []byte) *TestImport_Object { return value } -type ArgsAnotherMethod struct { +type TestImport_ArgsAnotherMethod struct { Arg []string `json:"arg"` } -func SerializeAnotherMethodArgs(value *ArgsAnotherMethod) []byte { +func SerializeAnotherMethodArgs(value *TestImport_ArgsAnotherMethod) []byte { ctx := msgpack.NewContext("Serializing module-type: AnotherMethod") encoder := msgpack.NewWriteEncoder(ctx) WriteAnotherMethodArgs(encoder, value) return encoder.Buffer() } -func WriteAnotherMethodArgs(writer msgpack.Write, value *ArgsAnotherMethod) { +func WriteAnotherMethodArgs(writer msgpack.Write, value *TestImport_ArgsAnotherMethod) { writer.WriteMapLength(1) writer.Context().Push("arg", "[]string", "writing property") writer.WriteString("arg") diff --git a/packages/test-cases/cases/bind/sanity/output/wrap-go/interfaces/test_import.go b/packages/test-cases/cases/bind/sanity/output/wrap-go/interfaces/test_import.go index 7ae06bfb2..a2ce917ff 100644 --- a/packages/test-cases/cases/bind/sanity/output/wrap-go/interfaces/test_import.go +++ b/packages/test-cases/cases/bind/sanity/output/wrap-go/interfaces/test_import.go @@ -2,6 +2,6 @@ package interfaces import "github.com/polywrap/go-wrap/wrap" -func TestImportImplementations() []string { +func TestImport_GetImplementations() []string { return wrap.WrapGetImplementations("testimport.uri.eth") } diff --git a/packages/test-cases/cases/bind/sanity/output/wrap-go/module_wrapped/module_serialization.go b/packages/test-cases/cases/bind/sanity/output/wrap-go/module_wrapped/module_serialization.go index 346056af8..77627d724 100644 --- a/packages/test-cases/cases/bind/sanity/output/wrap-go/module_wrapped/module_serialization.go +++ b/packages/test-cases/cases/bind/sanity/output/wrap-go/module_wrapped/module_serialization.go @@ -1,6 +1,7 @@ package module_wrapped import ( + . "github.com/testorg/testrepo/module/wrap/imported/test_import" . "github.com/testorg/testrepo/module/wrap/types" "github.com/polywrap/go-wrap/msgpack" ) diff --git a/yarn.lock b/yarn.lock index 2415cf732..23fd59664 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3232,6 +3232,18 @@ array.prototype.reduce@^1.0.5: es-array-method-boxes-properly "^1.0.0" is-string "^1.0.7" +arraybuffer.prototype.slice@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz#9b5ea3868a6eebc30273da577eb888381c0044bb" + integrity sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.2.0" + get-intrinsic "^1.2.1" + is-array-buffer "^3.0.2" + is-shared-array-buffer "^1.0.2" + arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" @@ -3661,9 +3673,9 @@ camelcase@^6.0.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001503: - version "1.0.30001515" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz#418aefeed9d024cd3129bfae0ccc782d4cb8f12b" - integrity sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA== + version "1.0.30001516" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001516.tgz#621b1be7d85a8843ee7d210fd9d87b52e3daab3a" + integrity sha512-Wmec9pCBY8CWbmI4HsjBeQLqDTqV91nFVR83DnZpYyRnPI1wePDsTg0bGLPC5VU/3OIZV1fmxEea1b+tFKe86g== capture-exit@^2.0.0: version "2.0.0" @@ -4438,9 +4450,9 @@ ecc-jsbn@~0.1.1: safer-buffer "^2.1.0" electron-to-chromium@^1.4.431: - version "1.4.460" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.460.tgz#f360a5059c039c4a5fb4dfa99680ad8129dd9f84" - integrity sha512-kKiHnbrHME7z8E6AYaw0ehyxY5+hdaRmeUbjBO22LZMdqTYCO29EvF0T1cQ3pJ1RN5fyMcHl1Lmcsdt9WWJpJQ== + version "1.4.461" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.461.tgz#6b14af66042732bf883ab63a4d82cac8f35eb252" + integrity sha512-1JkvV2sgEGTDXjdsaQCeSwYYuhLRphRpc+g6EHTFELJXEiznLt3/0pZ9JuAOQ5p2rI3YxKTbivtvajirIfhrEQ== elliptic@6.5.4: version "6.5.4" @@ -4514,11 +4526,12 @@ error-ex@^1.2.0, error-ex@^1.3.1: is-arrayish "^0.2.1" es-abstract@^1.19.0, es-abstract@^1.20.4, es-abstract@^1.21.2: - version "1.21.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.3.tgz#8aaa0ffc080e8a6fef6ace72631dc1ec5d47bf94" - integrity sha512-ZU4miiY1j3sGPFLJ34VJXEqhpmL+HGByCinGHv4HC+Fxl2fI2Z4yR6tl0mORnDr6PA8eihWo4LmSWDbvhALckg== + version "1.22.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.1.tgz#8b4e5fc5cefd7f1660f0f8e1a52900dfbc9d9ccc" + integrity sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw== dependencies: array-buffer-byte-length "^1.0.0" + arraybuffer.prototype.slice "^1.0.1" available-typed-arrays "^1.0.5" call-bind "^1.0.2" es-set-tostringtag "^2.0.1" @@ -4545,10 +4558,13 @@ es-abstract@^1.19.0, es-abstract@^1.20.4, es-abstract@^1.21.2: object-keys "^1.1.1" object.assign "^4.1.4" regexp.prototype.flags "^1.5.0" + safe-array-concat "^1.0.0" safe-regex-test "^1.0.0" string.prototype.trim "^1.2.7" string.prototype.trimend "^1.0.6" string.prototype.trimstart "^1.0.6" + typed-array-buffer "^1.0.0" + typed-array-byte-length "^1.0.0" typed-array-byte-offset "^1.0.0" typed-array-length "^1.0.4" unbox-primitive "^1.0.2" @@ -9732,6 +9748,25 @@ type@^2.7.2: resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== +typed-array-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" + integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-typed-array "^1.1.10" + +typed-array-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" + integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + typed-array-byte-offset@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" From 794cdabbe09075a950aeaca90c61750383ffe7b4 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Tue, 18 Jul 2023 18:52:49 +0800 Subject: [PATCH 06/14] wip: fixes --- .../addNamespaceToImportedMethods.ts | 20 ++++++++++++++ .../src/bindings/golang/transforms/index.ts | 1 + .../module-type/%type%Wrapped-go.mustache | 2 +- .../bind/sanity/output/plugin-rs/module.rs | 21 ++++++++------- .../bind/sanity/output/plugin-rs/types.rs | 14 +++++----- .../test_import__module_serialization.go | 26 +++++++++---------- .../test_import__module_wrapped.go | 18 ++++++------- 7 files changed, 62 insertions(+), 40 deletions(-) create mode 100644 packages/schema/bind/src/bindings/golang/transforms/addNamespaceToImportedMethods.ts diff --git a/packages/schema/bind/src/bindings/golang/transforms/addNamespaceToImportedMethods.ts b/packages/schema/bind/src/bindings/golang/transforms/addNamespaceToImportedMethods.ts new file mode 100644 index 000000000..f4e0effe9 --- /dev/null +++ b/packages/schema/bind/src/bindings/golang/transforms/addNamespaceToImportedMethods.ts @@ -0,0 +1,20 @@ +/* eslint-disable @typescript-eslint/naming-convention */ +import { ImportedModuleDefinition } from "@polywrap/wrap-manifest-types-js"; +import { AbiTransforms } from "@polywrap/schema-parse"; + +export const addNamespaceToImportedMethods: AbiTransforms = { + enter: { + ImportedModuleDefinition: ( + def: ImportedModuleDefinition + ): ImportedModuleDefinition => { + const methods = def.methods?.map((method) => ({ + ...method, + namespace: def.namespace, + })); + return { + ...def, + methods, + }; + }, + }, +}; diff --git a/packages/schema/bind/src/bindings/golang/transforms/index.ts b/packages/schema/bind/src/bindings/golang/transforms/index.ts index c1d98bed8..e2ff48a13 100644 --- a/packages/schema/bind/src/bindings/golang/transforms/index.ts +++ b/packages/schema/bind/src/bindings/golang/transforms/index.ts @@ -1,2 +1,3 @@ export * from "./moduleNeedsTypes"; export * from "./moduleNeedsImportedTypes"; +export * from "./addNamespaceToImportedMethods"; 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 40da8e701..86c2153a7 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 @@ -28,7 +28,7 @@ func {{#toUpper}}{{namespace}}{{/toUpper}}_{{#toUpper}}{{name}}{{/toUpper}}(args {{/isInterface}} {{#isInterface}} {{#methods}} -func {{#toUpper}}{{name}}{{/toUpper}}(uri string, args *{{#toUpper}}{{namespace}}{{/toUpper}}_Args{{#toUpper}}{{name}}{{/toUpper}}) ({{#return}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{/return}}, error) { +func {{#toUpper}}{{namespace}}{{/toUpper}}_{{#toUpper}}{{name}}{{/toUpper}}(uri string, args *{{#toUpper}}{{namespace}}{{/toUpper}}_Args{{#toUpper}}{{name}}{{/toUpper}}) ({{#return}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{/return}}, error) { argsBuf := Serialize{{#toUpper}}{{namespace}}{{/toUpper}}_{{#toUpper}}{{name}}{{/toUpper}}Args(args) var ( err error diff --git a/packages/test-cases/cases/bind/sanity/output/plugin-rs/module.rs b/packages/test-cases/cases/bind/sanity/output/plugin-rs/module.rs index 451457af4..fc34f4f43 100644 --- a/packages/test-cases/cases/bind/sanity/output/plugin-rs/module.rs +++ b/packages/test-cases/cases/bind/sanity/output/plugin-rs/module.rs @@ -4,7 +4,7 @@ use std::sync::Arc; use polywrap_core::invoker::Invoker; use polywrap_plugin::{error::PluginError, module::PluginModule}; -use polywrap_msgpack::{ +use polywrap_msgpack_serde::{ to_vec, from_slice, BigInt, @@ -16,6 +16,7 @@ use polywrap_msgpack::{ polywrap_json as json } }; +use std::collections::BTreeMap; use serde::{Serialize, Deserialize}; use super::types::*; @@ -31,15 +32,15 @@ pub struct ArgsModuleMethod { pub enum_array: Vec, #[serde(rename = "optEnumArray")] pub opt_enum_array: Option>>, - pub BTreeMap: BTreeMap, - #[serde(rename = "BTreeMapOfArr")] - pub BTreeMap_of_arr: BTreeMap>, - #[serde(rename = "BTreeMapOfBTreeMap")] - pub BTreeMap_of_BTreeMap: BTreeMap>, - #[serde(rename = "BTreeMapOfObj")] - pub BTreeMap_of_obj: BTreeMap, - #[serde(rename = "BTreeMapOfArrOfObj")] - pub BTreeMap_of_arr_of_obj: BTreeMap>, + pub map: BTreeMap, + #[serde(rename = "mapOfArr")] + pub map_of_arr: BTreeMap>, + #[serde(rename = "mapOfMap")] + pub map_of_map: BTreeMap>, + #[serde(rename = "mapOfObj")] + pub map_of_obj: BTreeMap, + #[serde(rename = "mapOfArrOfObj")] + pub map_of_arr_of_obj: BTreeMap>, } #[derive(Clone, Debug, Deserialize, Serialize)] diff --git a/packages/test-cases/cases/bind/sanity/output/plugin-rs/types.rs b/packages/test-cases/cases/bind/sanity/output/plugin-rs/types.rs index bb1f21c25..a673af695 100644 --- a/packages/test-cases/cases/bind/sanity/output/plugin-rs/types.rs +++ b/packages/test-cases/cases/bind/sanity/output/plugin-rs/types.rs @@ -5,7 +5,7 @@ // All modifications will be overwritten. use polywrap_core::{invoker::Invoker, uri::Uri}; use polywrap_plugin::error::PluginError; -use polywrap_msgpack::{ +use polywrap_msgpack_serde::{ to_vec, from_slice, BigInt, @@ -244,7 +244,7 @@ impl<'a> TestImportModule<'a> { pub fn imported_method(&self, args: &TestImportModuleArgsImportedMethod) -> Result, PluginError> { let uri = self.uri; - let serialized_args = serialize(args.clone()).unwrap(); + let serialized_args = to_vec(args.clone()).unwrap(); let result = invoker.invoke_raw( uri, "importedMethod", @@ -259,12 +259,12 @@ impl<'a> TestImportModule<'a> { exception: e.to_string(), })?; - Ok(Some(decode(result.as_slice())?)) + Ok(Some(from_slice(result.as_slice())?)) } pub fn another_method(&self, args: &TestImportModuleArgsAnotherMethod) -> Result { let uri = self.uri; - let serialized_args = serialize(args.clone()).unwrap(); + let serialized_args = to_vec(args.clone()).unwrap(); let result = invoker.invoke_raw( uri, "anotherMethod", @@ -279,12 +279,12 @@ impl<'a> TestImportModule<'a> { exception: e.to_string(), })?; - Ok(decode(result.as_slice())?) + Ok(from_slice(result.as_slice())?) } pub fn returns_array_of_enums(&self, args: &TestImportModuleArgsReturnsArrayOfEnums) -> Result>, PluginError> { let uri = self.uri; - let serialized_args = serialize(args.clone()).unwrap(); + let serialized_args = to_vec(args.clone()).unwrap(); let result = invoker.invoke_raw( uri, "returnsArrayOfEnums", @@ -299,7 +299,7 @@ impl<'a> TestImportModule<'a> { exception: e.to_string(), })?; - Ok(decode(result.as_slice())?) + Ok(from_slice(result.as_slice())?) } } // Imported Modules END // diff --git a/packages/test-cases/cases/bind/sanity/output/wrap-go/imported/test_import/test_import__module_serialization.go b/packages/test-cases/cases/bind/sanity/output/wrap-go/imported/test_import/test_import__module_serialization.go index e8f3ecbe1..661c0fc8d 100644 --- a/packages/test-cases/cases/bind/sanity/output/wrap-go/imported/test_import/test_import__module_serialization.go +++ b/packages/test-cases/cases/bind/sanity/output/wrap-go/imported/test_import/test_import__module_serialization.go @@ -20,14 +20,14 @@ type TestImport_ArgsImportedMethod struct { OptEnumArray []*TestImport_Enum `json:"optEnumArray"` } -func SerializeImportedMethodArgs(value *TestImport_ArgsImportedMethod) []byte { +func SerializeTestImport_ImportedMethodArgs(value *TestImport_ArgsImportedMethod) []byte { ctx := msgpack.NewContext("Serializing module-type: ImportedMethod") encoder := msgpack.NewWriteEncoder(ctx) - WriteImportedMethodArgs(encoder, value) + WriteTestImport_ImportedMethodArgs(encoder, value) return encoder.Buffer() } -func WriteImportedMethodArgs(writer msgpack.Write, value *TestImport_ArgsImportedMethod) { +func WriteTestImport_ImportedMethodArgs(writer msgpack.Write, value *TestImport_ArgsImportedMethod) { writer.WriteMapLength(13) writer.Context().Push("str", "string", "writing property") writer.WriteString("str") @@ -196,7 +196,7 @@ func WriteImportedMethodArgs(writer msgpack.Write, value *TestImport_ArgsImporte writer.Context().Pop() } -func DeserializeImportedMethodResult(argsBuf []byte) *TestImport_Object { +func DeserializeTestImport_ImportedMethodResult(argsBuf []byte) *TestImport_Object { ctx := msgpack.NewContext("Deserializing module-type: ImportedMethod") reader := msgpack.NewReadDecoder(ctx, argsBuf) @@ -213,14 +213,14 @@ type TestImport_ArgsAnotherMethod struct { Arg []string `json:"arg"` } -func SerializeAnotherMethodArgs(value *TestImport_ArgsAnotherMethod) []byte { +func SerializeTestImport_AnotherMethodArgs(value *TestImport_ArgsAnotherMethod) []byte { ctx := msgpack.NewContext("Serializing module-type: AnotherMethod") encoder := msgpack.NewWriteEncoder(ctx) - WriteAnotherMethodArgs(encoder, value) + WriteTestImport_AnotherMethodArgs(encoder, value) return encoder.Buffer() } -func WriteAnotherMethodArgs(writer msgpack.Write, value *TestImport_ArgsAnotherMethod) { +func WriteTestImport_AnotherMethodArgs(writer msgpack.Write, value *TestImport_ArgsAnotherMethod) { writer.WriteMapLength(1) writer.Context().Push("arg", "[]string", "writing property") writer.WriteString("arg") @@ -240,7 +240,7 @@ func WriteAnotherMethodArgs(writer msgpack.Write, value *TestImport_ArgsAnotherM writer.Context().Pop() } -func DeserializeAnotherMethodResult(argsBuf []byte) int32 { +func DeserializeTestImport_AnotherMethodResult(argsBuf []byte) int32 { ctx := msgpack.NewContext("Deserializing module-type: AnotherMethod") reader := msgpack.NewReadDecoder(ctx, argsBuf) @@ -251,18 +251,18 @@ func DeserializeAnotherMethodResult(argsBuf []byte) int32 { return value } -type ArgsReturnsArrayOfEnums struct { +type TestImport_ArgsReturnsArrayOfEnums struct { Arg string `json:"arg"` } -func SerializeReturnsArrayOfEnumsArgs(value *ArgsReturnsArrayOfEnums) []byte { +func SerializeTestImport_ReturnsArrayOfEnumsArgs(value *TestImport_ArgsReturnsArrayOfEnums) []byte { ctx := msgpack.NewContext("Serializing module-type: ReturnsArrayOfEnums") encoder := msgpack.NewWriteEncoder(ctx) - WriteReturnsArrayOfEnumsArgs(encoder, value) + WriteTestImport_ReturnsArrayOfEnumsArgs(encoder, value) return encoder.Buffer() } -func WriteReturnsArrayOfEnumsArgs(writer msgpack.Write, value *ArgsReturnsArrayOfEnums) { +func WriteTestImport_ReturnsArrayOfEnumsArgs(writer msgpack.Write, value *TestImport_ArgsReturnsArrayOfEnums) { writer.WriteMapLength(1) writer.Context().Push("arg", "string", "writing property") writer.WriteString("arg") @@ -273,7 +273,7 @@ func WriteReturnsArrayOfEnumsArgs(writer msgpack.Write, value *ArgsReturnsArrayO writer.Context().Pop() } -func DeserializeReturnsArrayOfEnumsResult(argsBuf []byte) []*TestImport_Enum_Return { +func DeserializeTestImport_ReturnsArrayOfEnumsResult(argsBuf []byte) []*TestImport_Enum_Return { ctx := msgpack.NewContext("Deserializing module-type: ReturnsArrayOfEnums") reader := msgpack.NewReadDecoder(ctx, argsBuf) diff --git a/packages/test-cases/cases/bind/sanity/output/wrap-go/imported/test_import/test_import__module_wrapped.go b/packages/test-cases/cases/bind/sanity/output/wrap-go/imported/test_import/test_import__module_wrapped.go index 54e30e516..2b97c088d 100644 --- a/packages/test-cases/cases/bind/sanity/output/wrap-go/imported/test_import/test_import__module_wrapped.go +++ b/packages/test-cases/cases/bind/sanity/output/wrap-go/imported/test_import/test_import__module_wrapped.go @@ -4,8 +4,8 @@ import ( "github.com/polywrap/go-wrap/wrap" ) -func ImportedMethod(uri string, args *ArgsImportedMethod) (*TestImport_Object, error) { - argsBuf := SerializeImportedMethodArgs(args) +func TestImport_ImportedMethod(uri string, args *TestImport_ArgsImportedMethod) (*TestImport_Object, error) { + argsBuf := SerializeTestImport_ImportedMethodArgs(args) var ( err error raw []byte @@ -13,13 +13,13 @@ func ImportedMethod(uri string, args *ArgsImportedMethod) (*TestImport_Object, e ) raw, err = wrap.WrapSubinvokeImplementation("testimport.uri.eth", uri, "importedMethod", argsBuf) if err == nil { - data = DeserializeImportedMethodResult(raw) + data = DeserializeTestImport_ImportedMethodResult(raw) } return data, err } -func AnotherMethod(uri string, args *ArgsAnotherMethod) (int32, error) { - argsBuf := SerializeAnotherMethodArgs(args) +func TestImport_AnotherMethod(uri string, args *TestImport_ArgsAnotherMethod) (int32, error) { + argsBuf := SerializeTestImport_AnotherMethodArgs(args) var ( err error raw []byte @@ -27,13 +27,13 @@ func AnotherMethod(uri string, args *ArgsAnotherMethod) (int32, error) { ) raw, err = wrap.WrapSubinvokeImplementation("testimport.uri.eth", uri, "anotherMethod", argsBuf) if err == nil { - data = DeserializeAnotherMethodResult(raw) + data = DeserializeTestImport_AnotherMethodResult(raw) } return data, err } -func ReturnsArrayOfEnums(uri string, args *ArgsReturnsArrayOfEnums) ([]*TestImport_Enum_Return, error) { - argsBuf := SerializeReturnsArrayOfEnumsArgs(args) +func TestImport_ReturnsArrayOfEnums(uri string, args *TestImport_ArgsReturnsArrayOfEnums) ([]*TestImport_Enum_Return, error) { + argsBuf := SerializeTestImport_ReturnsArrayOfEnumsArgs(args) var ( err error raw []byte @@ -41,7 +41,7 @@ func ReturnsArrayOfEnums(uri string, args *ArgsReturnsArrayOfEnums) ([]*TestImpo ) raw, err = wrap.WrapSubinvokeImplementation("testimport.uri.eth", uri, "returnsArrayOfEnums", argsBuf) if err == nil { - data = DeserializeReturnsArrayOfEnumsResult(raw) + data = DeserializeTestImport_ReturnsArrayOfEnumsResult(raw) } return data, err } From 9b3e17047cbbdbd5d1f13fda11c492f0f3f046d2 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Tue, 18 Jul 2023 18:53:27 +0800 Subject: [PATCH 07/14] remove unnecessary code --- .../addNamespaceToImportedMethods.ts | 20 ------------------- .../src/bindings/golang/transforms/index.ts | 1 - 2 files changed, 21 deletions(-) delete mode 100644 packages/schema/bind/src/bindings/golang/transforms/addNamespaceToImportedMethods.ts diff --git a/packages/schema/bind/src/bindings/golang/transforms/addNamespaceToImportedMethods.ts b/packages/schema/bind/src/bindings/golang/transforms/addNamespaceToImportedMethods.ts deleted file mode 100644 index f4e0effe9..000000000 --- a/packages/schema/bind/src/bindings/golang/transforms/addNamespaceToImportedMethods.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* eslint-disable @typescript-eslint/naming-convention */ -import { ImportedModuleDefinition } from "@polywrap/wrap-manifest-types-js"; -import { AbiTransforms } from "@polywrap/schema-parse"; - -export const addNamespaceToImportedMethods: AbiTransforms = { - enter: { - ImportedModuleDefinition: ( - def: ImportedModuleDefinition - ): ImportedModuleDefinition => { - const methods = def.methods?.map((method) => ({ - ...method, - namespace: def.namespace, - })); - return { - ...def, - methods, - }; - }, - }, -}; diff --git a/packages/schema/bind/src/bindings/golang/transforms/index.ts b/packages/schema/bind/src/bindings/golang/transforms/index.ts index e2ff48a13..c1d98bed8 100644 --- a/packages/schema/bind/src/bindings/golang/transforms/index.ts +++ b/packages/schema/bind/src/bindings/golang/transforms/index.ts @@ -1,3 +1,2 @@ export * from "./moduleNeedsTypes"; export * from "./moduleNeedsImportedTypes"; -export * from "./addNamespaceToImportedMethods"; From 3e300ee8ab3c45d9c8e8fe5584bee16a353963bf Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Tue, 18 Jul 2023 19:07:33 +0800 Subject: [PATCH 08/14] fix: add linked golang manifest for templates --- packages/templates/polywrap.wasm-golang-linked.yaml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 packages/templates/polywrap.wasm-golang-linked.yaml diff --git a/packages/templates/polywrap.wasm-golang-linked.yaml b/packages/templates/polywrap.wasm-golang-linked.yaml new file mode 100644 index 000000000..e5f597dbb --- /dev/null +++ b/packages/templates/polywrap.wasm-golang-linked.yaml @@ -0,0 +1,7 @@ +format: 0.3.0 +project: + name: template-wasm-go + type: wasm/golang +source: + module: ./go.mod + schema: ./polywrap.graphql From 0425f7e52b68947cbe7416929526f154ebd213db Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Tue, 18 Jul 2023 22:28:35 +0800 Subject: [PATCH 09/14] fix: binding issues --- .../Env%type%Serialization-go.mustache | 4 +- .../Env%type%Serialization-go.mustache | 4 +- .../Object%type%Serialization-go.mustache | 4 +- .../Object%type%Serialization-go.mustache | 4 +- .../polywrap.wasm-golang-linked.build.yaml | 4 + .../polywrap.wasm-golang-linked.yaml | 2 + .../wasm/golang/build-staging/module.wasm | Bin 0 -> 575977 bytes packages/templates/wasm/golang/build.py | 106 ++++++++++++++++++ packages/templates/wasm/golang/go.mod | 2 +- packages/templates/wasm/golang/go.sum | 4 + .../module/__tests__/e2e/integration.spec.ts | 2 + .../templates/wasm/golang/wasm-target.json | 27 +++++ 12 files changed, 154 insertions(+), 9 deletions(-) create mode 100644 packages/templates/polywrap.wasm-golang-linked.build.yaml create mode 100755 packages/templates/wasm/golang/build-staging/module.wasm create mode 100644 packages/templates/wasm/golang/build.py create mode 100644 packages/templates/wasm/golang/go.sum create mode 100644 packages/templates/wasm/golang/wasm-target.json 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 03f0b548f..780c629ec 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 @@ -12,8 +12,8 @@ func serialize{{#toUpper}}{{type}}{{/toUpper}}(value *{{#toUpper}}{{type}}{{/toU func write{{#toUpper}}{{type}}{{/toUpper}}(writer msgpack.Write, value *{{#toUpper}}{{type}}{{/toUpper}}) { writer.WriteMapLength({{properties.length}}) {{#properties}} - writer.Context().Push("{{#toUpper}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toUpper}}", "{{#toWasm}}{{toGraphQLType}}{{/toWasm}}", "writing property") - writer.WriteString("{{#toUpper}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toUpper}}") + writer.Context().Push("{{#toLower}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toLower}}", "{{#toWasm}}{{toGraphQLType}}{{/toWasm}}", "writing property") + writer.WriteString("{{#toLower}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toLower}}") {{#scalar}} {{> serialize_scalar}} {{/scalar}} 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 0b03fc04e..71bce7c03 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 @@ -15,8 +15,8 @@ func serialize{{#toUpper}}{{type}}{{/toUpper}}(value *{{#toUpper}}{{type}}{{/toU func write{{#toUpper}}{{type}}{{/toUpper}}(writer msgpack.Write, value *{{#toUpper}}{{type}}{{/toUpper}}) { writer.WriteMapLength({{properties.length}}) {{#properties}} - writer.Context().Push("{{#toUpper}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toUpper}}", "{{#toWasm}}{{toGraphQLType}}{{/toWasm}}", "writing property") - writer.WriteString("{{#toUpper}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toUpper}}") + writer.Context().Push("{{#toLower}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toLower}}", "{{#toWasm}}{{toGraphQLType}}{{/toWasm}}", "writing property") + writer.WriteString("{{#toLower}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toLower}}") {{#scalar}} {{> serialize_scalar}} {{/scalar}} 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 4620a8e95..38f4eb871 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 @@ -15,8 +15,8 @@ func serialize{{#toUpper}}{{type}}{{/toUpper}}(value *{{#toUpper}}{{type}}{{/toU func write{{#toUpper}}{{type}}{{/toUpper}}(writer msgpack.Write, value *{{#toUpper}}{{type}}{{/toUpper}}) { writer.WriteMapLength({{properties.length}}) {{#properties}} - writer.Context().Push("{{#toUpper}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toUpper}}", "{{#toWasm}}{{toGraphQLType}}{{/toWasm}}", "writing property") - writer.WriteString("{{#toUpper}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toUpper}}") + writer.Context().Push("{{#toLower}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toLower}}", "{{#toWasm}}{{toGraphQLType}}{{/toWasm}}", "writing property") + writer.WriteString("{{#toLower}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toLower}}") {{#scalar}} {{> serialize_scalar}} {{/scalar}} 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 b858842c7..fe97fbf0b 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 @@ -15,8 +15,8 @@ func serialize{{#toUpper}}{{type}}{{/toUpper}}(value *{{#toUpper}}{{type}}{{/toU func write{{#toUpper}}{{type}}{{/toUpper}}(writer msgpack.Write, value *{{#toUpper}}{{type}}{{/toUpper}}) { writer.WriteMapLength({{properties.length}}) {{#properties}} - writer.Context().Push("{{#toUpper}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toUpper}}", "{{#toWasm}}{{toGraphQLType}}{{/toWasm}}", "writing property") - writer.WriteString("{{#toUpper}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toUpper}}") + writer.Context().Push("{{#toLower}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toLower}}", "{{#toWasm}}{{toGraphQLType}}{{/toWasm}}", "writing property") + writer.WriteString("{{#toLower}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toLower}}") {{#scalar}} {{> serialize_scalar}} {{/scalar}} diff --git a/packages/templates/polywrap.wasm-golang-linked.build.yaml b/packages/templates/polywrap.wasm-golang-linked.build.yaml new file mode 100644 index 000000000..754488910 --- /dev/null +++ b/packages/templates/polywrap.wasm-golang-linked.build.yaml @@ -0,0 +1,4 @@ +format: 0.3.0 +strategies: + image: + name: template-wasm-go diff --git a/packages/templates/polywrap.wasm-golang-linked.yaml b/packages/templates/polywrap.wasm-golang-linked.yaml index e5f597dbb..014ae3dfc 100644 --- a/packages/templates/polywrap.wasm-golang-linked.yaml +++ b/packages/templates/polywrap.wasm-golang-linked.yaml @@ -5,3 +5,5 @@ project: source: module: ./go.mod schema: ./polywrap.graphql +extensions: + build: ./polywrap.wasm-golang-linked.build.yaml \ No newline at end of file diff --git a/packages/templates/wasm/golang/build-staging/module.wasm b/packages/templates/wasm/golang/build-staging/module.wasm new file mode 100755 index 0000000000000000000000000000000000000000..749b174e7e039ce5d609e1283190f9c77252a3bc GIT binary patch literal 575977 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 kAaZ}~ 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 arw>exjV>QAj+ZODk9n%*PhXCmjsFXtkky3% literal 0 HcmV?d00001 diff --git a/packages/templates/wasm/golang/build.py b/packages/templates/wasm/golang/build.py new file mode 100644 index 000000000..734db3603 --- /dev/null +++ b/packages/templates/wasm/golang/build.py @@ -0,0 +1,106 @@ +import os +import subprocess +import re + +ACCEPTED_IMPORTS = {'wrap', 'env'} + +def build_wam_module(): + # subprocess.run(["yarn", "build"]) # this fails + + # go mod tidy + subprocess.run(["go", "mod", "tidy"], check=True) + + # tinygo build -o main.wasm -target wasm-target ./module/wrap/main/main.go + subprocess.run(["tinygo", "build", "-o", "./build/wrap.wasm", "-target", "wasm-target.json", "./module/wrap/main/main.go"], check=True) + + return "./build/wrap.wasm" + +def convert_wasm_to_wat(wasm_file): + wat_file = wasm_file.replace('.wasm', '.wat') + subprocess.run(['wasm2wat', wasm_file, '-o', wat_file], check=True) + return wat_file + +def find_import_functions(wat_file): + import_functions = [] + + with open(wat_file, 'r') as f: + content = f.read() + + pattern = r'\(import\s+"([^"]+)"\s+"([^"]+)"' + matches = re.findall(pattern, content) + + for match in matches: + namespace = match[0] + if namespace == 'env' and match[1] != "memory": + import_functions.append(match[1]) + if namespace not in ACCEPTED_IMPORTS: + import_functions.append(match[1]) + + return import_functions + +def find_export_functions(wat_file): + export_functions = [] + + with open(wat_file, 'r') as f: + content = f.read() + + pattern = r'\(export\s+"([^"]+)"' + matches = re.findall(pattern, content) + + for match in matches: + export = match + if export.startswith('asyncify') or export.startswith('_wrap'): + continue + export_functions.append(export) + + return export_functions + +def snip_unwanted_imports(wasm_module_path , import_functions): + if len(import_functions) == 0: + return + subprocess.run(['wasm-snip', wasm_module_path, '-o', wasm_module_path, '-p', *import_functions], check=True) + +def snip_unwanted_exports(wasm_module_path, export_functions): + if len(export_functions) == 0: + return + subprocess.run(['wasm-snip', wasm_module_path, '-o', wasm_module_path, *export_functions], check=True) + +def optimize_wasm(wasm_module_path): + subprocess.run(['wasm-opt', "-Os", wasm_module_path, '-o', wasm_module_path], check=True) + +def main(): + print("Building wasm module...") + wasm_module_path = build_wam_module() + print("Wasm module built at: ", wasm_module_path) + + print("Converting wasm to wat...") + wat_file = convert_wasm_to_wat(wasm_module_path) + print("Wat file generated at: ", wat_file) + + print("Finding unwanted import functions...") + import_functions = find_import_functions(wat_file) + print("Found unwanted import functions: ", import_functions) + + print("Finding unwanted export functions...") + export_functions = find_export_functions(wat_file) + print("Found unwanted export functions: ", export_functions) + + print("Snipping unwanted import functions...") + snip_unwanted_imports(wasm_module_path, import_functions) + print("Snipped unwanted imports ", wasm_module_path) + + print("Snipping unwanted export functions...") + snip_unwanted_exports(wasm_module_path, export_functions) + print("Snipped unwanted exports: ", wasm_module_path) + + print("Optimizing wasm module...") + optimize_wasm(wasm_module_path) + print("Wasm module optimized: ", wasm_module_path) + + print("Removing wat file...") + os.remove(wat_file) + print("Wat file removed") + + +if __name__ == "__main__": + main() diff --git a/packages/templates/wasm/golang/go.mod b/packages/templates/wasm/golang/go.mod index 87625c864..7eee740fd 100644 --- a/packages/templates/wasm/golang/go.mod +++ b/packages/templates/wasm/golang/go.mod @@ -2,6 +2,6 @@ module example.com/template-wasm-go go 1.18 -require github.com/polywrap/go-wrap wrap-0.1 +require github.com/polywrap/go-wrap v0.0.0-20230712212127-6895977d63c2 require github.com/valyala/fastjson v1.6.3 // indirect diff --git a/packages/templates/wasm/golang/go.sum b/packages/templates/wasm/golang/go.sum new file mode 100644 index 000000000..8df2badd7 --- /dev/null +++ b/packages/templates/wasm/golang/go.sum @@ -0,0 +1,4 @@ +github.com/polywrap/go-wrap v0.0.0-20230712212127-6895977d63c2 h1:+O3G/996rX4SMlJNFA9AIjPSyrInzOEVb7PFOT96G9A= +github.com/polywrap/go-wrap v0.0.0-20230712212127-6895977d63c2/go.mod h1:rxqhIFKUzn/M46+zjnA1RHlCzLGQn2BiLWalezhLj/k= +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/templates/wasm/golang/module/__tests__/e2e/integration.spec.ts b/packages/templates/wasm/golang/module/__tests__/e2e/integration.spec.ts index 55913c174..623060d9f 100644 --- a/packages/templates/wasm/golang/module/__tests__/e2e/integration.spec.ts +++ b/packages/templates/wasm/golang/module/__tests__/e2e/integration.spec.ts @@ -24,6 +24,8 @@ describe("Template Wrapper End to End Tests", () => { args: { arg: expected } }); + console.log(result) + expect(result.ok).toBeTruthy(); if (!result.ok) return; expect(result.value.result).toEqual(expected); diff --git a/packages/templates/wasm/golang/wasm-target.json b/packages/templates/wasm/golang/wasm-target.json new file mode 100644 index 000000000..2e45a5599 --- /dev/null +++ b/packages/templates/wasm/golang/wasm-target.json @@ -0,0 +1,27 @@ +{ + "llvm-target": "wasm32-unknown-wasi", + "cpu": "generic", + "features": "+bulk-memory,+nontrapping-fptoint,+sign-ext", + "build-tags": ["tinygo.wasm", "wasi"], + "goos": "linux", + "goarch": "arm", + "linker": "wasm-ld", + "libc": "wasi-libc", + "scheduler": "asyncify", + "default-stack-size": 24576, + "cflags": [ + "-mbulk-memory", + "-mnontrapping-fptoint", + "-msign-ext" + ], + "ldflags": [ + "--stack-first", + "--no-demangle", + "--import-memory" + ], + "extra-files": [ + "src/runtime/asm_tinygowasm.S" + ], + "emulator": "wasmtime --mapdir=/tmp::{tmpDir} {}", + "wasm-abi": "generic" +} From 576299a03fb1374bb01f3d328786ed35b8562b7f Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Tue, 18 Jul 2023 22:31:40 +0800 Subject: [PATCH 10/14] fix: tests --- .../wasm/golang/module/__tests__/e2e/integration.spec.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/templates/wasm/golang/module/__tests__/e2e/integration.spec.ts b/packages/templates/wasm/golang/module/__tests__/e2e/integration.spec.ts index 623060d9f..55913c174 100644 --- a/packages/templates/wasm/golang/module/__tests__/e2e/integration.spec.ts +++ b/packages/templates/wasm/golang/module/__tests__/e2e/integration.spec.ts @@ -24,8 +24,6 @@ describe("Template Wrapper End to End Tests", () => { args: { arg: expected } }); - console.log(result) - expect(result.ok).toBeTruthy(); if (!result.ok) return; expect(result.value.result).toEqual(expected); From ebc07755c2af8d2b6e2e0dc12e714431c830347a Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Tue, 18 Jul 2023 23:45:18 +0800 Subject: [PATCH 11/14] fix: issues --- .../bindings/golang/transforms/moduleNeedsTypes.ts | 13 ++++++++++++- .../schema/bind/src/bindings/golang/wasm/index.ts | 2 +- .../module_wrapped/%type%Wrapped-go.mustache | 2 +- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/packages/schema/bind/src/bindings/golang/transforms/moduleNeedsTypes.ts b/packages/schema/bind/src/bindings/golang/transforms/moduleNeedsTypes.ts index 060a8f993..766010c8a 100644 --- a/packages/schema/bind/src/bindings/golang/transforms/moduleNeedsTypes.ts +++ b/packages/schema/bind/src/bindings/golang/transforms/moduleNeedsTypes.ts @@ -10,6 +10,7 @@ import { AbiTransforms } from "@polywrap/schema-parse"; interface ModuleNeedsTypesState { moduleDefinition?: ModuleDefinition; needsTypes?: boolean; + importedTypes?: Map; } export function moduleNeedsTypes(): AbiTransforms { @@ -17,6 +18,12 @@ export function moduleNeedsTypes(): AbiTransforms { return { enter: { + Abi: (abi) => { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + state.importedTypes = abi._importedTypes; + return abi; + }, ModuleDefinition: (def: ModuleDefinition) => { state.moduleDefinition = def; state.needsTypes = false; @@ -29,7 +36,11 @@ export function moduleNeedsTypes(): AbiTransforms { if (def.return) { const returnType = def.return.type; - if (!isBaseType(returnType) && !isBuiltInType(returnType)) { + if ( + !isBaseType(returnType) && + !isBuiltInType(returnType) && + !state.importedTypes?.has(returnType) + ) { state.needsTypes = true; } } diff --git a/packages/schema/bind/src/bindings/golang/wasm/index.ts b/packages/schema/bind/src/bindings/golang/wasm/index.ts index 27033fb91..4c3faf5a7 100644 --- a/packages/schema/bind/src/bindings/golang/wasm/index.ts +++ b/packages/schema/bind/src/bindings/golang/wasm/index.ts @@ -271,10 +271,10 @@ function applyTransforms(abi: Abi): Abi { extendType(Functions), addFirstLast, toPrefixedGraphQLType, - Transforms.moduleNeedsTypes(), Transforms.extractImportedTypes(), Transforms.extractNeededImportedNamespaces(), Transforms.needsImportedNamespaces(), + Transforms.moduleNeedsTypes(), ]; for (const transform of transforms) { diff --git a/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/module_wrapped/%type%Wrapped-go.mustache b/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/module_wrapped/%type%Wrapped-go.mustache index cd6794431..c4822d1d0 100644 --- a/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/module_wrapped/%type%Wrapped-go.mustache +++ b/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/module_wrapped/%type%Wrapped-go.mustache @@ -1,6 +1,6 @@ package module_wrapped {{#makeImports}} - {{#methods}}{{#env}}github.com/polywrap/go-wrap/wrap,{{#needsTypes}}. {{goImport}}/module/wrap/types,{{/needsTypes}}{{/env}}{{/methods}} + {{#methods}}{{#env}}github.com/polywrap/go-wrap/wrap,. {{goImport}}/module/wrap/types,{{/env}}{{^env}}{{#needsTypes}}. {{goImport}}/module/wrap/types,{{/needsTypes}}{{/env}}{{/methods}} {{goImport}}/module as methods, {{/makeImports}} {{#methods}} From f0311cafce747a7aec042ccd54470b88394e8e8e Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Wed, 19 Jul 2023 11:38:31 +0800 Subject: [PATCH 12/14] fix: issues --- .../Env%type%Serialization-go.mustache | 4 +- .../Env%type%Serialization-go.mustache | 4 +- .../Object%type%Serialization-go.mustache | 4 +- .../Object%type%Serialization-go.mustache | 4 +- packages/templates/wasm/golang/build.py | 106 ------------------ packages/templates/wasm/golang/go.mod | 2 +- .../templates/wasm/golang/wasm-target.json | 27 ----- 7 files changed, 9 insertions(+), 142 deletions(-) delete mode 100644 packages/templates/wasm/golang/build.py delete mode 100644 packages/templates/wasm/golang/wasm-target.json 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 780c629ec..d10f2f3c5 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 @@ -12,8 +12,8 @@ func serialize{{#toUpper}}{{type}}{{/toUpper}}(value *{{#toUpper}}{{type}}{{/toU func write{{#toUpper}}{{type}}{{/toUpper}}(writer msgpack.Write, value *{{#toUpper}}{{type}}{{/toUpper}}) { writer.WriteMapLength({{properties.length}}) {{#properties}} - writer.Context().Push("{{#toLower}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toLower}}", "{{#toWasm}}{{toGraphQLType}}{{/toWasm}}", "writing property") - writer.WriteString("{{#toLower}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toLower}}") + writer.Context().Push("{{#handleKeywords}}{{name}}{{/handleKeywords}}", "{{#toWasm}}{{toGraphQLType}}{{/toWasm}}", "writing property") + writer.WriteString("{{#handleKeywords}}{{name}}{{/handleKeywords}}") {{#scalar}} {{> serialize_scalar}} {{/scalar}} 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 71bce7c03..e05528ffa 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 @@ -15,8 +15,8 @@ func serialize{{#toUpper}}{{type}}{{/toUpper}}(value *{{#toUpper}}{{type}}{{/toU func write{{#toUpper}}{{type}}{{/toUpper}}(writer msgpack.Write, value *{{#toUpper}}{{type}}{{/toUpper}}) { writer.WriteMapLength({{properties.length}}) {{#properties}} - writer.Context().Push("{{#toLower}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toLower}}", "{{#toWasm}}{{toGraphQLType}}{{/toWasm}}", "writing property") - writer.WriteString("{{#toLower}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toLower}}") + writer.Context().Push("{{#handleKeywords}}{{name}}{{/handleKeywords}}", "{{#toWasm}}{{toGraphQLType}}{{/toWasm}}", "writing property") + writer.WriteString("{{#handleKeywords}}{{name}}{{/handleKeywords}}") {{#scalar}} {{> serialize_scalar}} {{/scalar}} 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 38f4eb871..c467df492 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 @@ -15,8 +15,8 @@ func serialize{{#toUpper}}{{type}}{{/toUpper}}(value *{{#toUpper}}{{type}}{{/toU func write{{#toUpper}}{{type}}{{/toUpper}}(writer msgpack.Write, value *{{#toUpper}}{{type}}{{/toUpper}}) { writer.WriteMapLength({{properties.length}}) {{#properties}} - writer.Context().Push("{{#toLower}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toLower}}", "{{#toWasm}}{{toGraphQLType}}{{/toWasm}}", "writing property") - writer.WriteString("{{#toLower}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toLower}}") + writer.Context().Push("{{#handleKeywords}}{{name}}{{/handleKeywords}}", "{{#toWasm}}{{toGraphQLType}}{{/toWasm}}", "writing property") + writer.WriteString("{{#handleKeywords}}{{name}}{{/handleKeywords}}") {{#scalar}} {{> serialize_scalar}} {{/scalar}} 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 fe97fbf0b..0aef83eee 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 @@ -15,8 +15,8 @@ func serialize{{#toUpper}}{{type}}{{/toUpper}}(value *{{#toUpper}}{{type}}{{/toU func write{{#toUpper}}{{type}}{{/toUpper}}(writer msgpack.Write, value *{{#toUpper}}{{type}}{{/toUpper}}) { writer.WriteMapLength({{properties.length}}) {{#properties}} - writer.Context().Push("{{#toLower}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toLower}}", "{{#toWasm}}{{toGraphQLType}}{{/toWasm}}", "writing property") - writer.WriteString("{{#toLower}}{{#handleKeywords}}{{name}}{{/handleKeywords}}{{/toLower}}") + writer.Context().Push("{{#handleKeywords}}{{name}}{{/handleKeywords}}", "{{#toWasm}}{{toGraphQLType}}{{/toWasm}}", "writing property") + writer.WriteString("{{#handleKeywords}}{{name}}{{/handleKeywords}}") {{#scalar}} {{> serialize_scalar}} {{/scalar}} diff --git a/packages/templates/wasm/golang/build.py b/packages/templates/wasm/golang/build.py deleted file mode 100644 index 734db3603..000000000 --- a/packages/templates/wasm/golang/build.py +++ /dev/null @@ -1,106 +0,0 @@ -import os -import subprocess -import re - -ACCEPTED_IMPORTS = {'wrap', 'env'} - -def build_wam_module(): - # subprocess.run(["yarn", "build"]) # this fails - - # go mod tidy - subprocess.run(["go", "mod", "tidy"], check=True) - - # tinygo build -o main.wasm -target wasm-target ./module/wrap/main/main.go - subprocess.run(["tinygo", "build", "-o", "./build/wrap.wasm", "-target", "wasm-target.json", "./module/wrap/main/main.go"], check=True) - - return "./build/wrap.wasm" - -def convert_wasm_to_wat(wasm_file): - wat_file = wasm_file.replace('.wasm', '.wat') - subprocess.run(['wasm2wat', wasm_file, '-o', wat_file], check=True) - return wat_file - -def find_import_functions(wat_file): - import_functions = [] - - with open(wat_file, 'r') as f: - content = f.read() - - pattern = r'\(import\s+"([^"]+)"\s+"([^"]+)"' - matches = re.findall(pattern, content) - - for match in matches: - namespace = match[0] - if namespace == 'env' and match[1] != "memory": - import_functions.append(match[1]) - if namespace not in ACCEPTED_IMPORTS: - import_functions.append(match[1]) - - return import_functions - -def find_export_functions(wat_file): - export_functions = [] - - with open(wat_file, 'r') as f: - content = f.read() - - pattern = r'\(export\s+"([^"]+)"' - matches = re.findall(pattern, content) - - for match in matches: - export = match - if export.startswith('asyncify') or export.startswith('_wrap'): - continue - export_functions.append(export) - - return export_functions - -def snip_unwanted_imports(wasm_module_path , import_functions): - if len(import_functions) == 0: - return - subprocess.run(['wasm-snip', wasm_module_path, '-o', wasm_module_path, '-p', *import_functions], check=True) - -def snip_unwanted_exports(wasm_module_path, export_functions): - if len(export_functions) == 0: - return - subprocess.run(['wasm-snip', wasm_module_path, '-o', wasm_module_path, *export_functions], check=True) - -def optimize_wasm(wasm_module_path): - subprocess.run(['wasm-opt', "-Os", wasm_module_path, '-o', wasm_module_path], check=True) - -def main(): - print("Building wasm module...") - wasm_module_path = build_wam_module() - print("Wasm module built at: ", wasm_module_path) - - print("Converting wasm to wat...") - wat_file = convert_wasm_to_wat(wasm_module_path) - print("Wat file generated at: ", wat_file) - - print("Finding unwanted import functions...") - import_functions = find_import_functions(wat_file) - print("Found unwanted import functions: ", import_functions) - - print("Finding unwanted export functions...") - export_functions = find_export_functions(wat_file) - print("Found unwanted export functions: ", export_functions) - - print("Snipping unwanted import functions...") - snip_unwanted_imports(wasm_module_path, import_functions) - print("Snipped unwanted imports ", wasm_module_path) - - print("Snipping unwanted export functions...") - snip_unwanted_exports(wasm_module_path, export_functions) - print("Snipped unwanted exports: ", wasm_module_path) - - print("Optimizing wasm module...") - optimize_wasm(wasm_module_path) - print("Wasm module optimized: ", wasm_module_path) - - print("Removing wat file...") - os.remove(wat_file) - print("Wat file removed") - - -if __name__ == "__main__": - main() diff --git a/packages/templates/wasm/golang/go.mod b/packages/templates/wasm/golang/go.mod index 7eee740fd..14661e7af 100644 --- a/packages/templates/wasm/golang/go.mod +++ b/packages/templates/wasm/golang/go.mod @@ -2,6 +2,6 @@ module example.com/template-wasm-go go 1.18 -require github.com/polywrap/go-wrap v0.0.0-20230712212127-6895977d63c2 +require github.com/polywrap/wrap-0.1 require github.com/valyala/fastjson v1.6.3 // indirect diff --git a/packages/templates/wasm/golang/wasm-target.json b/packages/templates/wasm/golang/wasm-target.json deleted file mode 100644 index 2e45a5599..000000000 --- a/packages/templates/wasm/golang/wasm-target.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "llvm-target": "wasm32-unknown-wasi", - "cpu": "generic", - "features": "+bulk-memory,+nontrapping-fptoint,+sign-ext", - "build-tags": ["tinygo.wasm", "wasi"], - "goos": "linux", - "goarch": "arm", - "linker": "wasm-ld", - "libc": "wasi-libc", - "scheduler": "asyncify", - "default-stack-size": 24576, - "cflags": [ - "-mbulk-memory", - "-mnontrapping-fptoint", - "-msign-ext" - ], - "ldflags": [ - "--stack-first", - "--no-demangle", - "--import-memory" - ], - "extra-files": [ - "src/runtime/asm_tinygowasm.S" - ], - "emulator": "wasmtime --mapdir=/tmp::{tmpDir} {}", - "wasm-abi": "generic" -} From 6e4065f61c17ae32e74b47e1225e4c5a23d2c5d5 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Wed, 19 Jul 2023 18:44:05 +0800 Subject: [PATCH 13/14] fix: issues --- packages/templates/wasm/golang/go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/templates/wasm/golang/go.mod b/packages/templates/wasm/golang/go.mod index 14661e7af..78573cf70 100644 --- a/packages/templates/wasm/golang/go.mod +++ b/packages/templates/wasm/golang/go.mod @@ -2,6 +2,6 @@ module example.com/template-wasm-go go 1.18 -require github.com/polywrap/wrap-0.1 +require github.com/polywrap/go-wrap wrap-0.1 require github.com/valyala/fastjson v1.6.3 // indirect From 59f990de531cea4ac951467feb6dd168ddf12f63 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Wed, 19 Jul 2023 22:57:35 +0800 Subject: [PATCH 14/14] fix: issues --- .../lib/defaults/build-strategies/wasm/golang/local/local.sh | 2 ++ .../module-type/module_wrapped/%type%Wrapped-go.mustache | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/cli/src/lib/defaults/build-strategies/wasm/golang/local/local.sh b/packages/cli/src/lib/defaults/build-strategies/wasm/golang/local/local.sh index c958a3389..743e311e2 100644 --- a/packages/cli/src/lib/defaults/build-strategies/wasm/golang/local/local.sh +++ b/packages/cli/src/lib/defaults/build-strategies/wasm/golang/local/local.sh @@ -23,6 +23,7 @@ EXTRA_EXPORTS=$( if [ -z "$EXTRA_EXPORTS" ] then echo "No extra exports to remove" + cp ./build-staging/module.wasm ./build-staging/module_exports.wasm else echo "Removing extra exports: $EXTRA_EXPORTS" # Remove these extra exports from the wasm module via wasm-snip @@ -43,6 +44,7 @@ EXTRA_IMPORTS=$( if [ -z "$EXTRA_IMPORTS" ] then echo "No extra imports to remove" + cp ./build-staging/module_exports.wasm ./build-staging/module_exports_imports.wasm else echo "Removing extra imports: $EXTRA_IMPORTS" # Remove these extra imports from the wasm module via wasm-snip diff --git a/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/module_wrapped/%type%Wrapped-go.mustache b/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/module_wrapped/%type%Wrapped-go.mustache index c4822d1d0..9e19e28d8 100644 --- a/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/module_wrapped/%type%Wrapped-go.mustache +++ b/packages/schema/bind/src/bindings/golang/wasm/templates/module-type/module_wrapped/%type%Wrapped-go.mustache @@ -1,6 +1,6 @@ package module_wrapped {{#makeImports}} - {{#methods}}{{#env}}github.com/polywrap/go-wrap/wrap,. {{goImport}}/module/wrap/types,{{/env}}{{^env}}{{#needsTypes}}. {{goImport}}/module/wrap/types,{{/needsTypes}}{{/env}}{{/methods}} + {{#methods}}{{#env}}github.com/polywrap/go-wrap/wrap,. {{goImport}}/module/wrap/types,{{/env}}{{/methods}} {{goImport}}/module as methods, {{/makeImports}} {{#methods}}