1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- var File = require("fs"),
- LazyArray = require("../../lazy-array").LazyArray,
- defer = require("../../promise").defer;
- for(var i in File){
- exports[i] = File[i];
- }
- exports.readFileSync = File.read;
- exports.writeFileSync = File.write;
- exports.mkdirSync = File.mkdir;
- exports.readdir = exports.list;
- exports.stat = exports.statSync = function(path) {
- try{
- return {
- isFile: function(){
- return File.isFile(path);
- },
- size: File.size(path)
- };
- }catch(e){
- var deferred = defer();
- deferred.reject(e);
- return deferred.promise;
- }
- };
- exports.makeTree = File.mkdirs;
- exports.makeDirectory = File.mkdir;
- exports.open = function(){
- var file = File.open.apply(this, arguments);
- var array = LazyArray({
- some: function(callback){
- while(true){
- var buffer = file.read(4096);
- if(buffer.length <= 0){
- return;
- }
- if(callback(buffer)){
- return;
- }
- }
- }
- });
- for(var i in array){
- file[i] = array[i];
- }
- return file;
- };
- exports.openSync = exports.open;
- exports.createWriteStream = function(path, options) {
- options = options || {};
- options.flags = options.flags || "w";
- var flags = options.flags || "w",
- f = File.open(path, flags);
- return {
- writable: true,
- write: function() {
- var deferred = defer();
- try {
- f.write.apply(this, arguments);
- f.flush();
- }
- catch (e) {
- return stream.writable = false;
- }
- deferred.resolve();
- return deferred.promise;
- },
- end: f.close,
- destroy: f.close
- }
- }
|