@polywrap/schema-bind
Advanced tools
| import * as Types from ".."; | ||
| import { | ||
| BigInt, | ||
| BigNumber, | ||
| Box, | ||
| JSON, | ||
| } from "@polywrap/wasm-as"; | ||
| export abstract class ModuleBase { | ||
| {{#methods}} | ||
| abstract {{#detectKeyword}}{{name}}{{/detectKeyword}}( | ||
| args: Types.Args_{{#detectKeyword}}{{name}}{{/detectKeyword}}{{#env}}, | ||
| env: {{#required}}Types.Env{{/required}}{{^required}}Types.Env | null{{/required}}{{/env}} | ||
| ): {{#return}}{{#toWasm}}{{toGraphQLType}}{{/toWasm}}{{/return}}; | ||
| {{^last}} | ||
| {{/last}} | ||
| {{/methods}} | ||
| } |
| import { | ||
| wrap_invoke_args, | ||
| wrap_invoke, | ||
| wrap_invoke_result, | ||
| wrap_invoke_error, | ||
| wrap_abort, | ||
@@ -18,3 +19,6 @@ InvokeArgs | ||
| import { Module } from "../index"; | ||
| export function _wrap_invoke(method_size: u32, args_size: u32, env_size: u32): bool { | ||
| const module = new Module(); | ||
| const args: InvokeArgs = wrap_invoke_args( | ||
@@ -24,7 +28,7 @@ method_size, | ||
| ); | ||
| let result: ArrayBuffer; | ||
| {{#moduleType}} | ||
| {{#methods}} | ||
| {{^first}}else {{/first}}if (args.method == "{{name}}") { | ||
| return wrap_invoke(args, env_size, {{name}}Wrapped); | ||
| result = {{name}}Wrapped(module, args.args, env_size); | ||
| } | ||
@@ -34,4 +38,9 @@ {{/methods}} | ||
| else { | ||
| return wrap_invoke(args, env_size, null); | ||
| wrap_invoke_error( | ||
| `Could not find invoke function "${args.method}"` | ||
| ); | ||
| return false; | ||
| } | ||
| wrap_invoke_result(result); | ||
| return true; | ||
| } | ||
@@ -38,0 +47,0 @@ |
@@ -19,2 +19,5 @@ {{#moduleType}} | ||
| {{/moduleType}} | ||
| {{#moduleType}} | ||
| export { ModuleBase } from "./Module"; | ||
| {{/moduleType}} | ||
| {{#objectTypes}} | ||
@@ -21,0 +24,0 @@ export { {{#detectKeyword}}{{type}}{{/detectKeyword}} } from "./{{type}}"; |
@@ -13,2 +13,3 @@ {{#methods.length}} | ||
| }; | ||
| export { ModuleBase } from "./module"; | ||
| {{/methods.length}} |
@@ -5,7 +5,2 @@ {{#methods.length}} | ||
| {{#methods}} | ||
| {{#detectKeyword}}{{name}}{{/detectKeyword}}{{^last}},{{/last}} | ||
| {{/methods}} | ||
| } from "../../index"; | ||
| import { | ||
| {{#methods}} | ||
| deserialize{{name}}Args, | ||
@@ -16,6 +11,7 @@ serialize{{name}}Result{{^last}},{{/last}} | ||
| {{/methods.length}} | ||
| import { ModuleBase } from "./module"; | ||
| import * as Types from ".."; | ||
| {{#methods}} | ||
| export function {{name}}Wrapped(argsBuf: ArrayBuffer, env_size: u32): ArrayBuffer { | ||
| export function {{name}}Wrapped(module: ModuleBase, argsBuf: ArrayBuffer, env_size: u32): ArrayBuffer { | ||
| {{#env}} | ||
@@ -42,3 +38,3 @@ {{#required}} | ||
| const result = {{#detectKeyword}}{{name}}{{/detectKeyword}}({{#arguments.length}} | ||
| const result = module.{{#detectKeyword}}{{name}}{{/detectKeyword}}({{#arguments.length}} | ||
| { | ||
@@ -56,2 +52,2 @@ {{#arguments}} | ||
| {{/last}} | ||
| {{/methods}} | ||
| {{/methods}} |
@@ -11,19 +11,3 @@ /// NOTE: This is an auto-generated file. | ||
| use async_trait::async_trait; | ||
| pub use polywrap_plugin::impl_plugin_traits; | ||
| #[macro_export] | ||
| macro_rules! impl_traits { | ||
| ($plugin_type:ty) => { | ||
| $crate::wrap::module::impl_plugin_traits!( | ||
| $plugin_type, | ||
| $crate::wrap::wrap_info::get_manifest(), | ||
| {{#moduleType}} | ||
| {{#methods}} | ||
| ({{#detectKeyword}}{{#toLower}}{{name}}{{/toLower}}{{/detectKeyword}}, $crate::wrap::module::Args{{#toUpper}}{{name}}{{/toUpper}}), | ||
| {{/methods}} | ||
| {{/moduleType}} | ||
| ); | ||
| }; | ||
| } | ||
| {{#moduleType}} | ||
@@ -30,0 +14,0 @@ {{#methods}} |
| #![allow(unused_imports)] | ||
| #![allow(non_camel_case_types)] | ||
| /// NOTE: This is an auto-generated file. | ||
| /// All modifications will be overwritten. | ||
| // NOTE: This is an auto-generated file. | ||
| // All modifications will be overwritten. | ||
| use serde::{Serialize, Deserialize}; | ||
@@ -14,7 +14,7 @@ use num_bigint::BigInt; | ||
| use polywrap_msgpack::{decode, serialize}; | ||
| use polywrap_core::{invoke::{Invoker, InvokeArgs}, uri::Uri}; | ||
| use polywrap_core::{invoke::{Invoker}, uri::Uri}; | ||
| use polywrap_plugin::error::PluginError; | ||
| {{/importedModuleTypes}} | ||
| /// Env START /// | ||
| // Env START // | ||
@@ -29,5 +29,5 @@ {{#envType}} | ||
| {{/envType}} | ||
| /// Env END /// | ||
| // Env END // | ||
| /// Objects START /// | ||
| // Objects START // | ||
@@ -42,5 +42,5 @@ {{#objectTypes}} | ||
| {{/objectTypes}} | ||
| /// Objects END /// | ||
| // Objects END // | ||
| /// Enums START /// | ||
| // Enums START // | ||
@@ -56,5 +56,5 @@ {{#enumTypes}} | ||
| {{/enumTypes}} | ||
| /// Enums END /// | ||
| // Enums END // | ||
| /// Imported objects START /// | ||
| // Imported objects START // | ||
@@ -69,5 +69,5 @@ {{#importedObjectTypes}} | ||
| {{/importedObjectTypes}} | ||
| /// Imported objects END /// | ||
| // Imported objects END // | ||
| /// Imported envs START /// | ||
| // Imported envs START // | ||
@@ -82,5 +82,5 @@ {{#importedEnvType}} | ||
| {{/importedEnvType}} | ||
| /// Imported envs END /// | ||
| // Imported envs END // | ||
| /// Imported enums START /// | ||
| // Imported enums START // | ||
@@ -96,9 +96,9 @@ {{#importedEnumTypes}} | ||
| {{/importedEnumTypes}} | ||
| /// Imported enums END /// | ||
| // Imported enums END // | ||
| /// Imported Modules START /// | ||
| // Imported Modules START // | ||
| {{#importedModuleTypes}} | ||
| {{#methods}} | ||
| /// URI: "{{parent.uri}}" /// | ||
| // URI: "{{parent.uri}}" // | ||
| #[derive(Clone, Debug, Deserialize, Serialize)] | ||
@@ -126,6 +126,6 @@ pub struct {{#toUpper}}{{parent.type}}{{/toUpper}}Args{{#toUpper}}{{name}}{{/toUpper}} { | ||
| let uri = {{#parent}}{{#toUpper}}{{type}}{{/toUpper}}{{/parent}}::URI; | ||
| let serialized_args = InvokeArgs::UIntArray(serialize(args.clone()).unwrap()); | ||
| let opt_args = Some(&serialized_args); | ||
| let serialized_args = serialize(args.clone()).unwrap(); | ||
| let opt_args = Some(serialized_args.as_slice()); | ||
| let uri = Uri::try_from(uri).unwrap(); | ||
| let result = invoker.invoke( | ||
| let result = invoker.invoke_raw( | ||
| &uri, | ||
@@ -169,4 +169,4 @@ "{{name}}", | ||
| let uri = self.uri; | ||
| let serialized_args = InvokeArgs::UIntArray(serialize(args.clone()).unwrap()); | ||
| let result = invoker.invoke( | ||
| let serialized_args = serialize(args.clone()).unwrap(); | ||
| let result = invoker.invoke_raw( | ||
| uri, | ||
@@ -194,2 +194,2 @@ "{{name}}", | ||
| {{/importedModuleTypes}} | ||
| /// Imported Modules END /// | ||
| // Imported Modules END // |
| /// NOTE: This is an auto-generated file. | ||
| /// All modifications will be overwritten. | ||
| use polywrap_manifest::versions::{WrapManifest, WrapManifestAbi}; | ||
| use wrap_manifest_schemas::versions::{WrapManifest, WrapManifestAbi}; | ||
| use serde_json::{json, from_value}; | ||
@@ -5,0 +5,0 @@ |
+5
-5
| { | ||
| "name": "@polywrap/schema-bind", | ||
| "description": "Polywrap Schema Binding", | ||
| "version": "0.10.0-pre.11", | ||
| "version": "0.10.0-pre.12", | ||
| "license": "MIT", | ||
@@ -23,9 +23,9 @@ "repository": { | ||
| "dependencies": { | ||
| "@polywrap/os-js": "0.10.0-pre.11", | ||
| "@polywrap/schema-parse": "0.10.0-pre.11", | ||
| "@polywrap/wrap-manifest-types-js": "0.10.0-pre.11", | ||
| "@polywrap/os-js": "0.10.0-pre.12", | ||
| "@polywrap/schema-parse": "0.10.0-pre.12", | ||
| "@polywrap/wrap-manifest-types-js": "0.10.0-pre.12", | ||
| "mustache": "4.0.1" | ||
| }, | ||
| "devDependencies": { | ||
| "@polywrap/test-cases": "0.10.0-pre.11", | ||
| "@polywrap/test-cases": "0.10.0-pre.12", | ||
| "@types/jest": "26.0.8", | ||
@@ -32,0 +32,0 @@ "@types/lodash": "4.14.178", |
325201
0.06%147
0.68%+ Added
+ Added
+ Added
- Removed
- Removed
- Removed