@zelgadis87/utils-core 5.2.2 → 5.2.4

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/esbuild/index.mjs CHANGED
@@ -357,6 +357,179 @@ function throwIfNullOrUndefined(source, errorProducer = () => new Error(`Unexpec
357
357
  });
358
358
  }
359
359
 
360
+ // src/Optional.ts
361
+ var Optional = class _Optional {
362
+ _present;
363
+ _value;
364
+ constructor(t) {
365
+ const defined = isDefined(t);
366
+ this._value = defined ? t : void 0;
367
+ this._present = defined;
368
+ }
369
+ getRawValue() {
370
+ return this._value;
371
+ }
372
+ get() {
373
+ return this.getOrElseThrow(() => new ErrorGetEmptyOptional());
374
+ }
375
+ getOrElseThrow(errorProducer) {
376
+ if (this.isEmpty())
377
+ throw errorProducer();
378
+ return this._value;
379
+ }
380
+ set(t) {
381
+ if (isNullOrUndefined(t))
382
+ throw new ErrorSetEmptyOptional();
383
+ this._value = t;
384
+ this._present = true;
385
+ }
386
+ setNullable(t) {
387
+ if (isDefined(t)) {
388
+ return this.set(t);
389
+ }
390
+ return this;
391
+ }
392
+ clear() {
393
+ this._value = void 0;
394
+ this._present = false;
395
+ }
396
+ isEmpty() {
397
+ return !this._present;
398
+ }
399
+ isPresent() {
400
+ return this._present;
401
+ }
402
+ ifEmpty(callback) {
403
+ if (this.isEmpty())
404
+ callback();
405
+ }
406
+ ifPresent(callback) {
407
+ if (this.isPresent())
408
+ callback(this.get());
409
+ }
410
+ ifPresentThenClear(callback) {
411
+ if (this.isPresent()) {
412
+ callback(this.get());
413
+ this.clear();
414
+ }
415
+ }
416
+ apply(callbackIfPresent, callbackIfEmpty) {
417
+ if (this.isEmpty()) {
418
+ callbackIfEmpty();
419
+ } else {
420
+ callbackIfPresent(this.get());
421
+ }
422
+ }
423
+ orElseReturn(newValue) {
424
+ if (this.isPresent()) {
425
+ return this.get();
426
+ } else {
427
+ return newValue;
428
+ }
429
+ }
430
+ orElse = this.orElseReturn.bind(this);
431
+ orElseProduce(newValueProducer) {
432
+ if (this.isPresent()) {
433
+ return this.get();
434
+ } else {
435
+ return newValueProducer();
436
+ }
437
+ }
438
+ orElseGet = this.orElseProduce.bind(this);
439
+ orElseReturnAndApply(newValue) {
440
+ if (this.isPresent()) {
441
+ return this.get();
442
+ } else {
443
+ this.set(newValue);
444
+ return newValue;
445
+ }
446
+ }
447
+ orElseProduceAndApply(newValueProducer) {
448
+ if (this.isPresent()) {
449
+ return this.get();
450
+ } else {
451
+ const newValue = newValueProducer();
452
+ this.set(newValue);
453
+ return newValue;
454
+ }
455
+ }
456
+ orElseReturnNullableAndApply(newValue) {
457
+ if (this.isPresent()) {
458
+ return this;
459
+ } else {
460
+ this.setNullable(newValue);
461
+ return this;
462
+ }
463
+ }
464
+ orElseProduceNullableAndApply(newValueProducer) {
465
+ if (this.isPresent()) {
466
+ return this;
467
+ } else {
468
+ const newValue = newValueProducer();
469
+ this.setNullable(newValue);
470
+ return this;
471
+ }
472
+ }
473
+ orElseReturnNullable(newValue) {
474
+ if (this.isEmpty()) return _Optional.ofNullable(newValue);
475
+ return this;
476
+ }
477
+ orElseNullable = this.orElseReturnNullable.bind(this);
478
+ orElseProduceNullable(newValueProducer) {
479
+ if (this.isEmpty()) {
480
+ const newValue = newValueProducer();
481
+ return _Optional.ofNullable(newValue);
482
+ }
483
+ return this;
484
+ }
485
+ orElseGetNullable = this.orElseProduceNullable.bind(this);
486
+ orElseThrow(errorProducer) {
487
+ if (this.isEmpty())
488
+ throw errorProducer();
489
+ return this;
490
+ }
491
+ mapTo(mapper) {
492
+ return this.flatMapTo((t) => _Optional.ofNullable(mapper(t)));
493
+ }
494
+ flatMapTo(mapper) {
495
+ return this.isPresent() ? mapper(this.get()) : _Optional.empty();
496
+ }
497
+ filter(predicate) {
498
+ if (this.isEmpty())
499
+ return this;
500
+ if (predicate(this.get()))
501
+ return this;
502
+ return _Optional.empty();
503
+ }
504
+ static empty() {
505
+ return new _Optional(void 0);
506
+ }
507
+ static of(t) {
508
+ if (isNullOrUndefined(t))
509
+ throw new ErrorCannotInstantiatePresentOptionalWithEmptyValue();
510
+ return new _Optional(t);
511
+ }
512
+ static ofNullable(t) {
513
+ return new _Optional(t);
514
+ }
515
+ };
516
+ var Optional_default = Optional;
517
+ var ErrorGetEmptyOptional = class extends Error {
518
+ constructor() {
519
+ super("Cannot retrieve a value from an empty Optional.");
520
+ }
521
+ };
522
+ var ErrorSetEmptyOptional = class extends Error {
523
+ constructor() {
524
+ super("Cannot set a null or undefined value.");
525
+ }
526
+ };
527
+ var ErrorCannotInstantiatePresentOptionalWithEmptyValue = class extends Error {
528
+ constructor() {
529
+ super("Cannot initialize a PresentOptional with a null or undefined value.");
530
+ }
531
+ };
532
+
360
533
  // src/utils/arrays/groupBy.ts
361
534
  function groupByString(arr, field) {
362
535
  return groupByStringWith(arr, (t) => t[field]);
@@ -680,6 +853,23 @@ function shallowArrayEquals(a, b) {
680
853
  }
681
854
  return true;
682
855
  }
856
+ function findInArray(arr, predicate) {
857
+ return Optional_default.ofNullable(arr.find(predicate));
858
+ }
859
+ function findIndexInArray(arr, predicate) {
860
+ const idx = arr.findIndex(predicate);
861
+ return idx === -1 ? Optional_default.empty() : Optional_default.of(idx);
862
+ }
863
+ function zip(ts, rs) {
864
+ if (ts.length !== rs.length)
865
+ throw new Error(`Arrays must have the same length. Got ${ts.length} and ${rs.length}`);
866
+ return ts.map((t, i) => [t, rs[i]]);
867
+ }
868
+ function unzip(arr) {
869
+ return arr.reduce(([ts, rs], [t, r]) => {
870
+ return [[...ts, t], [...rs, r]];
871
+ }, [[], []]);
872
+ }
683
873
 
684
874
  // src/utils/booleans.ts
685
875
  function isTrue(x) {
@@ -2136,178 +2326,6 @@ var Logger = class {
2136
2326
  }
2137
2327
  };
2138
2328
 
2139
- // src/Optional.ts
2140
- var Optional = class _Optional {
2141
- _present;
2142
- _value;
2143
- constructor(t) {
2144
- const defined = isDefined(t);
2145
- this._value = defined ? t : void 0;
2146
- this._present = defined;
2147
- }
2148
- getRawValue() {
2149
- return this._value;
2150
- }
2151
- get() {
2152
- return this.getOrElseThrow(() => new ErrorGetEmptyOptional());
2153
- }
2154
- getOrElseThrow(errorProducer) {
2155
- if (this.isEmpty())
2156
- throw errorProducer();
2157
- return this._value;
2158
- }
2159
- set(t) {
2160
- if (isNullOrUndefined(t))
2161
- throw new ErrorSetEmptyOptional();
2162
- this._value = t;
2163
- this._present = true;
2164
- }
2165
- setNullable(t) {
2166
- if (isDefined(t)) {
2167
- return this.set(t);
2168
- }
2169
- return this;
2170
- }
2171
- clear() {
2172
- this._value = void 0;
2173
- this._present = false;
2174
- }
2175
- isEmpty() {
2176
- return !this._present;
2177
- }
2178
- isPresent() {
2179
- return this._present;
2180
- }
2181
- ifEmpty(callback) {
2182
- if (this.isEmpty())
2183
- callback();
2184
- }
2185
- ifPresent(callback) {
2186
- if (this.isPresent())
2187
- callback(this.get());
2188
- }
2189
- ifPresentThenClear(callback) {
2190
- if (this.isPresent()) {
2191
- callback(this.get());
2192
- this.clear();
2193
- }
2194
- }
2195
- apply(callbackIfPresent, callbackIfEmpty) {
2196
- if (this.isEmpty()) {
2197
- callbackIfEmpty();
2198
- } else {
2199
- callbackIfPresent(this.get());
2200
- }
2201
- }
2202
- orElseReturn(newValue) {
2203
- if (this.isPresent()) {
2204
- return this.get();
2205
- } else {
2206
- return newValue;
2207
- }
2208
- }
2209
- orElse = this.orElseReturn.bind(this);
2210
- orElseProduce(newValueProducer) {
2211
- if (this.isPresent()) {
2212
- return this.get();
2213
- } else {
2214
- return newValueProducer();
2215
- }
2216
- }
2217
- orElseGet = this.orElseProduce.bind(this);
2218
- orElseReturnAndApply(newValue) {
2219
- if (this.isPresent()) {
2220
- return this.get();
2221
- } else {
2222
- this.set(newValue);
2223
- return newValue;
2224
- }
2225
- }
2226
- orElseProduceAndApply(newValueProducer) {
2227
- if (this.isPresent()) {
2228
- return this.get();
2229
- } else {
2230
- const newValue = newValueProducer();
2231
- this.set(newValue);
2232
- return newValue;
2233
- }
2234
- }
2235
- orElseReturnNullableAndApply(newValue) {
2236
- if (this.isPresent()) {
2237
- return this;
2238
- } else {
2239
- this.setNullable(newValue);
2240
- return this;
2241
- }
2242
- }
2243
- orElseProduceNullableAndApply(newValueProducer) {
2244
- if (this.isPresent()) {
2245
- return this;
2246
- } else {
2247
- const newValue = newValueProducer();
2248
- this.setNullable(newValue);
2249
- return this;
2250
- }
2251
- }
2252
- orElseReturnNullable(newValue) {
2253
- if (this.isEmpty()) return _Optional.ofNullable(newValue);
2254
- return this;
2255
- }
2256
- orElseNullable = this.orElseReturnNullable.bind(this);
2257
- orElseProduceNullable(newValueProducer) {
2258
- if (this.isEmpty()) {
2259
- const newValue = newValueProducer();
2260
- return _Optional.ofNullable(newValue);
2261
- }
2262
- return this;
2263
- }
2264
- orElseGetNullable = this.orElseProduceNullable.bind(this);
2265
- orElseThrow(errorProducer) {
2266
- if (this.isEmpty())
2267
- throw errorProducer();
2268
- return this;
2269
- }
2270
- mapTo(mapper) {
2271
- return this.flatMapTo((t) => _Optional.ofNullable(mapper(t)));
2272
- }
2273
- flatMapTo(mapper) {
2274
- return this.isPresent() ? mapper(this.get()) : _Optional.empty();
2275
- }
2276
- filter(predicate) {
2277
- if (this.isEmpty())
2278
- return this;
2279
- if (predicate(this.get()))
2280
- return this;
2281
- return _Optional.empty();
2282
- }
2283
- static empty() {
2284
- return new _Optional(void 0);
2285
- }
2286
- static of(t) {
2287
- if (isNullOrUndefined(t))
2288
- throw new ErrorCannotInstantiatePresentOptionalWithEmptyValue();
2289
- return new _Optional(t);
2290
- }
2291
- static ofNullable(t) {
2292
- return new _Optional(t);
2293
- }
2294
- };
2295
- var ErrorGetEmptyOptional = class extends Error {
2296
- constructor() {
2297
- super("Cannot retrieve a value from an empty Optional.");
2298
- }
2299
- };
2300
- var ErrorSetEmptyOptional = class extends Error {
2301
- constructor() {
2302
- super("Cannot set a null or undefined value.");
2303
- }
2304
- };
2305
- var ErrorCannotInstantiatePresentOptionalWithEmptyValue = class extends Error {
2306
- constructor() {
2307
- super("Cannot initialize a PresentOptional with a null or undefined value.");
2308
- }
2309
- };
2310
-
2311
2329
  // src/sorting/Sorter.ts
2312
2330
  var defaultCompareValuesOptions = {
2313
2331
  nullsFirst: false
@@ -2434,7 +2452,7 @@ var next = (fns, transform) => {
2434
2452
  return compareNumbers(fns, transform, { direction: "DESC", ...opts });
2435
2453
  }
2436
2454
  };
2437
- const retForStrings = {
2455
+ const retForStringsV1 = {
2438
2456
  ...retAsUsing,
2439
2457
  inLexographicalOrder(opts = {}) {
2440
2458
  return compareStrings(fns, transform, { direction: "ASC", ignoreCase: false, ...opts });
@@ -2449,6 +2467,22 @@ var next = (fns, transform) => {
2449
2467
  return compareStrings(fns, transform, { direction: "DESC", ignoreCase: true, ...opts });
2450
2468
  }
2451
2469
  };
2470
+ const retForStrings = {
2471
+ ...retAsUsing,
2472
+ ...retForStringsV1,
2473
+ inLexicographicalOrder(opts = {}) {
2474
+ return compareStrings(fns, transform, { direction: "ASC", ignoreCase: false, ...opts });
2475
+ },
2476
+ inLexicographicalOrderIgnoringCase(opts = {}) {
2477
+ return compareStrings(fns, transform, { direction: "ASC", ignoreCase: true, ...opts });
2478
+ },
2479
+ inReverseLexicographicalOrder(opts = {}) {
2480
+ return compareStrings(fns, transform, { direction: "DESC", ignoreCase: false, ...opts });
2481
+ },
2482
+ inReverseLexicographicalOrderIgnoringCase(opts = {}) {
2483
+ return compareStrings(fns, transform, { direction: "DESC", ignoreCase: true, ...opts });
2484
+ }
2485
+ };
2452
2486
  const retForBooleans = {
2453
2487
  ...retAsUsing,
2454
2488
  truesFirst(opts = {}) {
@@ -2831,6 +2865,8 @@ export {
2831
2865
  filterMap,
2832
2866
  filterMapReduce,
2833
2867
  filterWithTypePredicate,
2868
+ findInArray,
2869
+ findIndexInArray,
2834
2870
  first,
2835
2871
  flatMapTruthys,
2836
2872
  getCauseMessageFromError,
@@ -2932,10 +2968,12 @@ export {
2932
2968
  uniq,
2933
2969
  uniqBy,
2934
2970
  uniqByKey,
2971
+ unzip,
2935
2972
  upsert,
2936
2973
  withTryCatch,
2937
2974
  withTryCatchAsync,
2938
2975
  wrapWithString,
2939
- xor
2976
+ xor,
2977
+ zip
2940
2978
  };
2941
2979
  //# sourceMappingURL=index.mjs.map