UNPKG

dojo-util

Version:

Dojo utilities including build system for optimizing JavaScript application performance, and DOH testing tool

108 lines (92 loc) 2.3 kB
define([], function() { var copyFile = function(src, dest, cb) { function close(it) { try{ if (it) it.close(); }catch(e){ // swallow } } var BUF_SIZE = 8192; var fis = null; var fos = null; try { fis = new java.io.FileInputStream(src); fos = new java.io.FileOutputStream(dest); var buf = java.lang.reflect.Array.newInstance(java.lang.Byte.TYPE, BUF_SIZE); var i; while ((i = fis.read(buf)) != -1) { fos.write(buf, 0, i); } }finally{ close(fis); close(fos); } // invoke callback if no error. if (cb) { cb(0); } }, readFileSync = function(filename, encoding) { if (encoding=="utf8") { // convert node.js idiom to rhino idiom encoding = "utf-8"; } return readFile(filename, encoding || "utf-8"); }, writeFileSync = function(filename, contents, encoding){ var outFile = new java.io.File(filename), outWriter; if (encoding=="utf8") { // convert node.js idiom to java idiom encoding = "UTF-8"; } if(encoding){ outWriter = new java.io.OutputStreamWriter(new java.io.FileOutputStream(outFile), encoding); }else{ outWriter = new java.io.OutputStreamWriter(new java.io.FileOutputStream(outFile)); } var os = new java.io.BufferedWriter(outWriter); try{ os.write(contents); }finally{ os.close(); } }; return { copyFile:copyFile, statSync:function(filename) { return new java.io.File(filename); }, mkdirSync:function(filename) { var dir = new java.io.File(filename); if (!dir.exists()) { dir.mkdirs(); } }, readFileSync:readFileSync, readdirSync:function(path) { // the item+"" is necessary because item is a java object that doesn't have the substring method return (new java.io.File(path)).listFiles().map(function(item){ return (item.name+""); }); }, readFile:function(filename, encoding, cb) { var result = readFileSync(filename, encoding); if (cb) { cb(0, result); } }, writeFileSync:writeFileSync, writeFile:function(filename, contents, encoding, cb) { if (arguments.length==3 && typeof encoding!="string") { cb = encoding; encoding = 0; } writeFileSync(filename, contents, encoding); if (cb) { cb(0); }; } }; });