added capability to read a file to a vinyl file object
This commit is contained in:
parent
3a76e9b572
commit
0c0449527d
63
index.js
63
index.js
@ -1,18 +1,32 @@
|
|||||||
/// <reference path="typings/tsd.d.ts" />
|
/// <reference path="./index.ts" />
|
||||||
var plugins = {
|
var SmartfilePlugins;
|
||||||
path: require("path"),
|
(function (SmartfilePlugins) {
|
||||||
|
SmartfilePlugins.init = function () {
|
||||||
|
var plugins = {
|
||||||
|
beautylog: require("beautylog")("os"),
|
||||||
fs: require("fs-extra"),
|
fs: require("fs-extra"),
|
||||||
yaml: require("js-yaml"),
|
path: require("path"),
|
||||||
beautylog: require("beautylog")("os")
|
vinyl: require("vinyl"),
|
||||||
};
|
vinylFile: require("vinyl-file"),
|
||||||
var smartfile = {
|
yaml: require("js-yaml")
|
||||||
//read File to string
|
};
|
||||||
readFileToString: function (filePath) {
|
return plugins;
|
||||||
|
};
|
||||||
|
})(SmartfilePlugins || (SmartfilePlugins = {}));
|
||||||
|
/// <reference path="./index.ts" />
|
||||||
|
var SmartfileSimple;
|
||||||
|
(function (SmartfileSimple) {
|
||||||
|
/**
|
||||||
|
* reads a file content to a String
|
||||||
|
* @param filePath
|
||||||
|
* @returns {string|Buffer|any}
|
||||||
|
*/
|
||||||
|
var readFileToString = function (filePath) {
|
||||||
var fileString;
|
var fileString;
|
||||||
fileString = plugins.fs.readFileSync(filePath, "utf8");
|
fileString = plugins.fs.readFileSync(filePath, "utf8");
|
||||||
return fileString;
|
return fileString;
|
||||||
},
|
};
|
||||||
readFileToObject: function (filePath, fileTypeArg) {
|
var readFileToObject = function (filePath, fileTypeArg) {
|
||||||
if (fileTypeArg === void 0) { fileTypeArg = "undefined"; }
|
if (fileTypeArg === void 0) { fileTypeArg = "undefined"; }
|
||||||
var fileType;
|
var fileType;
|
||||||
if (fileTypeArg == "undefined") {
|
if (fileTypeArg == "undefined") {
|
||||||
@ -36,6 +50,29 @@ var smartfile = {
|
|||||||
return plugins.fs.readJsonSync(filePath, {});
|
return plugins.fs.readJsonSync(filePath, {});
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
};
|
SmartfileSimple.init = function (objectArg) {
|
||||||
|
objectArg.readFileToString = readFileToString;
|
||||||
|
objectArg.readFileToObject = readFileToObject;
|
||||||
|
};
|
||||||
|
})(SmartfileSimple || (SmartfileSimple = {}));
|
||||||
|
/// <reference path="./index.ts" />
|
||||||
|
var SmartfileVinyl;
|
||||||
|
(function (SmartfileVinyl) {
|
||||||
|
var readFileToVinyl = function (filePathArg, options) {
|
||||||
|
if (options === void 0) { options = {}; }
|
||||||
|
return plugins.vinylFile.readSync(filePathArg, options);
|
||||||
|
};
|
||||||
|
SmartfileVinyl.init = function (objectArg) {
|
||||||
|
objectArg.readFileToVinyl = readFileToVinyl;
|
||||||
|
};
|
||||||
|
})(SmartfileVinyl || (SmartfileVinyl = {}));
|
||||||
|
/// <reference path="./typings/tsd.d.ts" />
|
||||||
|
/// <reference path="./smartfile.plugins.ts" />
|
||||||
|
/// <reference path="./smartfile.simple.ts" />
|
||||||
|
/// <reference path="./smartfile.vinyl.ts" />
|
||||||
|
var plugins = SmartfilePlugins.init();
|
||||||
|
var smartfile = {};
|
||||||
|
SmartfileSimple.init(smartfile);
|
||||||
|
SmartfileVinyl.init(smartfile);
|
||||||
module.exports = smartfile;
|
module.exports = smartfile;
|
||||||
|
14
package.json
14
package.json
@ -7,7 +7,8 @@
|
|||||||
"test": "(cd ts/compile && node compile.js) && (node test.js)",
|
"test": "(cd ts/compile && node compile.js) && (node test.js)",
|
||||||
"reinstall": "(rm -r node_modules && npm install)",
|
"reinstall": "(rm -r node_modules && npm install)",
|
||||||
"release": "(git pull origin master && npm version patch && git push origin master && git checkout release && git merge master && git push origin release && git checkout master)",
|
"release": "(git pull origin master && npm version patch && git push origin master && git checkout release && git merge master && git push origin release && git checkout master)",
|
||||||
"startdev": "(git checkout master && git pull origin master)"
|
"update": "(git checkout master && git pull origin master && npm install)",
|
||||||
|
"upgrade": "(npm run update) && (ncu upgradeAll && npm install)"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
@ -24,13 +25,16 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/pushrocks/smartfile",
|
"homepage": "https://github.com/pushrocks/smartfile",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"beautylog": "1.0.4",
|
"beautylog": "1.0.6",
|
||||||
"fs-extra": "0.26.2",
|
"fs-extra": "0.26.2",
|
||||||
"js-yaml": "3.4.5"
|
"install": "^0.4.0",
|
||||||
|
"js-yaml": "3.4.6",
|
||||||
|
"vinyl": "^1.1.0",
|
||||||
|
"vinyl-file": "^1.3.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"gulp": "3.9.0",
|
"gulp": "3.9.0",
|
||||||
"gulp-typescript": "2.9.2",
|
"gulp-typescript": "2.10.0",
|
||||||
"pushrocks": "1.0.22"
|
"pushrocks": "1.0.23"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
1
test.js
1
test.js
@ -4,4 +4,5 @@ var beautylog = require("beautylog")("os");
|
|||||||
beautylog.info(smartfile.readFileToString("./test/mytest.txt"));
|
beautylog.info(smartfile.readFileToString("./test/mytest.txt"));
|
||||||
console.log(smartfile.readFileToObject("./test/mytest.yaml"));
|
console.log(smartfile.readFileToObject("./test/mytest.yaml"));
|
||||||
console.log(smartfile.readFileToObject("./test/mytest.json"));
|
console.log(smartfile.readFileToObject("./test/mytest.json"));
|
||||||
|
console.log(smartfile.readFileToVinyl("./test/mytest.json"));
|
||||||
//var thisIsAnError = smartfile.readFileToObject("./test/mytestDoesNotExist.json");
|
//var thisIsAnError = smartfile.readFileToObject("./test/mytestDoesNotExist.json");
|
||||||
|
47
ts/index.ts
47
ts/index.ts
@ -1,42 +1,15 @@
|
|||||||
/// <reference path="typings/tsd.d.ts" />
|
/// <reference path="./typings/tsd.d.ts" />
|
||||||
var plugins = {
|
/// <reference path="./smartfile.plugins.ts" />
|
||||||
path: require("path"),
|
/// <reference path="./smartfile.simple.ts" />
|
||||||
fs: require("fs-extra"),
|
/// <reference path="./smartfile.vinyl.ts" />
|
||||||
yaml: require("js-yaml"),
|
var plugins = SmartfilePlugins.init();
|
||||||
beautylog: require("beautylog")("os")
|
|
||||||
};
|
|
||||||
|
var smartfile:any = {};
|
||||||
|
SmartfileSimple.init(smartfile);
|
||||||
|
SmartfileVinyl.init(smartfile);
|
||||||
|
|
||||||
|
|
||||||
var smartfile:any = {
|
|
||||||
//read File to string
|
|
||||||
readFileToString: function(filePath) {
|
|
||||||
var fileString;
|
|
||||||
fileString = plugins.fs.readFileSync(filePath, "utf8");
|
|
||||||
return fileString;
|
|
||||||
},
|
|
||||||
readFileToObject: function(filePath,fileTypeArg = "undefined") {
|
|
||||||
var fileType;
|
|
||||||
if (fileTypeArg == "undefined") {
|
|
||||||
fileType = plugins.path.extname(filePath);
|
|
||||||
} else {
|
|
||||||
fileType = fileTypeArg;
|
|
||||||
}
|
|
||||||
fileType = fileType.replace(/\.([a-z]*)/,"$1"); //remove . form fileType
|
|
||||||
switch (fileType) {
|
|
||||||
case "yml" :
|
|
||||||
case "yaml":
|
|
||||||
try {
|
|
||||||
return plugins.yaml.safeLoad(plugins.fs.readFileSync(filePath, 'utf8'));
|
|
||||||
} catch (e){
|
|
||||||
plugins.beautylog.error("check that " + filePath.blue + " points to a valid file");
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case "json":
|
|
||||||
return plugins.fs.readJsonSync(filePath,{});
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
module.exports = smartfile;
|
module.exports = smartfile;
|
||||||
|
14
ts/smartfile.plugins.ts
Normal file
14
ts/smartfile.plugins.ts
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
/// <reference path="./index.ts" />
|
||||||
|
module SmartfilePlugins {
|
||||||
|
export var init = function() {
|
||||||
|
var plugins = {
|
||||||
|
beautylog: require("beautylog")("os"),
|
||||||
|
fs: require("fs-extra"),
|
||||||
|
path: require("path"),
|
||||||
|
vinyl: require("vinyl"),
|
||||||
|
vinylFile: require("vinyl-file"),
|
||||||
|
yaml: require("js-yaml")
|
||||||
|
};
|
||||||
|
return plugins;
|
||||||
|
}
|
||||||
|
}
|
39
ts/smartfile.simple.ts
Normal file
39
ts/smartfile.simple.ts
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
/// <reference path="./index.ts" />
|
||||||
|
module SmartfileSimple {
|
||||||
|
/**
|
||||||
|
* reads a file content to a String
|
||||||
|
* @param filePath
|
||||||
|
* @returns {string|Buffer|any}
|
||||||
|
*/
|
||||||
|
var readFileToString = function(filePath) {
|
||||||
|
var fileString;
|
||||||
|
fileString = plugins.fs.readFileSync(filePath, "utf8");
|
||||||
|
return fileString;
|
||||||
|
};
|
||||||
|
var readFileToObject = function(filePath,fileTypeArg = "undefined") {
|
||||||
|
var fileType;
|
||||||
|
if (fileTypeArg == "undefined") {
|
||||||
|
fileType = plugins.path.extname(filePath);
|
||||||
|
} else {
|
||||||
|
fileType = fileTypeArg;
|
||||||
|
}
|
||||||
|
fileType = fileType.replace(/\.([a-z]*)/,"$1"); //remove . form fileType
|
||||||
|
switch (fileType) {
|
||||||
|
case "yml" :
|
||||||
|
case "yaml":
|
||||||
|
try {
|
||||||
|
return plugins.yaml.safeLoad(plugins.fs.readFileSync(filePath, 'utf8'));
|
||||||
|
} catch (e){
|
||||||
|
plugins.beautylog.error("check that " + filePath.blue + " points to a valid file");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "json":
|
||||||
|
return plugins.fs.readJsonSync(filePath,{});
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
export var init = function(objectArg) {
|
||||||
|
objectArg.readFileToString = readFileToString;
|
||||||
|
objectArg.readFileToObject = readFileToObject;
|
||||||
|
};
|
||||||
|
}
|
9
ts/smartfile.vinyl.ts
Normal file
9
ts/smartfile.vinyl.ts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
/// <reference path="./index.ts" />
|
||||||
|
module SmartfileVinyl {
|
||||||
|
var readFileToVinyl = function(filePathArg,options = {}) {
|
||||||
|
return plugins.vinylFile.readSync(filePathArg,options);
|
||||||
|
};
|
||||||
|
export var init = function(objectArg) {
|
||||||
|
objectArg.readFileToVinyl = readFileToVinyl;
|
||||||
|
};
|
||||||
|
}
|
@ -4,4 +4,5 @@ var beautylog = require("beautylog")("os");
|
|||||||
beautylog.info(smartfile.readFileToString("./test/mytest.txt"));
|
beautylog.info(smartfile.readFileToString("./test/mytest.txt"));
|
||||||
console.log(smartfile.readFileToObject("./test/mytest.yaml"));
|
console.log(smartfile.readFileToObject("./test/mytest.yaml"));
|
||||||
console.log(smartfile.readFileToObject("./test/mytest.json"));
|
console.log(smartfile.readFileToObject("./test/mytest.json"));
|
||||||
|
console.log(smartfile.readFileToVinyl("./test/mytest.json"));
|
||||||
//var thisIsAnError = smartfile.readFileToObject("./test/mytestDoesNotExist.json");
|
//var thisIsAnError = smartfile.readFileToObject("./test/mytestDoesNotExist.json");
|
Loading…
Reference in New Issue
Block a user