diff --git a/dist/index.js b/dist/index.js index d999975..7a264c3 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,14 +1,16 @@ "use strict"; -var SmartpathTransform = require("./smartpath.transform"); +var SmartpathCheck = require("./smartpath.check"); var SmartpathGet = require("./smartpath.get"); +var SmartpathTransform = require("./smartpath.transform"); /** * * @type {{getPath: (function(any): undefined)}} */ var smartpath = { - transform: SmartpathTransform, - get: SmartpathGet + check: SmartpathCheck, + get: SmartpathGet, + transform: SmartpathTransform }; module.exports = smartpath; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxJQUFPLGtCQUFrQixXQUFXLHVCQUF1QixDQUFDLENBQUM7QUFDN0QsSUFBTyxZQUFZLFdBQVcsaUJBQWlCLENBQUMsQ0FBQztBQUVqRDs7O0dBR0c7QUFDSCxJQUFJLFNBQVMsR0FBRztJQUNaLFNBQVMsRUFBRSxrQkFBa0I7SUFDN0IsR0FBRyxFQUFFLFlBQVk7Q0FFcEIsQ0FBQztBQUdGLGlCQUFTLFNBQVMsQ0FBQyIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJ0eXBpbmdzL21haW4uZC50c1wiIC8+XG5pbXBvcnQgcGx1Z2lucyA9IHJlcXVpcmUoXCIuL3NtYXJ0cGF0aC5wbHVnaW5zXCIpO1xuaW1wb3J0IFNtYXJ0cGF0aFRyYW5zZm9ybSA9IHJlcXVpcmUoXCIuL3NtYXJ0cGF0aC50cmFuc2Zvcm1cIik7XG5pbXBvcnQgU21hcnRwYXRoR2V0ID0gcmVxdWlyZShcIi4vc21hcnRwYXRoLmdldFwiKTtcblxuLyoqXG4gKlxuICogQHR5cGUge3tnZXRQYXRoOiAoZnVuY3Rpb24oYW55KTogdW5kZWZpbmVkKX19XG4gKi9cbmxldCBzbWFydHBhdGggPSB7XG4gICAgdHJhbnNmb3JtOiBTbWFydHBhdGhUcmFuc2Zvcm0sXG4gICAgZ2V0OiBTbWFydHBhdGhHZXRcblxufTtcblxuXG5leHBvcnQgPSBzbWFydHBhdGg7XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxJQUFPLGNBQWMsV0FBVyxtQkFBbUIsQ0FBQyxDQUFDO0FBQ3JELElBQU8sWUFBWSxXQUFXLGlCQUFpQixDQUFDLENBQUM7QUFDakQsSUFBTyxrQkFBa0IsV0FBVyx1QkFBdUIsQ0FBQyxDQUFDO0FBRTdEOzs7R0FHRztBQUNILElBQUksU0FBUyxHQUFHO0lBQ1osS0FBSyxFQUFFLGNBQWM7SUFDckIsR0FBRyxFQUFFLFlBQVk7SUFDakIsU0FBUyxFQUFFLGtCQUFrQjtDQUNoQyxDQUFDO0FBR0YsaUJBQVMsU0FBUyxDQUFDIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cInR5cGluZ3MvbWFpbi5kLnRzXCIgLz5cbmltcG9ydCBwbHVnaW5zID0gcmVxdWlyZShcIi4vc21hcnRwYXRoLnBsdWdpbnNcIik7XG5pbXBvcnQgU21hcnRwYXRoQ2hlY2sgPSByZXF1aXJlKFwiLi9zbWFydHBhdGguY2hlY2tcIik7XG5pbXBvcnQgU21hcnRwYXRoR2V0ID0gcmVxdWlyZShcIi4vc21hcnRwYXRoLmdldFwiKTtcbmltcG9ydCBTbWFydHBhdGhUcmFuc2Zvcm0gPSByZXF1aXJlKFwiLi9zbWFydHBhdGgudHJhbnNmb3JtXCIpO1xuXG4vKipcbiAqXG4gKiBAdHlwZSB7e2dldFBhdGg6IChmdW5jdGlvbihhbnkpOiB1bmRlZmluZWQpfX1cbiAqL1xubGV0IHNtYXJ0cGF0aCA9IHtcbiAgICBjaGVjazogU21hcnRwYXRoQ2hlY2ssXG4gICAgZ2V0OiBTbWFydHBhdGhHZXQsXG4gICAgdHJhbnNmb3JtOiBTbWFydHBhdGhUcmFuc2Zvcm1cbn07XG5cblxuZXhwb3J0ID0gc21hcnRwYXRoO1xuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 diff --git a/dist/smartpath.check.js b/dist/smartpath.check.js new file mode 100644 index 0000000..4cebbae --- /dev/null +++ b/dist/smartpath.check.js @@ -0,0 +1,9 @@ +"use strict"; +exports.isDir = function (pathArg) { + return !exports.isFile(pathArg); +}; +exports.isFile = function (pathArg) { + return /\.[a-zA-Z]*$/.test(pathArg); // checks if there is a .anything at the end +}; + +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0cGF0aC5jaGVjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRVcsYUFBSyxHQUFHLFVBQVMsT0FBYztJQUN0QyxNQUFNLENBQUMsQ0FBQyxjQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDNUIsQ0FBQyxDQUFBO0FBRVUsY0FBTSxHQUFHLFVBQVMsT0FBTztJQUNoQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLDRDQUE0QztBQUNyRixDQUFDLENBQUEiLCJmaWxlIjoic21hcnRwYXRoLmNoZWNrLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBsdWdpbnMgPSByZXF1aXJlKFwiLi9zbWFydHBhdGgucGx1Z2luc1wiKTtcblxuZXhwb3J0IGxldCBpc0RpciA9IGZ1bmN0aW9uKHBhdGhBcmc6c3RyaW5nKXtcbiAgICByZXR1cm4gIWlzRmlsZShwYXRoQXJnKTtcbn1cblxuZXhwb3J0IGxldCBpc0ZpbGUgPSBmdW5jdGlvbihwYXRoQXJnKXtcbiAgICByZXR1cm4gL1xcLlthLXpBLVpdKiQvLnRlc3QocGF0aEFyZyk7IC8vIGNoZWNrcyBpZiB0aGVyZSBpcyBhIC5hbnl0aGluZyBhdCB0aGUgZW5kXG59Il0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 diff --git a/package.json b/package.json index 5895154..be399f8 100644 --- a/package.json +++ b/package.json @@ -22,11 +22,11 @@ }, "homepage": "https://github.com/pushrocks/smartpath", "dependencies": { - "beautylog": "^4.1.1", + "beautylog": "^4.1.2", "home": "^1.0.1" }, "devDependencies": { - "npmts": "^5.0.3", - "should": "^8.3.0" + "npmts": "^5.0.4", + "should": "^8.3.1" } } diff --git a/test/test.js b/test/test.js index 1d72024..0739516 100644 --- a/test/test.js +++ b/test/test.js @@ -2,6 +2,35 @@ var should = require("should"); var smartpath = require("../dist/index.js"); describe("smartpath", function () { + describe(".check", function () { + var filePathString = "./somedir/somefile.json"; + var dirPathString = "./somedir/anotherdir"; + var dirPathString2 = "./somedir/another.dir/"; + describe(".isFile", function () { + it("should be true for a file path", function () { + smartpath.check.isFile(filePathString) + .should.be.true(); + }); + it("should be false for a directory path", function () { + smartpath.check.isFile(dirPathString) + .should.be.false(); + smartpath.check.isFile(dirPathString2) + .should.be.false(); + }); + }); + describe(".isDir", function () { + it("should be true for a directory path", function () { + smartpath.check.isDir(dirPathString) + .should.be.true(); + smartpath.check.isDir(dirPathString2) + .should.be.true(); + }); + it("should be false for a file path", function () { + smartpath.check.isDir(filePathString) + .should.be.false(); + }); + }); + }); describe(".transform", function () { describe("toAbsolute()", function () { var baseString = "/basedir"; @@ -44,4 +73,5 @@ describe("smartpath", function () { }); }); }); -//# sourceMappingURL=test.js.map \ No newline at end of file + +//# sourceMappingURL=data:application/json;base64,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QUFpRCxFQUFDO2dCQUNqRCxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDOUMsQ0FBQyxDQUFDLENBQUM7WUFDSCxFQUFFLENBQUMscUVBQXFFLEVBQUM7Z0JBQ3JFLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6InRlc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vdHMvdHlwaW5ncy9tYWluLmQudHNcIiAvPlxubGV0IHNob3VsZCA9IHJlcXVpcmUoXCJzaG91bGRcIik7XG5sZXQgc21hcnRwYXRoID0gcmVxdWlyZShcIi4uL2Rpc3QvaW5kZXguanNcIik7XG5cbmRlc2NyaWJlKFwic21hcnRwYXRoXCIsZnVuY3Rpb24oKXtcbiAgICBkZXNjcmliZShcIi5jaGVja1wiLGZ1bmN0aW9uKCl7XG4gICAgICAgIGxldCBmaWxlUGF0aFN0cmluZyA9IFwiLi9zb21lZGlyL3NvbWVmaWxlLmpzb25cIlxuICAgICAgICBsZXQgZGlyUGF0aFN0cmluZyA9IFwiLi9zb21lZGlyL2Fub3RoZXJkaXJcIlxuICAgICAgICBsZXQgZGlyUGF0aFN0cmluZzIgPSBcIi4vc29tZWRpci9hbm90aGVyLmRpci9cIlxuICAgICAgICBkZXNjcmliZShcIi5pc0ZpbGVcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgaXQoXCJzaG91bGQgYmUgdHJ1ZSBmb3IgYSBmaWxlIHBhdGhcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgIHNtYXJ0cGF0aC5jaGVjay5pc0ZpbGUoZmlsZVBhdGhTdHJpbmcpXG4gICAgICAgICAgICAgICAgICAgIC5zaG91bGQuYmUudHJ1ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpdChcInNob3VsZCBiZSBmYWxzZSBmb3IgYSBkaXJlY3RvcnkgcGF0aFwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgc21hcnRwYXRoLmNoZWNrLmlzRmlsZShkaXJQYXRoU3RyaW5nKVxuICAgICAgICAgICAgICAgICAgICAuc2hvdWxkLmJlLmZhbHNlKCk7XG4gICAgICAgICAgICAgICAgc21hcnRwYXRoLmNoZWNrLmlzRmlsZShkaXJQYXRoU3RyaW5nMilcbiAgICAgICAgICAgICAgICAgICAgLnNob3VsZC5iZS5mYWxzZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBkZXNjcmliZShcIi5pc0RpclwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICBpdChcInNob3VsZCBiZSB0cnVlIGZvciBhIGRpcmVjdG9yeSBwYXRoXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICBzbWFydHBhdGguY2hlY2suaXNEaXIoZGlyUGF0aFN0cmluZylcbiAgICAgICAgICAgICAgICAgICAgLnNob3VsZC5iZS50cnVlKCk7XG4gICAgICAgICAgICAgICAgc21hcnRwYXRoLmNoZWNrLmlzRGlyKGRpclBhdGhTdHJpbmcyKVxuICAgICAgICAgICAgICAgICAgICAuc2hvdWxkLmJlLnRydWUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaXQoXCJzaG91bGQgYmUgZmFsc2UgZm9yIGEgZmlsZSBwYXRoXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICBzbWFydHBhdGguY2hlY2suaXNEaXIoZmlsZVBhdGhTdHJpbmcpXG4gICAgICAgICAgICAgICAgICAgIC5zaG91bGQuYmUuZmFsc2UoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICBkZXNjcmliZShcIi50cmFuc2Zvcm1cIixmdW5jdGlvbigpe1xuICAgICAgICBkZXNjcmliZShcInRvQWJzb2x1dGUoKVwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICBsZXQgYmFzZVN0cmluZyA9IFwiL2Jhc2VkaXJcIjtcbiAgICAgICAgICAgIGxldCByZWxhdGl2ZVN0cmluZyA9IFwic29tZWRpci9zb21lZmlsZS50eHRcIjtcbiAgICAgICAgICAgIGxldCByZWxhdGl2ZVN0cmluZzIgPSBcImFub3RoZXJkaXIvYW5vdGhlcmZpbGUudHh0XCI7XG4gICAgICAgICAgICBsZXQgcmVsYXRpdmVBcnJheSA9IFtyZWxhdGl2ZVN0cmluZyxyZWxhdGl2ZVN0cmluZyxyZWxhdGl2ZVN0cmluZzJdO1xuICAgICAgICAgICAgaXQoXCJzaG91bGQgbWFrZSBhIHN0cmluZyBhYnNvbHV0ZVwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgc21hcnRwYXRoLnRyYW5zZm9ybS50b0Fic29sdXRlKHJlbGF0aXZlU3RyaW5nKS5zaG91bGQuc3RhcnRXaXRoKFwiL1wiKTtcbiAgICAgICAgICAgICAgICBzbWFydHBhdGgudHJhbnNmb3JtLnRvQWJzb2x1dGUocmVsYXRpdmVTdHJpbmcpLnNob3VsZC5lbmRXaXRoKHJlbGF0aXZlU3RyaW5nKTtcbiAgICAgICAgICAgICAgICBzbWFydHBhdGgudHJhbnNmb3JtLnRvQWJzb2x1dGUocmVsYXRpdmVTdHJpbmcsYmFzZVN0cmluZykuc2hvdWxkLmVxdWFsKFwiL2Jhc2VkaXIvc29tZWRpci9zb21lZmlsZS50eHRcIik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGl0KFwic2hvdWxkIG1ha2UgYW4gYXJyYXkgb2YgcmVsYXRpdmUgU3RyaW5ncyBhbiBBcnJheSBvZiBhYnNvbHV0ZSBTdHJpbmdzXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICBsZXQgYWJzb2x1dGVBcnJheSA9IHNtYXJ0cGF0aC50cmFuc2Zvcm0udG9BYnNvbHV0ZShyZWxhdGl2ZUFycmF5LGJhc2VTdHJpbmcpO1xuICAgICAgICAgICAgICAgIGFic29sdXRlQXJyYXlbMl0uc2hvdWxkLnN0YXJ0V2l0aChcIi9cIik7XG4gICAgICAgICAgICAgICAgYWJzb2x1dGVBcnJheVsyXS5zaG91bGQuZW5kV2l0aChyZWxhdGl2ZVN0cmluZzIpO1xuXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgaXQoXCJzaG91bGQgcmV0dXJuIGZhbHNlIGlmIG5laXRoZXIgU3RyaW5nIG5vciBBcnJheVwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgc21hcnRwYXRoLnRyYW5zZm9ybS50b0Fic29sdXRlKDMpLnNob3VsZC5iZS5mYWxzZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIGRlc2NyaWJlKFwiLmdldFwiLGZ1bmN0aW9uKCl7XG4gICAgICAgIGRlc2NyaWJlKFwiLnR5cGUoKVwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICBpdChcInNob3VsZCByZXR1cm4gJ3VybCcgZm9yIGFuIFVSTFwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgc21hcnRwYXRoLmdldC50eXBlKFwiaHR0cHM6Ly9wdXNoLnJvY2tzL3NvbWUvdXJsXCIpLnNob3VsZC5lcXVhbChcInVybFwiKTtcbiAgICAgICAgICAgICAgICBzbWFydHBhdGguZ2V0LnR5cGUoXCJodHRwczovL3B1c2gucm9ja3Mvc29tZS91cmxcIikuc2hvdWxkLm5vdC5lcXVhbChcImxvY2FsXCIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpdChcInNob3VsZCByZXR1cm4gJ3BhdGgnIGZvciBhIFBhdGhcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgIHNtYXJ0cGF0aC5nZXQudHlwZShcIi9zb21lL2Fic29sdXRlL3BhdGgvXCIpLnNob3VsZC5lcXVhbChcImxvY2FsXCIpO1xuICAgICAgICAgICAgICAgIHNtYXJ0cGF0aC5nZXQudHlwZShcIi4vc29tZS9yZWxhdGl2ZS9wYXRoL1wiKS5zaG91bGQubm90LmVxdWFsKFwidXJsXCIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBkZXNjcmliZShcIi5nZXQoKVwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICBpdChcInNob3VsZCBhIGFic29sdXRlIHBhdGggZm9yIGFuIGhvbWUgcmVsYXRpdmUgVVJMXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhzbWFydHBhdGguZ2V0LmhvbWUoXCJ+L3Rlc3RcIikpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpdChcInNob3VsZCByZXR1cm4gdGhlIGhvbWUgZGlyZWN0b3J5IHBhdGggd2hlbiBubyBhcmd1bWVudCBpcyBzcGVjaWZpZWRcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHNtYXJ0cGF0aC5nZXQuaG9tZSgpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 diff --git a/test/test.ts b/test/test.ts index ea919c7..a85ba53 100644 --- a/test/test.ts +++ b/test/test.ts @@ -3,6 +3,35 @@ let should = require("should"); let smartpath = require("../dist/index.js"); describe("smartpath",function(){ + describe(".check",function(){ + let filePathString = "./somedir/somefile.json" + let dirPathString = "./somedir/anotherdir" + let dirPathString2 = "./somedir/another.dir/" + describe(".isFile",function(){ + it("should be true for a file path",function(){ + smartpath.check.isFile(filePathString) + .should.be.true(); + }); + it("should be false for a directory path",function(){ + smartpath.check.isFile(dirPathString) + .should.be.false(); + smartpath.check.isFile(dirPathString2) + .should.be.false(); + }); + }); + describe(".isDir",function(){ + it("should be true for a directory path",function(){ + smartpath.check.isDir(dirPathString) + .should.be.true(); + smartpath.check.isDir(dirPathString2) + .should.be.true(); + }); + it("should be false for a file path",function(){ + smartpath.check.isDir(filePathString) + .should.be.false(); + }); + }); + }); describe(".transform",function(){ describe("toAbsolute()",function(){ let baseString = "/basedir"; diff --git a/ts/index.ts b/ts/index.ts index ac8cd36..417fcb3 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -1,16 +1,17 @@ /// import plugins = require("./smartpath.plugins"); -import SmartpathTransform = require("./smartpath.transform"); +import SmartpathCheck = require("./smartpath.check"); import SmartpathGet = require("./smartpath.get"); +import SmartpathTransform = require("./smartpath.transform"); /** * * @type {{getPath: (function(any): undefined)}} */ let smartpath = { - transform: SmartpathTransform, - get: SmartpathGet - + check: SmartpathCheck, + get: SmartpathGet, + transform: SmartpathTransform }; diff --git a/ts/smartpath.check.ts b/ts/smartpath.check.ts new file mode 100644 index 0000000..c86f43c --- /dev/null +++ b/ts/smartpath.check.ts @@ -0,0 +1,9 @@ +import plugins = require("./smartpath.plugins"); + +export let isDir = function(pathArg:string){ + return !isFile(pathArg); +} + +export let isFile = function(pathArg){ + return /\.[a-zA-Z]*$/.test(pathArg); // checks if there is a .anything at the end +} \ No newline at end of file