First commit
This commit is contained in:
357
hGameTest/node_modules/webpack-merge/CHANGELOG.md
generated
vendored
Normal file
357
hGameTest/node_modules/webpack-merge/CHANGELOG.md
generated
vendored
Normal file
@@ -0,0 +1,357 @@
|
||||
4.2.2 / 2019-08-27
|
||||
=================
|
||||
|
||||
* Fix - Update minimum version of lodash to 4.17.15 in order to avoid `npm audit warning`. #116
|
||||
* Docs - Improve `merge.unique` documentation. #103
|
||||
* Docs - Add clear note about precedence. #115
|
||||
|
||||
4.2.1 / 2019-01-04
|
||||
==================
|
||||
|
||||
* Feature - Support `oneOf` at `merge.smart`. #111
|
||||
* Fix - If there's only single array to merge, clone it. #106
|
||||
|
||||
4.1.4 / 2018-08-01
|
||||
==================
|
||||
|
||||
* Maintenance - Remove bitHound from the README as it closed down. #102
|
||||
|
||||
4.1.3 / 2018-06-14
|
||||
==================
|
||||
|
||||
* Fix - Smart merge respects the existing loader order #79, #101
|
||||
|
||||
4.1.2 / 2017-02-22
|
||||
==================
|
||||
|
||||
* Maintenance - Update lodash, #97, #98
|
||||
|
||||
4.1.1 / 2017-11-01
|
||||
==================
|
||||
|
||||
* Docs - Add `customizeArray` and `customizeObject` examples. #93
|
||||
|
||||
4.1.0 / 2017-03-16
|
||||
==================
|
||||
|
||||
* Feature - `merge.multiple` to allow working with webpack multi-compiler mode. It accepts multiple objects and returns an array you can push to webpack. #74
|
||||
|
||||
4.0.0 / 2017-03-06
|
||||
==================
|
||||
|
||||
* Breaking feature - `merge.smart` allows re-ordering loaders like below. #70
|
||||
|
||||
```javascript
|
||||
merge.smart({
|
||||
loaders: [{
|
||||
test: /\.js$/,
|
||||
loaders: ['babel']
|
||||
}]
|
||||
}, {
|
||||
loaders: [{
|
||||
test: /\.js$/,
|
||||
loaders: ['react-hot', 'babel']
|
||||
}]
|
||||
});
|
||||
// will become
|
||||
{
|
||||
loaders: [{
|
||||
test: /\.js$/,
|
||||
// order of second argument is respected
|
||||
loaders: ['react-hot', 'babel']
|
||||
}]
|
||||
}
|
||||
```
|
||||
|
||||
3.0.0 / 2017-02-19
|
||||
==================
|
||||
|
||||
* Breaking fix - `merge.smart` should not merge a child missing `include`/`exclude` to a parent that has either. This is safer and more predictable behavior than the old one. #69
|
||||
|
||||
2.6.1 / 2017-01-29
|
||||
==================
|
||||
|
||||
* Bug fix - `merge.smart` should not merge rules that have differing `enforce` fields. #65
|
||||
|
||||
2.6.0 / 2017-01-27
|
||||
==================
|
||||
|
||||
* Bug fix - Support `replace` mode for `merge.smartStrategy`. #63
|
||||
|
||||
2.5.0 / 2017-01-26
|
||||
==================
|
||||
|
||||
* Bug fix - Make sure `merge.smartStrategy` works with higher level nesting like `'module.rules.use': 'prepend'`. #64
|
||||
|
||||
2.4.0 / 2017-01-12
|
||||
==================
|
||||
|
||||
* Feature - Add `merge.unique` helper that plugs into `customizeArray`. This allows you to force only one plugin of a type to the end result. #58
|
||||
|
||||
2.3.1 / 2017-01-06
|
||||
==================
|
||||
|
||||
* Bug fix - Clear up `CopyWebpackPlugin` handling. #56
|
||||
|
||||
2.3.0 / 2017-01-06
|
||||
==================
|
||||
|
||||
* Refactor - Depend only on `lodash` instead of individual packages as latter has been discontinued. #52
|
||||
|
||||
2.2.0 / 2017-01-05
|
||||
==================
|
||||
|
||||
* Bug fix - Drop `merge.smartStrategy(rules, plugins)` as that caused other issues (prototype copying for complex cases). That needs a better approach. #55
|
||||
|
||||
2.1.1 / 2017-01-05
|
||||
==================
|
||||
|
||||
* Bug fix - Avoid recursion at `merge.smart`. #53
|
||||
|
||||
2.1.0 / 2017-01-05
|
||||
==================
|
||||
|
||||
* Feature - Allow `merge.smartStrategy` to merge plugin contents. API: `merge.smartStrategy(rules, plugins)`. #44. Example:
|
||||
|
||||
```javascript
|
||||
const output = merge.smartStrategy(
|
||||
{
|
||||
entry: 'prepend', // or 'replace'
|
||||
'module.loaders': 'prepend'
|
||||
},
|
||||
['LoaderOptionsPlugin']
|
||||
)(object1, object2, object3, ...);
|
||||
```
|
||||
|
||||
2.0.0 / 2016-12-22
|
||||
==================
|
||||
|
||||
* Breaking - Disallow overriding configuration with empty arrays/objects (#48). If you want to override, use `merge.strategy`. Example:
|
||||
|
||||
```javascript
|
||||
const a = {
|
||||
entry: ['foo']
|
||||
};
|
||||
const b = {
|
||||
entry: []
|
||||
};
|
||||
|
||||
merge(a, b); // Yields a result, not b like before.
|
||||
```
|
||||
|
||||
1.1.2 / 2016-12-18
|
||||
==================
|
||||
|
||||
* Bug fix - `merge({ entry: {} })` should return the same result as input instead of a function.
|
||||
|
||||
1.1.1 / 2016-12-11
|
||||
==================
|
||||
|
||||
* Bug fix - Support previously undocumented, yet used, `merge([<object>])` format. This works with all available functions. #46
|
||||
|
||||
1.1.0 / 2016-12-09
|
||||
==================
|
||||
|
||||
* Feature - Allow `merge` behavior to be customized with overrides. Example:
|
||||
|
||||
```javascript
|
||||
var output = merge({
|
||||
customizeArray(a, b, key) { return [...a, ...b]; },
|
||||
customizeObject(a, b, key) { return mergeWith(a, b); }
|
||||
})(object1, object2, object3, ...);
|
||||
```
|
||||
|
||||
This allows you to guarantee array uniqueness and so on.
|
||||
|
||||
1.0.2 / 2016-11-29
|
||||
==================
|
||||
|
||||
* Bug fix - `merge` should not mutate inputs with mismatched keys.
|
||||
|
||||
1.0.0 / 2016-11-28
|
||||
==================
|
||||
|
||||
* Feature: Support merging Webpack 2 Rule.use. #38
|
||||
* Bug fix - Don't concat loaders if the first matching entry's include/exclude doesn't match. #39
|
||||
|
||||
0.20.0 / 2016-11-27
|
||||
===================
|
||||
|
||||
* Feature: Add support for merging functions. This feature has been designed `postcss` in mind. It executes the functions, picks their results, and packs them again.
|
||||
|
||||
0.19.0 / 2016-11-26
|
||||
===================
|
||||
|
||||
* Feature: Add support for 'replace' option at `merge.strategy`. It literally replaces the old field value with the newer one. #40
|
||||
|
||||
0.18.0 / 2016-11-24
|
||||
===================
|
||||
|
||||
* Feature: Add support for recursive definitions at `merge.strategy`. Example:
|
||||
|
||||
```javascript
|
||||
var output = merge.strategy({
|
||||
entry: 'prepend',
|
||||
'module.loaders': 'prepend'
|
||||
})(object1, object2, object3, ...);
|
||||
```
|
||||
|
||||
* Feature: Add `merge.smartStrategy`. This combines the ideas of `merge.smart` and `merge.strategy` into one. Example:
|
||||
|
||||
```javascript
|
||||
var output = merge.smartStrategy({
|
||||
entry: 'prepend',
|
||||
'module.loaders': 'prepend'
|
||||
})(object1, object2, object3, ...);
|
||||
```
|
||||
|
||||
0.17.0 / 2016-11-16
|
||||
===================
|
||||
|
||||
* Feature: Add support for `merge.strategy`. Now you can customize merging behavior per root level configuration field. Example: `merge.strategy({ entry: 'prepend' })(object1, object2, object3, ...);`. #17
|
||||
|
||||
0.16.0 / 2016-11-14
|
||||
===================
|
||||
|
||||
* Feature: Add support for webpack 2 at `merge.smart`. It should pick up `module.rules` as you might expect now. #35
|
||||
|
||||
0.15.0 / 2016-10-18
|
||||
===================
|
||||
|
||||
* Breaking: Rework `merge.smart` so that it **appends** loaders instead of **prepending** them. This is the logical thing to do as it allows you to specify behavior better as you `merge`. #32
|
||||
|
||||
0.14.1 / 2016-07-25
|
||||
===================
|
||||
|
||||
* Docs: Improve package description. #23.
|
||||
* Bug fix - Let `merge.smart` merge loaders based on their full name instead of first letter. Thanks to @choffmeister. #26.
|
||||
|
||||
0.14.0 / 2016-06-05
|
||||
===================
|
||||
|
||||
* Feature: Allow `merge.smart` to merge `loaders` if `exclude` is the same. Thanks to @mshwery. #21.
|
||||
|
||||
0.13.0 / 2016-05-24
|
||||
===================
|
||||
|
||||
* Bug fix: Allow `merge.smart` to merge configuration if `include` is defined. Thanks to @blackrabbit99. #20.
|
||||
|
||||
0.12.0 / 2016-04-19
|
||||
===================
|
||||
|
||||
* Feature: Support `include/exclude` at `merge.smart` for `loader` definition too. Thanks to @Whoaa512. #16.
|
||||
|
||||
0.11.0 / 2016-04-18
|
||||
===================
|
||||
|
||||
* Feature: Support `include/exclude` at `merge.smart` when its set only in a parent. #15.
|
||||
|
||||
0.10.0 / 2016-04-10
|
||||
===================
|
||||
|
||||
* Feature: Support `include/exclude` at `merge.smart`. Thanks to @siready. #14.
|
||||
|
||||
0.9.0 / 2016-04-08
|
||||
==================
|
||||
|
||||
* Feature: Allow existing objects/arrays to be emptied with an empty object/array later in merge. This overriding behavior is useful for example emptying your `entry` configuration.
|
||||
|
||||
0.8.4 / 2016-03-17
|
||||
==================
|
||||
|
||||
* Bug fix: *webpack-merge* should not mutate inputs. #12
|
||||
|
||||
0.8.3 / 2016-03-02
|
||||
==================
|
||||
|
||||
* Bug fix: Drop `files` field from *package.json* as it wasn't including the dist correctly.
|
||||
|
||||
0.8.0 / 2016-03-02
|
||||
==================
|
||||
|
||||
* Breaking: Change merging behavior so that only loaders get prepended. The rest follow appending logic. This makes `entry` array merging behavior logical. Prepend makes sense only for loaders after all. #10
|
||||
|
||||
0.7.3 / 2016-01-11
|
||||
==================
|
||||
|
||||
* Bug fix: Do not error when there are no matching loaders. Thanks @GreenGremlin!
|
||||
|
||||
0.7.2 / 2016-01-08
|
||||
==================
|
||||
|
||||
* Regenerate tarball. The problem was that there were some old dependencies included. Closes #7.
|
||||
|
||||
0.7.1 / 2016-01-03
|
||||
==================
|
||||
|
||||
* Improve performance by defaulting to `concat` and by dropping a redundant check. Thanks @davegomez!
|
||||
|
||||
0.7.0 / 2015-12-31
|
||||
==================
|
||||
|
||||
* Bug fix: Arrays get merged within nested structures correctly now. Array items are prepended (reverse order compared to earlier). This is related to the change made in *0.6.0*. Incidentally this change affects normal merge as well.
|
||||
* Smart merge: If a loader contains either `include` or `exclude`, it will generate separate entries instead of merging. Without this the configuration might change in an unpredictable manner.
|
||||
|
||||
0.6.0 / 2015-12-30
|
||||
==================
|
||||
|
||||
* Support `preLoaders` and `postLoaders`. Previously only `loaders` were supported.
|
||||
* Breaking: Change smart merging behavior for `loaders` field so that it prepends loaders instead of appending them. The benefit of this is that now it's possible to specialize loader setup in a predictable manner. For example you can have a linter set up at the root and expect it to become evaluated first always.
|
||||
|
||||
0.5.1 / 2015-12-26
|
||||
==================
|
||||
|
||||
* Fix `merge` object/array case (missing `bind`). The behavior should be correct now.
|
||||
|
||||
0.5.0 / 2015-12-26
|
||||
==================
|
||||
|
||||
* Breaking: Push smart merging behind `merge.smart`. Now `merge` behaves exactly as in *0.3.0* series.
|
||||
|
||||
0.4.0 / 2015-12-23
|
||||
==================
|
||||
|
||||
* Dropped changelog generator. It's better to write these by hand.
|
||||
* Breaking: Added smart merging (@GreenGremlin)
|
||||
|
||||
0.3.2 / 2015-11-23
|
||||
==================
|
||||
|
||||
* Tweaked changelog generator process.
|
||||
|
||||
0.3.1 / 2015-11-23
|
||||
==================
|
||||
|
||||
* Added changelog generator.
|
||||
|
||||
0.3.0 / 2015-11-13
|
||||
==================
|
||||
|
||||
* Improved formatting
|
||||
* Allowed an arbitrary amount of objects to be merged
|
||||
|
||||
0.2.0 / 2015-08-30
|
||||
==================
|
||||
|
||||
* Only require lodash modules used by the package (@montogeek)
|
||||
* Removed lodash.isarray dependency, use Array.isArray standard object
|
||||
|
||||
0.1.3 / 2015-08-10
|
||||
==================
|
||||
|
||||
* Improved README example
|
||||
|
||||
0.1.2 / 2015-07-01
|
||||
==================
|
||||
|
||||
* Simplified example
|
||||
|
||||
0.1.1 / 2015-06-26
|
||||
==================
|
||||
|
||||
* Fixed travis link
|
||||
|
||||
0.1.0 / 2015-06-26
|
||||
==================
|
||||
|
||||
* Initial implementation
|
||||
20
hGameTest/node_modules/webpack-merge/LICENSE
generated
vendored
Normal file
20
hGameTest/node_modules/webpack-merge/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
Copyright (c) 2015 Juho Vepsalainen
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
469
hGameTest/node_modules/webpack-merge/README.md
generated
vendored
Normal file
469
hGameTest/node_modules/webpack-merge/README.md
generated
vendored
Normal file
@@ -0,0 +1,469 @@
|
||||
[](http://travis-ci.org/survivejs/webpack-merge) [](https://codecov.io/gh/survivejs/webpack-merge)
|
||||
|
||||
# webpack-merge - Merge designed for Webpack
|
||||
|
||||
**webpack-merge** provides a `merge` function that concatenates arrays and merges objects creating a new object. If functions are encountered, it will execute them, run the results through the algorithm, and then wrap the returned values within a function again.
|
||||
|
||||
This behavior is particularly useful in configuring webpack although it has uses beyond it. Whenever you need to merge configuration objects, **webpack-merge** can come in handy.
|
||||
|
||||
There's also a webpack specific merge variant known as `merge.smart` that's able to take webpack specifics into account (i.e., it can flatten loader definitions).
|
||||
|
||||
## Standard Merging
|
||||
|
||||
### **`merge(...configuration | [...configuration])`**
|
||||
|
||||
`merge` is the core, and the most important idea, of the API. Often this is all you need unless you want further customization.
|
||||
|
||||
```javascript
|
||||
// Default API
|
||||
var output = merge(object1, object2, object3, ...);
|
||||
|
||||
// You can pass an array of objects directly.
|
||||
// This works with all available functions.
|
||||
var output = merge([object1, object2, object3]);
|
||||
|
||||
// Please note that where keys match,
|
||||
// the objects to the right take precedence:
|
||||
var output = merge(
|
||||
{ fruit: "apple", color: "red" },
|
||||
{ fruit: "strawberries" }
|
||||
);
|
||||
console.log(output);
|
||||
// { color: "red", fruit: "strawberries"}
|
||||
```
|
||||
|
||||
### **`merge({ customizeArray, customizeObject })(...configuration | [...configuration])`**
|
||||
|
||||
`merge` behavior can be customized per field through a curried customization API.
|
||||
|
||||
```javascript
|
||||
// Customizing array/object behavior
|
||||
var output = merge(
|
||||
{
|
||||
customizeArray(a, b, key) {
|
||||
if (key === 'extensions') {
|
||||
return _.uniq([...a, ...b]);
|
||||
}
|
||||
|
||||
// Fall back to default merging
|
||||
return undefined;
|
||||
},
|
||||
customizeObject(a, b, key) {
|
||||
if (key === 'module') {
|
||||
// Custom merging
|
||||
return _.merge({}, a, b);
|
||||
}
|
||||
|
||||
// Fall back to default merging
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
)(object1, object2, object3, ...);
|
||||
```
|
||||
For example, if the previous code was invoked with only `object1` and `object2`
|
||||
with `object1` as:
|
||||
```
|
||||
{
|
||||
foo1: ['object1'],
|
||||
foo2: ['object1'],
|
||||
bar1: { object1: {} },
|
||||
bar2: { object1: {} },
|
||||
}
|
||||
```
|
||||
and `object2` as:
|
||||
```
|
||||
{
|
||||
foo1: ['object2'],
|
||||
foo2: ['object2'],
|
||||
bar1: { object2: {} },
|
||||
bar2: { object2: {} },
|
||||
}
|
||||
```
|
||||
then `customizeArray` will be invoked for each property of `Array` type, i.e:
|
||||
```
|
||||
customizeArray(['object1'], ['object2'], 'foo1');
|
||||
customizeArray(['object1'], ['object2'], 'foo2');
|
||||
```
|
||||
and `customizeObject` will be invoked for each property of `Object` type, i.e:
|
||||
```
|
||||
customizeObject({ object1: {} }, { object2: {} }, bar1);
|
||||
customizeObject({ object1: {} }, { object2: {} }, bar2);
|
||||
```
|
||||
|
||||
### **`merge.unique(<field>, <fields>, field => field)`**
|
||||
|
||||
The first <field> is the config property to look through for duplicates.
|
||||
|
||||
<fields> represents the values that should be unique when you run the field => field function on each duplicate.
|
||||
|
||||
```javascript
|
||||
const output = merge({
|
||||
customizeArray: merge.unique(
|
||||
'plugins',
|
||||
['HotModuleReplacementPlugin'],
|
||||
plugin => plugin.constructor && plugin.constructor.name
|
||||
)
|
||||
})({
|
||||
plugins: [
|
||||
new webpack.HotModuleReplacementPlugin()
|
||||
]
|
||||
}, {
|
||||
plugins: [
|
||||
new webpack.HotModuleReplacementPlugin()
|
||||
]
|
||||
});
|
||||
|
||||
// Output contains only single HotModuleReplacementPlugin now.
|
||||
```
|
||||
|
||||
## Merging with Strategies
|
||||
|
||||
### **`merge.strategy({ <field>: '<prepend|append|replace>''})(...configuration | [...configuration])`**
|
||||
|
||||
Given you may want to configure merging behavior per field, there's a strategy variant:
|
||||
|
||||
```javascript
|
||||
// Merging with a specific merge strategy
|
||||
var output = merge.strategy(
|
||||
{
|
||||
entry: 'prepend', // or 'replace', defaults to 'append'
|
||||
'module.rules': 'prepend'
|
||||
}
|
||||
)(object1, object2, object3, ...);
|
||||
```
|
||||
|
||||
### **`merge.smartStrategy({ <key>: '<prepend|append|replace>''})(...configuration | [...configuration])`**
|
||||
|
||||
The same idea works with smart merging too (described below in greater detail).
|
||||
|
||||
```javascript
|
||||
var output = merge.smartStrategy(
|
||||
{
|
||||
entry: 'prepend', // or 'replace'
|
||||
'module.rules': 'prepend'
|
||||
}
|
||||
)(object1, object2, object3, ...);
|
||||
```
|
||||
|
||||
## Smart Merging
|
||||
|
||||
### **`merge.smart(...configuration | [...configuration])`**
|
||||
|
||||
*webpack-merge* tries to be smart about merging loaders when `merge.smart` is used. Loaders with matching tests will be merged into a single loader value.
|
||||
|
||||
Note that the logic picks up webpack 2 `rules` kind of syntax as well. The examples below have been written in webpack 1 syntax.
|
||||
|
||||
**package.json**
|
||||
|
||||
```json5
|
||||
{
|
||||
"scripts": {
|
||||
"start": "webpack-dev-server",
|
||||
"build": "webpack"
|
||||
},
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
**webpack.config.js**
|
||||
|
||||
```javascript
|
||||
var path = require('path');
|
||||
var merge = require('webpack-merge');
|
||||
|
||||
var TARGET = process.env.npm_lifecycle_event;
|
||||
|
||||
var common = {
|
||||
entry: path.join(__dirname, 'app'),
|
||||
...
|
||||
module: {
|
||||
loaders: [
|
||||
{
|
||||
test: /\.css$/,
|
||||
loaders: ['style', 'css'],
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
if(TARGET === 'start') {
|
||||
module.exports = merge(common, {
|
||||
module: {
|
||||
// loaders will get concatenated!
|
||||
loaders: [
|
||||
{
|
||||
test: /\.jsx?$/,
|
||||
loader: 'babel?stage=1',
|
||||
include: path.join(ROOT_PATH, 'app'),
|
||||
},
|
||||
],
|
||||
},
|
||||
...
|
||||
});
|
||||
}
|
||||
|
||||
if(TARGET === 'build') {
|
||||
module.exports = merge(common, {
|
||||
...
|
||||
});
|
||||
}
|
||||
|
||||
...
|
||||
```
|
||||
|
||||
**Loader string values `loader: 'babel'` override each other.**
|
||||
|
||||
```javascript
|
||||
merge.smart({
|
||||
loaders: [{
|
||||
test: /\.js$/,
|
||||
loader: 'babel'
|
||||
}]
|
||||
}, {
|
||||
loaders: [{
|
||||
test: /\.js$/,
|
||||
loader: 'coffee'
|
||||
}]
|
||||
});
|
||||
// will become
|
||||
{
|
||||
loaders: [{
|
||||
test: /\.js$/,
|
||||
loader: 'coffee'
|
||||
}]
|
||||
}
|
||||
```
|
||||
|
||||
**Loader array values `loaders: ['babel']` will be merged, without duplication.**
|
||||
|
||||
```javascript
|
||||
merge.smart({
|
||||
loaders: [{
|
||||
test: /\.js$/,
|
||||
loaders: ['babel']
|
||||
}]
|
||||
}, {
|
||||
loaders: [{
|
||||
test: /\.js$/,
|
||||
loaders: ['coffee']
|
||||
}]
|
||||
});
|
||||
// will become
|
||||
{
|
||||
loaders: [{
|
||||
test: /\.js$/,
|
||||
// appended because Webpack evaluated these from right to left
|
||||
// this way you can specialize behavior and build the loader chain
|
||||
loaders: ['babel', 'coffee']
|
||||
}]
|
||||
}
|
||||
```
|
||||
|
||||
**Loader array values `loaders: ['babel']` can be reordered by including
|
||||
original loaders.**
|
||||
|
||||
```javascript
|
||||
merge.smart({
|
||||
loaders: [{
|
||||
test: /\.js$/,
|
||||
loaders: ['babel']
|
||||
}]
|
||||
}, {
|
||||
loaders: [{
|
||||
test: /\.js$/,
|
||||
loaders: ['react-hot', 'babel']
|
||||
}]
|
||||
});
|
||||
// will become
|
||||
{
|
||||
loaders: [{
|
||||
test: /\.js$/,
|
||||
// order of second argument is respected
|
||||
loaders: ['react-hot', 'babel']
|
||||
}]
|
||||
}
|
||||
```
|
||||
|
||||
This also works in reverse - the existing order will be maintained if possible:
|
||||
|
||||
```javascript
|
||||
merge.smart({
|
||||
loaders: [{
|
||||
test: /\.css$/,
|
||||
use: [
|
||||
{ loader: 'css-loader', options: { myOptions: true } },
|
||||
{ loader: 'style-loader' }
|
||||
]
|
||||
}]
|
||||
}, {
|
||||
loaders: [{
|
||||
test: /\.css$/,
|
||||
use: [
|
||||
{ loader: 'style-loader', options: { someSetting: true } }
|
||||
]
|
||||
}]
|
||||
});
|
||||
// will become
|
||||
{
|
||||
loaders: [{
|
||||
test: /\.css$/,
|
||||
use: [
|
||||
{ loader: 'css-loader', options: { myOptions: true } },
|
||||
{ loader: 'style-loader', options: { someSetting: true } }
|
||||
]
|
||||
}]
|
||||
}
|
||||
```
|
||||
|
||||
In the case of an order conflict, the second order wins:
|
||||
```javascript
|
||||
merge.smart({
|
||||
loaders: [{
|
||||
test: /\.css$/,
|
||||
use: [
|
||||
{ loader: 'css-loader' },
|
||||
{ loader: 'style-loader' }
|
||||
]
|
||||
}]
|
||||
}, {
|
||||
loaders: [{
|
||||
test: /\.css$/,
|
||||
use: [
|
||||
{ loader: 'style-loader' },
|
||||
{ loader: 'css-loader' }
|
||||
]
|
||||
}]
|
||||
});
|
||||
// will become
|
||||
{
|
||||
loaders: [{
|
||||
test: /\.css$/,
|
||||
use: [
|
||||
{ loader: 'style-loader' }
|
||||
{ loader: 'css-loader' },
|
||||
]
|
||||
}]
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
**Loader query strings `loaders: ['babel?plugins[]=object-assign']` will be overridden.**
|
||||
|
||||
```javascript
|
||||
merge.smart({
|
||||
loaders: [{
|
||||
test: /\.js$/,
|
||||
loaders: ['babel?plugins[]=object-assign']
|
||||
}]
|
||||
}, {
|
||||
loaders: [{
|
||||
test: /\.js$/,
|
||||
loaders: ['babel', 'coffee']
|
||||
}]
|
||||
});
|
||||
// will become
|
||||
{
|
||||
loaders: [{
|
||||
test: /\.js$/,
|
||||
loaders: ['babel', 'coffee']
|
||||
}]
|
||||
}
|
||||
```
|
||||
|
||||
**Loader arrays in source values will have loader strings merged into them.**
|
||||
|
||||
```javascript
|
||||
merge.smart({
|
||||
loaders: [{
|
||||
test: /\.js$/,
|
||||
loader: 'babel'
|
||||
}]
|
||||
}, {
|
||||
loaders: [{
|
||||
test: /\.js$/,
|
||||
loaders: ['coffee']
|
||||
}]
|
||||
});
|
||||
// will become
|
||||
{
|
||||
loaders: [{
|
||||
test: /\.js$/,
|
||||
// appended because Webpack evaluated these from right to left!
|
||||
loaders: ['babel', 'coffee']
|
||||
}]
|
||||
}
|
||||
```
|
||||
|
||||
**Loader strings in source values will always override.**
|
||||
|
||||
```javascript
|
||||
merge.smart({
|
||||
loaders: [{
|
||||
test: /\.js$/,
|
||||
loaders: ['babel']
|
||||
}]
|
||||
}, {
|
||||
loaders: [{
|
||||
test: /\.js$/,
|
||||
loader: 'coffee'
|
||||
}]
|
||||
});
|
||||
// will become
|
||||
{
|
||||
loaders: [{
|
||||
test: /\.js$/,
|
||||
loader: 'coffee'
|
||||
}]
|
||||
}
|
||||
```
|
||||
|
||||
## Multiple Merging
|
||||
|
||||
### **`merge.multiple(...configuration | [...configuration])`**
|
||||
|
||||
Sometimes you may need to support multiple targets, *webpack-merge* will accept an object where each key represents the target configuration. The output becomes an *array* of configurations where matching keys are merged and non-matching keys are added.
|
||||
|
||||
```javascript
|
||||
var path = require('path');
|
||||
var baseConfig = {
|
||||
server: {
|
||||
target: 'node',
|
||||
output: {
|
||||
path: path.resolve(__dirname, 'dist'),
|
||||
filename: 'lib.node.js'
|
||||
}
|
||||
},
|
||||
client: {
|
||||
output: {
|
||||
path: path.resolve(__dirname, 'dist'),
|
||||
filename: 'lib.js'
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// specialized configuration
|
||||
var production = {
|
||||
client: {
|
||||
output: {
|
||||
path: path.resolve(__dirname, 'dist'),
|
||||
filename: '[name].[hash].js'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = merge.multiple(baseConfig, production)
|
||||
```
|
||||
|
||||
> Check out [SurviveJS - Webpack and React](http://survivejs.com/) to dig deeper into the topic.
|
||||
|
||||
## Development
|
||||
|
||||
1. `npm i`
|
||||
1. `npm run build`
|
||||
1. `npm run watch`
|
||||
|
||||
Before contributing, please open an issue where to discuss.
|
||||
|
||||
## License
|
||||
|
||||
*webpack-merge* is available under MIT. See LICENSE for more details.
|
||||
157
hGameTest/node_modules/webpack-merge/lib/index.js
generated
vendored
Normal file
157
hGameTest/node_modules/webpack-merge/lib/index.js
generated
vendored
Normal file
@@ -0,0 +1,157 @@
|
||||
'use strict';
|
||||
|
||||
var _values2 = require('lodash/values');
|
||||
|
||||
var _values3 = _interopRequireDefault(_values2);
|
||||
|
||||
var _unionWith2 = require('lodash/unionWith');
|
||||
|
||||
var _unionWith3 = _interopRequireDefault(_unionWith2);
|
||||
|
||||
var _mergeWith2 = require('lodash/mergeWith');
|
||||
|
||||
var _mergeWith3 = _interopRequireDefault(_mergeWith2);
|
||||
|
||||
var _differenceWith2 = require('lodash/differenceWith');
|
||||
|
||||
var _differenceWith3 = _interopRequireDefault(_differenceWith2);
|
||||
|
||||
var _joinArrays = require('./join-arrays');
|
||||
|
||||
var _joinArrays2 = _interopRequireDefault(_joinArrays);
|
||||
|
||||
var _joinArraysSmart = require('./join-arrays-smart');
|
||||
|
||||
var _unique = require('./unique');
|
||||
|
||||
var _unique2 = _interopRequireDefault(_unique);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
|
||||
|
||||
function merge() {
|
||||
for (var _len = arguments.length, sources = Array(_len), _key = 0; _key < _len; _key++) {
|
||||
sources[_key] = arguments[_key];
|
||||
}
|
||||
|
||||
// This supports
|
||||
// merge([<object>] | ...<object>)
|
||||
// merge({ customizeArray: <fn>, customizeObject: <fn>})([<object>] | ...<object>)
|
||||
// where fn = (a, b, key)
|
||||
if (sources.length === 1) {
|
||||
if (Array.isArray(sources[0])) {
|
||||
return _mergeWith3.default.apply(undefined, [{}].concat(_toConsumableArray(sources[0]), [(0, _joinArrays2.default)(sources[0])]));
|
||||
}
|
||||
|
||||
if (sources[0].customizeArray || sources[0].customizeObject) {
|
||||
return function () {
|
||||
for (var _len2 = arguments.length, structures = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
||||
structures[_key2] = arguments[_key2];
|
||||
}
|
||||
|
||||
if (Array.isArray(structures[0])) {
|
||||
return _mergeWith3.default.apply(undefined, [{}].concat(_toConsumableArray(structures[0]), [(0, _joinArrays2.default)(sources[0])]));
|
||||
}
|
||||
|
||||
return _mergeWith3.default.apply(undefined, [{}].concat(structures, [(0, _joinArrays2.default)(sources[0])]));
|
||||
};
|
||||
}
|
||||
|
||||
return sources[0];
|
||||
}
|
||||
|
||||
return _mergeWith3.default.apply(undefined, [{}].concat(sources, [(0, _joinArrays2.default)()]));
|
||||
}
|
||||
|
||||
var mergeSmart = merge({
|
||||
customizeArray: function customizeArray(a, b, key) {
|
||||
if (isRule(key.split('.').slice(-1)[0])) {
|
||||
return (0, _unionWith3.default)(a, b, _joinArraysSmart.uniteRules.bind(null, {}, key));
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
||||
var mergeMultiple = function mergeMultiple() {
|
||||
for (var _len3 = arguments.length, sources = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
||||
sources[_key3] = arguments[_key3];
|
||||
}
|
||||
|
||||
return (0, _values3.default)(merge(sources));
|
||||
};
|
||||
|
||||
// rules: { <field>: <'append'|'prepend'|'replace'> }
|
||||
// All default to append but you can override here
|
||||
var mergeStrategy = function mergeStrategy() {
|
||||
var rules = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||
return merge({
|
||||
customizeArray: _customizeArray(rules),
|
||||
customizeObject: customizeObject(rules)
|
||||
});
|
||||
};
|
||||
var mergeSmartStrategy = function mergeSmartStrategy() {
|
||||
var rules = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||
return merge({
|
||||
customizeArray: function customizeArray(a, b, key) {
|
||||
var topKey = key.split('.').slice(-1)[0];
|
||||
|
||||
if (isRule(topKey)) {
|
||||
switch (rules[key]) {
|
||||
case 'prepend':
|
||||
return [].concat(_toConsumableArray((0, _differenceWith3.default)(b, a, function (newRule, seenRule) {
|
||||
return (0, _joinArraysSmart.uniteRules)(rules, key, newRule, seenRule, 'prepend');
|
||||
})), _toConsumableArray(a));
|
||||
case 'replace':
|
||||
return b;
|
||||
default:
|
||||
// append
|
||||
return (0, _unionWith3.default)(a, b, _joinArraysSmart.uniteRules.bind(null, rules, key));
|
||||
}
|
||||
}
|
||||
|
||||
return _customizeArray(rules)(a, b, key);
|
||||
},
|
||||
customizeObject: customizeObject(rules)
|
||||
});
|
||||
};
|
||||
|
||||
function _customizeArray(rules) {
|
||||
return function (a, b, key) {
|
||||
switch (rules[key]) {
|
||||
case 'prepend':
|
||||
return [].concat(_toConsumableArray(b), _toConsumableArray(a));
|
||||
case 'replace':
|
||||
return b;
|
||||
default:
|
||||
// append
|
||||
return false;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function customizeObject(rules) {
|
||||
return function (a, b, key) {
|
||||
switch (rules[key]) {
|
||||
case 'prepend':
|
||||
return (0, _mergeWith3.default)({}, b, a, (0, _joinArrays2.default)());
|
||||
case 'replace':
|
||||
return b;
|
||||
default:
|
||||
// append
|
||||
return false;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function isRule(key) {
|
||||
return ['preLoaders', 'loaders', 'postLoaders', 'rules'].indexOf(key) >= 0;
|
||||
}
|
||||
|
||||
module.exports = merge;
|
||||
module.exports.multiple = mergeMultiple;
|
||||
module.exports.smart = mergeSmart;
|
||||
module.exports.strategy = mergeStrategy;
|
||||
module.exports.smartStrategy = mergeSmartStrategy;
|
||||
module.exports.unique = _unique2.default;
|
||||
1
hGameTest/node_modules/webpack-merge/lib/index.js.map
generated
vendored
Normal file
1
hGameTest/node_modules/webpack-merge/lib/index.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
||||
237
hGameTest/node_modules/webpack-merge/lib/join-arrays-smart.js
generated
vendored
Normal file
237
hGameTest/node_modules/webpack-merge/lib/join-arrays-smart.js
generated
vendored
Normal file
@@ -0,0 +1,237 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.uniteEntries = exports.uniteRules = undefined;
|
||||
|
||||
var _unionWith2 = require('lodash/unionWith');
|
||||
|
||||
var _unionWith3 = _interopRequireDefault(_unionWith2);
|
||||
|
||||
var _differenceWith2 = require('lodash/differenceWith');
|
||||
|
||||
var _differenceWith3 = _interopRequireDefault(_differenceWith2);
|
||||
|
||||
var _mergeWith2 = require('lodash/mergeWith');
|
||||
|
||||
var _mergeWith3 = _interopRequireDefault(_mergeWith2);
|
||||
|
||||
var _isEqual2 = require('lodash/isEqual');
|
||||
|
||||
var _isEqual3 = _interopRequireDefault(_isEqual2);
|
||||
|
||||
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
|
||||
|
||||
var isArray = Array.isArray;
|
||||
|
||||
function uniteRules(rules, key, newRule, rule) {
|
||||
if (String(rule.test) !== String(newRule.test) || (newRule.enforce || rule.enforce) && rule.enforce !== newRule.enforce || newRule.include && !isSameValue(rule.include, newRule.include) || newRule.exclude && !isSameValue(rule.exclude, newRule.exclude)) {
|
||||
return false;
|
||||
} else if (!rule.test && !rule.include && !rule.exclude && (rule.loader && rule.loader.split('?')[0]) !== (newRule.loader && newRule.loader.split('?')[0])) {
|
||||
// Don't merge the rule if there isn't any identifying fields and the loaders don't match
|
||||
return false;
|
||||
} else if ((rule.include || rule.exclude) && !newRule.include && !newRule.exclude) {
|
||||
// Don't merge child without include/exclude to parent that has either
|
||||
return false;
|
||||
}
|
||||
|
||||
// apply the same logic for oneOf
|
||||
if (rule.oneOf && newRule.oneOf) {
|
||||
rule.oneOf = (0, _unionWith3.default)(rule.oneOf, newRule.oneOf, uniteRules.bind(null, {}, 'oneOf'));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// newRule.loader should always override use, loaders and oneOf
|
||||
if (newRule.loader) {
|
||||
var optionsKey = newRule.options ? 'options' : newRule.query && 'query';
|
||||
|
||||
delete rule.use;
|
||||
delete rule.loaders;
|
||||
delete rule.oneOf;
|
||||
|
||||
rule.loader = newRule.loader;
|
||||
|
||||
if (optionsKey) {
|
||||
rule[optionsKey] = newRule[optionsKey];
|
||||
}
|
||||
} else if (newRule.oneOf) {
|
||||
delete rule.use;
|
||||
delete rule.loaders;
|
||||
delete rule.loader;
|
||||
|
||||
rule.oneOf = newRule.oneOf;
|
||||
} else if ((rule.use || rule.loaders || rule.loader) && (newRule.use || newRule.loaders)) {
|
||||
var expandEntry = function expandEntry(loader) {
|
||||
return typeof loader === 'string' ? { loader: loader } : loader;
|
||||
};
|
||||
// this is only here to avoid breaking existing tests
|
||||
var unwrapEntry = function unwrapEntry(entry) {
|
||||
return !entry.options && !entry.query ? entry.loader : entry;
|
||||
};
|
||||
|
||||
var entries = void 0;
|
||||
if (rule.loader) {
|
||||
var _optionsKey = rule.options ? 'options' : rule.query && 'query';
|
||||
entries = [{ loader: rule.loader }];
|
||||
|
||||
if (_optionsKey) {
|
||||
entries[0][_optionsKey] = rule[_optionsKey];
|
||||
}
|
||||
|
||||
delete rule.loader;
|
||||
|
||||
if (_optionsKey) {
|
||||
delete rule[_optionsKey];
|
||||
}
|
||||
} else {
|
||||
entries = [].concat(rule.use || rule.loaders).map(expandEntry);
|
||||
}
|
||||
var newEntries = [].concat(newRule.use || newRule.loaders).map(expandEntry);
|
||||
|
||||
var loadersKey = rule.use || newRule.use ? 'use' : 'loaders';
|
||||
var resolvedKey = key + '.' + loadersKey;
|
||||
|
||||
switch (rules[resolvedKey]) {
|
||||
case 'prepend':
|
||||
rule[loadersKey] = [].concat(_toConsumableArray((0, _differenceWith3.default)(newEntries, entries, uniteEntries)), _toConsumableArray(entries)).map(unwrapEntry);
|
||||
break;
|
||||
case 'replace':
|
||||
rule[loadersKey] = newRule.use || newRule.loaders;
|
||||
break;
|
||||
default:
|
||||
rule[loadersKey] = combineEntries(newEntries, entries).map(unwrapEntry);
|
||||
}
|
||||
}
|
||||
|
||||
if (newRule.include) {
|
||||
rule.include = newRule.include;
|
||||
}
|
||||
|
||||
if (newRule.exclude) {
|
||||
rule.exclude = newRule.exclude;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check equality of two values using lodash's isEqual
|
||||
* Arrays need to be sorted for equality checking
|
||||
* but clone them first so as not to disrupt the sort order in tests
|
||||
*/
|
||||
function isSameValue(a, b) {
|
||||
var _map = [a, b].map(function (value) {
|
||||
return isArray(value) ? [].concat(_toConsumableArray(value)).sort() : value;
|
||||
}),
|
||||
_map2 = _slicedToArray(_map, 2),
|
||||
propA = _map2[0],
|
||||
propB = _map2[1];
|
||||
|
||||
return (0, _isEqual3.default)(propA, propB);
|
||||
}
|
||||
|
||||
function areEqualEntries(newEntry, entry) {
|
||||
var loaderNameRe = /^([^?]+)/ig;
|
||||
|
||||
var _entry$loader$match = entry.loader.match(loaderNameRe),
|
||||
_entry$loader$match2 = _slicedToArray(_entry$loader$match, 1),
|
||||
loaderName = _entry$loader$match2[0];
|
||||
|
||||
var _newEntry$loader$matc = newEntry.loader.match(loaderNameRe),
|
||||
_newEntry$loader$matc2 = _slicedToArray(_newEntry$loader$matc, 1),
|
||||
newLoaderName = _newEntry$loader$matc2[0];
|
||||
|
||||
return loaderName === newLoaderName;
|
||||
}
|
||||
|
||||
function uniteEntries(newEntry, entry) {
|
||||
if (areEqualEntries(newEntry, entry)) {
|
||||
// Replace query values with newer ones
|
||||
(0, _mergeWith3.default)(entry, newEntry);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Combines entries and newEntries, while respecting the order of loaders in each.
|
||||
|
||||
Iterates through new entries. If the new entry also exists in existing entries,
|
||||
we'll put in all of the loaders from existing entries that come before it (in case
|
||||
those are pre-requisites). Any remaining existing entries are added at the end.
|
||||
|
||||
Since webpack processes right-to-left, we're working backwards through the arrays
|
||||
*/
|
||||
function combineEntries(newEntries, existingEntries) {
|
||||
var resultSet = [];
|
||||
|
||||
// We're iterating through newEntries, this keeps track of where we are in the existingEntries
|
||||
var existingEntriesIteratorIndex = existingEntries.length - 1;
|
||||
|
||||
for (var i = newEntries.length - 1; i >= 0; i -= 1) {
|
||||
var currentEntry = newEntries[i];
|
||||
var indexInExistingEntries = findLastIndexUsingComparinator(existingEntries, currentEntry, areEqualEntries, existingEntriesIteratorIndex);
|
||||
var hasEquivalentEntryInExistingEntries = indexInExistingEntries !== -1;
|
||||
|
||||
if (hasEquivalentEntryInExistingEntries) {
|
||||
// If the same entry exists in existing entries, we should add all of the entries that
|
||||
// come before to maintain order
|
||||
for (var j = existingEntriesIteratorIndex; j > indexInExistingEntries; j -= 1) {
|
||||
var existingEntry = existingEntries[j];
|
||||
|
||||
// If this entry also exists in new entries, we'll add as part of iterating through
|
||||
// new entries so that if there's a conflict between existing entries and new entries,
|
||||
// new entries order wins
|
||||
var hasMatchingEntryInNewEntries = findLastIndexUsingComparinator(newEntries, existingEntry, areEqualEntries, i) !== -1;
|
||||
|
||||
if (!hasMatchingEntryInNewEntries) {
|
||||
resultSet.unshift(existingEntry);
|
||||
}
|
||||
existingEntriesIteratorIndex -= 1;
|
||||
}
|
||||
|
||||
uniteEntries(currentEntry, existingEntries[existingEntriesIteratorIndex]);
|
||||
// uniteEntries mutates the second parameter to be a merged version, so that's what's pushed
|
||||
resultSet.unshift(existingEntries[existingEntriesIteratorIndex]);
|
||||
|
||||
existingEntriesIteratorIndex -= 1;
|
||||
} else {
|
||||
var alreadyHasMatchingEntryInResultSet = findLastIndexUsingComparinator(resultSet, currentEntry, areEqualEntries) !== -1;
|
||||
|
||||
if (!alreadyHasMatchingEntryInResultSet) {
|
||||
resultSet.unshift(currentEntry);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Add remaining existing entries
|
||||
for (existingEntriesIteratorIndex; existingEntriesIteratorIndex >= 0; existingEntriesIteratorIndex -= 1) {
|
||||
|
||||
var _existingEntry = existingEntries[existingEntriesIteratorIndex];
|
||||
var _alreadyHasMatchingEntryInResultSet = findLastIndexUsingComparinator(resultSet, _existingEntry, areEqualEntries) !== -1;
|
||||
|
||||
if (!_alreadyHasMatchingEntryInResultSet) {
|
||||
resultSet.unshift(_existingEntry);
|
||||
}
|
||||
}
|
||||
|
||||
return resultSet;
|
||||
}
|
||||
|
||||
function findLastIndexUsingComparinator(entries, entryToFind, comparinator, startingIndex) {
|
||||
startingIndex = startingIndex || entries.length - 1;
|
||||
for (var i = startingIndex; i >= 0; i -= 1) {
|
||||
if (areEqualEntries(entryToFind, entries[i])) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
exports.uniteRules = uniteRules;
|
||||
exports.uniteEntries = uniteEntries;
|
||||
1
hGameTest/node_modules/webpack-merge/lib/join-arrays-smart.js.map
generated
vendored
Normal file
1
hGameTest/node_modules/webpack-merge/lib/join-arrays-smart.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
71
hGameTest/node_modules/webpack-merge/lib/join-arrays.js
generated
vendored
Normal file
71
hGameTest/node_modules/webpack-merge/lib/join-arrays.js
generated
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
||||
var _mergeWith2 = require('lodash/mergeWith');
|
||||
|
||||
var _mergeWith3 = _interopRequireDefault(_mergeWith2);
|
||||
|
||||
var _isPlainObject2 = require('lodash/isPlainObject');
|
||||
|
||||
var _isPlainObject3 = _interopRequireDefault(_isPlainObject2);
|
||||
|
||||
var _isFunction2 = require('lodash/isFunction');
|
||||
|
||||
var _isFunction3 = _interopRequireDefault(_isFunction2);
|
||||
|
||||
var _cloneDeep2 = require('lodash/cloneDeep');
|
||||
|
||||
var _cloneDeep3 = _interopRequireDefault(_cloneDeep2);
|
||||
|
||||
exports.default = joinArrays;
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
|
||||
|
||||
var isArray = Array.isArray;
|
||||
|
||||
function joinArrays() {
|
||||
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
||||
customizeArray = _ref.customizeArray,
|
||||
customizeObject = _ref.customizeObject,
|
||||
key = _ref.key;
|
||||
|
||||
return function _joinArrays(a, b, k) {
|
||||
var newKey = key ? key + '.' + k : k;
|
||||
|
||||
if ((0, _isFunction3.default)(a) && (0, _isFunction3.default)(b)) {
|
||||
return function () {
|
||||
return _joinArrays(a.apply(undefined, arguments), b.apply(undefined, arguments), k);
|
||||
};
|
||||
}
|
||||
if (isArray(a) && isArray(b)) {
|
||||
var customResult = customizeArray && customizeArray(a, b, newKey);
|
||||
|
||||
return customResult || [].concat(_toConsumableArray(a), _toConsumableArray(b));
|
||||
}
|
||||
|
||||
if ((0, _isPlainObject3.default)(a) && (0, _isPlainObject3.default)(b)) {
|
||||
var _customResult = customizeObject && customizeObject(a, b, newKey);
|
||||
|
||||
return _customResult || (0, _mergeWith3.default)({}, a, b, joinArrays({
|
||||
customizeArray: customizeArray,
|
||||
customizeObject: customizeObject,
|
||||
key: newKey
|
||||
}));
|
||||
}
|
||||
|
||||
if ((0, _isPlainObject3.default)(b)) {
|
||||
return (0, _cloneDeep3.default)(b);
|
||||
}
|
||||
|
||||
if (isArray(b)) {
|
||||
return [].concat(_toConsumableArray(b));
|
||||
}
|
||||
|
||||
return b;
|
||||
};
|
||||
}
|
||||
1
hGameTest/node_modules/webpack-merge/lib/join-arrays.js.map
generated
vendored
Normal file
1
hGameTest/node_modules/webpack-merge/lib/join-arrays.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"join-arrays.js","sourceRoot":"","sources":["../src/join-arrays.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAyE;AAGzE,IAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAE9B,SAAwB,UAAU,CAAC,EAQ7B;QAR6B,4BAQ7B,EAPJ,kCAAc,EACd,oCAAe,EACf,YAAG;IAMH,OAAO,SAAS,WAAW,CAAC,CAAM,EAAE,CAAM,EAAE,CAAM;QAChD,IAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAI,GAAG,SAAI,CAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvC,IAAI,mBAAU,CAAC,CAAC,CAAC,IAAI,mBAAU,CAAC,CAAC,CAAC,EAAE;YAClC,OAAO;gBAAC,cAAc;qBAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;oBAAd,yBAAc;;gBAAK,OAAA,WAAW,CAAC,CAAC,wBAAI,IAAI,IAAG,CAAC,wBAAI,IAAI,IAAG,CAAC,CAAC;YAAtC,CAAsC,CAAC;SACnE;QACD,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;YAC5B,IAAM,YAAY,GAAG,cAAc,IAAI,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;YAEpE,OAAO,YAAY,aAAQ,CAAC,EAAK,CAAC,CAAC,CAAC;SACrC;QAED,IAAI,sBAAa,CAAC,CAAC,CAAC,IAAI,sBAAa,CAAC,CAAC,CAAC,EAAE;YACxC,IAAM,YAAY,GAAG,eAAe,IAAI,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;YAEtE,OAAO,CACL,YAAY;gBACZ,kBAAS,CACP,EAAE,EACF,CAAC,EACD,CAAC,EACD,UAAU,CAAC;oBACT,cAAc,gBAAA;oBACd,eAAe,iBAAA;oBACf,GAAG,EAAE,MAAM;iBACZ,CAAC,CACH,CACF,CAAC;SACH;QAED,IAAI,sBAAa,CAAC,CAAC,CAAC,EAAE;YACpB,OAAO,kBAAS,CAAC,CAAC,CAAC,CAAC;SACrB;QAED,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;YACd,gBAAW,CAAC,EAAE;SACf;QAED,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;AACJ,CAAC;AAjDD,6BAiDC"}
|
||||
21
hGameTest/node_modules/webpack-merge/lib/types.js
generated
vendored
Normal file
21
hGameTest/node_modules/webpack-merge/lib/types.js
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var ArrayRule;
|
||||
(function (ArrayRule) {
|
||||
ArrayRule["PreLoaders"] = "preLoaders";
|
||||
ArrayRule["Loaders"] = "loaders";
|
||||
ArrayRule["PostLoaders"] = "postLoaders";
|
||||
ArrayRule["Rules"] = "rules";
|
||||
})(ArrayRule = exports.ArrayRule || (exports.ArrayRule = {}));
|
||||
var CustomizeRule;
|
||||
(function (CustomizeRule) {
|
||||
CustomizeRule["Append"] = "append";
|
||||
CustomizeRule["Prepend"] = "prepend";
|
||||
CustomizeRule["Replace"] = "replace";
|
||||
})(CustomizeRule = exports.CustomizeRule || (exports.CustomizeRule = {}));
|
||||
var Enforce;
|
||||
(function (Enforce) {
|
||||
Enforce["Pre"] = "pre";
|
||||
Enforce["Post"] = "Post";
|
||||
})(Enforce = exports.Enforce || (exports.Enforce = {}));
|
||||
//# sourceMappingURL=types.js.map
|
||||
1
hGameTest/node_modules/webpack-merge/lib/types.js.map
generated
vendored
Normal file
1
hGameTest/node_modules/webpack-merge/lib/types.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;AAKA,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,sCAAyB,CAAA;IACzB,gCAAmB,CAAA;IACnB,wCAA2B,CAAA;IAC3B,4BAAe,CAAA;AACjB,CAAC,EALW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAKpB;AAKD,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,kCAAiB,CAAA;IACjB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;AACrB,CAAC,EAJW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAIxB;AAED,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,sBAAW,CAAA;IACX,wBAAa,CAAA;AACf,CAAC,EAHW,OAAO,GAAP,eAAO,KAAP,eAAO,QAGlB"}
|
||||
27
hGameTest/node_modules/webpack-merge/lib/unique.js
generated
vendored
Normal file
27
hGameTest/node_modules/webpack-merge/lib/unique.js
generated
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
||||
var _differenceWith2 = require('lodash/differenceWith');
|
||||
|
||||
var _differenceWith3 = _interopRequireDefault(_differenceWith2);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
|
||||
|
||||
function mergeUnique(key, uniques) {
|
||||
var getter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function (a) {
|
||||
return a;
|
||||
};
|
||||
|
||||
return function (a, b, k) {
|
||||
return k === key && [].concat(_toConsumableArray(a), _toConsumableArray((0, _differenceWith3.default)(b, a, function (item) {
|
||||
return uniques.indexOf(getter(item)) >= 0;
|
||||
})));
|
||||
};
|
||||
}
|
||||
|
||||
exports.default = mergeUnique;
|
||||
1
hGameTest/node_modules/webpack-merge/lib/unique.js.map
generated
vendored
Normal file
1
hGameTest/node_modules/webpack-merge/lib/unique.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"unique.js","sourceRoot":"","sources":["../src/unique.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAwC;AAExC,SAAS,WAAW,CAAC,GAAW,EAAE,OAAiB,EAAE,MAAqB;IAArB,uBAAA,EAAA,mBAAU,CAAK,IAAK,OAAA,CAAC,EAAD,CAAC;IACxE,OAAO,UAAC,CAAK,EAAE,CAAK,EAAE,CAAS;QAC7B,OAAA,CAAC,KAAK,GAAG,aACJ,CAAC,EACD,uBAAc,CAAC,CAAC,EAAE,CAAC,EAAE,UAAA,IAAI,IAAI,OAAA,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAlC,CAAkC,CAAC,CACpE;IAHD,CAGC,CAAC;AACN,CAAC;AAED,kBAAe,WAAW,CAAC"}
|
||||
102
hGameTest/node_modules/webpack-merge/package.json
generated
vendored
Normal file
102
hGameTest/node_modules/webpack-merge/package.json
generated
vendored
Normal file
@@ -0,0 +1,102 @@
|
||||
{
|
||||
"_from": "webpack-merge@^4.1.1",
|
||||
"_id": "webpack-merge@4.2.2",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==",
|
||||
"_location": "/webpack-merge",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "webpack-merge@^4.1.1",
|
||||
"name": "webpack-merge",
|
||||
"escapedName": "webpack-merge",
|
||||
"rawSpec": "^4.1.1",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "^4.1.1"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"#DEV:/"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz",
|
||||
"_shasum": "a27c52ea783d1398afd2087f547d7b9d2f43634d",
|
||||
"_spec": "webpack-merge@^4.1.1",
|
||||
"_where": "/home/andreas/Documents/Projects/haxe/openfl/nigger",
|
||||
"author": {
|
||||
"name": "Juho Vepsalainen",
|
||||
"email": "bebraw@gmail.com"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/survivejs/webpack-merge/issues"
|
||||
},
|
||||
"bundleDependencies": false,
|
||||
"dependencies": {
|
||||
"lodash": "^4.17.15"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "Variant of merge that's useful for webpack configuration",
|
||||
"devDependencies": {
|
||||
"babel-cli": "^6.26.0",
|
||||
"babel-plugin-lodash": "^3.3.2",
|
||||
"babel-preset-es2015": "^6.24.1",
|
||||
"copy-webpack-plugin": "^4.4.1",
|
||||
"eslint": "^3.19.0",
|
||||
"eslint-config-airbnb": "^14.1.0",
|
||||
"eslint-plugin-import": "^2.9.0",
|
||||
"eslint-plugin-jsx-a11y": "^3.0.2",
|
||||
"eslint-plugin-react": "^6.10.3",
|
||||
"git-prepush-hook": "^1.0.2",
|
||||
"istanbul": "^0.4.5",
|
||||
"mocha": "^3.5.3",
|
||||
"npm-watch": "^0.1.9",
|
||||
"webpack": "^1.15.0"
|
||||
},
|
||||
"files": [
|
||||
"lib"
|
||||
],
|
||||
"homepage": "https://github.com/survivejs/webpack-merge",
|
||||
"keywords": [
|
||||
"webpack",
|
||||
"merge"
|
||||
],
|
||||
"license": "MIT",
|
||||
"main": "lib/index.js",
|
||||
"name": "webpack-merge",
|
||||
"pre-push": [
|
||||
"test:lint",
|
||||
"build",
|
||||
"test"
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/survivejs/webpack-merge.git"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "babel src -d lib",
|
||||
"preversion": "npm run test:lint && npm run build && npm test && git commit --allow-empty -am \"Update lib\"",
|
||||
"test": "mocha tests/test-*",
|
||||
"test:coverage": "istanbul cover node_modules/.bin/_mocha tests/test-*",
|
||||
"test:lint": "eslint src/ tests/ --cache",
|
||||
"watch": "npm-watch"
|
||||
},
|
||||
"version": "4.2.2",
|
||||
"watch": {
|
||||
"build": {
|
||||
"patterns": [
|
||||
"src/**/*.js"
|
||||
]
|
||||
},
|
||||
"test": {
|
||||
"patterns": [
|
||||
"src/**/*.js",
|
||||
"tests/**/*.js"
|
||||
]
|
||||
},
|
||||
"test:lint": {
|
||||
"patterns": [
|
||||
"src/**/*.js",
|
||||
"tests/**/*.js"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user