12

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?

Freewind
  • 193,756
  • 157
  • 432
  • 708

1 Answers1

11

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

Community
  • 1
  • 1
sjrd
  • 21,805
  • 2
  • 61
  • 91