diff --git a/.gitignore b/.gitignore
index 116d2d6..6dc17fb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,12 @@
node_modules/
.settings/
.idea/
+coverage/
+docs/
ts/*.js
ts/*.js.map
ts/typings/
-coverage/
-docs/
+
+test/assets/
+
diff --git a/.npmignore b/.npmignore
new file mode 100644
index 0000000..a91c962
--- /dev/null
+++ b/.npmignore
@@ -0,0 +1,4 @@
+coverage/
+docs/
+test/
+ts/
diff --git a/README.md b/README.md
index 8730158..212b756 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,11 @@
# smartfile
make files easily accessible for processing in javascript.
+## Status
+[![Build Status](https://travis-ci.org/pushrocks/smartfile.svg?branch=master)](https://travis-ci.org/pushrocks/smartfile)
+[![bitHound Dependencies](https://www.bithound.io/github/pushrocks/smartfile/badges/dependencies.svg)](https://www.bithound.io/github/pushrocks/smartfile/master/dependencies/npm)
+[![bitHound Code](https://www.bithound.io/github/pushrocks/smartfile/badges/code.svg)](https://www.bithound.io/github/pushrocks/smartfile)
+
## Supported file types:
* .yml .yaml
* .json
diff --git a/dist/index.js b/dist/index.js
new file mode 100644
index 0000000..b771212
--- /dev/null
+++ b/dist/index.js
@@ -0,0 +1,15 @@
+///
+"use strict";
+var SmartfileChecks = require("./smartfile.checks");
+var SmartfileSimple = require("./smartfile.simple");
+var smartfile = {
+ copy: SmartfileSimple.copy,
+ checks: SmartfileChecks,
+ readFileToString: SmartfileSimple.readFileToString,
+ readFileToObject: SmartfileSimple.readFileToObject,
+ readFileToVinyl: SmartfileSimple.readFileToVinyl,
+ requireReload: SmartfileSimple.requireReload
+};
+module.exports = smartfile;
+
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDRDQUE0Qzs7QUFHNUMsSUFBTyxlQUFlLFdBQVcsb0JBQW9CLENBQUMsQ0FBQztBQUN2RCxJQUFPLGVBQWUsV0FBVyxvQkFBb0IsQ0FBQyxDQUFDO0FBR3ZELElBQUksU0FBUyxHQUFPO0lBQ2hCLElBQUksRUFBRSxlQUFlLENBQUMsSUFBSTtJQUMxQixNQUFNLEVBQUUsZUFBZTtJQUN2QixnQkFBZ0IsRUFBRSxlQUFlLENBQUMsZ0JBQWdCO0lBQ2xELGdCQUFnQixFQUFFLGVBQWUsQ0FBQyxnQkFBZ0I7SUFDbEQsZUFBZSxFQUFFLGVBQWUsQ0FBQyxlQUFlO0lBQ2hELGFBQWEsRUFBRSxlQUFlLENBQUMsYUFBYTtDQUMvQyxDQUFDO0FBRUYsaUJBQVMsU0FBUyxDQUFDIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4vdHlwaW5ncy9tYWluLmQudHNcIiAvPlxuXG5pbXBvcnQgcGx1Z2lucyA9IHJlcXVpcmUoXCIuL3NtYXJ0ZmlsZS5wbHVnaW5zXCIpO1xuaW1wb3J0IFNtYXJ0ZmlsZUNoZWNrcyA9IHJlcXVpcmUoXCIuL3NtYXJ0ZmlsZS5jaGVja3NcIik7XG5pbXBvcnQgU21hcnRmaWxlU2ltcGxlID0gcmVxdWlyZShcIi4vc21hcnRmaWxlLnNpbXBsZVwiKTtcblxuXG52YXIgc21hcnRmaWxlOmFueSA9IHtcbiAgICBjb3B5OiBTbWFydGZpbGVTaW1wbGUuY29weSxcbiAgICBjaGVja3M6IFNtYXJ0ZmlsZUNoZWNrcyxcbiAgICByZWFkRmlsZVRvU3RyaW5nOiBTbWFydGZpbGVTaW1wbGUucmVhZEZpbGVUb1N0cmluZyxcbiAgICByZWFkRmlsZVRvT2JqZWN0OiBTbWFydGZpbGVTaW1wbGUucmVhZEZpbGVUb09iamVjdCxcbiAgICByZWFkRmlsZVRvVmlueWw6IFNtYXJ0ZmlsZVNpbXBsZS5yZWFkRmlsZVRvVmlueWwsXG4gICAgcmVxdWlyZVJlbG9hZDogU21hcnRmaWxlU2ltcGxlLnJlcXVpcmVSZWxvYWRcbn07XG5cbmV4cG9ydCA9IHNtYXJ0ZmlsZTtcbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
diff --git a/dist/smartfile.checks.js b/dist/smartfile.checks.js
new file mode 100644
index 0000000..67ead18
--- /dev/null
+++ b/dist/smartfile.checks.js
@@ -0,0 +1,33 @@
+"use strict";
+///
+var plugins = require("./smartfile.plugins");
+/**
+ *
+ * @param filePath
+ * @returns {boolean}
+ */
+exports.fileExistsSync = function (filePath) {
+ var fileExistsBool = false;
+ try {
+ plugins.fs.readFileSync(filePath);
+ fileExistsBool = true;
+ }
+ catch (err) {
+ fileExistsBool = false;
+ }
+ return fileExistsBool;
+};
+/**
+ *
+ * @param filePath
+ * @returns {any}
+ */
+exports.fileExists = function (filePath) {
+ var done = plugins.q.defer();
+ plugins.fs.access(filePath, plugins.fs.R_OK, function (err) {
+ err ? done.reject() : done.resolve();
+ });
+ return done.promise;
+};
+
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZmlsZS5jaGVja3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDRDQUE0QztBQUM1QyxJQUFPLE9BQU8sV0FBVyxxQkFBcUIsQ0FBQyxDQUFDO0FBRWhEOzs7O0dBSUc7QUFDUSxzQkFBYyxHQUFHLFVBQVMsUUFBUTtJQUN6QyxJQUFJLGNBQWMsR0FBVyxLQUFLLENBQUM7SUFDbkMsSUFBSSxDQUFDO1FBQ0QsT0FBTyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEMsY0FBYyxHQUFHLElBQUksQ0FBQTtJQUN6QixDQUNBO0lBQUEsS0FBSyxDQUFBLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQztRQUNQLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUNELE1BQU0sQ0FBQyxjQUFjLENBQUM7QUFDMUIsQ0FBQyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNRLGtCQUFVLEdBQUcsVUFBUyxRQUFRO0lBQ3JDLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLFVBQVUsR0FBRztRQUN0RCxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN6QyxDQUFDLENBQUMsQ0FBQztJQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQyIsImZpbGUiOiJzbWFydGZpbGUuY2hlY2tzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4vdHlwaW5ncy9tYWluLmQudHNcIiAvPlxuaW1wb3J0IHBsdWdpbnMgPSByZXF1aXJlKFwiLi9zbWFydGZpbGUucGx1Z2luc1wiKTtcblxuLyoqXG4gKlxuICogQHBhcmFtIGZpbGVQYXRoXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGxldCBmaWxlRXhpc3RzU3luYyA9IGZ1bmN0aW9uKGZpbGVQYXRoKTpib29sZWFuIHtcbiAgICBsZXQgZmlsZUV4aXN0c0Jvb2w6Ym9vbGVhbiA9IGZhbHNlO1xuICAgIHRyeSB7XG4gICAgICAgIHBsdWdpbnMuZnMucmVhZEZpbGVTeW5jKGZpbGVQYXRoKTtcbiAgICAgICAgZmlsZUV4aXN0c0Jvb2wgPSB0cnVlXG4gICAgfVxuICAgIGNhdGNoKGVycil7XG4gICAgICAgIGZpbGVFeGlzdHNCb29sID0gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBmaWxlRXhpc3RzQm9vbDtcbn07XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBmaWxlUGF0aFxuICogQHJldHVybnMge2FueX1cbiAqL1xuZXhwb3J0IGxldCBmaWxlRXhpc3RzID0gZnVuY3Rpb24oZmlsZVBhdGgpe1xuICAgIGxldCBkb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XG4gICAgcGx1Z2lucy5mcy5hY2Nlc3MoZmlsZVBhdGgsIHBsdWdpbnMuZnMuUl9PSywgZnVuY3Rpb24gKGVycikge1xuICAgICAgICBlcnIgPyBkb25lLnJlamVjdCgpIDogZG9uZS5yZXNvbHZlKCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGRvbmUucHJvbWlzZTtcbn07XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=
diff --git a/dist/smartfile.plugins.js b/dist/smartfile.plugins.js
new file mode 100644
index 0000000..79c6fcc
--- /dev/null
+++ b/dist/smartfile.plugins.js
@@ -0,0 +1,13 @@
+"use strict";
+///
+exports.beautylog = require("beautylog");
+exports.fs = require("fs-extra");
+exports.path = require("path");
+exports.q = require("q");
+exports.vinyl = require("vinyl");
+exports.vinylFile = require("vinyl-file");
+exports.yaml = require("js-yaml");
+exports.requireReload = require("require-reload");
+exports.shelljs = require("shelljs");
+
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZmlsZS5wbHVnaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0Q0FBNEM7QUFDakMsaUJBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakMsVUFBRSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN6QixZQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZCLFNBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDakIsYUFBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN6QixpQkFBUyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNsQyxZQUFJLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzFCLHFCQUFhLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDMUMsZUFBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyIsImZpbGUiOiJzbWFydGZpbGUucGx1Z2lucy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuL3R5cGluZ3MvbWFpbi5kLnRzXCIgLz5cbmV4cG9ydCBsZXQgYmVhdXR5bG9nID0gcmVxdWlyZShcImJlYXV0eWxvZ1wiKTtcbmV4cG9ydCBsZXQgZnMgPSByZXF1aXJlKFwiZnMtZXh0cmFcIik7XG5leHBvcnQgbGV0IHBhdGggPSByZXF1aXJlKFwicGF0aFwiKTtcbmV4cG9ydCBsZXQgcSA9IHJlcXVpcmUoXCJxXCIpO1xuZXhwb3J0IGxldCB2aW55bCA9IHJlcXVpcmUoXCJ2aW55bFwiKTtcbmV4cG9ydCBsZXQgdmlueWxGaWxlID0gcmVxdWlyZShcInZpbnlsLWZpbGVcIik7XG5leHBvcnQgbGV0IHlhbWwgPSByZXF1aXJlKFwianMteWFtbFwiKTtcbmV4cG9ydCBsZXQgcmVxdWlyZVJlbG9hZCA9IHJlcXVpcmUoXCJyZXF1aXJlLXJlbG9hZFwiKTtcbmV4cG9ydCBsZXQgc2hlbGxqcyA9IHJlcXVpcmUoXCJzaGVsbGpzXCIpO1xuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
diff --git a/dist/smartfile.simple.js b/dist/smartfile.simple.js
new file mode 100644
index 0000000..280f04e
--- /dev/null
+++ b/dist/smartfile.simple.js
@@ -0,0 +1,69 @@
+///
+"use strict";
+var plugins = require("./smartfile.plugins");
+exports.copy = function (fromArg, toArg) {
+ plugins.shelljs.cp("-r", fromArg, toArg);
+};
+/**
+ * reads a file content to a String
+ * @param filePath
+ * @returns {string|Buffer|any}
+ */
+exports.readFileToString = function (filePath) {
+ var fileString;
+ fileString = plugins.fs.readFileSync(filePath, "utf8");
+ return fileString;
+};
+/**
+ *
+ * @param filePath
+ * @param fileTypeArg
+ * @returns {any}
+ */
+exports.readFileToObject = function (filePath, fileTypeArg) {
+ if (fileTypeArg === void 0) { fileTypeArg = undefined; }
+ var fileType;
+ if (typeof 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, {});
+ default:
+ plugins.beautylog.error("file type " + fileType.blue + " not supported");
+ break;
+ }
+};
+/**
+ *
+ * @param filePathArg
+ * @param options
+ * @returns {number}
+ */
+exports.readFileToVinyl = function (filePathArg, options) {
+ if (options === void 0) { options = {}; }
+ return plugins.vinylFile.readSync(filePathArg, options);
+};
+/**
+ * lets you reload files hot.
+ * @param path
+ * @returns {any}
+ */
+exports.requireReload = function (path) {
+ return plugins.requireReload(path);
+};
+
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZmlsZS5zaW1wbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNENBQTRDOztBQUU1QyxJQUFPLE9BQU8sV0FBVyxxQkFBcUIsQ0FBQyxDQUFDO0FBRXJDLFlBQUksR0FBRyxVQUFTLE9BQWMsRUFBQyxLQUFZO0lBQ2xELE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsS0FBSyxDQUFDLENBQUM7QUFDM0MsQ0FBQyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNRLHdCQUFnQixHQUFHLFVBQVMsUUFBUTtJQUMzQyxJQUFJLFVBQVUsQ0FBQztJQUNmLFVBQVUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdkQsTUFBTSxDQUFDLFVBQVUsQ0FBQztBQUN0QixDQUFDLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNRLHdCQUFnQixHQUFHLFVBQVMsUUFBUSxFQUFDLFdBQXVCO0lBQXZCLDJCQUF1QixHQUF2Qix1QkFBdUI7SUFDbkUsSUFBSSxRQUFRLENBQUM7SUFDYixFQUFFLENBQUMsQ0FBQyxPQUFPLFdBQVcsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixRQUFRLEdBQUcsV0FBVyxDQUFDO0lBQzNCLENBQUM7SUFDRCxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyx3QkFBd0I7SUFDeEUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNmLEtBQUssS0FBSyxDQUFFO1FBQ1osS0FBSyxNQUFNO1lBQ1AsSUFBSSxDQUFDO2dCQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUM1RSxDQUFFO1lBQUEsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQztnQkFDUixPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDLElBQUksR0FBRyx5QkFBeUIsQ0FBQyxDQUFDO1lBQ3ZGLENBQUM7WUFDRCxLQUFLLENBQUM7UUFDVixLQUFLLE1BQU07WUFDUCxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hEO1lBQ0ksT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQztZQUN6RSxLQUFLLENBQUM7SUFDZCxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDUSx1QkFBZSxHQUFHLFVBQVMsV0FBVyxFQUFDLE9BQVk7SUFBWix1QkFBWSxHQUFaLFlBQVk7SUFDMUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBQyxPQUFPLENBQUMsQ0FBQztBQUMzRCxDQUFDLENBQUM7QUFFRjs7OztHQUlHO0FBQ1EscUJBQWEsR0FBRyxVQUFTLElBQVc7SUFDM0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdkMsQ0FBQyxDQUFDIiwiZmlsZSI6InNtYXJ0ZmlsZS5zaW1wbGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi90eXBpbmdzL21haW4uZC50c1wiIC8+XG5cbmltcG9ydCBwbHVnaW5zID0gcmVxdWlyZShcIi4vc21hcnRmaWxlLnBsdWdpbnNcIik7XG5cbmV4cG9ydCBsZXQgY29weSA9IGZ1bmN0aW9uKGZyb21Bcmc6c3RyaW5nLHRvQXJnOnN0cmluZyl7XG4gICAgcGx1Z2lucy5zaGVsbGpzLmNwKFwiLXJcIixmcm9tQXJnLHRvQXJnKTtcbn07XG5cbi8qKlxuICogcmVhZHMgYSBmaWxlIGNvbnRlbnQgdG8gYSBTdHJpbmdcbiAqIEBwYXJhbSBmaWxlUGF0aFxuICogQHJldHVybnMge3N0cmluZ3xCdWZmZXJ8YW55fVxuICovXG5leHBvcnQgbGV0IHJlYWRGaWxlVG9TdHJpbmcgPSBmdW5jdGlvbihmaWxlUGF0aCkge1xuICAgIGxldCBmaWxlU3RyaW5nO1xuICAgIGZpbGVTdHJpbmcgPSBwbHVnaW5zLmZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgXCJ1dGY4XCIpO1xuICAgIHJldHVybiBmaWxlU3RyaW5nO1xufTtcblxuLyoqXG4gKlxuICogQHBhcmFtIGZpbGVQYXRoXG4gKiBAcGFyYW0gZmlsZVR5cGVBcmdcbiAqIEByZXR1cm5zIHthbnl9XG4gKi9cbmV4cG9ydCBsZXQgcmVhZEZpbGVUb09iamVjdCA9IGZ1bmN0aW9uKGZpbGVQYXRoLGZpbGVUeXBlQXJnID0gdW5kZWZpbmVkKSB7XG4gICAgbGV0IGZpbGVUeXBlO1xuICAgIGlmICh0eXBlb2YgZmlsZVR5cGVBcmcgPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBmaWxlVHlwZSA9IHBsdWdpbnMucGF0aC5leHRuYW1lKGZpbGVQYXRoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBmaWxlVHlwZSA9IGZpbGVUeXBlQXJnO1xuICAgIH1cbiAgICBmaWxlVHlwZSA9IGZpbGVUeXBlLnJlcGxhY2UoL1xcLihbYS16XSopLyxcIiQxXCIpOyAvL3JlbW92ZSAuIGZvcm0gZmlsZVR5cGVcbiAgICBzd2l0Y2ggKGZpbGVUeXBlKSB7XG4gICAgICAgIGNhc2UgXCJ5bWxcIiA6XG4gICAgICAgIGNhc2UgXCJ5YW1sXCI6XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwbHVnaW5zLnlhbWwuc2FmZUxvYWQocGx1Z2lucy5mcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgsICd1dGY4JykpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSl7XG4gICAgICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cuZXJyb3IoXCJjaGVjayB0aGF0IFwiICsgZmlsZVBhdGguYmx1ZSArIFwiIHBvaW50cyB0byBhIHZhbGlkIGZpbGVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImpzb25cIjpcbiAgICAgICAgICAgIHJldHVybiBwbHVnaW5zLmZzLnJlYWRKc29uU3luYyhmaWxlUGF0aCx7fSk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBwbHVnaW5zLmJlYXV0eWxvZy5lcnJvcihcImZpbGUgdHlwZSBcIiArIGZpbGVUeXBlLmJsdWUgKyBcIiBub3Qgc3VwcG9ydGVkXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxufTtcblxuLyoqXG4gKlxuICogQHBhcmFtIGZpbGVQYXRoQXJnXG4gKiBAcGFyYW0gb3B0aW9uc1xuICogQHJldHVybnMge251bWJlcn1cbiAqL1xuZXhwb3J0IGxldCByZWFkRmlsZVRvVmlueWwgPSBmdW5jdGlvbihmaWxlUGF0aEFyZyxvcHRpb25zID0ge30pIHtcbiAgICByZXR1cm4gcGx1Z2lucy52aW55bEZpbGUucmVhZFN5bmMoZmlsZVBhdGhBcmcsb3B0aW9ucyk7XG59O1xuXG4vKipcbiAqIGxldHMgeW91IHJlbG9hZCBmaWxlcyBob3QuXG4gKiBAcGFyYW0gcGF0aFxuICogQHJldHVybnMge2FueX1cbiAqL1xuZXhwb3J0IGxldCByZXF1aXJlUmVsb2FkID0gZnVuY3Rpb24ocGF0aDpzdHJpbmcpe1xuICAgIHJldHVybiBwbHVnaW5zLnJlcXVpcmVSZWxvYWQocGF0aCk7XG59OyJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
diff --git a/index.d.ts b/index.d.ts
deleted file mode 100644
index 68f542c..0000000
--- a/index.d.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-///
-declare module SmartfilePlugins {
- var init: () => {
- beautylog: any;
- fs: any;
- path: any;
- q: any;
- vinyl: any;
- vinylFile: any;
- yaml: any;
- requireReload: any;
- };
-}
-declare module SmartfileCheck {
- var init: (objectArg: any) => void;
-}
-declare module SmartfileSimple {
- var init: (objectArg: any) => void;
-}
-declare module SmartfileVinyl {
- var init: (objectArg: any) => void;
-}
-declare module SmartfileRequire {
- var init: (objectArg: any) => void;
-}
-declare var plugins: {
- beautylog: any;
- fs: any;
- path: any;
- q: any;
- vinyl: any;
- vinylFile: any;
- yaml: any;
- requireReload: any;
-};
-declare var smartfile: any;
diff --git a/index.js b/index.js
deleted file mode 100644
index b7ffd98..0000000
--- a/index.js
+++ /dev/null
@@ -1,123 +0,0 @@
-#!/usr/bin/env node
-
-///
-var SmartfilePlugins;
-(function (SmartfilePlugins) {
- SmartfilePlugins.init = function () {
- var plugins = {
- beautylog: require("beautylog"),
- fs: require("fs-extra"),
- path: require("path"),
- q: require("q"),
- vinyl: require("vinyl"),
- vinylFile: require("vinyl-file"),
- yaml: require("js-yaml"),
- requireReload: require("require-reload")
- };
- return plugins;
- };
-})(SmartfilePlugins || (SmartfilePlugins = {}));
-///
-var SmartfileCheck;
-(function (SmartfileCheck) {
- var checks = {
- fileExistsSync: function (filePath) {
- var fileExistsBool = false;
- try {
- plugins.fs.readFileSync(filePath);
- fileExistsBool = true;
- }
- catch (err) {
- fileExistsBool = false;
- }
- return fileExistsBool;
- },
- fileExists: function (filePath) {
- var done = plugins.q.defer();
- plugins.fs.access(filePath, plugins.fs.R_OK, function (err) {
- err ? done.reject() : done.resolve();
- });
- return done.promise;
- }
- };
- SmartfileCheck.init = function (objectArg) {
- objectArg.checks = checks;
- };
-})(SmartfileCheck || (SmartfileCheck = {}));
-///
-var SmartfileSimple;
-(function (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) {
- if (fileTypeArg === void 0) { 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;
- }
- };
- SmartfileSimple.init = function (objectArg) {
- objectArg.readFileToString = readFileToString;
- objectArg.readFileToObject = readFileToObject;
- };
-})(SmartfileSimple || (SmartfileSimple = {}));
-///
-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 = {}));
-///
-var SmartfileRequire;
-(function (SmartfileRequire) {
- var requireReload = function (path) {
- return plugins.requireReload(path);
- };
- SmartfileRequire.init = function (objectArg) {
- objectArg.requireReload = requireReload;
- };
-})(SmartfileRequire || (SmartfileRequire = {}));
-///
-///
-///
-///
-///
-///
-var plugins = SmartfilePlugins.init();
-var smartfile = {};
-SmartfileCheck.init(smartfile);
-SmartfileSimple.init(smartfile);
-SmartfileVinyl.init(smartfile);
-SmartfileRequire.init(smartfile);
-module.exports = smartfile;
diff --git a/package.json b/package.json
index ff27555..bf2e2d7 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"name": "smartfile",
"version": "0.0.12",
"description": "offers smart ways to work with files in nodejs",
- "main": "index.js",
+ "main": "dist/index.js",
"scripts": {
"test": "(npmts)",
"reinstall": "(rm -r node_modules && npm install)",
@@ -25,17 +25,17 @@
},
"homepage": "https://github.com/pushrocks/smartfile",
"dependencies": {
- "beautylog": "2.0.6",
+ "beautylog": "3.1.2",
"fs-extra": "0.26.5",
- "js-yaml": "3.5.2",
- "q": "^1.4.1",
+ "js-yaml": "3.5.4",
+ "q": "1.4.1",
"require-reload": "0.2.2",
+ "shelljs": "^0.6.0",
"vinyl": "1.1.1",
"vinyl-file": "2.0.0"
},
"devDependencies": {
- "beautylog": "2.0.7",
- "npmts": "2.2.2",
+ "npmts": "3.4.1",
"should": "^8.2.2"
}
}
diff --git a/test/test.d.ts b/test/test.d.ts
deleted file mode 100644
index 27b07c6..0000000
--- a/test/test.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-///
-declare var smartfile: any;
-declare var beautylog: any;
-declare var should: any;
-declare var vinyl: any;
diff --git a/test/test.js b/test/test.js
index 9bcd9f4..c91eeb6 100644
--- a/test/test.js
+++ b/test/test.js
@@ -1,7 +1,5 @@
-#!/usr/bin/env node
-
-///
-var smartfile = require("../index.js");
+///
+var smartfile = require("../dist/index.js");
var beautylog = require("beautylog");
var should = require("should");
var vinyl = require("vinyl");
@@ -17,6 +15,9 @@ describe("smartfile", function () {
testData.should.have.property("key1", "this works");
testData.should.have.property("key2", "this works too");
});
+ it("should state unknown file type for unknown file types", function () {
+ var testData = smartfile.readFileToObject("./test/mytest.txt");
+ });
it("should read an " + ".json".blue + " file to an object", function () {
var testData = smartfile.readFileToObject("./test/mytest.json");
testData.should.have.property("key1", "this works");
@@ -44,4 +45,16 @@ describe("smartfile", function () {
});
});
});
+ describe("copy", function () {
+ it("should copy a directory", function () {
+ smartfile.copy("./test/testfolder/", "./test/assets/");
+ });
+ it("should copy a file", function () {
+ smartfile.copy("./test/mytest.yaml", "./test/assets/");
+ });
+ it("should copy a file and rename it", function () {
+ smartfile.copy("./test/mytest.yaml", "./test/assets/mytestRenamed.yaml");
+ });
+ });
});
+//# sourceMappingURL=test.js.map
\ No newline at end of file
diff --git a/test/test.js.map b/test/test.js.map
new file mode 100644
index 0000000..379fde2
--- /dev/null
+++ b/test/test.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"test.js","sourceRoot":"","sources":["test.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,IAAI,SAAS,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAC5C,IAAI,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AACrC,IAAI,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC/B,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAE7B,QAAQ,CAAC,WAAW,EAAC;IACjB,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAC;QAChC,EAAE,CAAC,gCAAgC,EAAC;YAChC,MAAM,CAAC,KAAK,CACR,SAAS,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,EAC/C,sBAAsB,CACzB,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAC;QAChC,EAAE,CAAC,iBAAiB,GAAG,OAAO,CAAC,IAAI,GAAG,oBAAoB,EAAC;YACvD,IAAI,QAAQ,GAAG,SAAS,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;YAChE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAC,YAAY,CAAC,CAAC;YACnD,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAC,gBAAgB,CAAC,CAAC;QAE3D,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,uDAAuD,EAAC;YACvD,IAAI,QAAQ,GAAG,SAAS,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iBAAiB,GAAG,OAAO,CAAC,IAAI,GAAG,oBAAoB,EAAC;YACvD,IAAI,QAAQ,GAAG,SAAS,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;YAChE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAC,YAAY,CAAC,CAAC;YACnD,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAC,gBAAgB,CAAC,CAAC;QAE3D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAC;QAC/B,EAAE,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,IAAI,GAAG,cAAc,GAAG,mBAAmB,CAAC,IAAI,EAAC;YACrF,IAAI,QAAQ,GAAG,SAAS,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;YAC/D,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QAE/C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAC;QACtB,QAAQ,CAAC,iBAAiB,CAAC,MAAM,EAAC;YAC9B,EAAE,CAAC,mCAAmC,EAAC;gBACnC,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;gBACzE,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAChF,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAC;YAC1B,EAAE,CAAC,iCAAiC,EAAC;gBACjC,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;gBACxE,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;gBAC1E,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;YACpF,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,MAAM,EAAC;QACZ,EAAE,CAAC,yBAAyB,EAAC;YACzB,SAAS,CAAC,IAAI,CAAC,oBAAoB,EAAC,gBAAgB,CAAC,CAAA;QACzD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,oBAAoB,EAAC;YACpB,SAAS,CAAC,IAAI,CAAC,oBAAoB,EAAC,gBAAgB,CAAC,CAAA;QACzD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,kCAAkC,EAAC;YAClC,SAAS,CAAC,IAAI,CAAC,oBAAoB,EAAC,kCAAkC,CAAC,CAAA;QAC3E,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
\ No newline at end of file
diff --git a/ts/test.ts b/test/test.ts
similarity index 75%
rename from ts/test.ts
rename to test/test.ts
index 7b6d091..b136950 100644
--- a/ts/test.ts
+++ b/test/test.ts
@@ -1,8 +1,9 @@
-///
-var smartfile = require("../index.js");
+///
+var smartfile = require("../dist/index.js");
var beautylog = require("beautylog");
var should = require("should");
var vinyl = require("vinyl");
+
describe("smartfile",function(){
describe(".readFileToString".yellow,function(){
it("should read a file to a string",function(){
@@ -19,6 +20,9 @@ describe("smartfile",function(){
testData.should.have.property("key2","this works too");
});
+ it("should state unknown file type for unknown file types",function(){
+ var testData = smartfile.readFileToObject("./test/mytest.txt");
+ });
it("should read an " + ".json".blue + " file to an object",function(){
var testData = smartfile.readFileToObject("./test/mytest.json");
testData.should.have.property("key1","this works");
@@ -48,4 +52,15 @@ describe("smartfile",function(){
});
})
});
+ describe("copy",function(){
+ it("should copy a directory",function(){
+ smartfile.copy("./test/testfolder/","./test/assets/")
+ });
+ it("should copy a file",function(){
+ smartfile.copy("./test/mytest.yaml","./test/assets/")
+ });
+ it("should copy a file and rename it",function(){
+ smartfile.copy("./test/mytest.yaml","./test/assets/mytestRenamed.yaml")
+ });
+ });
});
diff --git a/test/testfolder/testfile1.txt b/test/testfolder/testfile1.txt
new file mode 100644
index 0000000..e69de29
diff --git a/test/testfolder/testfile2.txt b/test/testfolder/testfile2.txt
new file mode 100644
index 0000000..e69de29
diff --git a/ts/index.ts b/ts/index.ts
index 7cc04ea..e5647e5 100644
--- a/ts/index.ts
+++ b/ts/index.ts
@@ -1,19 +1,17 @@
///
-///
-///
-///
-///
-///
-var plugins = SmartfilePlugins.init();
+
+import plugins = require("./smartfile.plugins");
+import SmartfileChecks = require("./smartfile.checks");
+import SmartfileSimple = require("./smartfile.simple");
-var smartfile:any = {};
-SmartfileCheck.init(smartfile);
-SmartfileSimple.init(smartfile);
-SmartfileVinyl.init(smartfile);
-SmartfileRequire.init(smartfile);
+var smartfile:any = {
+ copy: SmartfileSimple.copy,
+ checks: SmartfileChecks,
+ readFileToString: SmartfileSimple.readFileToString,
+ readFileToObject: SmartfileSimple.readFileToObject,
+ readFileToVinyl: SmartfileSimple.readFileToVinyl,
+ requireReload: SmartfileSimple.requireReload
+};
-
-
-
-module.exports = smartfile;
+export = smartfile;
diff --git a/ts/smartfile.check.ts b/ts/smartfile.check.ts
deleted file mode 100644
index 342a6f6..0000000
--- a/ts/smartfile.check.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-///
-module SmartfileCheck {
- var checks = {
- fileExistsSync: function(filePath):boolean {
- var fileExistsBool:boolean = false;
- try {
- plugins.fs.readFileSync(filePath)
- fileExistsBool = true
- }
- catch(err){
- fileExistsBool = false;
- }
- return fileExistsBool;
- },
- fileExists: function(filePath){
- var done = plugins.q.defer();
- plugins.fs.access(filePath, plugins.fs.R_OK, function (err) {
- err ? done.reject() : done.resolve();
- });
- return done.promise;
- }
- };
- export var init = function(objectArg){
- objectArg.checks = checks;
- }
-}
\ No newline at end of file
diff --git a/ts/smartfile.checks.ts b/ts/smartfile.checks.ts
new file mode 100644
index 0000000..2dc4665
--- /dev/null
+++ b/ts/smartfile.checks.ts
@@ -0,0 +1,32 @@
+///
+import plugins = require("./smartfile.plugins");
+
+/**
+ *
+ * @param filePath
+ * @returns {boolean}
+ */
+export let fileExistsSync = function(filePath):boolean {
+ let fileExistsBool:boolean = false;
+ try {
+ plugins.fs.readFileSync(filePath);
+ fileExistsBool = true
+ }
+ catch(err){
+ fileExistsBool = false;
+ }
+ return fileExistsBool;
+};
+
+/**
+ *
+ * @param filePath
+ * @returns {any}
+ */
+export let fileExists = function(filePath){
+ let done = plugins.q.defer();
+ plugins.fs.access(filePath, plugins.fs.R_OK, function (err) {
+ err ? done.reject() : done.resolve();
+ });
+ return done.promise;
+};
diff --git a/ts/smartfile.plugins.ts b/ts/smartfile.plugins.ts
index 5c3cbd9..08353d5 100644
--- a/ts/smartfile.plugins.ts
+++ b/ts/smartfile.plugins.ts
@@ -1,16 +1,10 @@
-///
-module SmartfilePlugins {
- export var init = function() {
- var plugins = {
- beautylog: require("beautylog"),
- fs: require("fs-extra"),
- path: require("path"),
- q: require("q"),
- vinyl: require("vinyl"),
- vinylFile: require("vinyl-file"),
- yaml: require("js-yaml"),
- requireReload: require("require-reload")
- };
- return plugins;
- }
-}
\ No newline at end of file
+///
+export let beautylog = require("beautylog");
+export let fs = require("fs-extra");
+export let path = require("path");
+export let q = require("q");
+export let vinyl = require("vinyl");
+export let vinylFile = require("vinyl-file");
+export let yaml = require("js-yaml");
+export let requireReload = require("require-reload");
+export let shelljs = require("shelljs");
diff --git a/ts/smartfile.require.ts b/ts/smartfile.require.ts
deleted file mode 100644
index ba080bb..0000000
--- a/ts/smartfile.require.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-///
-module SmartfileRequire {
- var requireReload = function(path:string){
- return plugins.requireReload(path);
- };
-
- export var init = function(objectArg){
- objectArg.requireReload = requireReload;
- }
-}
\ No newline at end of file
diff --git a/ts/smartfile.simple.ts b/ts/smartfile.simple.ts
index c597110..8b55428 100644
--- a/ts/smartfile.simple.ts
+++ b/ts/smartfile.simple.ts
@@ -1,39 +1,68 @@
-///
-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;
- };
-}
\ No newline at end of file
+///
+
+import plugins = require("./smartfile.plugins");
+
+export let copy = function(fromArg:string,toArg:string){
+ plugins.shelljs.cp("-r",fromArg,toArg);
+};
+
+/**
+ * reads a file content to a String
+ * @param filePath
+ * @returns {string|Buffer|any}
+ */
+export let readFileToString = function(filePath) {
+ let fileString;
+ fileString = plugins.fs.readFileSync(filePath, "utf8");
+ return fileString;
+};
+
+/**
+ *
+ * @param filePath
+ * @param fileTypeArg
+ * @returns {any}
+ */
+export let readFileToObject = function(filePath,fileTypeArg = undefined) {
+ let fileType;
+ if (typeof 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,{});
+ default:
+ plugins.beautylog.error("file type " + fileType.blue + " not supported");
+ break;
+ }
+};
+
+/**
+ *
+ * @param filePathArg
+ * @param options
+ * @returns {number}
+ */
+export let readFileToVinyl = function(filePathArg,options = {}) {
+ return plugins.vinylFile.readSync(filePathArg,options);
+};
+
+/**
+ * lets you reload files hot.
+ * @param path
+ * @returns {any}
+ */
+export let requireReload = function(path:string){
+ return plugins.requireReload(path);
+};
\ No newline at end of file
diff --git a/ts/smartfile.vinyl.ts b/ts/smartfile.vinyl.ts
deleted file mode 100644
index d1e8161..0000000
--- a/ts/smartfile.vinyl.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-///
-module SmartfileVinyl {
- var readFileToVinyl = function(filePathArg,options = {}) {
- return plugins.vinylFile.readSync(filePathArg,options);
- };
- export var init = function(objectArg) {
- objectArg.readFileToVinyl = readFileToVinyl;
- };
-}
\ No newline at end of file
diff --git a/ts/typings.json b/ts/typings.json
index 0e9ea42..4ee2880 100644
--- a/ts/typings.json
+++ b/ts/typings.json
@@ -3,6 +3,6 @@
"browserify": "github:DefinitelyTyped/DefinitelyTyped/browserify/browserify.d.ts",
"colors": "github:DefinitelyTyped/DefinitelyTyped/colors/colors.d.ts",
"mocha": "github:Bartvds/tsd-deftools/typings/DefinitelyTyped/mocha/mocha.d.ts",
- "node": "github:DefinitelyTyped/DefinitelyTyped/node/node.d.ts"
+ "node": "registry:dt/node#4.0.0+20160311162451"
}
}