mixin-deep 2.0.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. package/README.md +12 -8
  2. package/index.js +11 -7
  3. package/package.json +5 -4
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # mixin-deep [![NPM version](https://img.shields.io/npm/v/mixin-deep.svg?style=flat)](https://www.npmjs.com/package/mixin-deep) [![NPM monthly downloads](https://img.shields.io/npm/dm/mixin-deep.svg?style=flat)](https://npmjs.org/package/mixin-deep) [![NPM total downloads](https://img.shields.io/npm/dt/mixin-deep.svg?style=flat)](https://npmjs.org/package/mixin-deep) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/mixin-deep.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/mixin-deep)
1
+ # mixin-deep [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W8YFZ425KND68) [![NPM version](https://img.shields.io/npm/v/mixin-deep.svg?style=flat)](https://www.npmjs.com/package/mixin-deep) [![NPM monthly downloads](https://img.shields.io/npm/dm/mixin-deep.svg?style=flat)](https://npmjs.org/package/mixin-deep) [![NPM total downloads](https://img.shields.io/npm/dt/mixin-deep.svg?style=flat)](https://npmjs.org/package/mixin-deep) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/mixin-deep.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/mixin-deep)
2
2
 
3
3
  > Deeply mix the properties of objects into the first object. Like merge-deep, but doesn't clone. No dependencies.
4
4
 
@@ -12,6 +12,10 @@ Install with [npm](https://www.npmjs.com/):
12
12
  $ npm install --save mixin-deep
13
13
  ```
14
14
 
15
+ ## Heads up!
16
+
17
+ [Please update](https://gist.github.com/jonschlinkert/9a62534c4f8bc76aee6058caa3f05fd6) to version 2.0.1 or later, a critical bug was fixed in that version.
18
+
15
19
  ## Usage
16
20
 
17
21
  ```js
@@ -65,24 +69,24 @@ You might also be interested in these projects:
65
69
 
66
70
  ### Contributors
67
71
 
68
- | **Commits** | **Contributor** |
69
- | --- | --- |
70
- | 26 | [jonschlinkert](https://github.com/jonschlinkert) |
71
- | 2 | [doowb](https://github.com/doowb) |
72
+ | **Commits** | **Contributor** |
73
+ | --- | --- |
74
+ | 28 | [jonschlinkert](https://github.com/jonschlinkert) |
75
+ | 2 | [doowb](https://github.com/doowb) |
72
76
 
73
77
  ### Author
74
78
 
75
79
  **Jon Schlinkert**
76
80
 
77
- * [LinkedIn Profile](https://linkedin.com/in/jonschlinkert)
78
81
  * [GitHub Profile](https://github.com/jonschlinkert)
79
82
  * [Twitter Profile](https://twitter.com/jonschlinkert)
83
+ * [LinkedIn Profile](https://linkedin.com/in/jonschlinkert)
80
84
 
81
85
  ### License
82
86
 
83
- Copyright © 2018, [Jon Schlinkert](https://github.com/jonschlinkert).
87
+ Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert).
84
88
  Released under the [MIT License](LICENSE).
85
89
 
86
90
  ***
87
91
 
88
- _This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 11, 2018._
92
+ _This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on June 19, 2019._
package/index.js CHANGED
@@ -1,17 +1,25 @@
1
1
  'use strict';
2
2
 
3
- function mixinDeep(target, ...rest) {
3
+ const isObject = val => {
4
+ return typeof val === 'function' || (typeof val === 'object' && val !== null && !Array.isArray(val));
5
+ };
6
+
7
+ const isValidKey = key => {
8
+ return key !== '__proto__' && key !== 'constructor' && key !== 'prototype';
9
+ };
10
+
11
+ const mixinDeep = (target, ...rest) => {
4
12
  for (let obj of rest) {
5
13
  if (isObject(obj)) {
6
14
  for (let key in obj) {
7
- if (key !== '__proto__') {
15
+ if (isValidKey(key)) {
8
16
  mixin(target, obj[key], key);
9
17
  }
10
18
  }
11
19
  }
12
20
  }
13
21
  return target;
14
- }
22
+ };
15
23
 
16
24
  function mixin(target, val, key) {
17
25
  let obj = target[key];
@@ -22,10 +30,6 @@ function mixin(target, val, key) {
22
30
  }
23
31
  }
24
32
 
25
- function isObject(val) {
26
- return typeof val === 'function' || (typeof val === 'object' && val !== null && !Array.isArray(val));
27
- }
28
-
29
33
  /**
30
34
  * Expose mixinDeep
31
35
  * @type {Function}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mixin-deep",
3
3
  "description": "Deeply mix the properties of objects into the first object. Like merge-deep, but doesn't clone. No dependencies.",
4
- "version": "2.0.0",
4
+ "version": "2.0.1",
5
5
  "homepage": "https://github.com/jonschlinkert/mixin-deep",
6
6
  "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
7
7
  "repository": "jonschlinkert/mixin-deep",
@@ -14,16 +14,17 @@
14
14
  ],
15
15
  "main": "index.js",
16
16
  "engines": {
17
- "node": ">=4"
17
+ "node": ">=6"
18
18
  },
19
19
  "scripts": {
20
20
  "test": "mocha"
21
21
  },
22
22
  "devDependencies": {
23
- "gulp-format-md": "^1.0.0",
24
- "mocha": "^5.2.0"
23
+ "gulp-format-md": "^2.0.0",
24
+ "mocha": "^6.1.4"
25
25
  },
26
26
  "keywords": [
27
+ "assign",
27
28
  "deep",
28
29
  "extend",
29
30
  "key",