From 2696b30f1e265621abe83d4bed47a34f6faee495 Mon Sep 17 00:00:00 2001 From: Kartashov Alexey Date: Thu, 28 Apr 2016 17:45:05 +0400 Subject: [PATCH 1/3] Update index.js --- index.js | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/index.js b/index.js index 8c02aac..078f915 100644 --- a/index.js +++ b/index.js @@ -225,14 +225,14 @@ var parseJSON = function parseJSON(data, filename) { * Asynchronously walks the file list until a match is found. If * no matches are found, calls the callback with an error **/ -var readFirstFile = function readFirstFile(uri, filenames, css, cb, examinedFiles) { +var readFirstFile = function readFirstFile(uri, filenames, options, cb, examinedFiles) { var filename = filenames.shift(); examinedFiles = examinedFiles || []; examinedFiles.push(filename); fs.readFile(filename, function(err, data) { if (err) { if (filenames.length) { - readFirstFile(uri, filenames, css, cb, examinedFiles); + readFirstFile(uri, filenames, options, cb, examinedFiles); } else { cb(new Error('Could not import `' + uri + '` from any of the following locations:\n ' + examinedFiles.join('\n '))); @@ -242,14 +242,23 @@ var readFirstFile = function readFirstFile(uri, filenames, css, cb, examinedFile if ([ '.js', '.json', '.yml', '.yaml' ].indexOf(path.extname(filename)) !== -1) { data = parseJSON(data, filename); } + + var contents = data.toString(); + var tmp = options.importOnce.transformContent(filename, contents); + if (typeof tmp != 'undefined') { + contents = tmp; + } + cb(null, { - 'contents': data.toString(), + 'contents': contents, 'file': filename }); } }); }; +var noop = function noop () {}; + // This is a bootstrap function for calling readFirstFile. var readAbstractFile = function readAbstractFile(uri, abstractName, cb) { var gfn = getFileNames.bind(this), @@ -267,7 +276,7 @@ var readAbstractFile = function readAbstractFile(uri, abstractName, cb) { files = files.concat(gbn(uri)); } - readFirstFile(uri, files, css, cb); + readFirstFile(uri, files, this.options, cb); }; /** @@ -299,6 +308,10 @@ var importer = function importer(uri, prev, done) { this.options.importOnce.css = false; } + if (typeof this.options.importOnce.transformContent != 'function') { + this.options.importOnce.transformContent = noop; + } + // Create an import cache if it doesn't exist if (!this._importOnceCache) { this._importOnceCache = {}; From cef89910d0251d991c84aa7d40f6f90df059f20b Mon Sep 17 00:00:00 2001 From: Kartashov Alexey Date: Wed, 4 May 2016 13:57:48 +0400 Subject: [PATCH 2/3] Update index.js --- index.js | 49 ++++++++++++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/index.js b/index.js index 078f915..48c81df 100644 --- a/index.js +++ b/index.js @@ -229,32 +229,35 @@ var readFirstFile = function readFirstFile(uri, filenames, options, cb, examined var filename = filenames.shift(); examinedFiles = examinedFiles || []; examinedFiles.push(filename); - fs.readFile(filename, function(err, data) { - if (err) { - if (filenames.length) { - readFirstFile(uri, filenames, options, cb, examinedFiles); + console.log('readFirstFile filename', filename); + fs.readFile(filename, (function (filename) { + return function(err, data) { + if (err) { + if (filenames.length) { + readFirstFile(uri, filenames, options, cb, examinedFiles); + } + else { + cb(new Error('Could not import `' + uri + '` from any of the following locations:\n ' + examinedFiles.join('\n '))); + } } else { - cb(new Error('Could not import `' + uri + '` from any of the following locations:\n ' + examinedFiles.join('\n '))); - } - } - else { - if ([ '.js', '.json', '.yml', '.yaml' ].indexOf(path.extname(filename)) !== -1) { - data = parseJSON(data, filename); - } - - var contents = data.toString(); - var tmp = options.importOnce.transformContent(filename, contents); - if (typeof tmp != 'undefined') { - contents = tmp; + if ([ '.js', '.json', '.yml', '.yaml' ].indexOf(path.extname(filename)) !== -1) { + data = parseJSON(data, filename); + } + + var contents = data.toString(); + var tmp = options.importOnce.transformContent(filename, contents); + if (typeof tmp != 'undefined') { + contents = tmp; + } + + cb(null, { + 'contents': contents, + 'file': filename + }); } - - cb(null, { - 'contents': contents, - 'file': filename - }); - } - }); + }; + })(filename)); }; var noop = function noop () {}; From 8b8cde6465191f5be9eea805b3b87321798e336a Mon Sep 17 00:00:00 2001 From: Kartashov Alexey Date: Wed, 4 May 2016 13:58:34 +0400 Subject: [PATCH 3/3] Update index.js --- index.js | 1 - 1 file changed, 1 deletion(-) diff --git a/index.js b/index.js index 48c81df..19f3e5f 100644 --- a/index.js +++ b/index.js @@ -229,7 +229,6 @@ var readFirstFile = function readFirstFile(uri, filenames, options, cb, examined var filename = filenames.shift(); examinedFiles = examinedFiles || []; examinedFiles.push(filename); - console.log('readFirstFile filename', filename); fs.readFile(filename, (function (filename) { return function(err, data) { if (err) {