@@ -14,13 +14,82 @@ $ npm install --save set-value
14
14
15
15
``` js
16
16
var set = require (' set-value' );
17
+ set (object, prop, value);
18
+ ```
19
+
20
+ ### Params
21
+
22
+ * ` object ` ** {object}** : The object to set ` value ` on
23
+ * ` prop ` ** {string}** : The property to set. Dot-notation may be used.
24
+ * ` value ` ** {any}** : The value to set on ` object[prop] `
25
+
26
+ ## Examples
17
27
28
+ Updates and returns the given object:
29
+
30
+ ``` js
18
31
var obj = {};
19
32
set (obj, ' a.b.c' , ' d' );
20
33
console .log (obj);
21
- // => {a: {b: c: 'd'}}
34
+ // => { a: { b: { c: 'd' } } }
35
+ ```
36
+
37
+ ### Escaping
38
+
39
+ ** Escaping with backslashes**
40
+
41
+ Prevent set-value from splitting on a dot by prefixing it with backslashes:
42
+
43
+ ``` js
44
+ console .log (set ({}, ' a\\ .b.c' , ' d' ));
45
+ // => { 'a.b': { c: 'd' } }
46
+
47
+ console .log (set ({}, ' a\\ .b\\ .c' , ' d' ));
48
+ // => { 'a.b.c': 'd' }
49
+ ```
50
+
51
+ ** Escaping with double-quotes or single-quotes**
52
+
53
+ Wrap double or single quotes around the string, or part of the string, that should not be split by set-value:
54
+
55
+ ``` js
56
+ console .log (set ({}, ' "a.b".c' , ' d' ));
57
+ // => { 'a.b': { c: 'd' } }
58
+
59
+ console .log (set ({}, " 'a.b'.c" , " d" ));
60
+ // => { 'a.b': { c: 'd' } }
61
+
62
+ console .log (set ({}, ' "this/is/a/.file.path"' , ' d' ));
63
+ // => { 'this/is/a/file.path': 'd' }
64
+ ```
65
+
66
+ ### Bracket support
67
+
68
+ set-value does not split inside brackets or braces:
69
+
70
+ ``` js
71
+ console .log (set ({}, ' [a.b].c' , ' d' ));
72
+ // => { '[a.b]': { c: 'd' } }
73
+
74
+ console .log (set ({}, " (a.b).c" , " d" ));
75
+ // => { '(a.b)': { c: 'd' } }
76
+
77
+ console .log (set ({}, " <a.b>.c" , " d" ));
78
+ // => { '<a.b>': { c: 'd' } }
79
+
80
+ console .log (set ({}, " {a..b}.c" , " d" ));
81
+ // => { '{a..b}': { c: 'd' } }
22
82
```
23
83
84
+ ## History
85
+
86
+ ### v2.0.0
87
+
88
+ * Adds support for escaping with double or single quotes. See [ escaping] ( #escaping ) for examples.
89
+ * Will no longer split inside brackets or braces. See [ bracket support] ( #bracket-support ) for examples.
90
+
91
+ If there are any regressions please create a [ bug report] ( ../../issues/new ) . Thanks!
92
+
24
93
## About
25
94
26
95
### Related projects
@@ -42,7 +111,7 @@ Pull requests and stars are always welcome. For bugs and feature requests, [plea
42
111
43
112
| ** Commits** | ** Contributor** |
44
113
| --- | --- |
45
- | 56 | [ jonschlinkert] ( https://github.com/jonschlinkert ) |
114
+ | 59 | [ jonschlinkert] ( https://github.com/jonschlinkert ) |
46
115
| 1 | [ vadimdemedes] ( https://github.com/vadimdemedes ) |
47
116
| 1 | [ wtgtybhertgeghgtwtg] ( https://github.com/wtgtybhertgeghgtwtg ) |
48
117
@@ -78,4 +147,4 @@ Released under the [MIT License](LICENSE).
78
147
79
148
***
80
149
81
- _ This file was generated by [ verb-generate-readme] ( https://github.com/verbose/verb-generate-readme ) , v0.6.0, on May 19 , 2017._
150
+ _ This file was generated by [ verb-generate-readme] ( https://github.com/verbose/verb-generate-readme ) , v0.6.0, on June 21 , 2017._
0 commit comments