json-q
Version:
Retrieves values from JSON objects (and JavaScript objects) by css-selector-like query (includes attribute filters and array flattening).
76 lines (60 loc) • 1.65 kB
JavaScript
var fs = require("fs");
var path = require("path");
var extra_fs = require("fs.extra");
const del_folder = function(f){
if (fs.existsSync(f)) {
extra_fs.rmrfSync(f);
}
}
const make_folder = function(f){
try{ fs.mkdirSync(f) } catch(e) { if ( e.code != 'EEXIST' ) throw e; }
}
const copy_files = function(fromFolder, toFolder, cb){
extra_fs.copyRecursive(fromFolder, toFolder, function (err) {
if (err) {
throw err;
}
if (cb) cb();
});
}
const del_file = function(file){
if (fs.existsSync(file)) fs.unlinkSync(file);
}
module.exports = { del_folder, make_folder, del_file, copy_files }
const del_folder_old = function(f){
if (fs.existsSync(f)) {
var files = fs.readdirSync(f);
files && files.forEach(file => {
// let n = path.join(f, file)
let n = f + '/' + file;
let stats = fs.statSync(n);
if (stats.isFile()) {
fs.unlinkSync(n);
} else if (stats.isDirectory()) {
del_folder(n);
} else {
//what is it, man? uhh.
}
})
fs.rmdirSync(f);
}
}
const copy_files_old = function(fromFolder, toFolder, cb){
var files = fs.readdirSync(fromFolder);
files && files.forEach(file => {
// let from = path.join(fromFolder, file);
// let to = path.join(toFolder, file);
let from = fromFolder + '/' + file;
let to = toFolder + '/' + file;
let stats = fs.statSync(from);
if (stats.isFile()) {
fs.createReadStream(from).pipe(fs.createWriteStream(to));
} else if (stats.isDirectory()) {
make_folder(to);
copy_files(from, to);
} else {
//what is it, man? uhh.
}
})
if (cb) cb();
}