I'm trying to use scala.js + nw.js to write some application, and will use some node modules in scala.js. But I'm not sure how to do it.
Say, there is module fs
and I can write such code in Javascript:
var fs = require('fs');
fs.writeFile("/tmp/test", "Hey there!", function(err) {
if(err) {
console.log(err);
} else {
console.log("The file was saved!");
}
});
But how to do the same in scala.js from scratch?
Scala. js lets you write Scala code that is compiled to JavaScript code that can then be used in the browser. The approach is similar to TypeScript, ReScript, and other languages that are compiled to JavaScript.
Being able to run a node module on the browser is extremely beneficial. Users can use already existing modules on the client side JavaScript application without having to use a server.
Using js.Dynamic
and js.DynamicImplits
(see also a longer answer on the topic), you can transliterate your code in Scala.js:
import scala.scalajs.js
import js.Dynamic.{global => g}
import js.DynamicImplicits._
val fs = g.require("fs")
fs.writeFile("/tmp/test", "Hey there!", { (err: js.Dynamic) =>
if (err)
console.log(err)
else
console.log("The file was saved!")
})
You can find a longer source code using the Node.js fs
module in Scala.js here:
https://github.com/scala-js/scala-js/blob/v0.6.0/tools/js/src/main/scala/org/scalajs/core/tools/io/NodeVirtualFiles.scala
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With