feat: restructure project for easier management of extensions, initial I/O operations #7
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR restructures project so that extensions can be reused, there's no need to redefine them multiple times.
Project structure:
/bueno
-bueno_runtime
package, main stuff/ext
-bueno_ext
package, things related to extensions, exposesextensions
module which contains all extensions that are declared byext
.Bueno.
api/ext
structure:/ext/{api_name}/mod.js
- JavaScript module whereglobalThis
is modified in any way/ext/{api_name}/{whatever}.js
- modules imported by mod.js, they mustn't modifyglobalThis
in any wayThis PR also adds support for these API's (#6):
Bueno.io
read
– read from resource id into givenUint8Array
readSync
– sync version ofio.read
write
– async write to resource id usingUint8Array
writeSync
– sync version ofio.write
stdin
– interface for working with standard inputstdout
– interface for working with standard outputstderr
– interface for working with standard error outputStd{in,out,err}
classes are not finalized, currently they only havewrite
/data
/close
methods.