require-folder-tree
Advanced tools
Comparing version 1.3.1 to 1.4.0
@@ -75,1 +75,7 @@ # Changelog | ||
* README contribution section | ||
## 1.4.0 | ||
* Ensure required files are not altered in require cache | ||
* Bug fix: correct behavior when combining `flatten` and `filesKey` options | ||
* README update for `fileNameAttribute` option |
@@ -104,5 +104,9 @@ // -------------------- | ||
resultFiles[file] = require(filePath); | ||
if (options.fileNameAttribute) resultFiles[file][options.fileNameAttribute] = file; | ||
if (options.fileParentAttribute) resultFiles[file][options.fileParentAttribute] = result; | ||
var obj = require(filePath); | ||
if (options.fileNameAttribute || options.fileParentAttribute) { | ||
obj = _.clone(obj); | ||
if (options.fileNameAttribute) obj[options.fileNameAttribute] = file; | ||
if (options.fileParentAttribute) obj[options.fileParentAttribute] = result; | ||
} | ||
resultFiles[file] = obj; | ||
}); | ||
@@ -123,3 +127,4 @@ | ||
var resultFolder = processFolder(filePath, options); | ||
var resultFolder = processFolder(filePath, options), | ||
resultFolderFiles = options.filesKey ? resultFolder[options.filesKey] : resultFolder; | ||
@@ -129,7 +134,8 @@ if (options.folderNameTransform) file = options.folderNameTransform(file); | ||
if (options.flatten) { | ||
for (var thisFile in resultFolder) { | ||
var thisFileName = options.flattenCustom(file, thisFile); | ||
if (options.fileNameAttribute) resultFolder[thisFile][options.fileNameAttribute] = thisFileName; | ||
if (options.fileParentAttribute) resultFolder[thisFile][options.fileParentAttribute] = result; | ||
resultFolders[thisFileName] = resultFolder[thisFile]; | ||
for (var thisFile in resultFolderFiles) { | ||
var resultFile = resultFolderFiles[thisFile], | ||
thisFileName = options.flattenCustom(file, thisFile); | ||
if (options.fileNameAttribute) resultFile[options.fileNameAttribute] = thisFileName; | ||
if (options.fileParentAttribute) resultFile[options.fileParentAttribute] = result; | ||
resultFiles[thisFileName] = resultFile; | ||
} | ||
@@ -136,0 +142,0 @@ } else { |
{ | ||
"name": "require-folder-tree", | ||
"version": "1.3.1", | ||
"version": "1.4.0", | ||
"description": "Utility to require multiple files in a folder tree with flexible options", | ||
@@ -5,0 +5,0 @@ "main": "./lib/", |
@@ -97,3 +97,3 @@ # require-folder-tree.js | ||
When set, saves the file name (after `fileNameTransform` has been applied) as an attribute of each `require`-d file. | ||
When set, saves the file name (after `fileNameTransform` and `flatten` have been applied) as an attribute of each `require`-d file. | ||
If `true`, uses value `'name'`. Defaults to `undefined`. | ||
@@ -217,2 +217,7 @@ | ||
## Other usage notes | ||
This module will never alter the contents of the require cache. | ||
i.e. if you `require()` any of the files again, they will not have been altered by e.g. using `fileNameAttribute` option. | ||
## Tests | ||
@@ -219,0 +224,0 @@ |
16667
134
241