@rimbu/deep 0.8.2 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  Offers tools to use handle plain JS objects as immutable objects. The [`Patch` object](https://rimbu.org/docs/deep/patch) allows convenient immutable modification of simple objects. The [`Match` object](https://rimbu.org/docs/deep/match) allows easy matching on plain objects. The [`Path` object](https://rimbu.org/docs/deep/path) allows easy querying of nested values. The [`Immutable` type](https://rimbu.org/docs/deep/immutable) makes it easy to create plain objects that that have compile-time protection against mutation. The [`Tuple` type](https://rimbu.org/docs/deep/tuple) is a utility to have similar functionality as `as const` but less strict.
8
8
 
9
- For complete documentation please visit the [Immutable Objects overview](https://rimbu.org/docs/deep/overview) in the _[Rimbu Docs](https://rimbu.org)_.
9
+ For complete documentation please visit the [Immutable Objects overview](https://rimbu.org/docs/deep/overview) in the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu Deep API Docs](https://rimbu.org/api/rimbu/deep)_.
10
10
 
11
11
  Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox.
12
12
 
@@ -26,29 +26,40 @@ or
26
26
 
27
27
  ### Deno
28
28
 
29
- Create a file called `rimbu.ts` and add the following:
29
+ For Deno, the following approach is recommended:
30
30
 
31
- > ```ts
32
- > export * from 'https://deno.land/x/rimbu/deep/mod.ts';
33
- > ```
31
+ In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu):
34
32
 
35
- Or using a pinned version (`x.y.z`):
33
+ ```json
34
+ {
35
+ "imports": {
36
+ "@rimbu/": "https://deno.land/x/rimbu@x.y.z/"
37
+ }
38
+ }
39
+ ```
40
+
41
+ **Note: The trailing slashes are important!**
42
+
43
+ In this way you can use relative imports from Rimbu in your code, like so:
36
44
 
37
- > ```ts
38
- > export * from 'https://deno.land/x/rimbu/deep@x.y.z/mod.ts';
39
- > ```
45
+ ```ts
46
+ import { List } from '@rimbu/core/mod.ts';
47
+ import { HashMap } from '@rimbu/hashed/mod.ts';
48
+ ```
40
49
 
41
- Then import what you need from `rimbu.ts`:
50
+ Note that for sub-packages, due to conversion limitations it is needed to import the `index.ts` instead of `mod.ts`, like so:
42
51
 
43
52
  ```ts
44
- import { patch } from './rimbu.ts';
53
+ import { HashMap } from '@rimbu/hashed/map/index.ts';
45
54
  ```
46
55
 
47
- Because Rimbu uses complex types, it's recommended to use the `--no-check` flag (your editor should already have checked your code) and to specify a `tsconfig.json` file with the settings described below.
56
+ To run your script (let's assume the entry point is in `src/main.ts`):
57
+
58
+ `deno run --import-map import_map.json src/main.ts`
48
59
 
49
- Running your script then becomes:
60
+ Because Rimbu uses advanced types, this may slow down the type checking part when running your code. If you're able to rely on your code editor to provide type errors, you can skip the Deno type check using the `--no-check` flag:
50
61
 
51
- > `deno run --no-check --config tsconfig.json <your-script>.ts`
62
+ `deno run --import-map import_map.json --no-check src/main.ts`
52
63
 
53
64
  ## Usage
54
65
 
@@ -77,7 +88,7 @@ Feel very welcome to contribute to further improve Rimbu. Please read our [Contr
77
88
 
78
89
  ## Contributors
79
90
 
80
- <img src = "https://contrib.rocks/image?repo=vitoke/iternal"/>
91
+ <img src = "https://contrib.rocks/image?repo=rimbu-org/rimbu"/>
81
92
 
82
93
  Made with [contributors-img](https://contrib.rocks).
83
94
 
@@ -1,5 +1,12 @@
1
1
  "use strict";
2
+ /**
3
+ * @packageDocumentation
4
+ *
5
+ * The `@rimbu/deep` package provides utilities to patch and match plain JavaScript objects..<br/>
6
+ * <br/>
7
+ * See the [Rimbu docs Deep overview page](/docs/deep/overview) for more information.
8
+ */
2
9
  Object.defineProperty(exports, "__esModule", { value: true });
3
10
  var tslib_1 = require("tslib");
4
- (0, tslib_1.__exportStar)(require("./internal"), exports);
11
+ tslib_1.__exportStar(require("./internal"), exports);
5
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,0DAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,qDAA2B"}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
- (0, tslib_1.__exportStar)(require("./tuple"), exports);
5
- (0, tslib_1.__exportStar)(require("./literal"), exports);
6
- (0, tslib_1.__exportStar)(require("./immutable"), exports);
7
- (0, tslib_1.__exportStar)(require("./match"), exports);
8
- (0, tslib_1.__exportStar)(require("./path"), exports);
9
- (0, tslib_1.__exportStar)(require("./patch"), exports);
4
+ tslib_1.__exportStar(require("./tuple"), exports);
5
+ tslib_1.__exportStar(require("./literal"), exports);
6
+ tslib_1.__exportStar(require("./immutable"), exports);
7
+ tslib_1.__exportStar(require("./match"), exports);
8
+ tslib_1.__exportStar(require("./path"), exports);
9
+ tslib_1.__exportStar(require("./patch"), exports);
10
10
  //# sourceMappingURL=internal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/internal.ts"],"names":[],"mappings":";;;AAAA,uDAAwB;AACxB,yDAA0B;AAC1B,2DAA4B;AAC5B,uDAAwB;AACxB,sDAAuB;AACvB,uDAAwB"}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/internal.ts"],"names":[],"mappings":";;;AAAA,kDAAwB;AACxB,oDAA0B;AAC1B,sDAA4B;AAC5B,kDAAwB;AACxB,iDAAuB;AACvB,kDAAwB"}
@@ -12,8 +12,10 @@ var Match;
12
12
  * @param value - the value to match
13
13
  * @param matchers - one or more `Match` objects
14
14
  * @example
15
+ * ```ts
15
16
  * matchAll({ g: { h: 'abc' }})({ g: { h: 'a' }}) => false
16
17
  * matchAll({ g: { h: 'abc' }})({ g: { h: v => v.length > 1 }}) => true
18
+ * ```
17
19
  */
18
20
  function all(value) {
19
21
  return function () {
@@ -23,7 +25,7 @@ var Match;
23
25
  matchers[_i] = arguments[_i];
24
26
  }
25
27
  try {
26
- for (var matchers_1 = (0, tslib_1.__values)(matchers), matchers_1_1 = matchers_1.next(); !matchers_1_1.done; matchers_1_1 = matchers_1.next()) {
28
+ for (var matchers_1 = tslib_1.__values(matchers), matchers_1_1 = matchers_1.next(); !matchers_1_1.done; matchers_1_1 = matchers_1.next()) {
27
29
  var matcher = matchers_1_1.value;
28
30
  if (!matchSingle(value, matcher, value, value)) {
29
31
  return false;
@@ -47,8 +49,10 @@ var Match;
47
49
  * @param value - the value to match
48
50
  * @param matchers - one or more `Match` objects
49
51
  * @example
52
+ * ```ts
50
53
  * matchAny({ g: { h: 'abc' }})({ g: { h: 'a' }}, { g: { h: v => v.length < 2 }}) => false
51
54
  * matchAny({ g: { h: 'abc' }})({ g: { h: 'a' }}, { g: { h: v => v.length > 1 }}) => true
55
+ * ```
52
56
  */
53
57
  function any(value) {
54
58
  return function () {
@@ -58,7 +62,7 @@ var Match;
58
62
  matchers[_i] = arguments[_i];
59
63
  }
60
64
  try {
61
- for (var matchers_2 = (0, tslib_1.__values)(matchers), matchers_2_1 = matchers_2.next(); !matchers_2_1.done; matchers_2_1 = matchers_2.next()) {
65
+ for (var matchers_2 = tslib_1.__values(matchers), matchers_2_1 = matchers_2.next(); !matchers_2_1.done; matchers_2_1 = matchers_2.next()) {
62
66
  var matcher = matchers_2_1.value;
63
67
  if (matchSingle(value, matcher, value, value)) {
64
68
  return true;
@@ -83,6 +87,7 @@ var Match;
83
87
  * @typeparam T2 - the type to use for the Match, should be equal to T
84
88
  * @param matches - at least one Match instance to perform on a given `value`
85
89
  * @example
90
+ * ```ts
86
91
  * type Person = { name: string, age: number }
87
92
  * const m = Match.createAll<Person>({ age: v => v > 20 }, { name: v => v.length > 2 })
88
93
  *
@@ -92,13 +97,14 @@ var Match;
92
97
  * // => true
93
98
  * console.log(m({ name: 'a', age: 20 }))
94
99
  * // => false
100
+ * ```
95
101
  */
96
102
  function createAll() {
97
103
  var matches = [];
98
104
  for (var _i = 0; _i < arguments.length; _i++) {
99
105
  matches[_i] = arguments[_i];
100
106
  }
101
- return function (value) { return Match.all(value).apply(void 0, (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(matches), false)); };
107
+ return function (value) { return Match.all(value).apply(void 0, tslib_1.__spreadArray([], tslib_1.__read(matches), false)); };
102
108
  }
103
109
  Match.createAll = createAll;
104
110
  /**
@@ -108,6 +114,7 @@ var Match;
108
114
  * @typeparam T2 - the type to use for the Match, should be equal to T
109
115
  * @param matches - at least one Match instance to perform on a given `value`
110
116
  * @example
117
+ * ```ts
111
118
  * type Person = { name: string, age: number }
112
119
  * const m = Match.createAny<Person>({ age: v => v > 20 }, { name: v => v.length > 2 })
113
120
  *
@@ -119,13 +126,14 @@ var Match;
119
126
  * // => true
120
127
  * console.log(m({ name: 'a', age: 10 }))
121
128
  * // => false
129
+ * ```
122
130
  */
123
131
  function createAny() {
124
132
  var matches = [];
125
133
  for (var _i = 0; _i < arguments.length; _i++) {
126
134
  matches[_i] = arguments[_i];
127
135
  }
128
- return function (value) { return Match.any(value).apply(void 0, (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(matches), false)); };
136
+ return function (value) { return Match.any(value).apply(void 0, tslib_1.__spreadArray([], tslib_1.__read(matches), false)); };
129
137
  }
130
138
  Match.createAny = createAny;
131
139
  })(Match = exports.Match || (exports.Match = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"match.js","sourceRoot":"","sources":["../../src/match.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"match.js","sourceRoot":"","sources":["../../src/match.ts"],"names":[],"mappings":"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"}
@@ -11,12 +11,14 @@ var internal_1 = require("./internal");
11
11
  * @param value - the value to update
12
12
  * @param patches - one or more `Patch` objects indicating modifications to the value
13
13
  * @example
14
+ * ```ts
14
15
  * patch({ g: { h: 5 }})({ g: { h: 6 }}) // => { g: { h: 6 }}
15
16
  * patch({ g: { h: 5 }})({ g: { h: v => v + 1 }}) // => { g: { h: 6 }}
16
17
  * patch({ g: { h: 5 }})({ g: { h: 1 }}, { g: { h: v => v + 1 }})
17
18
  * // => { g: { h: 2 }}
18
19
  * patch({ a: 1, b: 3 })({ a: (v, p) => v * p.b, (v, p) => v + p.a })
19
20
  * // => { a: 3, b: 4 }
21
+ * ```
20
22
  */
21
23
  function patch(value) {
22
24
  return function () {
@@ -27,7 +29,7 @@ function patch(value) {
27
29
  }
28
30
  var result = value;
29
31
  try {
30
- for (var patches_1 = (0, tslib_1.__values)(patches), patches_1_1 = patches_1.next(); !patches_1_1.done; patches_1_1 = patches_1.next()) {
32
+ for (var patches_1 = tslib_1.__values(patches), patches_1_1 = patches_1.next(); !patches_1_1.done; patches_1_1 = patches_1.next()) {
31
33
  var p = patches_1_1.value;
32
34
  result = patchSingle(result, p, result, result);
33
35
  }
@@ -53,9 +55,11 @@ var Patch;
53
55
  * @typeparam T2 - the type the Patch is done for, should be equal to T
54
56
  * @param patches - the patches to apply to a given object
55
57
  * @example
58
+ * ```ts
56
59
  * const r = Patch.create<{ a: number, b: number }>({ b: v => v + 1 })({ a: 1, b: 2})
57
60
  * console.log(r)
58
61
  * // => { a: 1, b: 3 }
62
+ * ```
59
63
  */
60
64
  function create() {
61
65
  var patches = [];
@@ -63,7 +67,7 @@ var Patch;
63
67
  patches[_i] = arguments[_i];
64
68
  }
65
69
  return function (value) {
66
- return patch(value).apply(void 0, (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(patches), false));
70
+ return patch(value).apply(void 0, tslib_1.__spreadArray([], tslib_1.__read(patches), false));
67
71
  };
68
72
  }
69
73
  Patch.create = create;
@@ -109,7 +113,7 @@ function patchSingle(value, patcher, parent, root) {
109
113
  }
110
114
  return (result !== null && result !== void 0 ? result : arr);
111
115
  }
112
- var clone = valueIsArray ? (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(value), false) : (0, tslib_1.__assign)({}, value);
116
+ var clone = valueIsArray ? tslib_1.__spreadArray([], tslib_1.__read(value), false) : tslib_1.__assign({}, value);
113
117
  var changed = false;
114
118
  for (var key in patcher) {
115
119
  var patchKey = patcher[key];
@@ -1 +1 @@
1
- {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/patch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/patch.ts"],"names":[],"mappings":"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"}
package/dist/main/path.js CHANGED
@@ -12,17 +12,19 @@ var Path;
12
12
  * @param source - the object to select in
13
13
  * @param path - the path into the object
14
14
  * @example
15
+ * ```ts
15
16
  * console.log(Path.getValue({ a: { b: { c: 5 } } }), 'a.b')
16
17
  * // => { c: 5 }
17
18
  * console.log(Path.getValue({ a: { b: { c: 5 } } }), 'a.b.c')
18
19
  * // => 5
20
+ * ```
19
21
  */
20
22
  function getValue(source, path) {
21
23
  var e_1, _a;
22
24
  var items = path.split('.');
23
25
  var result = source;
24
26
  try {
25
- for (var items_1 = (0, tslib_1.__values)(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {
27
+ for (var items_1 = tslib_1.__values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {
26
28
  var item = items_1_1.value;
27
29
  result = result[item];
28
30
  }
@@ -43,18 +45,20 @@ var Path;
43
45
  * @param path - the path in the object to update
44
46
  * @param value - the new value to set at the given position
45
47
  * @example
48
+ * ```ts
46
49
  * console.log(Path.setValue({ a: { b: { c: 5 } } }))
50
+ * ```
47
51
  */
48
52
  function setValue(source, path, value) {
49
53
  var e_2, _a;
50
54
  var items = path.split('.');
51
55
  var last = items.pop();
52
- var result = (0, tslib_1.__assign)({}, source);
56
+ var result = tslib_1.__assign({}, source);
53
57
  var current = result;
54
58
  try {
55
- for (var items_2 = (0, tslib_1.__values)(items), items_2_1 = items_2.next(); !items_2_1.done; items_2_1 = items_2.next()) {
59
+ for (var items_2 = tslib_1.__values(items), items_2_1 = items_2.next(); !items_2_1.done; items_2_1 = items_2.next()) {
56
60
  var item = items_2_1.value;
57
- current[item] = (0, tslib_1.__assign)({}, current[item]);
61
+ current[item] = tslib_1.__assign({}, current[item]);
58
62
  current = current[item];
59
63
  }
60
64
  }
@@ -79,8 +83,10 @@ var Path;
79
83
  * @param path - the path in the object to update
80
84
  * @param patches - one or more patches to update the value at the given path
81
85
  * @example
86
+ * ```ts
82
87
  * console.log(Path.setValue({ a: { b: { c: 5 } } }, 'a.b.c', 8)
83
88
  * // => { a: { b: { c: 8 } } }
89
+ * ```
84
90
  */
85
91
  function patchValue(source, path) {
86
92
  var patches = [];
@@ -88,7 +94,7 @@ var Path;
88
94
  patches[_i - 2] = arguments[_i];
89
95
  }
90
96
  var value = Path.getValue(source, path);
91
- var newValue = (0, internal_1.patch)(value).apply(void 0, (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(patches), false));
97
+ var newValue = (0, internal_1.patch)(value).apply(void 0, tslib_1.__spreadArray([], tslib_1.__read(patches), false));
92
98
  if (Object.is(value, newValue))
93
99
  return source;
94
100
  return Path.setValue(source, path, newValue);
@@ -1 +1 @@
1
- {"version":3,"file":"path.js","sourceRoot":"","sources":["../../src/path.ts"],"names":[],"mappings":";;;;AAAA,uCAAmD;AAYnD,IAAiB,IAAI,CAyGpB;AAzGD,WAAiB,IAAI;IAsBnB;;;;;;;;;;;OAWG;IACH,SAAgB,QAAQ,CACtB,MAAS,EACT,IAAO;;QAEP,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE9B,IAAI,MAAM,GAAQ,MAAM,CAAC;;YAEzB,KAAmB,IAAA,UAAA,sBAAA,KAAK,CAAA,4BAAA,+CAAE;gBAArB,IAAM,IAAI,kBAAA;gBACb,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;aACvB;;;;;;;;;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAbe,aAAQ,WAavB,CAAA;IAED;;;;;;;OAOG;IACH,SAAgB,QAAQ,CACtB,MAAS,EACT,IAAO,EACP,KAAwB;;QAExB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;QAE1B,IAAM,MAAM,6BAAQ,MAAM,CAAE,CAAC;QAE7B,IAAI,OAAO,GAAQ,MAAM,CAAC;;YAE1B,KAAmB,IAAA,UAAA,sBAAA,KAAK,CAAA,4BAAA,+CAAE;gBAArB,IAAM,IAAI,kBAAA;gBACb,OAAO,CAAC,IAAI,CAAC,6BAAQ,OAAO,CAAC,IAAI,CAAC,CAAE,CAAC;gBACrC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;aACzB;;;;;;;;;QAED,IAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAE/B,IAAI,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC;QAE9C,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAEtB,OAAO,MAAM,CAAC;IAChB,CAAC;IAxBe,aAAQ,WAwBvB,CAAA;IAED;;;;;;;;;OASG;IACH,SAAgB,UAAU,CACxB,MAAS,EACT,IAAO;QACP,iBAA0C;aAA1C,UAA0C,EAA1C,qBAA0C,EAA1C,IAA0C;YAA1C,gCAA0C;;QAE1C,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAM,QAAQ,GAAG,IAAA,gBAAK,EAAC,KAAK,CAAC,kEAAI,OAAO,UAAC,CAAC;QAE1C,IAAI,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,MAAM,CAAC;QAE9C,OAAO,IAAI,CAAC,QAAQ,CAAW,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IAXe,eAAU,aAWzB,CAAA;AACH,CAAC,EAzGgB,IAAI,GAAJ,YAAI,KAAJ,YAAI,QAyGpB"}
1
+ {"version":3,"file":"path.js","sourceRoot":"","sources":["../../src/path.ts"],"names":[],"mappings":";;;;AAAA,uCAAmD;AAcnD,IAAiB,IAAI,CAiHpB;AAjHD,WAAiB,IAAI;IAwBnB;;;;;;;;;;;;;OAaG;IACH,SAAgB,QAAQ,CACtB,MAAS,EACT,IAAO;;QAEP,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE9B,IAAI,MAAM,GAAQ,MAAM,CAAC;;YAEzB,KAAmB,IAAA,UAAA,iBAAA,KAAK,CAAA,4BAAA,+CAAE;gBAArB,IAAM,IAAI,kBAAA;gBACb,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;aACvB;;;;;;;;;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAbe,aAAQ,WAavB,CAAA;IAED;;;;;;;;;OASG;IACH,SAAgB,QAAQ,CACtB,MAAS,EACT,IAAO,EACP,KAAwB;;QAExB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;QAE1B,IAAM,MAAM,wBAAQ,MAAM,CAAE,CAAC;QAE7B,IAAI,OAAO,GAAQ,MAAM,CAAC;;YAE1B,KAAmB,IAAA,UAAA,iBAAA,KAAK,CAAA,4BAAA,+CAAE;gBAArB,IAAM,IAAI,kBAAA;gBACb,OAAO,CAAC,IAAI,CAAC,wBAAQ,OAAO,CAAC,IAAI,CAAC,CAAE,CAAC;gBACrC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;aACzB;;;;;;;;;QAED,IAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAE/B,IAAI,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC;QAE9C,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAEtB,OAAO,MAAM,CAAC;IAChB,CAAC;IAxBe,aAAQ,WAwBvB,CAAA;IAED;;;;;;;;;;;OAWG;IACH,SAAgB,UAAU,CACxB,MAAS,EACT,IAAO;QACP,iBAA0C;aAA1C,UAA0C,EAA1C,qBAA0C,EAA1C,IAA0C;YAA1C,gCAA0C;;QAE1C,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAM,QAAQ,GAAG,IAAA,gBAAK,EAAC,KAAK,CAAC,wDAAI,OAAO,UAAC,CAAC;QAE1C,IAAI,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,MAAM,CAAC;QAE9C,OAAO,IAAI,CAAC,QAAQ,CAAW,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IAXe,eAAU,aAWzB,CAAA;AACH,CAAC,EAjHgB,IAAI,GAAJ,YAAI,KAAJ,YAAI,QAiHpB"}
@@ -9,8 +9,10 @@ var Tuple;
9
9
  * Convenience method to type Tuple types
10
10
  * @param values - the values of the tuple
11
11
  * @example
12
+ * ```ts
12
13
  * const t = Tuple.of(1, 'a', true)
13
14
  * // type of t => Tuple<[number, string, boolean]>
15
+ * ```
14
16
  */
15
17
  function of() {
16
18
  var values = [];
@@ -25,9 +27,11 @@ var Tuple;
25
27
  * @param tuple - the tuple to get the item from
26
28
  * @param index - the index in of the tuple element
27
29
  * @example
30
+ * ```ts
28
31
  * const t = Tuple.of(1, 'a', true)
29
32
  * console.log(Tuple.getIndex(t, 1))
30
33
  * // => 'a'
34
+ * ```
31
35
  */
32
36
  function getIndex(tuple, index) {
33
37
  return tuple[index];
@@ -37,9 +41,11 @@ var Tuple;
37
41
  * Returns the first element of a Tuple.
38
42
  * @param tuple - the source tuple
39
43
  * @example
44
+ * ```ts
40
45
  * const t = Tuple.of(1, 'a', true)
41
46
  * console.log(Tuple.first(t))
42
47
  * // => 1
48
+ * ```
43
49
  */
44
50
  function first(tuple) {
45
51
  return tuple[0];
@@ -49,9 +55,11 @@ var Tuple;
49
55
  * Returns the second element of a Tuple.
50
56
  * @param tuple - the source tuple
51
57
  * @example
58
+ * ```ts
52
59
  * const t = Tuple.of(1, 'a', true)
53
60
  * console.log(Tuple.second(t))
54
61
  * // => 'a'
62
+ * ```
55
63
  */
56
64
  function second(tuple) {
57
65
  return tuple[1];
@@ -61,9 +69,11 @@ var Tuple;
61
69
  * Returns the last element of a Tuple.
62
70
  * @param tuple - the source tuple
63
71
  * @example
72
+ * ```ts
64
73
  * const t = Tuple.of(1, 'a', true)
65
74
  * console.log(Tuple.last(t))
66
75
  * // => true
76
+ * ```
67
77
  */
68
78
  function last(tuple) {
69
79
  return tuple[tuple.length - 1];
@@ -76,9 +86,11 @@ var Tuple;
76
86
  * @param index - the index in the tuple
77
87
  * @param updater - the updater for the value
78
88
  * @example
89
+ * ```ts
79
90
  * const t = Tuple.of(1, 'a', true)
80
91
  * console.log(Tuple.updateAt(t, 1, 'b'))
81
92
  * // => [1, 'b', true]
93
+ * ```
82
94
  */
83
95
  function updateAt(tuple, index, updater) {
84
96
  return base_1.Arr.update(tuple, index, updater);
@@ -89,16 +101,18 @@ var Tuple;
89
101
  * @param tuple - the source tuple
90
102
  * @param values - the values to append
91
103
  * @example
104
+ * ```ts
92
105
  * const t = Tuple.of(1, 'a')
93
106
  * console.log(Tuple.append(t, true, 5))
94
107
  * // => [1, 'a', true, 5]
108
+ * ```
95
109
  */
96
110
  function append(tuple) {
97
111
  var values = [];
98
112
  for (var _i = 1; _i < arguments.length; _i++) {
99
113
  values[_i - 1] = arguments[_i];
100
114
  }
101
- return (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(tuple), false), (0, tslib_1.__read)(values), false);
115
+ return tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(tuple), false), tslib_1.__read(values), false);
102
116
  }
103
117
  Tuple.append = append;
104
118
  /**
@@ -107,10 +121,12 @@ var Tuple;
107
121
  * @param tuple1 - the first Tuple
108
122
  * @param tuple2 - the second Tuple
109
123
  * @example
124
+ * ```ts
110
125
  * const t1 = Tuple.of(1, 'a')
111
126
  * const t2 = Tuple.of(true, 5)
112
127
  * console.log(Tuple.concat(t1, t2))
113
128
  * // => [1, 'a', true, 5]
129
+ * ```
114
130
  */
115
131
  function concat(tuple1, tuple2) {
116
132
  return tuple1.concat(tuple2);
@@ -120,9 +136,11 @@ var Tuple;
120
136
  * Returns a Tuple containing all but the last element of the given `tuple`.
121
137
  * @param tuple - the source tuple
122
138
  * @example
139
+ * ```ts
123
140
  * const t = Tuple.of(1, 'a', true)
124
141
  * console.log(Tuple.init(t))
125
142
  * // => [1, 'a']
143
+ * ```
126
144
  */
127
145
  function init(tuple) {
128
146
  return base_1.Arr.init(tuple);
@@ -132,9 +150,11 @@ var Tuple;
132
150
  * Returns a Tuple containing all but the first element of the given `tuple`.
133
151
  * @param tuple - the source tuple
134
152
  * @example
153
+ * ```ts
135
154
  * const t = Tuple.of(1, 'a', true)
136
155
  * console.log(Tuple.tail(t))
137
156
  * // => ['a', true]
157
+ * ```
138
158
  */
139
159
  function tail(tuple) {
140
160
  return base_1.Arr.tail(tuple);
@@ -1 +1 @@
1
- {"version":3,"file":"tuple.js","sourceRoot":"","sources":["../../src/tuple.ts"],"names":[],"mappings":";;;;AAAA,oCAAkC;AAQlC,IAAiB,KAAK,CA4JrB;AA5JD,WAAiB,KAAK;IAWpB;;;;;;OAMG;IACH,SAAgB,EAAE;QAAiC,gBAAY;aAAZ,UAAY,EAAZ,qBAAY,EAAZ,IAAY;YAAZ,2BAAY;;QAC7D,OAAO,MAAa,CAAC;IACvB,CAAC;IAFe,QAAE,KAEjB,CAAA;IAED;;;;;;;;OAQG;IACH,SAAgB,QAAQ,CACtB,KAAQ,EACR,KAAQ;QAER,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IALe,cAAQ,WAKvB,CAAA;IAED;;;;;;;OAOG;IACH,SAAgB,KAAK,CAAyB,KAAQ;QACpD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAFe,WAAK,QAEpB,CAAA;IAED;;;;;;;OAOG;IACH,SAAgB,MAAM,CAAyB,KAAQ;QACrD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAFe,YAAM,SAErB,CAAA;IAED;;;;;;;OAOG;IACH,SAAgB,IAAI,CAClB,KAAyB;QAEzB,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAQ,CAAC;IACxC,CAAC;IAJe,UAAI,OAInB,CAAA;IAED;;;;;;;;;;OAUG;IACH,SAAgB,QAAQ,CACtB,KAAQ,EACR,KAAQ,EACR,OAAqB;QAErB,OAAO,UAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAe,EAAE,OAAO,CAAM,CAAC;IAC1D,CAAC;IANe,cAAQ,WAMvB,CAAA;IAED;;;;;;;;OAQG;IACH,SAAgB,MAAM,CAGpB,KAAQ;QAAE,gBAAY;aAAZ,UAAY,EAAZ,qBAAY,EAAZ,IAAY;YAAZ,+BAAY;;QACtB,qFAAW,KAAK,+BAAK,MAAM,UAAE;IAC/B,CAAC;IALe,YAAM,SAKrB,CAAA;IAED;;;;;;;;;;OAUG;IACH,SAAgB,MAAM,CACpB,MAAU,EACV,MAAU;QAEV,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAQ,CAAC;IACtC,CAAC;IALe,YAAM,SAKrB,CAAA;IAED;;;;;;;OAOG;IACH,SAAgB,IAAI,CAClB,KAA+B;QAE/B,OAAO,UAAG,CAAC,IAAI,CAAC,KAAK,CAAQ,CAAC;IAChC,CAAC;IAJe,UAAI,OAInB,CAAA;IAED;;;;;;;OAOG;IACH,SAAgB,IAAI,CAClB,KAA+B;QAE/B,OAAO,UAAG,CAAC,IAAI,CAAC,KAAK,CAAQ,CAAC;IAChC,CAAC;IAJe,UAAI,OAInB,CAAA;AACH,CAAC,EA5JgB,KAAK,GAAL,aAAK,KAAL,aAAK,QA4JrB"}
1
+ {"version":3,"file":"tuple.js","sourceRoot":"","sources":["../../src/tuple.ts"],"names":[],"mappings":";;;;AAAA,oCAAkC;AAQlC,IAAiB,KAAK,CAgLrB;AAhLD,WAAiB,KAAK;IAWpB;;;;;;;;OAQG;IACH,SAAgB,EAAE;QAAiC,gBAAY;aAAZ,UAAY,EAAZ,qBAAY,EAAZ,IAAY;YAAZ,2BAAY;;QAC7D,OAAO,MAAa,CAAC;IACvB,CAAC;IAFe,QAAE,KAEjB,CAAA;IAED;;;;;;;;;;OAUG;IACH,SAAgB,QAAQ,CACtB,KAAQ,EACR,KAAQ;QAER,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IALe,cAAQ,WAKvB,CAAA;IAED;;;;;;;;;OASG;IACH,SAAgB,KAAK,CAAyB,KAAQ;QACpD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAFe,WAAK,QAEpB,CAAA;IAED;;;;;;;;;OASG;IACH,SAAgB,MAAM,CAAyB,KAAQ;QACrD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAFe,YAAM,SAErB,CAAA;IAED;;;;;;;;;OASG;IACH,SAAgB,IAAI,CAClB,KAAyB;QAEzB,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAQ,CAAC;IACxC,CAAC;IAJe,UAAI,OAInB,CAAA;IAED;;;;;;;;;;;;OAYG;IACH,SAAgB,QAAQ,CACtB,KAAQ,EACR,KAAQ,EACR,OAAqB;QAErB,OAAO,UAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAe,EAAE,OAAO,CAAM,CAAC;IAC1D,CAAC;IANe,cAAQ,WAMvB,CAAA;IAED;;;;;;;;;;OAUG;IACH,SAAgB,MAAM,CAGpB,KAAQ;QAAE,gBAAY;aAAZ,UAAY,EAAZ,qBAAY,EAAZ,IAAY;YAAZ,+BAAY;;QACtB,sEAAW,KAAK,0BAAK,MAAM,UAAE;IAC/B,CAAC;IALe,YAAM,SAKrB,CAAA;IAED;;;;;;;;;;;;OAYG;IACH,SAAgB,MAAM,CACpB,MAAU,EACV,MAAU;QAEV,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAQ,CAAC;IACtC,CAAC;IALe,YAAM,SAKrB,CAAA;IAED;;;;;;;;;OASG;IACH,SAAgB,IAAI,CAClB,KAA+B;QAE/B,OAAO,UAAG,CAAC,IAAI,CAAC,KAAK,CAAQ,CAAC;IAChC,CAAC;IAJe,UAAI,OAInB,CAAA;IAED;;;;;;;;;OASG;IACH,SAAgB,IAAI,CAClB,KAA+B;QAE/B,OAAO,UAAG,CAAC,IAAI,CAAC,KAAK,CAAQ,CAAC;IAChC,CAAC;IAJe,UAAI,OAInB,CAAA;AACH,CAAC,EAhLgB,KAAK,GAAL,aAAK,KAAL,aAAK,QAgLrB"}
@@ -1,2 +1,9 @@
1
+ /**
2
+ * @packageDocumentation
3
+ *
4
+ * The `@rimbu/deep` package provides utilities to patch and match plain JavaScript objects..<br/>
5
+ * <br/>
6
+ * See the [Rimbu docs Deep overview page](/docs/deep/overview) for more information.
7
+ */
1
8
  export * from './internal';
2
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,YAAY,CAAC"}
@@ -8,8 +8,10 @@ export var Match;
8
8
  * @param value - the value to match
9
9
  * @param matchers - one or more `Match` objects
10
10
  * @example
11
+ * ```ts
11
12
  * matchAll({ g: { h: 'abc' }})({ g: { h: 'a' }}) => false
12
13
  * matchAll({ g: { h: 'abc' }})({ g: { h: v => v.length > 1 }}) => true
14
+ * ```
13
15
  */
14
16
  function all(value) {
15
17
  return (...matchers) => {
@@ -28,8 +30,10 @@ export var Match;
28
30
  * @param value - the value to match
29
31
  * @param matchers - one or more `Match` objects
30
32
  * @example
33
+ * ```ts
31
34
  * matchAny({ g: { h: 'abc' }})({ g: { h: 'a' }}, { g: { h: v => v.length < 2 }}) => false
32
35
  * matchAny({ g: { h: 'abc' }})({ g: { h: 'a' }}, { g: { h: v => v.length > 1 }}) => true
36
+ * ```
33
37
  */
34
38
  function any(value) {
35
39
  return (...matchers) => {
@@ -49,6 +53,7 @@ export var Match;
49
53
  * @typeparam T2 - the type to use for the Match, should be equal to T
50
54
  * @param matches - at least one Match instance to perform on a given `value`
51
55
  * @example
56
+ * ```ts
52
57
  * type Person = { name: string, age: number }
53
58
  * const m = Match.createAll<Person>({ age: v => v > 20 }, { name: v => v.length > 2 })
54
59
  *
@@ -58,6 +63,7 @@ export var Match;
58
63
  * // => true
59
64
  * console.log(m({ name: 'a', age: 20 }))
60
65
  * // => false
66
+ * ```
61
67
  */
62
68
  function createAll(...matches) {
63
69
  return (value) => Match.all(value)(...matches);
@@ -70,6 +76,7 @@ export var Match;
70
76
  * @typeparam T2 - the type to use for the Match, should be equal to T
71
77
  * @param matches - at least one Match instance to perform on a given `value`
72
78
  * @example
79
+ * ```ts
73
80
  * type Person = { name: string, age: number }
74
81
  * const m = Match.createAny<Person>({ age: v => v > 20 }, { name: v => v.length > 2 })
75
82
  *
@@ -81,6 +88,7 @@ export var Match;
81
88
  * // => true
82
89
  * console.log(m({ name: 'a', age: 10 }))
83
90
  * // => false
91
+ * ```
84
92
  */
85
93
  function createAny(...matches) {
86
94
  return (value) => Match.any(value)(...matches);
@@ -1 +1 @@
1
- {"version":3,"file":"match.js","sourceRoot":"","sources":["../../src/match.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"match.js","sourceRoot":"","sources":["../../src/match.ts"],"names":[],"mappings":"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"}
@@ -7,12 +7,14 @@ import { Literal } from './internal';
7
7
  * @param value - the value to update
8
8
  * @param patches - one or more `Patch` objects indicating modifications to the value
9
9
  * @example
10
+ * ```ts
10
11
  * patch({ g: { h: 5 }})({ g: { h: 6 }}) // => { g: { h: 6 }}
11
12
  * patch({ g: { h: 5 }})({ g: { h: v => v + 1 }}) // => { g: { h: 6 }}
12
13
  * patch({ g: { h: 5 }})({ g: { h: 1 }}, { g: { h: v => v + 1 }})
13
14
  * // => { g: { h: 2 }}
14
15
  * patch({ a: 1, b: 3 })({ a: (v, p) => v * p.b, (v, p) => v + p.a })
15
16
  * // => { a: 3, b: 4 }
17
+ * ```
16
18
  */
17
19
  export function patch(value) {
18
20
  return function (...patches) {
@@ -33,9 +35,11 @@ export var Patch;
33
35
  * @typeparam T2 - the type the Patch is done for, should be equal to T
34
36
  * @param patches - the patches to apply to a given object
35
37
  * @example
38
+ * ```ts
36
39
  * const r = Patch.create<{ a: number, b: number }>({ b: v => v + 1 })({ a: 1, b: 2})
37
40
  * console.log(r)
38
41
  * // => { a: 1, b: 3 }
42
+ * ```
39
43
  */
40
44
  function create(...patches) {
41
45
  return (value) => patch(value)(...patches);
@@ -1 +1 @@
1
- {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/patch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/patch.ts"],"names":[],"mappings":"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"}