From ed01ebeee8365dfc9d85b69c9ca4fd01ff12cb66 Mon Sep 17 00:00:00 2001 From: Phil Kunz Date: Sat, 29 Apr 2017 16:50:06 +0200 Subject: [PATCH] handle gulp in seperate module --- dist/smartfile.memory.d.ts | 8 -- dist/smartfile.memory.js | 38 +-------- test/test.ts | 11 ++- ts/smartfile.memory.ts | 164 ++++++++++++++----------------------- 4 files changed, 69 insertions(+), 152 deletions(-) diff --git a/dist/smartfile.memory.d.ts b/dist/smartfile.memory.d.ts index 896d7a4..570006e 100644 --- a/dist/smartfile.memory.d.ts +++ b/dist/smartfile.memory.d.ts @@ -5,14 +5,6 @@ export interface IVinylFile { base: string; path: string; } -/** - * 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; - */ -export declare let toGulpStream: (fileArg: string | string[] | IVinylFile | IVinylFile[], baseArg?: string) => any; /** * converts file to Object * @param fileStringArg diff --git a/dist/smartfile.memory.js b/dist/smartfile.memory.js index 09677a0..9ff1518 100644 --- a/dist/smartfile.memory.js +++ b/dist/smartfile.memory.js @@ -4,42 +4,6 @@ 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 @@ -126,4 +90,4 @@ exports.toFsSync = function (fileArg, filePathArg) { } plugins.fsExtra.writeFileSync(filePath, fileString, 'utf8'); }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmaWxlLm1lbW9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0ZmlsZS5tZW1vcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQkFBdUI7QUFFdkIsK0NBQStDO0FBQy9DLGdFQUFnRTtBQUNoRSxJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7QUFRNUIsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQTtBQUV6Qzs7Ozs7O0dBTUc7QUFDUSxRQUFBLFlBQVksR0FBRyxVQUFTLE9BQWdELEVBQUMsVUFBa0IsR0FBRztJQUNyRyxJQUFJLFNBQVMsR0FBRyxFQUFFLENBQUE7SUFFbEIsRUFBRSxDQUFDLENBQUMsT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hELFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDM0IsQ0FBQztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxTQUFTLEdBQUcsT0FBTyxDQUFBO0lBQ3ZCLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQTtJQUNqRCxDQUFDO0lBRUQsSUFBSSxjQUFjLEdBQWlCLEVBQUUsQ0FBQSxDQUFDLHlDQUF5QztJQUUvRSxHQUFHLENBQUMsQ0FBQyxJQUFJLFlBQVksSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUNsQyxJQUFJLFlBQVksS0FBSztZQUNqQixjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN6QixjQUFjLENB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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmaWxlLm1lbW9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0ZmlsZS5tZW1vcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQkFBdUI7QUFFdkIsK0NBQStDO0FBQy9DLGdFQUFnRTtBQUNoRSxJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7QUFRNUI7Ozs7O0dBS0c7QUFDUSxRQUFBLFFBQVEsR0FBRyxVQUFVLGFBQXFCLEVBQUUsV0FBbUI7SUFDeEUsTUFBTSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUE7QUFDcEUsQ0FBQyxDQUFBO0FBRUQ7Ozs7R0FJRztBQUNRLFFBQUEsZUFBZSxHQUFHLFVBQVUsT0FBZSxFQUFFLFVBQW1FO0lBQ3pILFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxHQUFHLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUE7SUFDekUsVUFBVSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUE7SUFDbEUsVUFBVSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUE7SUFDbEQsVUFBVSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUE7SUFDekQsSUFBSSxTQUFTLEdBQUcsSUFBSSxLQUFLLENBQUM7UUFDeEIsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJO1FBQ3JCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxD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 \ No newline at end of file diff --git a/test/test.ts b/test/test.ts index 6beeb3f..040bc61 100644 --- a/test/test.ts +++ b/test/test.ts @@ -5,6 +5,10 @@ import { expect, tap } from 'tapbundle' import * as vinyl from 'vinyl' +// --------------------------- +// smartfile.fs +// --------------------------- + tap.test('.fs.fileExistsSync -> should return an accurate boolean', async () => { expect(smartfile.fs.fileExistsSync('./test/mytest.json')).to.be.true expect(smartfile.fs.fileExistsSync('./test/notthere.json')).be.false @@ -91,7 +95,7 @@ tap.test('smartfile.fs.removeManySync -> should remove and array of single files }) // --------------------------- -// .interpreter +// smartfile.interpreter // --------------------------- tap.test('.interpreter.filetype() -> should get the file type from a string', async () => { @@ -125,11 +129,6 @@ tap.test('.fs.toVinylSync -> should read an ' + '.json OR .yaml' + ' file to an expect(vinyl.isVinyl(testData)).to.be.true }) -tap.test('.memory.toGulpStream() -> should produce a valid gulp stream', async () => { - let localArray = [ 'test1', 'test2', 'test3' ] - smartfile.memory.toGulpStream(localArray) -}) - tap.test('.memory.toVinylFileSync() -> should produce a vinylFile', async () => { let localString = 'myString' let localOptions = { filename: 'vinylfile2', base: '/someDir' } diff --git a/ts/smartfile.memory.ts b/ts/smartfile.memory.ts index fc8b236..1785ffe 100644 --- a/ts/smartfile.memory.ts +++ b/ts/smartfile.memory.ts @@ -5,47 +5,9 @@ import SmartfileInterpreter = require('./smartfile.interpreter') let vinyl = require('vinyl') export interface IVinylFile { - contents: Buffer - base: string - path: string, -} - -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; - */ -export let toGulpStream = function(fileArg: string|string[]|IVinylFile|IVinylFile[],baseArg: string = '/'){ - let fileArray = [] - - if (typeof fileArg === 'string' || vinyl.isVinyl(fileArg)) { // 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: IVinylFile[] = [] // we want to have an array of vinylFiles - - for (let fileIndexArg in fileArray) { // convert fileArray in vinylArray - let file = fileArray[fileIndexArg] - file instanceof 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 + contents: Buffer + base: string + path: string, } /** @@ -54,8 +16,8 @@ export let toGulpStream = function(fileArg: string|string[]|IVinylFile|IVinylFil * @param fileTypeArg * @returns {any|any} */ -export let toObject = function(fileStringArg: string,fileTypeArg: string){ - return SmartfileInterpreter.objectFile(fileStringArg,fileTypeArg) +export let toObject = function (fileStringArg: string, fileTypeArg: string) { + return SmartfileInterpreter.objectFile(fileStringArg, fileTypeArg) } /** @@ -63,17 +25,17 @@ export let toObject = function(fileStringArg: string,fileTypeArg: string){ * @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 vinyl({ - base: optionsArg.base, - path: plugins.path.join(optionsArg.base,optionsArg.relPath,optionsArg.filename), - contents: new Buffer(fileArg) - }) - return vinylFile +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 vinyl({ + base: optionsArg.base, + path: plugins.path.join(optionsArg.base, optionsArg.relPath, optionsArg.filename), + contents: new Buffer(fileArg) + }) + return vinylFile } /** @@ -81,27 +43,27 @@ export let toVinylFileSync = function(fileArg: string,optionsArg?: {filename?: s * @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 +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 vinylToStringSync = function(fileArg: IVinylFile): string { - return fileArg.contents.toString('utf8') +export let vinylToStringSync = function (fileArg: IVinylFile): string { + return fileArg.contents.toString('utf8') } /** @@ -110,41 +72,41 @@ export let vinylToStringSync = function(fileArg: IVinylFile): string { * @param fileNameArg * @param fileBaseArg */ -export let toFs = function(fileContentArg: string|IVinylFile,filePathArg){ - let done = plugins.q.defer() +export let toFs = function (fileContentArg: string | IVinylFile, filePathArg) { + let done = plugins.q.defer() - // function checks to abort if needed - if (!fileContentArg || !filePathArg) { - throw new Error('expected valid arguments') - } + // function checks to abort if needed + if (!fileContentArg || !filePathArg) { + throw new Error('expected valid arguments') + } - // prepare actual write action - let fileString: string - let filePath: string = filePathArg - if (vinyl.isVinyl(fileContentArg)) { - let fileContentArg2: any = fileContentArg - fileString = vinylToStringSync(fileContentArg2) - } else if (typeof fileContentArg === 'string') { - fileString = fileContentArg - } - plugins.fsExtra.writeFile(filePath,fileString,'utf8',done.resolve) - return done.promise + // prepare actual write action + let fileString: string + let filePath: string = filePathArg + if (vinyl.isVinyl(fileContentArg)) { + let fileContentArg2: any = fileContentArg + fileString = vinylToStringSync(fileContentArg2) + } else if (typeof fileContentArg === 'string') { + fileString = fileContentArg + } + plugins.fsExtra.writeFile(filePath, fileString, 'utf8', done.resolve) + return done.promise } -export let toFsSync = function(fileArg,filePathArg: string){ - // function checks to abort if needed - if (!fileArg || !filePathArg) { - throw new Error('expected a valid arguments') - } +export let toFsSync = function (fileArg, filePathArg: string) { + // function checks to abort if needed + if (!fileArg || !filePathArg) { + throw new Error('expected a valid arguments') + } - // prepare actual write action - let fileString: string - let filePath: string = filePathArg + // prepare actual write action + let fileString: string + let filePath: string = filePathArg - if (typeof fileArg !== 'string') { - fileString = vinylToStringSync(fileArg) - } else if (typeof fileArg === 'string') { - fileString = fileArg - } - plugins.fsExtra.writeFileSync(filePath,fileString,'utf8') + if (typeof fileArg !== 'string') { + fileString = vinylToStringSync(fileArg) + } else if (typeof fileArg === 'string') { + fileString = fileArg + } + plugins.fsExtra.writeFileSync(filePath, fileString, 'utf8') }