1 | var _ = require("lodash");
|
2 | var defaultMerge = require("./default/merge");
|
3 |
|
4 | // Returns a successfully merged loader. This function helps DRY up the following: preLoader, loader, and postLoader.
|
5 | // They all perform the same task but attach the returned value to a different data structure.
|
6 | // Used by [pre|post]loader methods to merge the given configuration into the the internal data stores.
|
7 | module.exports = function(loader, name, config, resolver) {
|
8 | loader = (_.clone(loader, true) || {});
|
9 |
|
10 | if (typeof config == "function")
|
11 | loader.config = config(_.clone(loader.config, true) || {});
|
12 | else
|
13 | _.merge(loader, {config: config}, defaultMerge);
|
14 |
|
15 | if (resolver)
|
16 | loader.resolver = resolver;
|
17 |
|
18 | return loader;
|
19 | };
|