updated sys and created publi
This commit is contained in:
+66
@@ -0,0 +1,66 @@
|
||||
'use strict';
|
||||
var path = require('path');
|
||||
var fs = require('graceful-fs');
|
||||
var stripBom = require('strip-bom');
|
||||
var stripBomStream = require('strip-bom-stream');
|
||||
var File = require('vinyl');
|
||||
var pify = require('pify');
|
||||
var Promise = require('pinkie-promise');
|
||||
var fsP = pify(fs, Promise);
|
||||
|
||||
exports.read = function (pth, opts) {
|
||||
opts = opts || {};
|
||||
|
||||
var cwd = opts.cwd || process.cwd();
|
||||
var base = opts.base || cwd;
|
||||
|
||||
pth = path.resolve(cwd, pth);
|
||||
|
||||
return fsP.stat(pth).then(function (stat) {
|
||||
var file = new File({
|
||||
cwd: cwd,
|
||||
base: base,
|
||||
path: pth,
|
||||
stat: stat
|
||||
});
|
||||
|
||||
if (opts.read === false) {
|
||||
return file;
|
||||
}
|
||||
|
||||
if (opts.buffer === false) {
|
||||
file.contents = fs.createReadStream(pth).pipe(stripBomStream());
|
||||
return file;
|
||||
}
|
||||
|
||||
return fsP.readFile(pth).then(function (contents) {
|
||||
file.contents = stripBom(contents);
|
||||
return file;
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
exports.readSync = function (pth, opts) {
|
||||
opts = opts || {};
|
||||
|
||||
var cwd = opts.cwd || process.cwd();
|
||||
var base = opts.base || cwd;
|
||||
|
||||
pth = path.resolve(cwd, pth);
|
||||
|
||||
var contents;
|
||||
|
||||
if (opts.read !== false) {
|
||||
contents = opts.buffer === false ?
|
||||
fs.createReadStream(pth).pipe(stripBomStream()) :
|
||||
stripBom(fs.readFileSync(pth));
|
||||
}
|
||||
|
||||
return new File({
|
||||
cwd: cwd,
|
||||
base: base,
|
||||
path: pth,
|
||||
stat: fs.statSync(pth),
|
||||
contents: contents
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user