blob: 49de0269339329109921e64ce695014b594cf60d [file] [log] [blame]
/**
* Temporary - The lord of tmp.
*
* Author: Veselin Todorov <hi@vesln.com>
* Licensed under the MIT License.
*/
/**
* Dependencies.
*/
var fs = require('fs');
var path = require('path');
var generator = require('./generator');
var detector = require('./detector');
var Base = require('./base');
/**
* File constructor.
*
* @param {String|null} name
*/
function File(name) {
this.init(name);
};
/**
* File extends from tmp.
*/
File.prototype.__proto__ = Base.prototype;
/**
* Creates new file.
*
* @param {String} filename
*/
File.prototype.create = function(filename) {
return fs.writeFileSync(path.normalize(filename), '');
};
/**
* Asynchronously reads the entire contents of a file.
*/
File.prototype.readFile = function() {
fs.readFile.apply(fs, this.prepareArgs(arguments));
};
/**
* Synchronous read.
*/
File.prototype.readFileSync = function() {
return fs.readFileSync.apply(fs, this.prepareArgs(arguments));
};
/**
* Asynchronously writes data to a file.
*/
File.prototype.writeFile = function() {
fs.writeFile.apply(fs, this.prepareArgs(arguments));
};
/**
* Synchronous writes data to a file.
*/
File.prototype.writeFileSync = function() {
return fs.writeFileSync.apply(fs, this.prepareArgs(arguments));
};
/**
* Asynchronous file open.
*/
File.prototype.open = function() {
fs.open.apply(fs, this.prepareArgs(arguments));
};
/**
* Synchronous open.
*/
File.prototype.openSync = function() {
return fs.openSync.apply(fs, this.prepareArgs(arguments));
};
/**
* Asynchronous close.
*/
File.prototype.close = function() {
fs.close.apply(fs, Array.prototype.slice.call(arguments));
};
/**
* Synchronous close.
*/
File.prototype.closeSync = function() {
return fs.closeSync.apply(fs, Array.prototype.slice.call(arguments));
};
/**
* Asynchronous unlink.
*/
File.prototype.unlink = function() {
fs.unlink.apply(fs, this.prepareArgs(arguments));
};
/**
* Synchronous unlink.
*/
File.prototype.unlinkSync = function() {
return fs.unlinkSync.apply(fs, this.prepareArgs(arguments));
};
/**
* Exporting the lib.
*/
module.exports = File;