9 changed files with 0 additions and 6149 deletions
-
24www/.bin/create-wasm-app.js
-
2www/.gitignore
-
67www/README.md
-
5www/bootstrap.js
-
24www/index.html
-
34www/index.js
-
5939www/package-lock.json
-
40www/package.json
-
14www/webpack.config.js
@ -1,24 +0,0 @@ |
|||
#!/usr/bin/env node
|
|||
|
|||
const { spawn } = require("child_process"); |
|||
const fs = require("fs"); |
|||
|
|||
let folderName = '.'; |
|||
|
|||
if (process.argv.length >= 3) { |
|||
folderName = process.argv[2]; |
|||
if (!fs.existsSync(folderName)) { |
|||
fs.mkdirSync(folderName); |
|||
} |
|||
} |
|||
|
|||
const clone = spawn("git", ["clone", "https://github.com/rustwasm/create-wasm-app.git", folderName]); |
|||
|
|||
clone.on("close", code => { |
|||
if (code !== 0) { |
|||
console.error("cloning the template failed!") |
|||
process.exit(code); |
|||
} else { |
|||
console.log("🦀 Rust + 🕸 Wasm = ❤"); |
|||
} |
|||
}); |
|||
@ -1,2 +0,0 @@ |
|||
node_modules |
|||
dist |
|||
@ -1,67 +0,0 @@ |
|||
<div align="center"> |
|||
|
|||
<h1><code>create-wasm-app</code></h1> |
|||
|
|||
<strong>An <code>npm init</code> template for kick starting a project that uses NPM packages containing Rust-generated WebAssembly and bundles them with Webpack.</strong> |
|||
|
|||
<p> |
|||
<a href="https://travis-ci.org/rustwasm/create-wasm-app"><img src="https://img.shields.io/travis/rustwasm/create-wasm-app.svg?style=flat-square" alt="Build Status" /></a> |
|||
</p> |
|||
|
|||
<h3> |
|||
<a href="#usage">Usage</a> |
|||
<span> | </span> |
|||
<a href="https://discordapp.com/channels/442252698964721669/443151097398296587">Chat</a> |
|||
</h3> |
|||
|
|||
<sub>Built with 🦀🕸 by <a href="https://rustwasm.github.io/">The Rust and WebAssembly Working Group</a></sub> |
|||
</div> |
|||
|
|||
## About |
|||
|
|||
This template is designed for depending on NPM packages that contain |
|||
Rust-generated WebAssembly and using them to create a Website. |
|||
|
|||
* Want to create an NPM package with Rust and WebAssembly? [Check out |
|||
`wasm-pack-template`.](https://github.com/rustwasm/wasm-pack-template) |
|||
* Want to make a monorepo-style Website without publishing to NPM? Check out |
|||
[`rust-webpack-template`](https://github.com/rustwasm/rust-webpack-template) |
|||
and/or |
|||
[`rust-parcel-template`](https://github.com/rustwasm/rust-parcel-template). |
|||
|
|||
## 🚴 Usage |
|||
|
|||
``` |
|||
npm init wasm-app |
|||
``` |
|||
|
|||
## 🔋 Batteries Included |
|||
|
|||
- `.gitignore`: ignores `node_modules` |
|||
- `LICENSE-APACHE` and `LICENSE-MIT`: most Rust projects are licensed this way, so these are included for you |
|||
- `README.md`: the file you are reading now! |
|||
- `index.html`: a bare bones html document that includes the webpack bundle |
|||
- `index.js`: example js file with a comment showing how to import and use a wasm pkg |
|||
- `package.json` and `package-lock.json`: |
|||
- pulls in devDependencies for using webpack: |
|||
- [`webpack`](https://www.npmjs.com/package/webpack) |
|||
- [`webpack-cli`](https://www.npmjs.com/package/webpack-cli) |
|||
- [`webpack-dev-server`](https://www.npmjs.com/package/webpack-dev-server) |
|||
- defines a `start` script to run `webpack-dev-server` |
|||
- `webpack.config.js`: configuration file for bundling your js with webpack |
|||
|
|||
## License |
|||
|
|||
Licensed under either of |
|||
|
|||
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) |
|||
* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) |
|||
|
|||
at your option. |
|||
|
|||
### Contribution |
|||
|
|||
Unless you explicitly state otherwise, any contribution intentionally |
|||
submitted for inclusion in the work by you, as defined in the Apache-2.0 |
|||
license, shall be dual licensed as above, without any additional terms or |
|||
conditions. |
|||
@ -1,5 +0,0 @@ |
|||
// A dependency graph that contains any wasm must all be imported
|
|||
// asynchronously. This `bootstrap.js` file does the single async import, so
|
|||
// that no one else needs to worry about it again.
|
|||
import("./index.js") |
|||
.catch(e => console.error("Error importing `index.js`:", e)); |
|||
@ -1,24 +0,0 @@ |
|||
<!DOCTYPE html> |
|||
<html> |
|||
<head> |
|||
<meta charset="utf-8"> |
|||
<title>wasm-game-of-life!</title> |
|||
<style> |
|||
body { |
|||
position: absolute; |
|||
top: 0; |
|||
left: 0; |
|||
width: 100%; |
|||
height: 100%; |
|||
display: flex; |
|||
flex-direction: column; |
|||
align-items: center; |
|||
justify-content: center; |
|||
} |
|||
</style> |
|||
</head> |
|||
<body> |
|||
<canvas id="view3d"></canvas> |
|||
<script src="./bootstrap.js"></script> |
|||
</body> |
|||
</html> |
|||
@ -1,34 +0,0 @@ |
|||
import { View3d } from "wasm-game-of-life"; |
|||
import { memory } from "wasm-game-of-life/wasm_game_of_life_bg"; |
|||
|
|||
// 3D canvas stuff
|
|||
const view3d = View3d.new(300, 300); |
|||
|
|||
const view3d_canvas = document.getElementById("view3d"); |
|||
view3d_canvas.width = view3d.width(); |
|||
view3d_canvas.height = view3d.height(); |
|||
const view3d_ctx = view3d_canvas.getContext('2d'); |
|||
|
|||
const view3d_renderLoop = () => { |
|||
view3d.update(); |
|||
drawView3d(); |
|||
|
|||
requestAnimationFrame(view3d_renderLoop); |
|||
} |
|||
|
|||
const drawView3d = () => { |
|||
const view3d_imagePtr = view3d.image(); |
|||
const view3d_image = new ImageData( |
|||
new Uint8ClampedArray( memory.buffer |
|||
, view3d.image() |
|||
, view3d.width() * view3d.height() * 4 ) |
|||
, view3d.width() |
|||
, view3d.height() ); |
|||
|
|||
view3d_ctx.putImageData(view3d_image, 0, 0); |
|||
} |
|||
|
|||
// start everything ...
|
|||
view3d.update(); |
|||
drawView3d(); |
|||
requestAnimationFrame(view3d_renderLoop); |
|||
5939
www/package-lock.json
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,40 +0,0 @@ |
|||
{ |
|||
"name": "create-wasm-app", |
|||
"version": "0.1.0", |
|||
"description": "create an app to consume rust-generated wasm packages", |
|||
"main": "index.js", |
|||
"bin": { |
|||
"create-wasm-app": ".bin/create-wasm-app.js" |
|||
}, |
|||
"scripts": { |
|||
"build": "webpack --config webpack.config.js", |
|||
"start": "webpack-dev-server" |
|||
}, |
|||
"repository": { |
|||
"type": "git", |
|||
"url": "git+https://github.com/rustwasm/create-wasm-app.git" |
|||
}, |
|||
"keywords": [ |
|||
"webassembly", |
|||
"wasm", |
|||
"rust", |
|||
"webpack" |
|||
], |
|||
"author": "Ashley Williams <ashley666ashley@gmail.com>", |
|||
"license": "(MIT OR Apache-2.0)", |
|||
"bugs": { |
|||
"url": "https://github.com/rustwasm/create-wasm-app/issues" |
|||
}, |
|||
"homepage": "https://github.com/rustwasm/create-wasm-app#readme", |
|||
"devDependencies": { |
|||
"wasm-game-of-life": "file:../pkg", |
|||
"hello-wasm-pack": "^0.1.0", |
|||
"webpack": "^4.29.3", |
|||
"webpack-cli": "^3.1.0", |
|||
"webpack-dev-server": "^3.1.5", |
|||
"copy-webpack-plugin": "^5.0.0" |
|||
}, |
|||
"dependencies": { |
|||
"wasm-game-of-life": "file:../pkg" |
|||
} |
|||
} |
|||
@ -1,14 +0,0 @@ |
|||
const CopyWebpackPlugin = require("copy-webpack-plugin"); |
|||
const path = require('path'); |
|||
|
|||
module.exports = { |
|||
entry: "./bootstrap.js", |
|||
output: { |
|||
path: path.resolve(__dirname, "dist"), |
|||
filename: "bootstrap.js", |
|||
}, |
|||
mode: "development", |
|||
plugins: [ |
|||
new CopyWebpackPlugin(['index.html']) |
|||
], |
|||
}; |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue