CLI 'wrap' command needs to build smaller files.
ballercat opened this issue · comments
Problem
walt-cli
package when linking multiple .walt files together can "wrap" the modules in a stand-alone JS module. The resulting module is too large because it serialized the dependency tree with the AST information encoded directly into the output, resulting in a massive amount of js.
Encoding the dependencies into the file is done to ensure the module can be used stand-alone in browser or node. Only the opcodes
objects should be necessary for each module.
Goal
Patch the cli wrap function to result in a stripped down version of the modules (without AST information) which can still build but only include the bare minimum buffers in the resulting JS module.
Notes
- https://github.com/ballercat/walt/blob/master/packages/walt-cli/src/wrap.js - wrap logic
- https://github.com/ballercat/walt/blob/master/packages/walt-buildtools/src/index.js#L157 - the "build" method which consumes the stringified
tree
structure to create a run-able Wasm module.
Assuming we strip off AST info from final JS file, how should we test to ensure there is no breakage of any sort. Some suggestions would help for a new person looking into it.