@rimbu/common 0.12.3 → 1.0.0-alpha.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 +21 -4
- package/{src/async-optlazy.ts → dist/bun/async-optlazy.mts} +1 -1
- package/{src/async-reducer.ts → dist/bun/async-reducer.mts} +17 -8
- package/{src/collect.ts → dist/bun/collect.mts} +1 -1
- package/{src/comp.ts → dist/bun/comp.mts} +1 -1
- package/{src/index-range.ts → dist/bun/index-range.mts} +1 -1
- package/{src/index.ts → dist/bun/index.mts} +1 -1
- package/dist/bun/internal.mts +13 -0
- package/{src/reducer.ts → dist/bun/reducer.mts} +5 -3
- package/dist/cjs/async-optlazy.cjs +44 -0
- package/dist/cjs/async-reducer.cjs +1621 -0
- package/dist/cjs/collect.cjs +33 -0
- package/dist/cjs/comp.cjs +1621 -0
- package/dist/cjs/eq.cjs +210 -0
- package/dist/cjs/err.cjs +55 -0
- package/dist/cjs/index-range.cjs +114 -0
- package/dist/cjs/index.cjs +1685 -0
- package/dist/cjs/internal.cjs +1685 -0
- package/dist/cjs/optlazy.cjs +41 -0
- package/dist/cjs/range.cjs +52 -0
- package/dist/cjs/reducer.cjs +1621 -0
- package/dist/cjs/traverse-state.cjs +49 -0
- package/dist/cjs/types.cjs +18 -0
- package/dist/cjs/update.cjs +35 -0
- package/dist/{module/async-optlazy.js → esm/async-optlazy.mjs} +5 -8
- package/dist/esm/async-optlazy.mjs.map +1 -0
- package/dist/{module/async-reducer.js → esm/async-reducer.mjs} +67 -69
- package/dist/esm/async-reducer.mjs.map +1 -0
- package/dist/{module/collect.js → esm/collect.mjs} +1 -1
- package/dist/esm/collect.mjs.map +1 -0
- package/dist/{module/comp.js → esm/comp.mjs} +2 -2
- package/dist/esm/comp.mjs.map +1 -0
- package/dist/{module/eq.js → esm/eq.mjs} +1 -1
- package/dist/esm/eq.mjs.map +1 -0
- package/dist/{module/err.js → esm/err.mjs} +1 -1
- package/dist/esm/err.mjs.map +1 -0
- package/dist/{module/index-range.js → esm/index-range.mjs} +2 -3
- package/dist/esm/index-range.mjs.map +1 -0
- package/dist/esm/index.mjs +7 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/internal.mjs +14 -0
- package/dist/esm/internal.mjs.map +1 -0
- package/dist/{module/optlazy.js → esm/optlazy.mjs} +1 -1
- package/dist/esm/optlazy.mjs.map +1 -0
- package/dist/{module/range.js → esm/range.mjs} +1 -1
- package/dist/esm/range.mjs.map +1 -0
- package/dist/{module/reducer.js → esm/reducer.mjs} +10 -8
- package/dist/esm/reducer.mjs.map +1 -0
- package/dist/{module/traverse-state.js → esm/traverse-state.mjs} +1 -1
- package/dist/esm/traverse-state.mjs.map +1 -0
- package/dist/esm/types.mjs +2 -0
- package/dist/esm/types.mjs.map +1 -0
- package/dist/{module/update.js → esm/update.mjs} +1 -1
- package/dist/esm/update.mjs.map +1 -0
- package/dist/types/{async-optlazy.d.ts → async-optlazy.d.mts} +1 -1
- package/dist/types/{async-reducer.d.ts → async-reducer.d.mts} +2 -2
- package/dist/types/{collect.d.ts → collect.d.mts} +1 -1
- package/dist/types/{comp.d.ts → comp.d.mts} +1 -1
- package/dist/types/{index-range.d.ts → index-range.d.mts} +1 -1
- package/dist/types/{index.d.ts → index.d.mts} +1 -1
- package/dist/types/internal.d.mts +13 -0
- package/dist/types/{reducer.d.ts → reducer.d.mts} +1 -1
- package/package.json +27 -21
- package/src/async-optlazy.mts +49 -0
- package/src/async-reducer.mts +1157 -0
- package/src/collect.mts +43 -0
- package/src/comp.mts +625 -0
- package/src/eq.mts +406 -0
- package/src/err.mts +43 -0
- package/src/index-range.mts +120 -0
- package/{dist/module/index.js → src/index.mts} +2 -2
- package/src/internal.mts +13 -0
- package/{dist/main/optlazy.js → src/optlazy.mts} +24 -14
- package/src/range.mts +58 -0
- package/src/reducer.mts +1025 -0
- package/src/traverse-state.mts +59 -0
- package/src/types.mts +40 -0
- package/{dist/main/update.js → src/update.mts} +10 -10
- package/dist/main/async-optlazy.js +0 -48
- package/dist/main/async-optlazy.js.map +0 -1
- package/dist/main/async-reducer.js +0 -872
- package/dist/main/async-reducer.js.map +0 -1
- package/dist/main/collect.js +0 -11
- package/dist/main/collect.js.map +0 -1
- package/dist/main/comp.js +0 -542
- package/dist/main/comp.js.map +0 -1
- package/dist/main/eq.js +0 -382
- package/dist/main/eq.js.map +0 -1
- package/dist/main/err.js +0 -62
- package/dist/main/err.js.map +0 -1
- package/dist/main/index-range.js +0 -110
- package/dist/main/index-range.js.map +0 -1
- package/dist/main/index.js +0 -10
- package/dist/main/index.js.map +0 -1
- package/dist/main/internal.js +0 -17
- package/dist/main/internal.js.map +0 -1
- package/dist/main/optlazy.js.map +0 -1
- package/dist/main/range.js +0 -38
- package/dist/main/range.js.map +0 -1
- package/dist/main/reducer.js +0 -694
- package/dist/main/reducer.js.map +0 -1
- package/dist/main/traverse-state.js +0 -33
- package/dist/main/traverse-state.js.map +0 -1
- package/dist/main/types.js +0 -3
- package/dist/main/types.js.map +0 -1
- package/dist/main/update.js.map +0 -1
- package/dist/module/async-optlazy.js.map +0 -1
- package/dist/module/async-reducer.js.map +0 -1
- package/dist/module/collect.js.map +0 -1
- package/dist/module/comp.js.map +0 -1
- package/dist/module/eq.js.map +0 -1
- package/dist/module/err.js.map +0 -1
- package/dist/module/index-range.js.map +0 -1
- package/dist/module/index.js.map +0 -1
- package/dist/module/internal.js +0 -14
- package/dist/module/internal.js.map +0 -1
- package/dist/module/optlazy.js.map +0 -1
- package/dist/module/range.js.map +0 -1
- package/dist/module/reducer.js.map +0 -1
- package/dist/module/traverse-state.js.map +0 -1
- package/dist/module/types.js +0 -2
- package/dist/module/types.js.map +0 -1
- package/dist/module/update.js.map +0 -1
- package/dist/types/internal.d.ts +0 -13
- package/src/internal.ts +0 -13
- /package/{src/eq.ts → dist/bun/eq.mts} +0 -0
- /package/{src/err.ts → dist/bun/err.mts} +0 -0
- /package/{src/optlazy.ts → dist/bun/optlazy.mts} +0 -0
- /package/{src/range.ts → dist/bun/range.mts} +0 -0
- /package/{src/traverse-state.ts → dist/bun/traverse-state.mts} +0 -0
- /package/{src/types.ts → dist/bun/types.mts} +0 -0
- /package/{src/update.ts → dist/bun/update.mts} +0 -0
- /package/dist/types/{eq.d.ts → eq.d.mts} +0 -0
- /package/dist/types/{err.d.ts → err.d.mts} +0 -0
- /package/dist/types/{optlazy.d.ts → optlazy.d.mts} +0 -0
- /package/dist/types/{range.d.ts → range.d.mts} +0 -0
- /package/dist/types/{traverse-state.d.ts → traverse-state.d.mts} +0 -0
- /package/dist/types/{types.d.ts → types.d.mts} +0 -0
- /package/dist/types/{update.d.ts → update.d.mts} +0 -0
package/dist/cjs/eq.cjs
ADDED
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/eq.mts
|
|
21
|
+
var eq_exports = {};
|
|
22
|
+
__export(eq_exports, {
|
|
23
|
+
Eq: () => Eq
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(eq_exports);
|
|
26
|
+
var Eq;
|
|
27
|
+
((Eq2) => {
|
|
28
|
+
function convertAnyToString(value) {
|
|
29
|
+
if (typeof value !== "object" || null === value || !("toString" in value) || typeof value.toString !== "function" || value.toString !== Object.prototype.toString) {
|
|
30
|
+
return String(value);
|
|
31
|
+
}
|
|
32
|
+
return JSON.stringify(value);
|
|
33
|
+
}
|
|
34
|
+
Eq2.convertAnyToString = convertAnyToString;
|
|
35
|
+
const _anyFlatEq = createAnyEq("FLAT");
|
|
36
|
+
const _anyShallowEq = createAnyEq("SHALLOW");
|
|
37
|
+
const _anyDeepEq = createAnyEq("DEEP");
|
|
38
|
+
function defaultEq() {
|
|
39
|
+
return _anyDeepEq;
|
|
40
|
+
}
|
|
41
|
+
Eq2.defaultEq = defaultEq;
|
|
42
|
+
Eq2.objectIs = Object.is;
|
|
43
|
+
const _valueOfEq = (v1, v2) => Object.is(v1.valueOf(), v2.valueOf());
|
|
44
|
+
function valueOfEq() {
|
|
45
|
+
return _valueOfEq;
|
|
46
|
+
}
|
|
47
|
+
Eq2.valueOfEq = valueOfEq;
|
|
48
|
+
function dateEq() {
|
|
49
|
+
return _valueOfEq;
|
|
50
|
+
}
|
|
51
|
+
Eq2.dateEq = dateEq;
|
|
52
|
+
function createIterableEq(itemEq) {
|
|
53
|
+
return (v1, v2) => {
|
|
54
|
+
if (Object.is(v1, v2))
|
|
55
|
+
return true;
|
|
56
|
+
const iter1 = v1[Symbol.iterator]();
|
|
57
|
+
const iter2 = v2[Symbol.iterator]();
|
|
58
|
+
while (true) {
|
|
59
|
+
const value1 = iter1.next();
|
|
60
|
+
const value2 = iter2.next();
|
|
61
|
+
if (value1.done || value2.done)
|
|
62
|
+
return value1.done === value2.done;
|
|
63
|
+
if (!itemEq(value1.value, value2.value))
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
const _iterableAnyEq = createIterableEq(defaultEq());
|
|
69
|
+
function iterableEq(itemEq) {
|
|
70
|
+
if (void 0 === itemEq)
|
|
71
|
+
return _iterableAnyEq;
|
|
72
|
+
return createIterableEq(itemEq);
|
|
73
|
+
}
|
|
74
|
+
Eq2.iterableEq = iterableEq;
|
|
75
|
+
function createObjectEq(valueEq) {
|
|
76
|
+
return (v1, v2) => {
|
|
77
|
+
if (Object.is(v1, v2))
|
|
78
|
+
return true;
|
|
79
|
+
if (v1.constructor !== v2.constructor)
|
|
80
|
+
return false;
|
|
81
|
+
for (const key in v1) {
|
|
82
|
+
if (!(key in v2))
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
for (const key in v2) {
|
|
86
|
+
if (!(key in v1))
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
for (const key in v1) {
|
|
90
|
+
const value1 = v1[key];
|
|
91
|
+
const value2 = v2[key];
|
|
92
|
+
if (!valueEq(value1, value2))
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
return true;
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
const _objectEq = createObjectEq(defaultEq());
|
|
99
|
+
function objectEq(valueEq) {
|
|
100
|
+
if (void 0 === valueEq)
|
|
101
|
+
return _objectEq;
|
|
102
|
+
return createObjectEq(valueEq);
|
|
103
|
+
}
|
|
104
|
+
Eq2.objectEq = objectEq;
|
|
105
|
+
function createAnyEq(mode) {
|
|
106
|
+
const result = (v1, v2) => {
|
|
107
|
+
if (Object.is(v1, v2))
|
|
108
|
+
return true;
|
|
109
|
+
const type1 = typeof v1;
|
|
110
|
+
const type2 = typeof v2;
|
|
111
|
+
if (type1 !== type2)
|
|
112
|
+
return false;
|
|
113
|
+
switch (type1) {
|
|
114
|
+
case "undefined":
|
|
115
|
+
case "bigint":
|
|
116
|
+
case "boolean":
|
|
117
|
+
case "number":
|
|
118
|
+
case "string":
|
|
119
|
+
case "symbol":
|
|
120
|
+
case "function":
|
|
121
|
+
return Object.is(v1, v2);
|
|
122
|
+
case "object": {
|
|
123
|
+
if (v1 === null || v2 === null)
|
|
124
|
+
return false;
|
|
125
|
+
if (v1.constructor !== v2.constructor) {
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
if (v1 instanceof Boolean || v1 instanceof Date || v1 instanceof Number || v1 instanceof String) {
|
|
129
|
+
return _valueOfEq(v1, v2);
|
|
130
|
+
}
|
|
131
|
+
if (mode !== "FLAT") {
|
|
132
|
+
if (Symbol.iterator in v1 && Symbol.iterator in v2) {
|
|
133
|
+
if (mode === "SHALLOW") {
|
|
134
|
+
return createIterableEq(_anyFlatEq)(v1, v2);
|
|
135
|
+
}
|
|
136
|
+
return createIterableEq(result)(v1, v2);
|
|
137
|
+
}
|
|
138
|
+
if (mode === "SHALLOW") {
|
|
139
|
+
return createObjectEq(_anyFlatEq)(v1, v2);
|
|
140
|
+
}
|
|
141
|
+
return _objectEq(v1, v2);
|
|
142
|
+
}
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
return result;
|
|
148
|
+
}
|
|
149
|
+
function anyFlatEq() {
|
|
150
|
+
return _anyFlatEq;
|
|
151
|
+
}
|
|
152
|
+
Eq2.anyFlatEq = anyFlatEq;
|
|
153
|
+
function anyShallowEq() {
|
|
154
|
+
return _anyShallowEq;
|
|
155
|
+
}
|
|
156
|
+
Eq2.anyShallowEq = anyShallowEq;
|
|
157
|
+
function anyDeepEq() {
|
|
158
|
+
return _anyDeepEq;
|
|
159
|
+
}
|
|
160
|
+
Eq2.anyDeepEq = anyDeepEq;
|
|
161
|
+
const _defaultCollator = Intl.Collator("und");
|
|
162
|
+
const _defaultStringCollatorEq = (v1, v2) => _defaultCollator.compare(v1, v2) === 0;
|
|
163
|
+
function createStringCollatorEq(...args) {
|
|
164
|
+
if (args.length === 0)
|
|
165
|
+
return _defaultStringCollatorEq;
|
|
166
|
+
const collator = Intl.Collator(...args);
|
|
167
|
+
return (v1, v2) => collator.compare(v1, v2) === 0;
|
|
168
|
+
}
|
|
169
|
+
Eq2.createStringCollatorEq = createStringCollatorEq;
|
|
170
|
+
const _stringCaseInsensitiveEq = createStringCollatorEq("und", {
|
|
171
|
+
sensitivity: "accent"
|
|
172
|
+
});
|
|
173
|
+
function stringCaseInsentitiveEq() {
|
|
174
|
+
return _stringCaseInsensitiveEq;
|
|
175
|
+
}
|
|
176
|
+
Eq2.stringCaseInsentitiveEq = stringCaseInsentitiveEq;
|
|
177
|
+
const _stringCharCodeEq = (v1, v2) => {
|
|
178
|
+
const len = v1.length;
|
|
179
|
+
if (len !== v2.length)
|
|
180
|
+
return false;
|
|
181
|
+
let i = -1;
|
|
182
|
+
while (++i < len) {
|
|
183
|
+
if (v1.charCodeAt(i) !== v2.charCodeAt(i))
|
|
184
|
+
return false;
|
|
185
|
+
}
|
|
186
|
+
return true;
|
|
187
|
+
};
|
|
188
|
+
function stringCharCodeEq() {
|
|
189
|
+
return _stringCharCodeEq;
|
|
190
|
+
}
|
|
191
|
+
Eq2.stringCharCodeEq = stringCharCodeEq;
|
|
192
|
+
const _anyToStringEq = (v1, v2) => convertAnyToString(v1) === convertAnyToString(v2);
|
|
193
|
+
function anyToStringEq() {
|
|
194
|
+
return _anyToStringEq;
|
|
195
|
+
}
|
|
196
|
+
Eq2.anyToStringEq = anyToStringEq;
|
|
197
|
+
const _anyJsonEq = (v1, v2) => JSON.stringify(v1) === JSON.stringify(v2);
|
|
198
|
+
function anyJsonEq() {
|
|
199
|
+
return _anyJsonEq;
|
|
200
|
+
}
|
|
201
|
+
Eq2.anyJsonEq = anyJsonEq;
|
|
202
|
+
function tupleSymmetric(eq = defaultEq()) {
|
|
203
|
+
return (tup1, tup2) => eq(tup1[0], tup2[0]) && eq(tup1[1], tup2[1]) || eq(tup1[0], tup2[1]) && eq(tup1[1], tup2[0]);
|
|
204
|
+
}
|
|
205
|
+
Eq2.tupleSymmetric = tupleSymmetric;
|
|
206
|
+
})(Eq || (Eq = {}));
|
|
207
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
208
|
+
0 && (module.exports = {
|
|
209
|
+
Eq
|
|
210
|
+
});
|
package/dist/cjs/err.cjs
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/err.mts
|
|
21
|
+
var err_exports = {};
|
|
22
|
+
__export(err_exports, {
|
|
23
|
+
Err: () => Err,
|
|
24
|
+
ErrBase: () => ErrBase
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(err_exports);
|
|
27
|
+
function Err() {
|
|
28
|
+
return ErrBase.msg("Err: Forced to throw error")();
|
|
29
|
+
}
|
|
30
|
+
var ErrBase;
|
|
31
|
+
((ErrBase2) => {
|
|
32
|
+
class CustomError {
|
|
33
|
+
constructor(message) {
|
|
34
|
+
this.message = message;
|
|
35
|
+
}
|
|
36
|
+
get name() {
|
|
37
|
+
return this.constructor.name;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
ErrBase2.CustomError = CustomError;
|
|
41
|
+
class ForcedError extends CustomError {
|
|
42
|
+
}
|
|
43
|
+
ErrBase2.ForcedError = ForcedError;
|
|
44
|
+
function msg(message) {
|
|
45
|
+
return function() {
|
|
46
|
+
throw new ErrBase2.ForcedError(message);
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
ErrBase2.msg = msg;
|
|
50
|
+
})(ErrBase || (ErrBase = {}));
|
|
51
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
52
|
+
0 && (module.exports = {
|
|
53
|
+
Err,
|
|
54
|
+
ErrBase
|
|
55
|
+
});
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/index-range.mts
|
|
21
|
+
var index_range_exports = {};
|
|
22
|
+
__export(index_range_exports, {
|
|
23
|
+
IndexRange: () => IndexRange
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(index_range_exports);
|
|
26
|
+
var IndexRange;
|
|
27
|
+
((IndexRange2) => {
|
|
28
|
+
function getIndexRangeIndices(range) {
|
|
29
|
+
if (void 0 !== range.amount) {
|
|
30
|
+
if (void 0 === range.start)
|
|
31
|
+
return [0, range.amount - 1];
|
|
32
|
+
if (Array.isArray(range.start)) {
|
|
33
|
+
const [start2, includeStart] = range.start;
|
|
34
|
+
if (includeStart)
|
|
35
|
+
return [start2, start2 + range.amount - 1];
|
|
36
|
+
return [start2 + 1, start2 + 1 + range.amount - 1];
|
|
37
|
+
}
|
|
38
|
+
return [range.start, range.start + range.amount - 1];
|
|
39
|
+
}
|
|
40
|
+
let start = 0;
|
|
41
|
+
let end = void 0;
|
|
42
|
+
if (`start` in range) {
|
|
43
|
+
if (Array.isArray(range.start)) {
|
|
44
|
+
if (range.start[1])
|
|
45
|
+
start = range.start[0];
|
|
46
|
+
else
|
|
47
|
+
start = range.start[0] + 1;
|
|
48
|
+
} else
|
|
49
|
+
start = range.start ?? 0;
|
|
50
|
+
}
|
|
51
|
+
if (`end` in range) {
|
|
52
|
+
if (Array.isArray(range.end)) {
|
|
53
|
+
if (range.end[1])
|
|
54
|
+
end = range.end[0];
|
|
55
|
+
else
|
|
56
|
+
end = range.end[0] - 1;
|
|
57
|
+
} else
|
|
58
|
+
end = range.end;
|
|
59
|
+
}
|
|
60
|
+
return [start, end];
|
|
61
|
+
}
|
|
62
|
+
IndexRange2.getIndexRangeIndices = getIndexRangeIndices;
|
|
63
|
+
function getIndicesFor(range, length) {
|
|
64
|
+
if (length <= 0)
|
|
65
|
+
return "empty";
|
|
66
|
+
let start = 0;
|
|
67
|
+
let end = length - 1;
|
|
68
|
+
if (void 0 !== range.start) {
|
|
69
|
+
if (Array.isArray(range.start)) {
|
|
70
|
+
start = range.start[0];
|
|
71
|
+
if (!range.start[1])
|
|
72
|
+
start++;
|
|
73
|
+
} else
|
|
74
|
+
start = range.start;
|
|
75
|
+
if (start >= length || -start > length)
|
|
76
|
+
return "empty";
|
|
77
|
+
if (start < 0)
|
|
78
|
+
start = length + start;
|
|
79
|
+
}
|
|
80
|
+
if (void 0 !== range.amount) {
|
|
81
|
+
if (range.amount <= 0)
|
|
82
|
+
return "empty";
|
|
83
|
+
if (void 0 === range.start) {
|
|
84
|
+
if (range.amount >= length)
|
|
85
|
+
return "all";
|
|
86
|
+
return [0, Math.min(end, range.amount - 1)];
|
|
87
|
+
}
|
|
88
|
+
end = start + range.amount - 1;
|
|
89
|
+
} else if (void 0 !== range.end) {
|
|
90
|
+
if (Array.isArray(range.end)) {
|
|
91
|
+
end = range.end[0];
|
|
92
|
+
if (!range.end[1]) {
|
|
93
|
+
if (end === 0)
|
|
94
|
+
return "empty";
|
|
95
|
+
end--;
|
|
96
|
+
}
|
|
97
|
+
} else
|
|
98
|
+
end = range.end;
|
|
99
|
+
if (end < 0)
|
|
100
|
+
end = length + end;
|
|
101
|
+
}
|
|
102
|
+
if (end < start)
|
|
103
|
+
return "empty";
|
|
104
|
+
end = Math.min(length - 1, end);
|
|
105
|
+
if (start === 0 && end === length - 1)
|
|
106
|
+
return "all";
|
|
107
|
+
return [start, end];
|
|
108
|
+
}
|
|
109
|
+
IndexRange2.getIndicesFor = getIndicesFor;
|
|
110
|
+
})(IndexRange || (IndexRange = {}));
|
|
111
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
112
|
+
0 && (module.exports = {
|
|
113
|
+
IndexRange
|
|
114
|
+
});
|