Skip to content

Commit 6637ffb

Browse files
Init
0 parents  commit 6637ffb

24 files changed

+7569
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# JavaScriptKit

example/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
/dist
2+
/node_modules
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../src/swift/.build/debug/JavaScriptKitExample

example/index.html

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<!doctype html>
2+
<html>
3+
<head>
4+
<title>Getting Started</title>
5+
</head>
6+
<body>
7+
<script src="./dist/main.js"></script>
8+
</body>
9+
</html>

example/package-lock.json

Lines changed: 6675 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

example/package.json

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"name": "javascript-kit-example",
3+
"version": "1.0.0",
4+
"description": "An example use of JavaScriptKit",
5+
"private": true,
6+
"dependencies": {
7+
"@wasmer/wasi": "^0.9.1",
8+
"@wasmer/wasmfs": "^0.9.1",
9+
"javascript-kit-swift": "file:../src/web"
10+
},
11+
"devDependencies": {
12+
"webpack": "^4.42.0",
13+
"webpack-cli": "^3.3.11",
14+
"webpack-dev-server": "^3.10.3"
15+
},
16+
"scripts": {
17+
"build": "webpack",
18+
"start": "webpack-dev-server"
19+
},
20+
"author": "kateinoigakukun",
21+
"license": "MIT"
22+
}

example/src/index.js

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import { SwiftRuntime } from "javascript-kit-swift";
2+
import { WASI } from "@wasmer/wasi";
3+
import { WasmFs } from "@wasmer/wasmfs";
4+
5+
6+
const swift = new SwiftRuntime();
7+
// Instantiate a new WASI Instance
8+
const wasmFs = new WasmFs();
9+
let wasi = new WASI({
10+
args: [],
11+
env: {},
12+
bindings: {
13+
...WASI.defaultBindings,
14+
fs: wasmFs.fs
15+
}
16+
});
17+
18+
const startWasiTask = async () => {
19+
// Fetch our Wasm File
20+
const response = await fetch("./assets/JavaScriptKitExample.wasm");
21+
const responseArrayBuffer = await response.arrayBuffer();
22+
23+
// Instantiate the WebAssembly file
24+
const wasm_bytes = new Uint8Array(responseArrayBuffer).buffer;
25+
let { instance } = await WebAssembly.instantiate(wasm_bytes, {
26+
wasi_snapshot_preview1: wasi.wasiImport,
27+
javascript_kit: swift.importObjects(),
28+
});
29+
30+
swift.setInsance(instance);
31+
// Start the WebAssembly WASI instance!
32+
wasi.start(instance);
33+
34+
// Output what's inside of /dev/stdout!
35+
const stdout = await wasmFs.getStdOut();
36+
console.log(stdout);
37+
38+
console.log(`Print window.foobar = ${foobar}`);
39+
};
40+
startWasiTask();

example/webpack.config.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
const path = require('path');
2+
const outputPath = path.resolve(__dirname, 'dist');
3+
4+
module.exports = {
5+
entry: './src/index.js',
6+
mode: 'development',
7+
output: {
8+
filename: 'main.js',
9+
path: outputPath,
10+
},
11+
};

src/swift/.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
.DS_Store
2+
/.build
3+
/Packages
4+
/*.xcodeproj
5+
xcuserdata/

src/swift/.swift-version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
wasm-DEVELOPMENT

0 commit comments

Comments
 (0)