@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 +26 -15
- package/dist/main/index.js +8 -1
- package/dist/main/index.js.map +1 -1
- package/dist/main/internal.js +6 -6
- package/dist/main/internal.js.map +1 -1
- package/dist/main/match.js +12 -4
- package/dist/main/match.js.map +1 -1
- package/dist/main/patch.js +7 -3
- package/dist/main/patch.js.map +1 -1
- package/dist/main/path.js +11 -5
- package/dist/main/path.js.map +1 -1
- package/dist/main/tuple.js +21 -1
- package/dist/main/tuple.js.map +1 -1
- package/dist/module/index.js +7 -0
- package/dist/module/index.js.map +1 -1
- package/dist/module/match.js +8 -0
- package/dist/module/match.js.map +1 -1
- package/dist/module/patch.js +4 -0
- package/dist/module/patch.js.map +1 -1
- package/dist/module/path.js +6 -0
- package/dist/module/path.js.map +1 -1
- package/dist/module/tuple.js +20 -0
- package/dist/module/tuple.js.map +1 -1
- package/dist/types/index.d.ts +7 -0
- package/dist/types/match.d.ts +8 -0
- package/dist/types/patch.d.ts +4 -0
- package/dist/types/path.d.ts +10 -0
- package/dist/types/tuple.d.ts +20 -0
- package/package.json +8 -6
- package/src/index.ts +8 -0
- package/src/match.ts +8 -0
- package/src/patch.ts +4 -0
- package/src/path.ts +10 -0
- package/src/tuple.ts +20 -0
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
|
-
|
|
29
|
+
For Deno, the following approach is recommended:
|
|
30
30
|
|
|
31
|
-
|
|
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
|
-
|
|
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
|
-
|
|
38
|
-
|
|
39
|
-
|
|
45
|
+
```ts
|
|
46
|
+
import { List } from '@rimbu/core/mod.ts';
|
|
47
|
+
import { HashMap } from '@rimbu/hashed/mod.ts';
|
|
48
|
+
```
|
|
40
49
|
|
|
41
|
-
|
|
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 {
|
|
53
|
+
import { HashMap } from '@rimbu/hashed/map/index.ts';
|
|
45
54
|
```
|
|
46
55
|
|
|
47
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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=
|
|
91
|
+
<img src = "https://contrib.rocks/image?repo=rimbu-org/rimbu"/>
|
|
81
92
|
|
|
82
93
|
Made with [contributors-img](https://contrib.rocks).
|
|
83
94
|
|
package/dist/main/index.js
CHANGED
|
@@ -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
|
-
|
|
11
|
+
tslib_1.__exportStar(require("./internal"), exports);
|
|
5
12
|
//# sourceMappingURL=index.js.map
|
package/dist/main/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,qDAA2B"}
|
package/dist/main/internal.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
var tslib_1 = require("tslib");
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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,
|
|
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"}
|
package/dist/main/match.js
CHANGED
|
@@ -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 =
|
|
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 =
|
|
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,
|
|
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,
|
|
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 = {}));
|
package/dist/main/match.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"match.js","sourceRoot":"","sources":["../../src/match.ts"],"names":[],"mappings":";;;;AAAA,oCAAyC;AAEzC,uCAAgD;AAgBhD,IAAiB,KAAK,
|
|
1
|
+
{"version":3,"file":"match.js","sourceRoot":"","sources":["../../src/match.ts"],"names":[],"mappings":"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"}
|
package/dist/main/patch.js
CHANGED
|
@@ -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 =
|
|
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,
|
|
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 ?
|
|
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];
|
package/dist/main/patch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/patch.ts"],"names":[],"mappings":";;;;AAAA,oCAAyC;AAEzC,uCAAqC;AAgBrC
|
|
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 =
|
|
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 =
|
|
56
|
+
var result = tslib_1.__assign({}, source);
|
|
53
57
|
var current = result;
|
|
54
58
|
try {
|
|
55
|
-
for (var items_2 =
|
|
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] =
|
|
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,
|
|
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);
|
package/dist/main/path.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path.js","sourceRoot":"","sources":["../../src/path.ts"],"names":[],"mappings":";;;;AAAA,uCAAmD;
|
|
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"}
|
package/dist/main/tuple.js
CHANGED
|
@@ -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
|
|
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);
|
package/dist/main/tuple.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tuple.js","sourceRoot":"","sources":["../../src/tuple.ts"],"names":[],"mappings":";;;;AAAA,oCAAkC;AAQlC,IAAiB,KAAK,
|
|
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"}
|
package/dist/module/index.js
CHANGED
|
@@ -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
|
package/dist/module/index.js.map
CHANGED
|
@@ -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"}
|
package/dist/module/match.js
CHANGED
|
@@ -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);
|
package/dist/module/match.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"match.js","sourceRoot":"","sources":["../../src/match.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAa,OAAO,EAAE,MAAM,YAAY,CAAC;AAgBhD,MAAM,KAAW,KAAK,
|
|
1
|
+
{"version":3,"file":"match.js","sourceRoot":"","sources":["../../src/match.ts"],"names":[],"mappings":"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"}
|
package/dist/module/patch.js
CHANGED
|
@@ -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);
|
package/dist/module/patch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/patch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAgBrC
|
|
1
|
+
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/patch.ts"],"names":[],"mappings":"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"}
|