smartfile/dist/smartfile.memory.js

77 lines
9.3 KiB
JavaScript

/// <reference path="./typings/main.d.ts" />
"use strict";
var plugins = require("./smartfile.plugins");
var Readable = require("stream").Readable;
/**
* allows you to create a gulp stream from filestring
* @param fileArg
* @returns stream.Readable
* @TODO: make it async;
*/
exports.toGulpStream = function (fileArg, baseArg) {
var fileArray = [];
if (typeof fileArg === "string" || fileArg instanceof plugins.vinyl) {
fileArray.push(fileArg);
}
else if (Array.isArray(fileArg)) {
fileArray = fileArg;
}
else {
throw new Error("fileArg has unknown format");
}
var vinylFileArray = []; //we want to have an array of vinylFiles
for (var fileIndexArg in fileArray) {
var file = fileArray[fileIndexArg];
file instanceof plugins.vinyl ?
vinylFileArray.push(file) :
vinylFileArray.push(exports.toVinylFileSync(file, { filename: fileIndexArg, base: "/" }));
}
;
var stream = new Readable({ objectMode: true });
for (var vinylFileIndexArg in vinylFileArray) {
var 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
*/
exports.toVinylFileSync = function (fileArg, optionsArg) {
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 = "";
var 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
*/
exports.toVinylArraySync = function (arrayArg, optionsArg) {
var vinylArray = [];
for (var stringIndexArg in arrayArg) {
var myString = arrayArg[stringIndexArg];
vinylArray.push(exports.toVinylFileSync(myString, optionsArg));
}
return vinylArray;
};
exports.toFs = function (fileArg, fileNameArg, fileBaseArg) {
if (fileArg instanceof plugins.vinyl) {
}
};
exports.toFsSync = function () {
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZmlsZS5tZW1vcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNENBQTRDOztBQUU1QyxJQUFPLE9BQU8sV0FBVyxxQkFBcUIsQ0FBQyxDQUFDO0FBQ2hELElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDMUM7Ozs7O0dBS0c7QUFDUSxvQkFBWSxHQUFHLFVBQVMsT0FBcUQsRUFBQyxPQUFlO0lBQ3BHLElBQUksU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUVuQixFQUFFLENBQUEsQ0FBQyxPQUFPLE9BQU8sS0FBSyxRQUFRLElBQUksT0FBTyxZQUFZLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQSxDQUFDO1FBQ2hFLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUEsQ0FBQztRQUMvQixTQUFTLEdBQUcsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxjQUFjLEdBQW1CLEVBQUUsQ0FBQyxDQUFDLHdDQUF3QztJQUVqRixHQUFHLENBQUMsQ0FBQyxJQUFJLFlBQVksSUFBSSxTQUFTLENBQUMsQ0FBQSxDQUFDO1FBQ2hDLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuQyxJQUFJLFlBQVksT0FBTyxDQUFDLEtBQUs7WUFDekIsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDekIsY0FBYyxDQUFDLElBQUksQ0FBQyx1QkFBZSxDQUFDLElBQUksRUFBQyxFQUFDLFFBQVEsRUFBQyxZQUFZLEVBQUMsSUFBSSxFQUFDLEdBQUcsRUFBQyxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBQUEsQ0FBQztJQUVGLElBQUksTUFBTSxHQUFHLElBQUksUUFBUSxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDaEQsR0FBRyxDQUFBLENBQUMsSUFBSSxpQkFBaUIsSUFBSSxjQUFjLENBQUMsQ0FBQSxDQUFDO1FBQ3pDLElBQUksU0FBUyxHQUFHLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUFBLENBQUM7SUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsdUJBQXVCO0lBQzFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7QUFDbEIsQ0FBQyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNRLHVCQUFlLEdBQUcsVUFBUyxPQUFjLEVBQUMsVUFBeUQ7SUFDMUcsVUFBVSxHQUFFLEtBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLEdBQUcsRUFBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUMsQ0FBQztJQUN0RSxVQUFVLENBQUMsUUFBUSxHQUFHLEtBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQztJQUNsRSxVQUFVLENBQUMsSUFBSSxHQUFHLEtBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztJQUNsRCxVQUFVLENBQUMsT0FBTyxHQUFHLEtBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxVQUFVLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUN6RCxJQUFJLFNBQVMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDOUIsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJO1FBQ3JCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUMvRSxRQUFRLEVBQUUsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDO0tBQ2hDLENBQUMsQ0FBQztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUM7QUFDckIsQ0FBQyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNRLHdCQUFnQixHQUFHLFVBQVMsUUFBaUIsRUFBQyxVQUF5RDtJQUM5RyxJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDcEIsR0FBRyxDQUFBLENBQUMsSUFBSSxjQUFjLElBQUksUUFBUSxDQUFDLENBQUEsQ0FBQztRQUNoQyxJQUFJLFFBQVEsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEMsVUFBVSxDQUFDLElBQUksQ0FBQyx1QkFBZSxDQUFDLFFBQVEsRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFDRCxNQUFNLENBQUMsVUFBVSxDQUFDO0FBQ3RCLENBQUMsQ0FBQztBQUdTLFlBQUksR0FBRyxVQUFTLE9BQTRCLEVBQUMsV0FBbUIsRUFBQyxXQUFtQjtJQUMzRixFQUFFLENBQUMsQ0FBQyxPQUFPLFlBQVksT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBLENBQUM7SUFFdEMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVTLGdCQUFRLEdBQUc7QUFFdEIsQ0FBQyxDQUFDIiwiZmlsZSI6InNtYXJ0ZmlsZS5tZW1vcnkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi90eXBpbmdzL21haW4uZC50c1wiIC8+XG5cbmltcG9ydCBwbHVnaW5zID0gcmVxdWlyZShcIi4vc21hcnRmaWxlLnBsdWdpbnNcIik7XG5sZXQgUmVhZGFibGUgPSByZXF1aXJlKFwic3RyZWFtXCIpLlJlYWRhYmxlO1xuLyoqXG4gKiBhbGxvd3MgeW91IHRvIGNyZWF0ZSBhIGd1bHAgc3RyZWFtIGZyb20gZmlsZXN0cmluZ1xuICogQHBhcmFtIGZpbGVBcmdcbiAqIEByZXR1cm5zIHN0cmVhbS5SZWFkYWJsZVxuICogQFRPRE86IG1ha2UgaXQgYXN5bmM7XG4gKi9cbmV4cG9ydCBsZXQgdG9HdWxwU3RyZWFtID0gZnVuY3Rpb24oZmlsZUFyZzpzdHJpbmd8c3RyaW5nW118cGx1Z2lucy52aW55bHxwbHVnaW5zLnZpbnlsW10sYmFzZUFyZz86c3RyaW5nKXtcbiAgICBsZXQgZmlsZUFycmF5ID0gW107XG5cbiAgICBpZih0eXBlb2YgZmlsZUFyZyA9PT0gXCJzdHJpbmdcIiB8fCBmaWxlQXJnIGluc3RhbmNlb2YgcGx1Z2lucy52aW55bCl7IC8vIG1ha2Ugc3VyZSB3ZSB3b3JrIHdpdGggYW4gYXJyYXkgbGF0ZXIgb25cbiAgICAgICAgZmlsZUFycmF5LnB1c2goZmlsZUFyZyk7XG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGZpbGVBcmcpKXtcbiAgICAgICAgZmlsZUFycmF5ID0gZmlsZUFyZztcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJmaWxlQXJnIGhhcyB1bmtub3duIGZvcm1hdFwiKTtcbiAgICB9XG5cbiAgICBsZXQgdmlueWxGaWxlQXJyYXk6cGx1Z2lucy52aW55bFtdID0gW107IC8vd2Ugd2FudCB0byBoYXZlIGFuIGFycmF5IG9mIHZpbnlsRmlsZXNcblxuICAgIGZvciAobGV0IGZpbGVJbmRleEFyZyBpbiBmaWxlQXJyYXkpeyAvL2NvbnZlcnQgZmlsZUFycmF5IGluIHZpbnlsQXJyYXlcbiAgICAgICAgbGV0IGZpbGUgPSBmaWxlQXJyYXlbZmlsZUluZGV4QXJnXTtcbiAgICAgICAgZmlsZSBpbnN0YW5jZW9mIHBsdWdpbnMudmlueWwgP1xuICAgICAgICAgICAgdmlueWxGaWxlQXJyYXkucHVzaChmaWxlKSA6XG4gICAgICAgICAgICB2aW55bEZpbGVBcnJheS5wdXNoKHRvVmlueWxGaWxlU3luYyhmaWxlLHtmaWxlbmFtZTpmaWxlSW5kZXhBcmcsYmFzZTpcIi9cIn0pKTtcbiAgICB9O1xuXG4gICAgbGV0IHN0cmVhbSA9IG5ldyBSZWFkYWJsZSh7IG9iamVjdE1vZGU6IHRydWUgfSk7XG4gICAgZm9yKGxldCB2aW55bEZpbGVJbmRleEFyZyBpbiB2aW55bEZpbGVBcnJheSl7XG4gICAgICAgIGxldCB2aW55bEZpbGUgPSB2aW55bEZpbGVBcnJheVt2aW55bEZpbGVJbmRleEFyZ107XG4gICAgICAgIHN0cmVhbS5wdXNoKHZpbnlsRmlsZSk7XG4gICAgfTtcbiAgICBzdHJlYW0ucHVzaChudWxsKTsgLy9zaWduYWwgZW5kIG9mIHN0cmVhbTtcbiAgICByZXR1cm4gc3RyZWFtO1xufTtcblxuLyoqXG4gKiB0YWtlcyBhIHN0cmluZyBhbmQgY29udmVydHMgaXQgdG8gdmlueWwgZmlsZVxuICogQHBhcmFtIGZpbGVBcmdcbiAqIEBwYXJhbSBvcHRpb25zQXJnXG4gKi9cbmV4cG9ydCBsZXQgdG9WaW55bEZpbGVTeW5jID0gZnVuY3Rpb24oZmlsZUFyZzpzdHJpbmcsb3B0aW9uc0FyZz86e2ZpbGVuYW1lOnN0cmluZyxiYXNlOnN0cmluZyxyZWxQYXRoPzpzdHJpbmd9KXtcbiAgICBvcHRpb25zQXJnPyB2b2lkKDApIDogb3B0aW9uc0FyZyA9IHtmaWxlbmFtZTogXCJ2aW55bGZpbGVcIiwgYmFzZTogXCIvXCJ9O1xuICAgIG9wdGlvbnNBcmcuZmlsZW5hbWUgPyB2b2lkKDApIDogb3B0aW9uc0FyZy5maWxlbmFtZSA9IFwidmlueWxmaWxlXCI7XG4gICAgb3B0aW9uc0FyZy5iYXNlID8gdm9pZCgwKSA6IG9wdGlvbnNBcmcuYmFzZSA9IFwiL1wiO1xuICAgIG9wdGlvbnNBcmcucmVsUGF0aCA/IHZvaWQoXCIwXCIpIDogb3B0aW9uc0FyZy5yZWxQYXRoID0gXCJcIjtcbiAgICBsZXQgdmlueWxGaWxlID0gbmV3IHBsdWdpbnMudmlueWwoe1xuICAgICAgICBiYXNlOiBvcHRpb25zQXJnLmJhc2UsXG4gICAgICAgIHBhdGg6IHBsdWdpbnMucGF0aC5qb2luKG9wdGlvbnNBcmcuYmFzZSxvcHRpb25zQXJnLnJlbFBhdGgsb3B0aW9uc0FyZy5maWxlbmFtZSksXG4gICAgICAgIGNvbnRlbnRzOiBuZXcgQnVmZmVyKGZpbGVBcmcpXG4gICAgfSk7XG4gICAgcmV0dXJuIHZpbnlsRmlsZTtcbn07XG5cbi8qKlxuICogdGFrZXMgYSBzdHJpbmcgYXJyYXkgYW5kIHNvbWUgb3B0aW9ucyBhbmQgcmV0dXJucyBhIHZpbnlsZmlsZSBhcnJheVxuICogQHBhcmFtIGFycmF5QXJnXG4gKiBAcGFyYW0gb3B0aW9uc0FyZ1xuICovXG5leHBvcnQgbGV0IHRvVmlueWxBcnJheVN5bmMgPSBmdW5jdGlvbihhcnJheUFyZzpzdHJpbmdbXSxvcHRpb25zQXJnPzp7ZmlsZW5hbWU6c3RyaW5nLGJhc2U6c3RyaW5nLHJlbFBhdGg/OnN0cmluZ30pe1xuICAgIGxldCB2aW55bEFycmF5ID0gW107XG4gICAgZm9yKGxldCBzdHJpbmdJbmRleEFyZyBpbiBhcnJheUFyZyl7XG4gICAgICAgIGxldCBteVN0cmluZyA9IGFycmF5QXJnW3N0cmluZ0luZGV4QXJnXTtcbiAgICAgICAgdmlueWxBcnJheS5wdXNoKHRvVmlueWxGaWxlU3luYyhteVN0cmluZyxvcHRpb25zQXJnKSk7XG4gICAgfVxuICAgIHJldHVybiB2aW55bEFycmF5O1xufTtcblxuXG5leHBvcnQgbGV0IHRvRnMgPSBmdW5jdGlvbihmaWxlQXJnOnN0cmluZ3xwbHVnaW5zLnZpbnlsLGZpbGVOYW1lQXJnPzpzdHJpbmcsZmlsZUJhc2VBcmc/OnN0cmluZyl7XG4gICAgaWYgKGZpbGVBcmcgaW5zdGFuY2VvZiBwbHVnaW5zLnZpbnlsKXtcblxuICAgIH1cbn07XG5cbmV4cG9ydCBsZXQgdG9Gc1N5bmMgPSBmdW5jdGlvbigpe1xuICAgIFxufTtcblxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9