@live-codes/go2js
v0.5.3
Published
Compile Go to JS in the browser (using GopherJS)
Downloads
48
Readme
Go2JS
Compile Go to JS in the browser (using GopherJS)
Based on GopherJS Playground
The motive for this project was to enable client-side compiling of Golang to JavaScript to run in the browser for LiveCodes.
Usage
UMD:
<!-- <script src="https://cdn.jsdelivr.net/npm/@live-codes/go2js/build/go2js.js"></script> -->
<script src="go2js.js"></script>
<script>
const code = `
package main
import ("syscall/js"
"fmt")
func main() {fmt.Println("Hello, from Go")
js.Global().Call("alert", "Hello, JavaScript")
println("Hello, JS console")}
`;
window.go2js
.format(code)
.then((formatted) => {
console.log(formatted);
// return window.go2js.compile(formatted, 'https://cdn.jsdelivr.net/npm/@live-codes/go2js/build/');
return window.go2js.compile(formatted);
})
.then(eval)
.catch(console.warn);
</script>
ESM:
import { compile, format } from 'https://cdn.jsdelivr.net/npm/@live-codes/go2js';
const code = `
package main
import ("syscall/js"
"fmt")
func main() {fmt.Println("Hello, from Go")
js.Global().Call("alert", "Hello, JavaScript")
println("Hello, JS console")}
`;
format(code)
.then((formatted) => {
console.log(formatted);
// return compile(formatted, 'https://cdn.jsdelivr.net/npm/@live-codes/go2js/build/');
return compile(formatted);
})
.then(eval)
.catch(console.warn);
Run npm start
to start a server (http://127.0.0.1:8080) and watch for changes.
Contribution
Please do!
Feedback, ideas and pull requests are highly appreciated.
License
BSD 2-Clause "Simplified" License same as GopherJS lisence