"use strict"; require("typings-global"); const plugins = require("./smartfile.plugins"); const SmartfileInterpreter = require("./smartfile.interpreter"); let vinyl = require('vinyl'); let Readable = require('stream').Readable; /** * allows you to create a gulp stream * from String, from an Array of Strings, from Vinyl File, from an Array of VinylFiles * @param fileArg * @returns stream.Readable * @TODO: make it async; */ exports.toGulpStream = function (fileArg, baseArg = '/') { let fileArray = []; if (typeof fileArg === 'string' || vinyl.isVinyl(fileArg)) { fileArray.push(fileArg); } else if (Array.isArray(fileArg)) { fileArray = fileArg; } else { throw new Error('fileArg has unknown format'); } let vinylFileArray = []; // we want to have an array of vinylFiles for (let fileIndexArg in fileArray) { let file = fileArray[fileIndexArg]; file instanceof vinyl ? vinylFileArray.push(file) : vinylFileArray.push(exports.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; }; /** * converts file to Object * @param fileStringArg * @param fileTypeArg * @returns {any|any} */ exports.toObject = function (fileStringArg, fileTypeArg) { return SmartfileInterpreter.objectFile(fileStringArg, fileTypeArg); }; /** * 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 = ''; let vinylFile = new 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) { let vinylArray = []; for (let stringIndexArg in arrayArg) { let myString = arrayArg[stringIndexArg]; vinylArray.push(exports.toVinylFileSync(myString, optionsArg)); } return vinylArray; }; /** * takes a vinylFile object and converts it to String */ exports.vinylToStringSync = function (fileArg) { return fileArg.contents.toString('utf8'); }; /** * writes string or vinyl file to disk. * @param fileArg * @param fileNameArg * @param fileBaseArg */ exports.toFs = function (fileContentArg, filePathArg) { let done = plugins.q.defer(); // function checks to abort if needed if (!fileContentArg || !filePathArg) { throw new Error('expected valid arguments'); } // prepare actual write action let fileString; let filePath = filePathArg; if (vinyl.isVinyl(fileContentArg)) { let fileContentArg2 = fileContentArg; fileString = exports.vinylToStringSync(fileContentArg2); } else if (typeof fileContentArg === 'string') { fileString = fileContentArg; } plugins.fsExtra.writeFile(filePath, fileString, 'utf8', done.resolve); return done.promise; }; exports.toFsSync = function (fileArg, filePathArg) { // function checks to abort if needed if (!fileArg || !filePathArg) { throw new Error('expected a valid arguments'); } // prepare actual write action let fileString; let filePath = filePathArg; if (typeof fileArg !== 'string') { fileString = exports.vinylToStringSync(fileArg); } else if (typeof fileArg === 'string') { fileString = fileArg; } plugins.fsExtra.writeFileSync(filePath, fileString, 'utf8'); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmaWxlLm1lbW9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0ZmlsZS5tZW1vcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBCQUF1QjtBQUV2QiwrQ0FBK0M7QUFDL0MsZ0VBQWdFO0FBQ2hFLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQVE1QixJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFBO0FBRXpDOzs7Ozs7R0FNRztBQUNRLFFBQUEsWUFBWSxHQUFHLFVBQVMsT0FBZ0QsRUFBQyxVQUFrQixHQUFHO0lBQ3JHLElBQUksU0FBUyxHQUFHLEVBQUUsQ0FBQTtJQUVsQixFQUFFLENBQUMsQ0FBQyxPQUFPLE9BQU8sS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEQsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUMzQixDQUFDO0lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLFNBQVMsR0FBRyxPQUFPLENBQUE7SUFDdkIsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO0lBQ2pELENBQUM7SUFFRCxJQUFJLGNBQWMsR0FBaUIsRUFBRSxDQUFBLENBQUMseUNBQXlDO0lBRS9FLEdBQUcsQ0FBQyxDQUFDLElBQUksWUFBWSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDakMsSUFBSSxJQUFJLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQ2xDLElBQUksWUFBWSxLQUFLO1lBQ2pCLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3pCLGNBQWMsQ0FBQyxJQUFJLENBQUMsdUJBQWUsQ0FBQyxJQUFJLEVBQUMsRUFBQyxRQUFRLEVBQUUsWUFBWSxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDLENBQUE7SUFDekYsQ0FBQztJQUFBLENBQUM7SUFFRixJQUFJLE1BQU0sR0FBRyxJQUFJLFFBQVEsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQy9DLEdBQUcsQ0FBQyxDQUFDLElBQUksaUJBQWlCLElBQUksY0FBYyxDQUFDLENBQUMsQ0FBQztRQUMzQyxJQUFJLFNBQVMsR0FBRyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUNqRCxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQzFCLENBQUM7SUFBQSxDQUFDO0lBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLHdCQUF3QjtJQUMxQyxNQUFNLENBQUMsTUFBTSxDQUFBO0FBQ2pCLENBQUMsQ0FBQTtBQUVEOzs7OztHQUtHO0FBQ1EsUUFBQSxRQUFRLEdBQUcsVUFBUyxhQUFxQixFQUFDLFdBQW1CO0lBQ3BFLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFDLFdBQVcsQ0FBQyxDQUFBO0FBQ3JFLENBQUMsQ0FBQTtBQUVEOzs7O0dBSUc7QUFDUSxRQUFBLGVBQWUsR0FBRyxVQUFTLE9BQWUsRUFBQyxVQUErRDtJQUNqSCxVQUFVLEdBQUcsS0FBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsR0FBRyxFQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBQyxDQUFBO0lBQ3RFLFVBQVUsQ0FBQyxRQUFRLEdBQUcsS0FBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFBO0lBQ2pFLFVBQVUsQ0FBQyxJQUFJLEdBQUcsS0FBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFBO0lBQ2pELFVBQVUsQ0FBQyxPQUFPLEdBQUcsS0FBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFBO0lBQ3hELElBQUksU0FBUyxHQUFHLElBQUksS0FBSyxDQUFDO1FBQ3RCLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtRQUNyQixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBQyxVQUFVLENBQUMsT0FBTyxFQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFDL0UsUUFBUSxFQUFFLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQztLQUNoQyxDQUFDLENBQUE7SUFDRixNQUFNLENBQUMsU0FBUyxDQUFBO0FBQ3BCLENBQUMsQ0FBQTtBQUVEOzs7O0dBSUc7QUFDUSxRQUFBLGdCQUFnQixHQUFHLFVBQzFCLFFBQWtCLEVBQ2xCLFVBSUM7SUFFRCxJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUE7SUFDbkIsR0FBRyxDQUFDLENBQUMsSUFBSSxjQUFjLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNsQyxJQUFJLFFBQVEsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDdkMsVUFBVSxDQUFDLElBQUksQ0FBQyx1QkFBZSxDQUFDLFFBQVEsRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFBO0lBQ3pELENBQUM7SUFDRCxNQUFNLENBQUMsVUFBVSxDQUFBO0FBQ3JCLENBQUMsQ0FBQTtBQUVEOztHQUVHO0FBQ1EsUUFBQSxpQkFBaUIsR0FBRyxVQUFTLE9BQW1CO0lBQ3ZELE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUM1QyxDQUFDLENBQUE7QUFFRDs7Ozs7R0FLRztBQUNRLFFBQUEsSUFBSSxHQUFHLFVBQVMsY0FBaUMsRUFBQyxXQUFXO0lBQ3BFLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUE7SUFFNUIscUNBQXFDO0lBQ3JDLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUE7SUFDL0MsQ0FBQztJQUVELDhCQUE4QjtJQUM5QixJQUFJLFVBQWtCLENBQUE7SUFDdEIsSUFBSSxRQUFRLEdBQVcsV0FBVyxDQUFBO0lBQ2xDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLElBQUksZUFBZSxHQUFRLGNBQWMsQ0FBQTtRQUN6QyxVQUFVLEdBQUcseUJBQWlCLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDbkQsQ0FBQztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLGNBQWMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzVDLFVBQVUsR0FBRyxjQUFjLENBQUE7SUFDL0IsQ0FBQztJQUNELE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNsRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQTtBQUN2QixDQUFDLENBQUE7QUFFVSxRQUFBLFFBQVEsR0FBRyxVQUFTLE9BQU8sRUFBQyxXQUFtQjtJQUN0RCxxQ0FBcUM7SUFDckMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQTtJQUNqRCxDQUFDO0lBRUQsOEJBQThCO0lBQzlCLElBQUksVUFBa0IsQ0FBQTtJQUN0QixJQUFJLFFBQVEsR0FBVyxXQUFXLENBQUE7SUFFbEMsRUFBRSxDQUFDLENBQUMsT0FBTyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztRQUM5QixVQUFVLEdBQUcseUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDM0MsQ0FBQztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLFVBQVUsR0FBRyxPQUFPLENBQUE7SUFDeEIsQ0FBQztJQUNELE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBQyxVQUFVLEVBQUMsTUFBTSxDQUFDLENBQUE7QUFDN0QsQ0FBQyxDQUFBIn0=