@develia/commons 0.2.26 → 0.3.0
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/.idea/deployment.xml +84 -0
- package/.idea/develia-commons.iml +11 -0
- package/.idea/inspectionProfiles/Project_Default.xml +127 -0
- package/.idea/inspectionProfiles/profiles_settings.xml +7 -0
- package/.idea/misc.xml +6 -0
- package/.idea/modules.xml +8 -0
- package/.idea/php.xml +19 -0
- package/.idea/vcs.xml +6 -0
- package/{src → dist}/from.d.ts +2 -2
- package/{src → dist}/functions.d.ts +1 -1
- package/dist/index.cjs.js +992 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.esm.js +958 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.umd.js +998 -0
- package/dist/index.umd.js.map +1 -0
- package/{src → dist}/lazy.d.ts +1 -1
- package/package.json +13 -6
- package/rollup.config.js +27 -0
- package/tsconfig.json +2 -1
- package/src/cache-dictionary.js +0 -64
- package/src/cache-dictionary.js.map +0 -1
- package/src/cache-dictionary.ts +0 -78
- package/src/from.js +0 -444
- package/src/from.js.map +0 -1
- package/src/from.ts +0 -526
- package/src/functions.js +0 -196
- package/src/functions.js.map +0 -1
- package/src/functions.ts +0 -244
- package/src/index.d.ts +0 -8
- package/src/index.js +0 -9
- package/src/index.js.map +0 -1
- package/src/index.ts +0 -11
- package/src/lazy.js +0 -23
- package/src/lazy.js.map +0 -1
- package/src/lazy.ts +0 -32
- package/src/pair.js +0 -13
- package/src/pair.js.map +0 -1
- package/src/pair.ts +0 -19
- package/src/timer.js +0 -51
- package/src/timer.js.map +0 -1
- package/src/timer.ts +0 -64
- package/src/timespan.js +0 -169
- package/src/timespan.js.map +0 -1
- package/src/timespan.ts +0 -217
- package/src/types.js +0 -2
- package/src/types.js.map +0 -1
- package/src/types.ts +0 -13
- package/test/tests.js +0 -4
- /package/{src → dist}/cache-dictionary.d.ts +0 -0
- /package/{src → dist}/pair.d.ts +0 -0
- /package/{src → dist}/timer.d.ts +0 -0
- /package/{src → dist}/timespan.d.ts +0 -0
- /package/{src → dist}/types.d.ts +0 -0
package/src/from.js
DELETED
|
@@ -1,444 +0,0 @@
|
|
|
1
|
-
import { toPairs } from "./functions.js";
|
|
2
|
-
export default function from(source) {
|
|
3
|
-
if (source == null)
|
|
4
|
-
throw "Source is null.";
|
|
5
|
-
if (typeof source === 'function')
|
|
6
|
-
return From.fn(source);
|
|
7
|
-
if (typeof source[Symbol.iterator] === 'function') {
|
|
8
|
-
return From.iterable(source);
|
|
9
|
-
}
|
|
10
|
-
else if (typeof source === 'object') {
|
|
11
|
-
return From.object(source);
|
|
12
|
-
}
|
|
13
|
-
throw "Invalid source.";
|
|
14
|
-
}
|
|
15
|
-
export class From {
|
|
16
|
-
static object(obj) {
|
|
17
|
-
return new From(function () {
|
|
18
|
-
return toPairs(obj);
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
static _shallowEqual(obj1, obj2) {
|
|
22
|
-
const keys1 = Object.keys(obj1);
|
|
23
|
-
const keys2 = Object.keys(obj2);
|
|
24
|
-
if (keys1.length !== keys2.length) {
|
|
25
|
-
return false;
|
|
26
|
-
}
|
|
27
|
-
for (let key of keys1) {
|
|
28
|
-
if (obj1[key] !== obj2[key]) {
|
|
29
|
-
return false;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return true;
|
|
33
|
-
}
|
|
34
|
-
constructor(fn) {
|
|
35
|
-
this._fn = fn;
|
|
36
|
-
}
|
|
37
|
-
static fn(callable) {
|
|
38
|
-
return new From(callable);
|
|
39
|
-
}
|
|
40
|
-
;
|
|
41
|
-
collect() {
|
|
42
|
-
const cache = Array.from(this);
|
|
43
|
-
return From.iterable(cache);
|
|
44
|
-
}
|
|
45
|
-
static iterable(iterable) {
|
|
46
|
-
return From.fn(function* () {
|
|
47
|
-
for (const item of iterable) {
|
|
48
|
-
yield item;
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
;
|
|
53
|
-
map(mapper) {
|
|
54
|
-
const self = this;
|
|
55
|
-
return From.fn(function* () {
|
|
56
|
-
for (let item of self) {
|
|
57
|
-
yield mapper(item);
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
*[Symbol.iterator]() {
|
|
62
|
-
yield* this._fn();
|
|
63
|
-
}
|
|
64
|
-
all(predicate) {
|
|
65
|
-
for (let item of this._fn()) {
|
|
66
|
-
if (!predicate(item)) {
|
|
67
|
-
return false;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return true;
|
|
71
|
-
}
|
|
72
|
-
any(predicate) {
|
|
73
|
-
for (let item of this) {
|
|
74
|
-
if (predicate(item)) {
|
|
75
|
-
return true;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
return false;
|
|
79
|
-
}
|
|
80
|
-
filter(predicate) {
|
|
81
|
-
const self = this;
|
|
82
|
-
return From.fn(function* () {
|
|
83
|
-
for (let item of self) {
|
|
84
|
-
if (predicate(item)) {
|
|
85
|
-
yield item;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
contains(value) {
|
|
91
|
-
for (let item of this) {
|
|
92
|
-
if (item === value) {
|
|
93
|
-
return true;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
return false;
|
|
97
|
-
}
|
|
98
|
-
// noinspection LoopStatementThatDoesntLoopJS
|
|
99
|
-
first(predicate) {
|
|
100
|
-
if (predicate) {
|
|
101
|
-
for (let item of this) {
|
|
102
|
-
if (!predicate || predicate(item)) {
|
|
103
|
-
return item;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
// noinspection LoopStatementThatDoesntLoopJS
|
|
109
|
-
for (let item of this) {
|
|
110
|
-
return item;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
return undefined;
|
|
114
|
-
}
|
|
115
|
-
append(item) {
|
|
116
|
-
const self = this;
|
|
117
|
-
return From.fn(function* () {
|
|
118
|
-
for (let element of self) {
|
|
119
|
-
yield element;
|
|
120
|
-
}
|
|
121
|
-
yield item;
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
prepend(item) {
|
|
125
|
-
const self = this;
|
|
126
|
-
return From.fn(function* () {
|
|
127
|
-
yield item;
|
|
128
|
-
for (let element of self) {
|
|
129
|
-
yield element;
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
at(index) {
|
|
134
|
-
let idx = 0;
|
|
135
|
-
for (let item of this) {
|
|
136
|
-
if (idx++ === index) {
|
|
137
|
-
return item;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
return undefined;
|
|
141
|
-
}
|
|
142
|
-
last(predicate) {
|
|
143
|
-
let last = undefined;
|
|
144
|
-
if (predicate)
|
|
145
|
-
for (let item of this) {
|
|
146
|
-
if (!predicate || predicate(item)) {
|
|
147
|
-
last = item;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
else {
|
|
151
|
-
for (let item of this) {
|
|
152
|
-
last = item;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
return last;
|
|
156
|
-
}
|
|
157
|
-
mapMany(mapper) {
|
|
158
|
-
const self = this;
|
|
159
|
-
return From.fn(function* () {
|
|
160
|
-
for (const item of self) {
|
|
161
|
-
const subitems = mapper(item);
|
|
162
|
-
for (const subitem of subitems) {
|
|
163
|
-
yield subitem;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
flatten() {
|
|
169
|
-
const self = this;
|
|
170
|
-
return From.fn(function* () {
|
|
171
|
-
for (let item of self) {
|
|
172
|
-
let temp = item;
|
|
173
|
-
for (let subitem of temp) {
|
|
174
|
-
yield subitem;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
sum(mapper) {
|
|
180
|
-
let total = 0;
|
|
181
|
-
if (mapper)
|
|
182
|
-
for (let item of this) {
|
|
183
|
-
total += mapper(item);
|
|
184
|
-
}
|
|
185
|
-
else
|
|
186
|
-
for (let item of this) {
|
|
187
|
-
total += item;
|
|
188
|
-
}
|
|
189
|
-
return total;
|
|
190
|
-
}
|
|
191
|
-
avg(mapper) {
|
|
192
|
-
let total = 0;
|
|
193
|
-
let count = 0;
|
|
194
|
-
if (mapper)
|
|
195
|
-
for (let item of this) {
|
|
196
|
-
total += mapper(item);
|
|
197
|
-
count++;
|
|
198
|
-
}
|
|
199
|
-
else
|
|
200
|
-
for (let item of this) {
|
|
201
|
-
total += item;
|
|
202
|
-
count++;
|
|
203
|
-
}
|
|
204
|
-
return count > 0 ? total / count : 0;
|
|
205
|
-
}
|
|
206
|
-
max(mapper) {
|
|
207
|
-
let max = -Infinity;
|
|
208
|
-
for (let item of this) {
|
|
209
|
-
let value = mapper(item);
|
|
210
|
-
max = value > max ? value : max;
|
|
211
|
-
}
|
|
212
|
-
return max;
|
|
213
|
-
}
|
|
214
|
-
min(mapper) {
|
|
215
|
-
let min = Infinity;
|
|
216
|
-
for (let item of this) {
|
|
217
|
-
let value = mapper(item);
|
|
218
|
-
min = value < min ? value : min;
|
|
219
|
-
}
|
|
220
|
-
return min;
|
|
221
|
-
}
|
|
222
|
-
maxBy(mapper) {
|
|
223
|
-
let max = -Infinity;
|
|
224
|
-
let maxItem;
|
|
225
|
-
for (let item of this) {
|
|
226
|
-
let value = mapper(item);
|
|
227
|
-
if (value > max) {
|
|
228
|
-
max = value;
|
|
229
|
-
maxItem = item;
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
return maxItem;
|
|
233
|
-
}
|
|
234
|
-
minBy(mapper) {
|
|
235
|
-
let min = Infinity;
|
|
236
|
-
let minItem;
|
|
237
|
-
for (let item of this) {
|
|
238
|
-
let value = mapper(item);
|
|
239
|
-
if (value < min) {
|
|
240
|
-
min = value;
|
|
241
|
-
minItem = item;
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
return minItem;
|
|
245
|
-
}
|
|
246
|
-
orderBy(mapper) {
|
|
247
|
-
const array = Array.from(this._fn());
|
|
248
|
-
array.sort((a, b) => {
|
|
249
|
-
const aValue = mapper(a);
|
|
250
|
-
const bValue = mapper(b);
|
|
251
|
-
return aValue > bValue ? 1 : aValue < bValue ? -1 : 0;
|
|
252
|
-
});
|
|
253
|
-
return From.iterable(array);
|
|
254
|
-
}
|
|
255
|
-
groupBy(keySelector, equalityComparer) {
|
|
256
|
-
equalityComparer = (equalityComparer == null ? From._shallowEqual : equalityComparer);
|
|
257
|
-
const self = this;
|
|
258
|
-
return From.fn(function* () {
|
|
259
|
-
const groups = [];
|
|
260
|
-
for (let item of self) {
|
|
261
|
-
const key = keySelector(item);
|
|
262
|
-
let found = false;
|
|
263
|
-
for (let [entryKey, group] of groups) {
|
|
264
|
-
if (equalityComparer(key, entryKey)) {
|
|
265
|
-
group.push(item);
|
|
266
|
-
found = true;
|
|
267
|
-
break;
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
if (!found) {
|
|
271
|
-
groups.push([key, [item]]);
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
yield* groups.map(([key, values]) => new Grouping(key, values));
|
|
275
|
-
});
|
|
276
|
-
}
|
|
277
|
-
head(n) {
|
|
278
|
-
const self = this;
|
|
279
|
-
return From.fn(function* () {
|
|
280
|
-
let count = 0;
|
|
281
|
-
for (let item of self) {
|
|
282
|
-
if (count++ < n) {
|
|
283
|
-
yield item;
|
|
284
|
-
}
|
|
285
|
-
else {
|
|
286
|
-
return;
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
});
|
|
290
|
-
}
|
|
291
|
-
tail(n) {
|
|
292
|
-
const self = this;
|
|
293
|
-
return From.fn(function* () {
|
|
294
|
-
let buffer = [];
|
|
295
|
-
for (let item of self) {
|
|
296
|
-
buffer.push(item);
|
|
297
|
-
if (buffer.length > n) {
|
|
298
|
-
buffer.shift();
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
yield* buffer;
|
|
302
|
-
});
|
|
303
|
-
}
|
|
304
|
-
forEach(action) {
|
|
305
|
-
for (let item of this) {
|
|
306
|
-
action(item);
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
toArray() {
|
|
310
|
-
return Array.from(this);
|
|
311
|
-
}
|
|
312
|
-
instancesOf(type) {
|
|
313
|
-
return this.filter(item => typeof item === type);
|
|
314
|
-
}
|
|
315
|
-
allInstanceOf(type) {
|
|
316
|
-
for (let item of this) {
|
|
317
|
-
if (!(item instanceof type)) {
|
|
318
|
-
return false;
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
return true;
|
|
322
|
-
}
|
|
323
|
-
distinct(eq_comparer) {
|
|
324
|
-
if (eq_comparer == null)
|
|
325
|
-
eq_comparer = From._shallowEqual;
|
|
326
|
-
const self = this;
|
|
327
|
-
return From.fn(function* () {
|
|
328
|
-
const included = [];
|
|
329
|
-
for (let item of self) {
|
|
330
|
-
if (!From.iterable(included).any(x => eq_comparer(x, item))) {
|
|
331
|
-
included.push(item);
|
|
332
|
-
yield item;
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
});
|
|
336
|
-
}
|
|
337
|
-
insert(item, index) {
|
|
338
|
-
const self = this;
|
|
339
|
-
return From.fn(function* () {
|
|
340
|
-
let i = 0;
|
|
341
|
-
let inserted = false;
|
|
342
|
-
for (let existingItem of self) {
|
|
343
|
-
if (i === index) {
|
|
344
|
-
yield item;
|
|
345
|
-
inserted = true;
|
|
346
|
-
}
|
|
347
|
-
yield existingItem;
|
|
348
|
-
i++;
|
|
349
|
-
}
|
|
350
|
-
if (!inserted) {
|
|
351
|
-
yield item;
|
|
352
|
-
}
|
|
353
|
-
});
|
|
354
|
-
}
|
|
355
|
-
skip(n) {
|
|
356
|
-
const self = this;
|
|
357
|
-
return From.fn(function* () {
|
|
358
|
-
let i = 0;
|
|
359
|
-
for (let item of self) {
|
|
360
|
-
if (i >= n) {
|
|
361
|
-
yield item;
|
|
362
|
-
}
|
|
363
|
-
i++;
|
|
364
|
-
}
|
|
365
|
-
});
|
|
366
|
-
}
|
|
367
|
-
union(other) {
|
|
368
|
-
const self = this;
|
|
369
|
-
return From.fn(function* () {
|
|
370
|
-
yield* self;
|
|
371
|
-
yield* other;
|
|
372
|
-
});
|
|
373
|
-
}
|
|
374
|
-
innerJoin(other, thisKeySelector, otherKeySelector, resultSelector) {
|
|
375
|
-
const self = this;
|
|
376
|
-
return From.fn(() => {
|
|
377
|
-
const otherByKey = new Map();
|
|
378
|
-
for (let item of other) {
|
|
379
|
-
otherByKey.set(otherKeySelector(item), item);
|
|
380
|
-
}
|
|
381
|
-
return Array.from(self)
|
|
382
|
-
.filter(item => otherByKey.has(thisKeySelector(item)))
|
|
383
|
-
.map(item => resultSelector(item, otherByKey.get(thisKeySelector(item))));
|
|
384
|
-
});
|
|
385
|
-
}
|
|
386
|
-
leftJoin(other, thisKeySelector, otherKeySelector, resultSelector) {
|
|
387
|
-
const self = this;
|
|
388
|
-
return From.fn(() => {
|
|
389
|
-
const otherByKey = new Map();
|
|
390
|
-
for (let item of other) {
|
|
391
|
-
otherByKey.set(otherKeySelector(item), item);
|
|
392
|
-
}
|
|
393
|
-
return Array.from(self).map(item => resultSelector(item, otherByKey.get(thisKeySelector(item))));
|
|
394
|
-
});
|
|
395
|
-
}
|
|
396
|
-
leftGroupJoin(other, thisKeySelector, otherKeySelector, resultSelector) {
|
|
397
|
-
const self = this;
|
|
398
|
-
return From.fn(() => {
|
|
399
|
-
const otherByKeys = new Map();
|
|
400
|
-
for (let item of other) {
|
|
401
|
-
const key = otherKeySelector(item);
|
|
402
|
-
if (!otherByKeys.has(key)) {
|
|
403
|
-
otherByKeys.set(key, []);
|
|
404
|
-
}
|
|
405
|
-
otherByKeys.get(key).push(item);
|
|
406
|
-
}
|
|
407
|
-
return Array.from(self).map(item => resultSelector(item, otherByKeys.get(thisKeySelector(item)) || []));
|
|
408
|
-
});
|
|
409
|
-
}
|
|
410
|
-
rightGroupJoin(other, thisKeySelector, otherKeySelector, resultSelector) {
|
|
411
|
-
const self = this;
|
|
412
|
-
return From.fn(() => {
|
|
413
|
-
const thisByKeys = new Map();
|
|
414
|
-
for (let item of self) {
|
|
415
|
-
const key = thisKeySelector(item);
|
|
416
|
-
if (!thisByKeys.has(key)) {
|
|
417
|
-
thisByKeys.set(key, []);
|
|
418
|
-
}
|
|
419
|
-
thisByKeys.get(key).push(item);
|
|
420
|
-
}
|
|
421
|
-
return Array.from(other).map(item => resultSelector(thisByKeys.get(otherKeySelector(item)) || [], item));
|
|
422
|
-
});
|
|
423
|
-
}
|
|
424
|
-
rightJoin(other, thisKeySelector, otherKeySelector, resultSelector) {
|
|
425
|
-
const self = this;
|
|
426
|
-
return From.fn(() => {
|
|
427
|
-
const thisByKey = new Map();
|
|
428
|
-
for (let item of self) {
|
|
429
|
-
thisByKey.set(thisKeySelector(item), item);
|
|
430
|
-
}
|
|
431
|
-
return Array.from(other).map(item => resultSelector(thisByKey.get(otherKeySelector(item)), item));
|
|
432
|
-
});
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
export class Grouping extends From {
|
|
436
|
-
get key() {
|
|
437
|
-
return this._key;
|
|
438
|
-
}
|
|
439
|
-
constructor(key, values) {
|
|
440
|
-
super(() => values);
|
|
441
|
-
this._key = key;
|
|
442
|
-
}
|
|
443
|
-
}
|
|
444
|
-
//# sourceMappingURL=from.js.map
|
package/src/from.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"from.js","sourceRoot":"","sources":["from.ts"],"names":[],"mappings":"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"}
|