Utilities and an initial webpack loader

This commit is contained in:
dcodeIO
2018-01-29 17:04:39 +01:00
parent 9e3b6f202d
commit 74498852f0
8 changed files with 113 additions and 2 deletions

17
lib/utils/README.md Normal file
View File

@ -0,0 +1,17 @@
![](https://s.gravatar.com/avatar/f105de3decfafc734b8eabe9a960b25d?size=64) utils
=================
Utilities for working with [AssemblyScript](http://assemblyscript.org) modules.
Usage
-----
```js
import utils from "@assemblyscript/utils";
var myModule = ...;
var helpers = utils(myModule);
var str = helpers.getString(myModule.exportReturningAString());
```

21
lib/utils/index.js Normal file
View File

@ -0,0 +1,21 @@
module.exports = function(module) {
return {
getI32: function(ptr) {
return new Int32Array(module.memory.buffer, ptr, 4)[0];
},
getU32: function(ptr) {
return new Uint32Array(module.memory.buffer, ptr, 4)[0];
},
getF32: function(ptr) {
return new Float32Array(module.memory.buffer, ptr, 4)[0];
},
getF64: function(ptr) {
return new Float64Array(module.memory.buffer, ptr, 8)[0];
},
getString: function(ptr) {
var len = new Uint32Array(module.memory.buffer, ptr, 4)[0];
var str = new Uint16Array(module.memory.buffer, ptr + 4, len << 1);
return String.fromCharCode.apply(String, str);
}
}
};

6
lib/utils/package.json Normal file
View File

@ -0,0 +1,6 @@
{
"name": "@assemblyscript/utils",
"version": "0.5.0",
"description": "Utilities for working with AssemblyScript modules.",
"license": "Apache-2.0"
}