angular-node-fs
Version:
use nodes rfs module as angular service
148 lines (131 loc) • 2.8 kB
JavaScript
var app;
app = angular.module('node.fs.app', []);
app.service('nodeFs', [
function() {
return require('fs');
}
]);
app.factory('ngIfy', [
'nodeFs', function(nodeFs) {
return function(name) {
return promisify(nodeFs[name]);
};
}
]);
app.factory('ngStat', [
'ngIfy', function(ngIfy) {
return ngIfy('stat');
}
]);
app.factory('ngStatSync', [
'nodeFs', function(nodeFs) {
return function(path) {
return nodeFs.statSync(path);
};
}
]);
app.factory('ngReaddir', [
'ngIfy', function(ngIfy) {
return ngIfy('readdir');
}
]);
app.factory('_isType', [
'ngStatSync', function(ngStatSync) {
var typeFuncs;
typeFuncs = {
"dir": "isDirectory",
"file": "isFile"
};
return function(name, type) {
return ngStatSync(name([typeFuncs([type])]))();
};
}
]);
app.factory('_isDir', [
'_isType', function(_isType) {
return function(path) {
return _isType(path, 'dir');
};
}
]);
app.factory('_isFile', [
'_isType', function(_isType) {
return function(path) {
return _isType(path, 'file');
};
}
]);
app.factory('isFileSync', [
'nodeFs', '_isFile', function(nodeFs, _isFile) {
return function(name) {
return nodeFs.statSync(name).isFile();
};
}
]);
app.factory('isFile', [
'ngStat', '_isFile', function(ngStat, _isFile) {
return function(name) {
return ngStat(name).then(function(res) {
var actualResult;
return actualResult = res.isFile();
});
};
}
]);
app.factory('readFile', [
'$q', 'nodeFs', function($q, nodeFs) {
var def;
def = $q.defer();
return function(filename) {
nodeFs.readFile(filename, function(err, res) {
if (err) {
def.reject(err);
} else {
def.resolve(res);
}
});
return def.promise;
};
}
]);
app.factory('writeFile', [
'$q', 'nodeFs', function($q, nodeFs) {
var def;
def = $q.defer();
return function(filename, data) {
nodeFs.writeFile(filename, data, function(err, res) {
if (err) {
def.reject(err);
} else {
def.resolve(true);
}
});
return def.promise;
};
}
]);
app.factory('isDirSync', [
'nodeFs', '_isDir', function(nodeFs, _isDir) {
return function(name) {
return nodeFs.statSync(name).isDirectory();
};
}
]);
app.factory('isDir', [
'ngStat', '_isDir', function(ngStat, _isDir) {
return function(name) {
return ngStat(name).then(function(res) {
var actualResult;
return actualResult = res.isDirectory();
});
};
}
]);
app.factory('listDir', [
'ngReaddir', function(ngReaddir) {
return function(name) {
return ngReaddir(name);
};
}
]);
;