Compare commits

...

5 Commits

Author SHA1 Message Date
7e875212b5 3.0.0 2016-04-05 00:17:33 +02:00
372e00597c update deps 2016-04-05 00:17:08 +02:00
6e32af1c9b 2.3.0 2016-04-04 15:44:04 +02:00
c60eac7787 now has working memory module 2016-04-04 15:44:00 +02:00
581b9e21d3 implemented memory module 2016-04-02 23:03:18 +02:00
15 changed files with 396 additions and 157 deletions

View File

@ -3,8 +3,10 @@ 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)
[![Dependency Status](https://david-dm.org/pushrocks/smartfile.svg)](https://david-dm.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)
[![codecov.io](https://codecov.io/github/pushrocks/smartfile/coverage.svg?branch=master)](https://codecov.io/github/pushrocks/smartfile?branch=master)
## Supported file types:
* .yml .yaml

4
dist/index.js vendored
View File

@ -5,6 +5,7 @@ var SmartfileChecks = require("./smartfile.checks");
var SmartfileFsaction = require("./smartfile.fsaction");
var SmartfileGet = require("./smartfile.get");
var SmartfileLocal = require("./smartfile.local");
var SmartfileMemory = require("./smartfile.memory");
var SmartfileRemote = require("./smartfile.remote");
var smartfile = {
fsaction: SmartfileFsaction,
@ -12,9 +13,10 @@ var smartfile = {
checks: SmartfileChecks,
get: SmartfileGet,
local: SmartfileLocal,
memory: SmartfileMemory,
remote: SmartfileRemote,
requireReload: SmartfileLocal.requireReload
};
module.exports = smartfile;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDRDQUE0Qzs7QUFFNUMsSUFBTyxPQUFPLFdBQVcscUJBQXFCLENBQUMsQ0FBQztBQUNoRCxJQUFPLGVBQWUsV0FBVyxvQkFBb0IsQ0FBQyxDQUFDO0FBQ3ZELElBQU8saUJBQWlCLFdBQVcsc0JBQXNCLENBQUMsQ0FBQztBQUMzRCxJQUFPLFlBQVksV0FBVyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ2pELElBQU8sY0FBYyxXQUFXLG1CQUFtQixDQUFDLENBQUM7QUFDckQsSUFBTyxlQUFlLFdBQVcsb0JBQW9CLENBQUMsQ0FBQztBQUd2RCxJQUFJLFNBQVMsR0FBTztJQUNoQixRQUFRLEVBQUUsaUJBQWlCO0lBQzNCLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRTtJQUNkLE1BQU0sRUFBRSxlQUFlO0lBQ3ZCLEdBQUcsRUFBRSxZQUFZO0lBQ2pCLEtBQUssRUFBRSxjQUFjO0lBQ3JCLE1BQU0sRUFBRSxlQUFlO0lBQ3ZCLGFBQWEsRUFBRSxjQUFjLENBQUMsYUFBYTtDQUM5QyxDQUFDO0FBRUYsaUJBQVMsU0FBUyxDQUFDIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4vdHlwaW5ncy9tYWluLmQudHNcIiAvPlxuXG5pbXBvcnQgcGx1Z2lucyA9IHJlcXVpcmUoXCIuL3NtYXJ0ZmlsZS5wbHVnaW5zXCIpO1xuaW1wb3J0IFNtYXJ0ZmlsZUNoZWNrcyA9IHJlcXVpcmUoXCIuL3NtYXJ0ZmlsZS5jaGVja3NcIik7XG5pbXBvcnQgU21hcnRmaWxlRnNhY3Rpb24gPSByZXF1aXJlKFwiLi9zbWFydGZpbGUuZnNhY3Rpb25cIik7XG5pbXBvcnQgU21hcnRmaWxlR2V0ID0gcmVxdWlyZShcIi4vc21hcnRmaWxlLmdldFwiKTtcbmltcG9ydCBTbWFydGZpbGVMb2NhbCA9IHJlcXVpcmUoXCIuL3NtYXJ0ZmlsZS5sb2NhbFwiKTtcbmltcG9ydCBTbWFydGZpbGVSZW1vdGUgPSByZXF1aXJlKFwiLi9zbWFydGZpbGUucmVtb3RlXCIpO1xuXG5cbnZhciBzbWFydGZpbGU6YW55ID0ge1xuICAgIGZzYWN0aW9uOiBTbWFydGZpbGVGc2FjdGlvbixcbiAgICBmczogcGx1Z2lucy5mcyxcbiAgICBjaGVja3M6IFNtYXJ0ZmlsZUNoZWNrcyxcbiAgICBnZXQ6IFNtYXJ0ZmlsZUdldCxcbiAgICBsb2NhbDogU21hcnRmaWxlTG9jYWwsXG4gICAgcmVtb3RlOiBTbWFydGZpbGVSZW1vdGUsXG4gICAgcmVxdWlyZVJlbG9hZDogU21hcnRmaWxlTG9jYWwucmVxdWlyZVJlbG9hZFxufTtcblxuZXhwb3J0ID0gc21hcnRmaWxlO1xuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDRDQUE0Qzs7QUFFNUMsSUFBTyxPQUFPLFdBQVcscUJBQXFCLENBQUMsQ0FBQztBQUNoRCxJQUFPLGVBQWUsV0FBVyxvQkFBb0IsQ0FBQyxDQUFDO0FBQ3ZELElBQU8saUJBQWlCLFdBQVcsc0JBQXNCLENBQUMsQ0FBQztBQUMzRCxJQUFPLFlBQVksV0FBVyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ2pELElBQU8sY0FBYyxXQUFXLG1CQUFtQixDQUFDLENBQUM7QUFDckQsSUFBTyxlQUFlLFdBQVcsb0JBQW9CLENBQUMsQ0FBQztBQUN2RCxJQUFPLGVBQWUsV0FBVyxvQkFBb0IsQ0FBQyxDQUFDO0FBR3ZELElBQUksU0FBUyxHQUFPO0lBQ2hCLFFBQVEsRUFBRSxpQkFBaUI7SUFDM0IsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFO0lBQ2QsTUFBTSxFQUFFLGVBQWU7SUFDdkIsR0FBRyxFQUFFLFlBQVk7SUFDakIsS0FBSyxFQUFFLGNBQWM7SUFDckIsTUFBTSxFQUFFLGVBQWU7SUFDdkIsTUFBTSxFQUFFLGVBQWU7SUFDdkIsYUFBYSxFQUFFLGNBQWMsQ0FBQyxhQUFhO0NBQzlDLENBQUM7QUFFRixpQkFBUyxTQUFTLENBQUMiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi90eXBpbmdzL21haW4uZC50c1wiIC8+XG5cbmltcG9ydCBwbHVnaW5zID0gcmVxdWlyZShcIi4vc21hcnRmaWxlLnBsdWdpbnNcIik7XG5pbXBvcnQgU21hcnRmaWxlQ2hlY2tzID0gcmVxdWlyZShcIi4vc21hcnRmaWxlLmNoZWNrc1wiKTtcbmltcG9ydCBTbWFydGZpbGVGc2FjdGlvbiA9IHJlcXVpcmUoXCIuL3NtYXJ0ZmlsZS5mc2FjdGlvblwiKTtcbmltcG9ydCBTbWFydGZpbGVHZXQgPSByZXF1aXJlKFwiLi9zbWFydGZpbGUuZ2V0XCIpO1xuaW1wb3J0IFNtYXJ0ZmlsZUxvY2FsID0gcmVxdWlyZShcIi4vc21hcnRmaWxlLmxvY2FsXCIpO1xuaW1wb3J0IFNtYXJ0ZmlsZU1lbW9yeSA9IHJlcXVpcmUoXCIuL3NtYXJ0ZmlsZS5tZW1vcnlcIik7XG5pbXBvcnQgU21hcnRmaWxlUmVtb3RlID0gcmVxdWlyZShcIi4vc21hcnRmaWxlLnJlbW90ZVwiKTtcblxuXG52YXIgc21hcnRmaWxlOmFueSA9IHtcbiAgICBmc2FjdGlvbjogU21hcnRmaWxlRnNhY3Rpb24sXG4gICAgZnM6IHBsdWdpbnMuZnMsXG4gICAgY2hlY2tzOiBTbWFydGZpbGVDaGVja3MsXG4gICAgZ2V0OiBTbWFydGZpbGVHZXQsXG4gICAgbG9jYWw6IFNtYXJ0ZmlsZUxvY2FsLFxuICAgIG1lbW9yeTogU21hcnRmaWxlTWVtb3J5LFxuICAgIHJlbW90ZTogU21hcnRmaWxlUmVtb3RlLFxuICAgIHJlcXVpcmVSZWxvYWQ6IFNtYXJ0ZmlsZUxvY2FsLnJlcXVpcmVSZWxvYWRcbn07XG5cbmV4cG9ydCA9IHNtYXJ0ZmlsZTtcbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==

117
dist/smartfile.memory.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -14,4 +14,4 @@ exports.yaml = require("js-yaml");
exports.request = require("request");
exports.requireReload = require("require-reload");
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZmlsZS5wbHVnaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0Q0FBNEM7QUFDakMsaUJBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakMsVUFBRSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN6QixZQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZCLFNBQUMsR0FBRztJQUNYLFNBQVMsRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUM7Q0FDeEMsQ0FBQztBQUNTLFlBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDdkIsU0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNqQixhQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3pCLGlCQUFTLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ2xDLFlBQUksR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDMUIsZUFBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM3QixxQkFBYSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDIiwiZmlsZSI6InNtYXJ0ZmlsZS5wbHVnaW5zLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4vdHlwaW5ncy9tYWluLmQudHNcIiAvPlxuZXhwb3J0IGxldCBiZWF1dHlsb2cgPSByZXF1aXJlKFwiYmVhdXR5bG9nXCIpO1xuZXhwb3J0IGxldCBmcyA9IHJlcXVpcmUoXCJmcy1leHRyYVwiKTtcbmV4cG9ydCBsZXQgZ3VscCA9IHJlcXVpcmUoXCJndWxwXCIpO1xuZXhwb3J0IGxldCBnID0ge1xuICAgIHJlbW90ZVNyYzogcmVxdWlyZShcImd1bHAtcmVtb3RlLXNyY1wiKVxufTtcbmV4cG9ydCBsZXQgcGF0aCA9IHJlcXVpcmUoXCJwYXRoXCIpO1xuZXhwb3J0IGxldCBxID0gcmVxdWlyZShcInFcIik7XG5leHBvcnQgbGV0IHZpbnlsID0gcmVxdWlyZShcInZpbnlsXCIpO1xuZXhwb3J0IGxldCB2aW55bEZpbGUgPSByZXF1aXJlKFwidmlueWwtZmlsZVwiKTtcbmV4cG9ydCBsZXQgeWFtbCA9IHJlcXVpcmUoXCJqcy15YW1sXCIpO1xuZXhwb3J0IGxldCByZXF1ZXN0ID0gcmVxdWlyZShcInJlcXVlc3RcIik7XG5leHBvcnQgbGV0IHJlcXVpcmVSZWxvYWQgPSByZXF1aXJlKFwicmVxdWlyZS1yZWxvYWRcIik7XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZmlsZS5wbHVnaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0Q0FBNEM7QUFDakMsaUJBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakMsVUFBRSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN6QixZQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZCLFNBQUMsR0FBRztJQUNYLFNBQVMsRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUM7Q0FDeEMsQ0FBQztBQUNZLFlBQUksV0FBVyxNQUFNLENBQUMsQ0FBQztBQUMxQixTQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2QsYUFBSyxXQUFXLE9BQU8sQ0FBQyxDQUFDO0FBQzVCLGlCQUFTLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ2xDLFlBQUksR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDMUIsZUFBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM3QixxQkFBYSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDIiwiZmlsZSI6InNtYXJ0ZmlsZS5wbHVnaW5zLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4vdHlwaW5ncy9tYWluLmQudHNcIiAvPlxuZXhwb3J0IGxldCBiZWF1dHlsb2cgPSByZXF1aXJlKFwiYmVhdXR5bG9nXCIpO1xuZXhwb3J0IGxldCBmcyA9IHJlcXVpcmUoXCJmcy1leHRyYVwiKTtcbmV4cG9ydCBsZXQgZ3VscCA9IHJlcXVpcmUoXCJndWxwXCIpO1xuZXhwb3J0IGxldCBnID0ge1xuICAgIHJlbW90ZVNyYzogcmVxdWlyZShcImd1bHAtcmVtb3RlLXNyY1wiKVxufTtcbmV4cG9ydCBpbXBvcnQgcGF0aCA9IHJlcXVpcmUoXCJwYXRoXCIpO1xuZXhwb3J0IGxldCBxID0gcmVxdWlyZShcInFcIik7XG5leHBvcnQgaW1wb3J0IHZpbnlsID0gcmVxdWlyZShcInZpbnlsXCIpO1xuZXhwb3J0IGxldCB2aW55bEZpbGUgPSByZXF1aXJlKFwidmlueWwtZmlsZVwiKTtcbmV4cG9ydCBsZXQgeWFtbCA9IHJlcXVpcmUoXCJqcy15YW1sXCIpO1xuZXhwb3J0IGxldCByZXF1ZXN0ID0gcmVxdWlyZShcInJlcXVlc3RcIik7XG5leHBvcnQgbGV0IHJlcXVpcmVSZWxvYWQgPSByZXF1aXJlKFwicmVxdWlyZS1yZWxvYWRcIik7XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=

View File

@ -1,69 +0,0 @@
/// <reference path="./typings/main.d.ts" />
"use strict";
var plugins = require("./smartfile.plugins");
exports.toFS = function (options, cb) {
if (cb === void 0) { cb = undefined; }
};
/**
*
* @param filePath
* @param fileTypeArg
* @returns {any}
*/
exports.toObject = 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;
}
};
/**
* reads a file content to a String
* @param filePath
* @returns {string|Buffer|any}
*/
exports.toString = function (filePath) {
var fileString;
fileString = plugins.fs.readFileSync(filePath, "utf8");
return fileString;
};
/**
*
* @param filePathArg
* @param options
* @returns {number}
*/
exports.toVinyl = 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZmlsZS5yZWFkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDRDQUE0Qzs7QUFFNUMsSUFBTyxPQUFPLFdBQVcscUJBQXFCLENBQUMsQ0FBQztBQUVyQyxZQUFJLEdBQUcsVUFBUyxPQUFtQyxFQUFFLEVBQVk7SUFBWixrQkFBWSxHQUFaLGNBQVk7QUFFNUUsQ0FBQyxDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDUSxnQkFBUSxHQUFHLFVBQVMsUUFBUSxFQUFDLFdBQXVCO0lBQXZCLDJCQUF1QixHQUF2Qix1QkFBdUI7SUFDM0QsSUFBSSxRQUFRLENBQUM7SUFDYixFQUFFLENBQUMsQ0FBQyxPQUFPLFdBQVcsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixRQUFRLEdBQUcsV0FBVyxDQUFDO0lBQzNCLENBQUM7SUFDRCxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyx3QkFBd0I7SUFDeEUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNmLEtBQUssS0FBSyxDQUFFO1FBQ1osS0FBSyxNQUFNO1lBQ1AsSUFBSSxDQUFDO2dCQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUM1RSxDQUFFO1lBQUEsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQztnQkFDUixPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDLElBQUksR0FBRyx5QkFBeUIsQ0FBQyxDQUFDO1lBQ3ZGLENBQUM7WUFDRCxLQUFLLENBQUM7UUFDVixLQUFLLE1BQU07WUFDUCxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hEO1lBQ0ksT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQztZQUN6RSxLQUFLLENBQUM7SUFDZCxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNRLGdCQUFRLEdBQUcsVUFBUyxRQUFRO0lBQ25DLElBQUksVUFBVSxDQUFDO0lBQ2YsVUFBVSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN2RCxNQUFNLENBQUMsVUFBVSxDQUFDO0FBQ3RCLENBQUMsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ1EsZUFBTyxHQUFHLFVBQVMsV0FBVyxFQUFDLE9BQVk7SUFBWix1QkFBWSxHQUFaLFlBQVk7SUFDbEQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBQyxPQUFPLENBQUMsQ0FBQztBQUMzRCxDQUFDLENBQUM7QUFFRjs7OztHQUlHO0FBQ1EscUJBQWEsR0FBRyxVQUFTLElBQVc7SUFDM0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdkMsQ0FBQyxDQUFDIiwiZmlsZSI6InNtYXJ0ZmlsZS5yZWFkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4vdHlwaW5ncy9tYWluLmQudHNcIiAvPlxuXG5pbXBvcnQgcGx1Z2lucyA9IHJlcXVpcmUoXCIuL3NtYXJ0ZmlsZS5wbHVnaW5zXCIpO1xuXG5leHBvcnQgbGV0IHRvRlMgPSBmdW5jdGlvbihvcHRpb25zOntmcm9tOnN0cmluZyx0b1BhdGg6c3RyaW5nfSwgY2I9dW5kZWZpbmVkKXtcbiAgICBcbn07XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBmaWxlUGF0aFxuICogQHBhcmFtIGZpbGVUeXBlQXJnXG4gKiBAcmV0dXJucyB7YW55fVxuICovXG5leHBvcnQgbGV0IHRvT2JqZWN0ID0gZnVuY3Rpb24oZmlsZVBhdGgsZmlsZVR5cGVBcmcgPSB1bmRlZmluZWQpIHtcbiAgICBsZXQgZmlsZVR5cGU7XG4gICAgaWYgKHR5cGVvZiBmaWxlVHlwZUFyZyA9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIGZpbGVUeXBlID0gcGx1Z2lucy5wYXRoLmV4dG5hbWUoZmlsZVBhdGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGZpbGVUeXBlID0gZmlsZVR5cGVBcmc7XG4gICAgfVxuICAgIGZpbGVUeXBlID0gZmlsZVR5cGUucmVwbGFjZSgvXFwuKFthLXpdKikvLFwiJDFcIik7IC8vcmVtb3ZlIC4gZm9ybSBmaWxlVHlwZVxuICAgIHN3aXRjaCAoZmlsZVR5cGUpIHtcbiAgICAgICAgY2FzZSBcInltbFwiIDpcbiAgICAgICAgY2FzZSBcInlhbWxcIjpcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBsdWdpbnMueWFtbC5zYWZlTG9hZChwbHVnaW5zLmZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgJ3V0ZjgnKSk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKXtcbiAgICAgICAgICAgICAgICBwbHVnaW5zLmJlYXV0eWxvZy5lcnJvcihcImNoZWNrIHRoYXQgXCIgKyBmaWxlUGF0aC5ibHVlICsgXCIgcG9pbnRzIHRvIGEgdmFsaWQgZmlsZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwianNvblwiOlxuICAgICAgICAgICAgcmV0dXJuIHBsdWdpbnMuZnMucmVhZEpzb25TeW5jKGZpbGVQYXRoLHt9KTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLmVycm9yKFwiZmlsZSB0eXBlIFwiICsgZmlsZVR5cGUuYmx1ZSArIFwiIG5vdCBzdXBwb3J0ZWRcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG59O1xuXG4vKipcbiAqIHJlYWRzIGEgZmlsZSBjb250ZW50IHRvIGEgU3RyaW5nXG4gKiBAcGFyYW0gZmlsZVBhdGhcbiAqIEByZXR1cm5zIHtzdHJpbmd8QnVmZmVyfGFueX1cbiAqL1xuZXhwb3J0IGxldCB0b1N0cmluZyA9IGZ1bmN0aW9uKGZpbGVQYXRoKSB7XG4gICAgbGV0IGZpbGVTdHJpbmc7XG4gICAgZmlsZVN0cmluZyA9IHBsdWdpbnMuZnMucmVhZEZpbGVTeW5jKGZpbGVQYXRoLCBcInV0ZjhcIik7XG4gICAgcmV0dXJuIGZpbGVTdHJpbmc7XG59O1xuXG4vKipcbiAqXG4gKiBAcGFyYW0gZmlsZVBhdGhBcmdcbiAqIEBwYXJhbSBvcHRpb25zXG4gKiBAcmV0dXJucyB7bnVtYmVyfVxuICovXG5leHBvcnQgbGV0IHRvVmlueWwgPSBmdW5jdGlvbihmaWxlUGF0aEFyZyxvcHRpb25zID0ge30pIHtcbiAgICByZXR1cm4gcGx1Z2lucy52aW55bEZpbGUucmVhZFN5bmMoZmlsZVBhdGhBcmcsb3B0aW9ucyk7XG59O1xuXG4vKipcbiAqIGxldHMgeW91IHJlbG9hZCBmaWxlcyBob3QuXG4gKiBAcGFyYW0gcGF0aFxuICogQHJldHVybnMge2FueX1cbiAqL1xuZXhwb3J0IGxldCByZXF1aXJlUmVsb2FkID0gZnVuY3Rpb24ocGF0aDpzdHJpbmcpe1xuICAgIHJldHVybiBwbHVnaW5zLnJlcXVpcmVSZWxvYWQocGF0aCk7XG59OyJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==

View File

@ -1,69 +0,0 @@
/// <reference path="./typings/main.d.ts" />
"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==

View File

@ -1,4 +1,5 @@
{
"mode":"default",
"coveralls":true
"codecov":true,
"coverageTreshold":80
}

View File

@ -1,6 +1,6 @@
{
"name": "smartfile",
"version": "2.2.0",
"version": "3.0.0",
"description": "offers smart ways to work with files in nodejs",
"main": "dist/index.js",
"scripts": {
@ -25,7 +25,7 @@
},
"homepage": "https://github.com/pushrocks/smartfile",
"dependencies": {
"beautylog": "3.1.2",
"beautylog": "4.1.0",
"fs-extra": "0.26.7",
"gulp": "^3.9.1",
"gulp-remote-src": "^0.4.1",
@ -37,8 +37,8 @@
"vinyl-file": "2.0.0"
},
"devDependencies": {
"gulp-function": "^1.1.1",
"npmts": "3.5.0",
"should": "^8.2.2"
"gulp-function": "^1.2.3",
"npmts": "5.0.0",
"should": "^8.3.0"
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,9 +1,10 @@
/// <reference path="../ts/typings/main.d.ts" />
let smartfile = require("../dist/index.js");
let beautylog = require("beautylog");
let should = require("should");
let vinyl = require("vinyl");
let gulp = require("gulp");
let gFunction = require("gulp-function");
import should = require("should");
let vinyl = require("vinyl");
describe("smartfile".yellow,function(){
describe(".checks".yellow,function(){
@ -21,6 +22,8 @@ describe("smartfile".yellow,function(){
});
})
});
describe(".fsaction".yellow,function(){
describe(".copy()".yellow,function(){
it("should copy a directory",function(){
@ -37,9 +40,13 @@ describe("smartfile".yellow,function(){
it("should remove an entire directory",function(){
});
it("should remove single files")
it("should remove single files",function(){
});
});
});
describe(".local".yellow,function(){
describe("toGulpStreamSync() and toGulpDestSync",function(){
it("should produce a gulp stream",function(done){
@ -81,6 +88,69 @@ describe("smartfile".yellow,function(){
});
});
});
describe(".memory",function(){
describe(".toGulpStream()",function(){
it("should produce a valid gulp stream",function(){
let localArray = ["test1","test2","test3"];
smartfile.memory.toGulpStream(localArray)
.pipe(gulp.dest("./test/temp/"));
});
});
describe("toVinylFileSync()",function(){
it("should produce a vinylFile",function(){
let localString = "myString";
let localOptions = {filename:"vinylfile2",base:"/someDir"};
(smartfile.memory.toVinylFileSync(localString,localOptions) instanceof vinyl).should.be.true();
});
});
describe("toVinylArraySync()",function(){
it("should produce a an array of vinylfiles",function(){
let localStringArray = ["string1","string2","string3"];
let localOptions = {filename:"vinylfile2",base:"/someDir"};
let testResult = smartfile.memory.toVinylArraySync(localStringArray,localOptions);
testResult.should.be.Array();
(testResult.length === 3).should.be.true();
for (let myKey in testResult){
(testResult[myKey] instanceof vinyl).should.be.true();
}
});
});
describe("toStringSync()",function(){
it("should produce a String from vinyl file",function(){
let localString = smartfile.memory.toStringSync(new vinyl({
base:"/",
path:"/test.txt",
contents: new Buffer("myString")
}));
localString.should.equal("myString");
});
});
describe("toFs()",function(){
it("should write a file to disk and return a promise",function(done){
let localString = "myString";
smartfile.memory.toFs(
localString,
{
fileName:"./test/temp/testMemToFs.txt",
filePath:process.cwd()
}
).then(done);
});
});
describe("toFsSync()",function(){
it("should write a file to disk and return true if successfull",function(){
let localString = "myString";
smartfile.memory.toFsSync(
localString,{
fileName:"./test/temp/testMemToFsSync.txt",
filePath:process.cwd()
}
);
});
});
});
describe(".remote",function(){
describe("toGulpStreamSync()",function(){
it("should produce a gulp stream",function(done){
@ -99,6 +169,7 @@ describe("smartfile".yellow,function(){
});
});
it("should reject a Promise when the link is false",function(done){
this.timeout(10000);
smartfile.remote.toString("https://push.rocks/doesnotexist.txt")
.then(function(){
throw new Error("this test should not be resolved");

View File

@ -5,6 +5,7 @@ import SmartfileChecks = require("./smartfile.checks");
import SmartfileFsaction = require("./smartfile.fsaction");
import SmartfileGet = require("./smartfile.get");
import SmartfileLocal = require("./smartfile.local");
import SmartfileMemory = require("./smartfile.memory");
import SmartfileRemote = require("./smartfile.remote");
@ -14,6 +15,7 @@ var smartfile:any = {
checks: SmartfileChecks,
get: SmartfileGet,
local: SmartfileLocal,
memory: SmartfileMemory,
remote: SmartfileRemote,
requireReload: SmartfileLocal.requireReload
};

121
ts/smartfile.memory.ts Normal file
View File

@ -0,0 +1,121 @@
/// <reference path="./typings/main.d.ts" />
import plugins = require("./smartfile.plugins");
let Readable = require("stream").Readable;
/**
* allows you to create a gulp stream from filestring
* @param fileArg
* @returns stream.Readable
* @TODO: make it async;
*/
export let toGulpStream = function(fileArg:string|string[]|plugins.vinyl|plugins.vinyl[],baseArg:string = "/"){
let fileArray = [];
if(typeof fileArg === "string" || fileArg instanceof plugins.vinyl){ // make sure we work with an array later on
fileArray.push(fileArg);
} else if (Array.isArray(fileArg)){
fileArray = fileArg;
} else {
throw new Error("fileArg has unknown format");
}
let vinylFileArray:plugins.vinyl[] = []; //we want to have an array of vinylFiles
for (let fileIndexArg in fileArray){ //convert fileArray in vinylArray
let file = fileArray[fileIndexArg];
file instanceof plugins.vinyl ?
vinylFileArray.push(file) :
vinylFileArray.push(toVinylFileSync(file,{filename:fileIndexArg,base:baseArg}));
};
let stream = new Readable({ objectMode: true });
for(let vinylFileIndexArg in vinylFileArray){
let vinylFile = vinylFileArray[vinylFileIndexArg];
stream.push(vinylFile);
};
stream.push(null); //signal end of stream;
return stream;
};
/**
* takes a string and converts it to vinyl file
* @param fileArg
* @param optionsArg
*/
export let toVinylFileSync = function(fileArg:string,optionsArg?:{filename?:string,base?:string,relPath?:string}){
optionsArg? void(0) : optionsArg = {filename: "vinylfile", base: "/"};
optionsArg.filename ? void(0) : optionsArg.filename = "vinylfile";
optionsArg.base ? void(0) : optionsArg.base = "/";
optionsArg.relPath ? void("0") : optionsArg.relPath = "";
let vinylFile = new plugins.vinyl({
base: optionsArg.base,
path: plugins.path.join(optionsArg.base,optionsArg.relPath,optionsArg.filename),
contents: new Buffer(fileArg)
});
return vinylFile;
};
/**
* takes a string array and some options and returns a vinylfile array
* @param arrayArg
* @param optionsArg
*/
export let toVinylArraySync = function(arrayArg:string[],optionsArg?:{filename?:string,base?:string,relPath?:string}){
let vinylArray = [];
for(let stringIndexArg in arrayArg){
let myString = arrayArg[stringIndexArg];
vinylArray.push(toVinylFileSync(myString,optionsArg));
}
return vinylArray;
};
/**
* takes a vinylFile object and converts it to String
*/
export let toStringSync = function(fileArg:plugins.vinyl){
return fileArg.contents.toString("utf8");
};
/**
* writes string or vinyl file to disk.
* @param fileArg
* @param fileNameArg
* @param fileBaseArg
*/
export let toFs = function(fileArg,optionsArg:{fileName:string,filePath:string}){
let done = plugins.q.defer();
//function checks to abort if needed
if (!fileArg || !optionsArg || !(typeof optionsArg.fileName === "string"))
throw new Error("expected a valid arguments");
if (!(typeof optionsArg.filePath === "string")) optionsArg.filePath = "/";
let filePath:string = plugins.path.join(optionsArg.filePath,optionsArg.fileName);
let fileString:string;
if (fileArg instanceof plugins.vinyl){
fileString = toStringSync(fileArg);
} else if (typeof fileArg === "string") {
fileString = fileArg;
}
plugins.fs.writeFile(filePath,fileString,"utf8",done.resolve);
return done.promise;
};
export let toFsSync = function(fileArg,optionsArg:{fileName:string,filePath:string}){
//function checks to abort if needed
if (!fileArg || !optionsArg || !(typeof optionsArg.fileName === "string"))
throw new Error("expected a valid arguments");
if (!(typeof optionsArg.filePath === "string")) optionsArg.filePath = "/";
let filePath = plugins.path.join(optionsArg.filePath,optionsArg.fileName);
let fileString:string;
if (fileArg instanceof plugins.vinyl){
fileString = toStringSync(fileArg);
} else if (typeof fileArg === "string") {
fileString = fileArg;
}
plugins.fs.writeFileSync(filePath,fileString,"utf8");
};

View File

@ -5,9 +5,9 @@ export let gulp = require("gulp");
export let g = {
remoteSrc: require("gulp-remote-src")
};
export let path = require("path");
export import path = require("path");
export let q = require("q");
export let vinyl = require("vinyl");
export import vinyl = require("vinyl");
export let vinylFile = require("vinyl-file");
export let yaml = require("js-yaml");
export let request = require("request");

View File

@ -1,8 +1,9 @@
{
"ambientDependencies": {
"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": "registry:dt/node#4.0.0+20160311162451"
"node": "registry:dt/node",
"should": "registry:dt/should",
"vinyl": "registry:dt/vinyl"
}
}