Website/node_modules/fs-extra/lib/index.js
2015-12-02 18:21:44 -05:00

138 lines
2.9 KiB
JavaScript

"use strict"
var fs = null
, path = require('path')
, jsonFile = require('jsonfile')
, json = require('./json')
, fse = {};
try {
// optional dependency
fs = require("graceful-fs")
} catch (er) {
fs = require("fs")
}
Object.keys(fs).forEach(function(key) {
var func = fs[key];
if (typeof func == 'function')
fse[key] = func;
});
fs = fse;
// copy
fs.copy = require('./copy').copy;
fs.copySync = require('./copy').copySync;
// remove
var remove = require('./remove');
fs.remove = remove.remove;
fs.removeSync = remove.removeSync;
fs['delete'] = fs.remove
fs.deleteSync = fs.removeSync
// mkdir
var mkdir = require('./mkdir')
fs.mkdirs = mkdir.mkdirs
fs.mkdirsSync = mkdir.mkdirsSync
fs.mkdirp = mkdir.mkdirs
fs.mkdirpSync = mkdir.mkdirsSync
// create
var create = require('./create')
fs.createFile = create.createFile;
fs.createFileSync = create.createFileSync;
// ensure
var ensure = require('./ensure')
fs.ensureFile = create.createFile
fs.ensureFileSync = create.createFileSync
fs.ensureDir = mkdir.mkdirs
fs.ensureDirSync = mkdir.mkdirsSync
// move
var move = require('./move')
fs.move = function(src, dest, opts, callback) {
if (typeof opts == 'function') {
callback = opts
opts = {}
}
if (opts.mkdirp == null) opts.mkdirp = true
if (opts.clobber == null) opts.clobber = false
move(src, dest, opts, callback)
}
//deprecated
fs.touch = function touch() {
console.log('fs.touch() is deprecated. Please use fs.createFile().')
fs.createFile.apply(null, arguments)
}
fs.touchSync = function touchSync() {
console.log('fs.touchSync() is deprecated. Please use fs.createFileSync().')
fs.createFileSync.apply(null, arguments)
}
// output
var output = require('./output');
fs.outputFile = output.outputFile;
fs.outputFileSync = output.outputFileSync;
// read
/*fs.readTextFile = function(file, callback) {
return fs.readFile(file, 'utf8', callback)
}
fs.readTextFileSync = function(file, callback) {
return fs.readFileSync(file, 'utf8')
}*/
// json files
fs.readJsonFile = jsonFile.readFile;
fs.readJSONFile = jsonFile.readFile;
fs.readJsonFileSync = jsonFile.readFileSync;
fs.readJSONFileSync = jsonFile.readFileSync;
fs.readJson = jsonFile.readFile;
fs.readJSON = jsonFile.readFile;
fs.readJsonSync = jsonFile.readFileSync;
fs.readJSONSync = jsonFile.readFileSync;
fs.outputJsonSync = json.outputJsonSync;
fs.outputJSONSync = json.outputJsonSync;
fs.outputJson = json.outputJson;
fs.outputJSON = json.outputJson;
fs.writeJsonFile = jsonFile.writeFile;
fs.writeJSONFile = jsonFile.writeFile;
fs.writeJsonFileSync = jsonFile.writeFileSync;
fs.writeJSONFileSync = jsonFile.writeFileSync;
fs.writeJson = jsonFile.writeFile;
fs.writeJSON = jsonFile.writeFile;
fs.writeJsonSync = jsonFile.writeFileSync;
fs.writeJSONSync = jsonFile.writeFileSync;
module.exports = fs
jsonFile.spaces = 2; //set to 2
module.exports.jsonfile = jsonFile; //so users of fs-extra can modify jsonFile.spaces;