@nlozgachev/pipelined 0.41.0 → 0.43.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/dist/core.js CHANGED
@@ -38,9 +38,6 @@ __export(Core_exports, {
38
38
  Result: () => Result,
39
39
  State: () => State,
40
40
  Task: () => Task,
41
- TaskMaybe: () => TaskMaybe,
42
- TaskResult: () => TaskResult3,
43
- TaskValidation: () => TaskValidation,
44
41
  These: () => These,
45
42
  Tuple: () => Tuple,
46
43
  Validation: () => Validation
@@ -1649,6 +1646,162 @@ var State;
1649
1646
  )(data);
1650
1647
  })(State || (State = {}));
1651
1648
 
1649
+ // src/Core/TaskMaybe.ts
1650
+ var TaskMaybe;
1651
+ ((TaskMaybe2) => {
1652
+ TaskMaybe2.some = (value) => Task.resolve(Maybe.some(value));
1653
+ TaskMaybe2.none = () => Task.resolve(Maybe.none());
1654
+ TaskMaybe2.fromMaybe = (option) => Task.resolve(option);
1655
+ TaskMaybe2.fromNullable = (value) => Task.resolve(Maybe.fromNullable(value));
1656
+ TaskMaybe2.fromResult = (result) => Task.resolve(Result.toMaybe(result));
1657
+ TaskMaybe2.fromTask = (task) => Task.map(Maybe.some)(task);
1658
+ TaskMaybe2.tryCatch = (f) => Task.from((signal) => Promise.resolve(f(signal)).then(Maybe.some).catch(() => Maybe.none()));
1659
+ TaskMaybe2.map = (f) => (data) => Task.map(Maybe.map(f))(data);
1660
+ TaskMaybe2.chain = (f) => (data) => Task.chain((option) => Maybe.isSome(option) ? f(option.value) : Task.resolve(Maybe.none()))(data);
1661
+ TaskMaybe2.ap = (arg) => (data) => Task.from(
1662
+ (signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
1663
+ ([of_, oa]) => Maybe.ap(oa)(of_)
1664
+ )
1665
+ );
1666
+ TaskMaybe2.fold = (onNone, onSome) => (data) => Task.map(Maybe.fold(onNone, onSome))(data);
1667
+ TaskMaybe2.match = (cases) => (data) => Task.map(Maybe.match(cases))(data);
1668
+ TaskMaybe2.getOrElse = (defaultValue) => (data) => Task.map(Maybe.getOrElse(defaultValue))(data);
1669
+ TaskMaybe2.tap = (f) => (data) => Task.map(Maybe.tap(f))(data);
1670
+ TaskMaybe2.filter = (predicate) => (data) => Task.map(Maybe.filter(predicate))(data);
1671
+ TaskMaybe2.toResult = (onNone) => (data) => Task.map(Maybe.toResult(onNone))(data);
1672
+ TaskMaybe2.bindTo = (key) => (data) => (0, TaskMaybe2.map)((a) => ({ [key]: a }))(data);
1673
+ TaskMaybe2.bind = (key, f) => (data) => (0, TaskMaybe2.chain)(
1674
+ (a) => (0, TaskMaybe2.map)((b) => ({ ...a, [key]: b }))(f(a))
1675
+ )(data);
1676
+ TaskMaybe2.recover = (fallback) => (data) => Task.chain((maybe) => Maybe.isNone(maybe) ? fallback() : Task.resolve(maybe))(data);
1677
+ TaskMaybe2.struct = (fields) => Task.from((signal) => {
1678
+ const keys = Object.keys(fields);
1679
+ const promises = keys.map((key) => Deferred.toPromise(fields[key](signal)));
1680
+ return Promise.all(promises).then((results) => {
1681
+ const record = {};
1682
+ for (let i = 0; i < keys.length; i++) {
1683
+ const res = results[i];
1684
+ if (Maybe.isNone(res)) {
1685
+ return res;
1686
+ }
1687
+ record[keys[i]] = res.value;
1688
+ }
1689
+ return Maybe.some(record);
1690
+ });
1691
+ });
1692
+ })(TaskMaybe || (TaskMaybe = {}));
1693
+
1694
+ // src/Core/TaskResult.ts
1695
+ var TaskResult;
1696
+ ((TaskResult2) => {
1697
+ TaskResult2.ok = (value) => Task.resolve(Result.ok(value));
1698
+ TaskResult2.err = (error) => Task.resolve(Result.err(error));
1699
+ TaskResult2.fromNullable = (onNull) => (value) => Task.resolve(value === null || value === void 0 ? Result.err(onNull()) : Result.ok(value));
1700
+ TaskResult2.fromMaybe = (onNone) => (maybe) => Task.resolve(Maybe.isNone(maybe) ? Result.err(onNone()) : Result.ok(maybe.value));
1701
+ TaskResult2.fromResult = (result) => Task.resolve(result);
1702
+ TaskResult2.fromThrowable = (f, onError) => (...args) => Task.from(() => f(...args).then(Result.ok).catch((error) => Result.err(onError(error))));
1703
+ TaskResult2.tryCatch = (f, onError) => Task.from((signal) => Promise.resolve(f(signal)).then(Result.ok).catch((error) => Result.err(onError(error))));
1704
+ TaskResult2.map = (f) => (data) => Task.map(Result.map(f))(data);
1705
+ TaskResult2.mapError = (f) => (data) => Task.map(Result.mapError(f))(data);
1706
+ TaskResult2.chain = (f) => (data) => Task.chain((result) => Result.isOk(result) ? f(result.value) : Task.resolve(Result.err(result.error)))(
1707
+ data
1708
+ );
1709
+ TaskResult2.fold = (onErr, onOk) => (data) => Task.map(Result.fold(onErr, onOk))(data);
1710
+ TaskResult2.match = (cases) => (data) => Task.map(Result.match(cases))(data);
1711
+ TaskResult2.recover = (fallback) => (data) => Task.chain(
1712
+ (result) => Result.isErr(result) ? fallback(result.error) : Task.resolve(result)
1713
+ )(data);
1714
+ TaskResult2.getOrElse = (defaultValue) => (data) => Task.map(Result.getOrElse(defaultValue))(data);
1715
+ TaskResult2.tap = (f) => (data) => Task.map(Result.tap(f))(data);
1716
+ TaskResult2.tapError = (f) => (data) => Task.map(Result.tapError(f))(data);
1717
+ TaskResult2.ap = (arg) => (data) => Task.from(
1718
+ (signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
1719
+ ([of_, oa]) => Result.ap(oa)(of_)
1720
+ )
1721
+ );
1722
+ TaskResult2.run = (signal) => (task) => task(signal);
1723
+ TaskResult2.bindTo = (key) => (data) => (0, TaskResult2.map)((a) => ({ [key]: a }))(data);
1724
+ TaskResult2.bind = (key, f) => (data) => (0, TaskResult2.chain)(
1725
+ (a) => (0, TaskResult2.map)((b) => ({ ...a, [key]: b }))(f(a))
1726
+ )(data);
1727
+ TaskResult2.struct = (fields) => Task.from((signal) => {
1728
+ const keys = Object.keys(fields);
1729
+ const promises = keys.map((key) => Deferred.toPromise(fields[key](signal)));
1730
+ return Promise.all(promises).then((results) => {
1731
+ const record = {};
1732
+ for (let i = 0; i < keys.length; i++) {
1733
+ const res = results[i];
1734
+ if (Result.isErr(res)) {
1735
+ return res;
1736
+ }
1737
+ record[keys[i]] = res.value;
1738
+ }
1739
+ return Result.ok(record);
1740
+ });
1741
+ });
1742
+ })(TaskResult || (TaskResult = {}));
1743
+
1744
+ // src/internal/InternalTypes.ts
1745
+ var isNonEmptyArr = (list) => list.length > 0;
1746
+
1747
+ // src/Core/TaskValidation.ts
1748
+ var TaskValidation;
1749
+ ((TaskValidation2) => {
1750
+ TaskValidation2.passed = (value) => Task.resolve(Validation.passed(value));
1751
+ TaskValidation2.failed = (error) => Task.resolve(Validation.failed(error));
1752
+ TaskValidation2.failedAll = (errors) => Task.resolve(Validation.failedAll(errors));
1753
+ TaskValidation2.fromValidation = (validation) => Task.resolve(validation);
1754
+ TaskValidation2.fromNullable = (onNull) => (value) => Task.resolve(value === null || value === void 0 ? Validation.failed(onNull()) : Validation.passed(value));
1755
+ TaskValidation2.fromMaybe = (onNone) => (maybe) => Task.resolve(Maybe.isNone(maybe) ? Validation.failed(onNone()) : Validation.passed(maybe.value));
1756
+ TaskValidation2.fromResult = (result) => Task.resolve(Validation.fromResult(result));
1757
+ TaskValidation2.tryCatch = (f, onError) => Task.from(
1758
+ (signal) => Promise.resolve(f(signal)).then(Validation.passed).catch((error) => Validation.failed(onError(error)))
1759
+ );
1760
+ TaskValidation2.map = (f) => (data) => Task.map(Validation.map(f))(data);
1761
+ TaskValidation2.ap = (arg) => (data) => Task.from(
1762
+ (signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
1763
+ ([vf, va]) => Validation.ap(va)(vf)
1764
+ )
1765
+ );
1766
+ TaskValidation2.fold = (onFailed, onPassed) => (data) => Task.map(Validation.fold(onFailed, onPassed))(data);
1767
+ TaskValidation2.match = (cases) => (data) => Task.map(Validation.match(cases))(data);
1768
+ TaskValidation2.getOrElse = (defaultValue) => (data) => Task.map(Validation.getOrElse(defaultValue))(data);
1769
+ TaskValidation2.tap = (f) => (data) => Task.map(Validation.tap(f))(data);
1770
+ TaskValidation2.recover = (fallback) => (data) => Task.chain(
1771
+ (validation) => Validation.isPassed(validation) ? Task.resolve(validation) : fallback(validation.errors)
1772
+ )(data);
1773
+ TaskValidation2.product = (first, second) => Task.from(
1774
+ (signal) => Promise.all([Deferred.toPromise(first(signal)), Deferred.toPromise(second(signal))]).then(
1775
+ ([va, vb]) => Validation.product(va, vb)
1776
+ )
1777
+ );
1778
+ TaskValidation2.productAll = (data) => Task.from(
1779
+ (signal) => Promise.all(data.map((t) => Deferred.toPromise(t(signal)))).then((results) => {
1780
+ const [first, ...rest] = results;
1781
+ return Validation.productAll([first, ...rest]);
1782
+ })
1783
+ );
1784
+ TaskValidation2.mapError = (f) => (data) => Task.map(Validation.mapError(f))(data);
1785
+ TaskValidation2.tapError = (f) => (data) => Task.map(Validation.tapError(f))(data);
1786
+ TaskValidation2.struct = (fields) => Task.from((signal) => {
1787
+ const keys = Object.keys(fields);
1788
+ const promises = keys.map((key) => Deferred.toPromise(fields[key](signal)));
1789
+ return Promise.all(promises).then((results) => {
1790
+ const record = {};
1791
+ const errors = [];
1792
+ for (let i = 0; i < keys.length; i++) {
1793
+ const res = results[i];
1794
+ if (Validation.isPassed(res)) {
1795
+ record[keys[i]] = res.value;
1796
+ } else {
1797
+ errors.push(...res.errors);
1798
+ }
1799
+ }
1800
+ return isNonEmptyArr(errors) ? Validation.failedAll(errors) : Validation.passed(record);
1801
+ });
1802
+ });
1803
+ })(TaskValidation || (TaskValidation = {}));
1804
+
1652
1805
  // src/Core/Task.ts
1653
1806
  var toPromise = (task, signal) => Deferred.toPromise(task(signal));
1654
1807
  var getMs2 = (duration) => Duration.toMilliseconds(duration);
@@ -1673,9 +1826,7 @@ var Task;
1673
1826
  (signal) => new Promise((res) => {
1674
1827
  let timerId;
1675
1828
  const onAbort = () => {
1676
- if (timerId !== void 0) {
1677
- clearTimeout(timerId);
1678
- }
1829
+ clearTimeout(timerId);
1679
1830
  res(toPromise(data, signal));
1680
1831
  };
1681
1832
  if (signal) {
@@ -1696,27 +1847,20 @@ var Task;
1696
1847
  return Promise.resolve([]);
1697
1848
  }
1698
1849
  const results = [];
1699
- const wait = () => {
1700
- if (signal?.aborted) {
1701
- return Promise.resolve();
1850
+ const wait = () => new Promise((r) => {
1851
+ let timerId;
1852
+ const onAbort = () => {
1853
+ clearTimeout(timerId);
1854
+ r();
1855
+ };
1856
+ if (signal) {
1857
+ signal.addEventListener("abort", onAbort, { once: true });
1702
1858
  }
1703
- return new Promise((r) => {
1704
- let timerId;
1705
- const onAbort = () => {
1706
- if (timerId !== void 0) {
1707
- clearTimeout(timerId);
1708
- }
1709
- r();
1710
- };
1711
- if (signal) {
1712
- signal.addEventListener("abort", onAbort, { once: true });
1713
- }
1714
- timerId = setTimeout(() => {
1715
- signal?.removeEventListener("abort", onAbort);
1716
- r();
1717
- }, delayDuration ? getMs2(delayDuration) : 0);
1718
- });
1719
- };
1859
+ timerId = setTimeout(() => {
1860
+ signal?.removeEventListener("abort", onAbort);
1861
+ r();
1862
+ }, delayDuration ? getMs2(delayDuration) : 0);
1863
+ });
1720
1864
  const run2 = (left) => {
1721
1865
  if (signal?.aborted) {
1722
1866
  return Promise.resolve(results);
@@ -1733,27 +1877,20 @@ var Task;
1733
1877
  });
1734
1878
  Task2.repeatUntil = (options) => (task) => (0, Task2.from)((signal) => {
1735
1879
  const { when: predicate, delay: delayDuration, maxAttempts } = options;
1736
- const wait = () => {
1737
- if (signal?.aborted) {
1738
- return Promise.resolve();
1880
+ const wait = () => new Promise((r) => {
1881
+ let timerId;
1882
+ const onAbort = () => {
1883
+ clearTimeout(timerId);
1884
+ r();
1885
+ };
1886
+ if (signal) {
1887
+ signal.addEventListener("abort", onAbort, { once: true });
1739
1888
  }
1740
- return new Promise((r) => {
1741
- let timerId;
1742
- const onAbort = () => {
1743
- if (timerId !== void 0) {
1744
- clearTimeout(timerId);
1745
- }
1746
- r();
1747
- };
1748
- if (signal) {
1749
- signal.addEventListener("abort", onAbort, { once: true });
1750
- }
1751
- timerId = setTimeout(() => {
1752
- signal?.removeEventListener("abort", onAbort);
1753
- r();
1754
- }, delayDuration ? getMs2(delayDuration) : 0);
1755
- });
1756
- };
1889
+ timerId = setTimeout(() => {
1890
+ signal?.removeEventListener("abort", onAbort);
1891
+ r();
1892
+ }, delayDuration ? getMs2(delayDuration) : 0);
1893
+ });
1757
1894
  const run2 = (attempt, lastValue) => {
1758
1895
  if (signal?.aborted && lastValue !== void 0) {
1759
1896
  return Promise.resolve(lastValue);
@@ -1821,16 +1958,16 @@ var Task;
1821
1958
  Task2.timeout = (duration, onTimeout) => (task) => (0, Task2.from)((outerSignal) => {
1822
1959
  const controller = new AbortController();
1823
1960
  let timerId;
1824
- function cleanUp() {
1825
- if (timerId !== void 0) {
1826
- clearTimeout(timerId);
1827
- }
1828
- outerSignal?.removeEventListener("abort", onOuterAbort);
1829
- }
1830
- function onOuterAbort() {
1961
+ let cleanUp = () => {
1962
+ };
1963
+ const onOuterAbort = () => {
1831
1964
  cleanUp();
1832
1965
  controller.abort();
1833
- }
1966
+ };
1967
+ cleanUp = () => {
1968
+ clearTimeout(timerId);
1969
+ outerSignal?.removeEventListener("abort", onOuterAbort);
1970
+ };
1834
1971
  if (outerSignal) {
1835
1972
  if (outerSignal.aborted) {
1836
1973
  controller.abort();
@@ -1875,123 +2012,11 @@ var Task;
1875
2012
  Task2.bind = (key, f) => (data) => (0, Task2.chain)(
1876
2013
  (a) => (0, Task2.map)((b) => ({ ...a, [key]: b }))(f(a))
1877
2014
  )(data);
2015
+ Task2.Maybe = TaskMaybe;
2016
+ Task2.Result = TaskResult;
2017
+ Task2.Validation = TaskValidation;
1878
2018
  })(Task || (Task = {}));
1879
2019
 
1880
- // src/Core/TaskMaybe.ts
1881
- var TaskMaybe;
1882
- ((TaskMaybe2) => {
1883
- TaskMaybe2.some = (value) => Task.resolve(Maybe.some(value));
1884
- TaskMaybe2.none = () => Task.resolve(Maybe.none());
1885
- TaskMaybe2.fromMaybe = (option) => Task.resolve(option);
1886
- TaskMaybe2.fromNullable = (value) => Task.resolve(Maybe.fromNullable(value));
1887
- TaskMaybe2.fromResult = (result) => Task.resolve(Result.toMaybe(result));
1888
- TaskMaybe2.fromTask = (task) => Task.map(Maybe.some)(task);
1889
- TaskMaybe2.tryCatch = (f) => Task.from((signal) => f(signal).then(Maybe.some).catch(() => Maybe.none()));
1890
- TaskMaybe2.map = (f) => (data) => Task.map(Maybe.map(f))(data);
1891
- TaskMaybe2.chain = (f) => (data) => Task.chain((option) => Maybe.isSome(option) ? f(option.value) : Task.resolve(Maybe.none()))(data);
1892
- TaskMaybe2.ap = (arg) => (data) => Task.from(
1893
- (signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
1894
- ([of_, oa]) => Maybe.ap(oa)(of_)
1895
- )
1896
- );
1897
- TaskMaybe2.fold = (onNone, onSome) => (data) => Task.map(Maybe.fold(onNone, onSome))(data);
1898
- TaskMaybe2.match = (cases) => (data) => Task.map(Maybe.match(cases))(data);
1899
- TaskMaybe2.getOrElse = (defaultValue) => (data) => Task.map(Maybe.getOrElse(defaultValue))(data);
1900
- TaskMaybe2.tap = (f) => (data) => Task.map(Maybe.tap(f))(data);
1901
- TaskMaybe2.filter = (predicate) => (data) => Task.map(Maybe.filter(predicate))(data);
1902
- TaskMaybe2.toTaskResult = (onNone) => (data) => Task.map(Maybe.toResult(onNone))(data);
1903
- TaskMaybe2.bindTo = (key) => (data) => (0, TaskMaybe2.map)((a) => ({ [key]: a }))(data);
1904
- TaskMaybe2.bind = (key, f) => (data) => (0, TaskMaybe2.chain)(
1905
- (a) => (0, TaskMaybe2.map)((b) => ({ ...a, [key]: b }))(f(a))
1906
- )(data);
1907
- })(TaskMaybe || (TaskMaybe = {}));
1908
-
1909
- // src/Core/TaskResult.ts
1910
- var TaskResult3;
1911
- ((TaskResult4) => {
1912
- TaskResult4.ok = (value) => Task.resolve(Result.ok(value));
1913
- TaskResult4.err = (error) => Task.resolve(Result.err(error));
1914
- TaskResult4.fromNullable = (onNull) => (value) => Task.resolve(value === null || value === void 0 ? Result.err(onNull()) : Result.ok(value));
1915
- TaskResult4.fromMaybe = (onNone) => (maybe) => Task.resolve(Maybe.isNone(maybe) ? Result.err(onNone()) : Result.ok(maybe.value));
1916
- TaskResult4.fromResult = (result) => Task.resolve(result);
1917
- TaskResult4.fromThrowable = (f, onError) => (...args) => Task.from(() => f(...args).then(Result.ok).catch((error) => Result.err(onError(error))));
1918
- TaskResult4.tryCatch = (f, onError) => Task.from((signal) => f(signal).then(Result.ok).catch((error) => Result.err(onError(error))));
1919
- TaskResult4.map = (f) => (data) => Task.map(Result.map(f))(data);
1920
- TaskResult4.mapError = (f) => (data) => Task.map(Result.mapError(f))(data);
1921
- TaskResult4.chain = (f) => (data) => Task.chain((result) => Result.isOk(result) ? f(result.value) : Task.resolve(Result.err(result.error)))(
1922
- data
1923
- );
1924
- TaskResult4.fold = (onErr, onOk) => (data) => Task.map(Result.fold(onErr, onOk))(data);
1925
- TaskResult4.match = (cases) => (data) => Task.map(Result.match(cases))(data);
1926
- TaskResult4.recover = (fallback) => (data) => Task.chain(
1927
- (result) => Result.isErr(result) ? fallback(result.error) : Task.resolve(result)
1928
- )(data);
1929
- TaskResult4.getOrElse = (defaultValue) => (data) => Task.map(Result.getOrElse(defaultValue))(data);
1930
- TaskResult4.tap = (f) => (data) => Task.map(Result.tap(f))(data);
1931
- TaskResult4.tapError = (f) => (data) => Task.map(Result.tapError(f))(data);
1932
- TaskResult4.ap = (arg) => (data) => Task.from(
1933
- (signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
1934
- ([of_, oa]) => Result.ap(oa)(of_)
1935
- )
1936
- );
1937
- TaskResult4.run = (signal) => (task) => task(signal);
1938
- TaskResult4.bindTo = (key) => (data) => (0, TaskResult4.map)((a) => ({ [key]: a }))(data);
1939
- TaskResult4.bind = (key, f) => (data) => (0, TaskResult4.chain)(
1940
- (a) => (0, TaskResult4.map)((b) => ({ ...a, [key]: b }))(f(a))
1941
- )(data);
1942
- TaskResult4.struct = (fields) => Task.from((signal) => {
1943
- const keys = Object.keys(fields);
1944
- const promises = keys.map((key) => Deferred.toPromise(fields[key](signal)));
1945
- return Promise.all(promises).then((results) => {
1946
- const record = {};
1947
- for (let i = 0; i < keys.length; i++) {
1948
- const res = results[i];
1949
- if (Result.isErr(res)) {
1950
- return res;
1951
- }
1952
- record[keys[i]] = res.value;
1953
- }
1954
- return Result.ok(record);
1955
- });
1956
- });
1957
- })(TaskResult3 || (TaskResult3 = {}));
1958
-
1959
- // src/Core/TaskValidation.ts
1960
- var TaskValidation;
1961
- ((TaskValidation2) => {
1962
- TaskValidation2.passed = (value) => Task.resolve(Validation.passed(value));
1963
- TaskValidation2.failed = (error) => Task.resolve(Validation.failed(error));
1964
- TaskValidation2.failedAll = (errors) => Task.resolve(Validation.failedAll(errors));
1965
- TaskValidation2.fromValidation = (validation) => Task.resolve(validation);
1966
- TaskValidation2.fromNullable = (onNull) => (value) => Task.resolve(value === null || value === void 0 ? Validation.failed(onNull()) : Validation.passed(value));
1967
- TaskValidation2.fromMaybe = (onNone) => (maybe) => Task.resolve(Maybe.isNone(maybe) ? Validation.failed(onNone()) : Validation.passed(maybe.value));
1968
- TaskValidation2.fromResult = (result) => Task.resolve(Validation.fromResult(result));
1969
- TaskValidation2.tryCatch = (f, onError) => Task.from((signal) => f(signal).then(Validation.passed).catch((error) => Validation.failed(onError(error))));
1970
- TaskValidation2.map = (f) => (data) => Task.map(Validation.map(f))(data);
1971
- TaskValidation2.ap = (arg) => (data) => Task.from(
1972
- (signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
1973
- ([vf, va]) => Validation.ap(va)(vf)
1974
- )
1975
- );
1976
- TaskValidation2.fold = (onFailed, onPassed) => (data) => Task.map(Validation.fold(onFailed, onPassed))(data);
1977
- TaskValidation2.match = (cases) => (data) => Task.map(Validation.match(cases))(data);
1978
- TaskValidation2.getOrElse = (defaultValue) => (data) => Task.map(Validation.getOrElse(defaultValue))(data);
1979
- TaskValidation2.tap = (f) => (data) => Task.map(Validation.tap(f))(data);
1980
- TaskValidation2.recover = (fallback) => (data) => Task.chain(
1981
- (validation) => Validation.isPassed(validation) ? Task.resolve(validation) : fallback(validation.errors)
1982
- )(data);
1983
- TaskValidation2.product = (first, second) => Task.from(
1984
- (signal) => Promise.all([Deferred.toPromise(first(signal)), Deferred.toPromise(second(signal))]).then(
1985
- ([va, vb]) => Validation.product(va, vb)
1986
- )
1987
- );
1988
- TaskValidation2.productAll = (data) => Task.from(
1989
- (signal) => Promise.all(data.map((t) => Deferred.toPromise(t(signal)))).then(
1990
- (results) => Validation.productAll(results)
1991
- )
1992
- );
1993
- })(TaskValidation || (TaskValidation = {}));
1994
-
1995
2020
  // src/Core/These.ts
1996
2021
  var These;
1997
2022
  ((These2) => {
@@ -2114,11 +2139,10 @@ var Validation;
2114
2139
  Validation2.map = (f) => (data) => (0, Validation2.isPassed)(data) ? (0, Validation2.passed)(f(data.value)) : data;
2115
2140
  Validation2.mapError = (f) => (data) => (0, Validation2.isFailed)(data) ? (0, Validation2.failedAll)(data.errors.map(f)) : data;
2116
2141
  Validation2.ap = (arg) => (data) => {
2117
- if ((0, Validation2.isPassed)(data) && (0, Validation2.isPassed)(arg)) {
2118
- return (0, Validation2.passed)(data.value(arg.value));
2142
+ if ((0, Validation2.isPassed)(data)) {
2143
+ return (0, Validation2.isPassed)(arg) ? (0, Validation2.passed)(data.value(arg.value)) : (0, Validation2.failedAll)(arg.errors);
2119
2144
  }
2120
- const errors = [...(0, Validation2.isFailed)(data) ? data.errors : [], ...(0, Validation2.isFailed)(arg) ? arg.errors : []];
2121
- return (0, Validation2.failedAll)(errors);
2145
+ return (0, Validation2.isPassed)(arg) ? (0, Validation2.failedAll)(data.errors) : (0, Validation2.failedAll)([...data.errors, ...arg.errors]);
2122
2146
  };
2123
2147
  Validation2.fold = (onFailed, onPassed) => (data) => (0, Validation2.isPassed)(data) ? onPassed(data.value) : onFailed(data.errors);
2124
2148
  Validation2.match = (cases) => (data) => (0, Validation2.isPassed)(data) ? cases.passed(data.value) : cases.failed(data.errors);
@@ -2141,11 +2165,10 @@ var Validation;
2141
2165
  Validation2.toMaybe = (data) => (0, Validation2.isPassed)(data) ? Maybe.some(data.value) : Maybe.none();
2142
2166
  Validation2.fromResult = (data) => data.kind === "Ok" ? (0, Validation2.passed)(data.value) : (0, Validation2.failed)(data.error);
2143
2167
  Validation2.product = (first, second) => {
2144
- if ((0, Validation2.isPassed)(first) && (0, Validation2.isPassed)(second)) {
2145
- return (0, Validation2.passed)([first.value, second.value]);
2168
+ if ((0, Validation2.isPassed)(first)) {
2169
+ return (0, Validation2.isPassed)(second) ? (0, Validation2.passed)([first.value, second.value]) : (0, Validation2.failedAll)(second.errors);
2146
2170
  }
2147
- const errors = [...(0, Validation2.isFailed)(first) ? first.errors : [], ...(0, Validation2.isFailed)(second) ? second.errors : []];
2148
- return (0, Validation2.failedAll)(errors);
2171
+ return (0, Validation2.isPassed)(second) ? (0, Validation2.failedAll)(first.errors) : (0, Validation2.failedAll)([...first.errors, ...second.errors]);
2149
2172
  };
2150
2173
  Validation2.productAll = (data) => {
2151
2174
  const values = [];
@@ -2157,7 +2180,7 @@ var Validation;
2157
2180
  errors.push(...v.errors);
2158
2181
  }
2159
2182
  }
2160
- return errors.length > 0 ? (0, Validation2.failedAll)(errors) : (0, Validation2.passed)(values);
2183
+ return isNonEmptyArr(errors) ? (0, Validation2.failedAll)(errors) : (0, Validation2.passed)(values);
2161
2184
  };
2162
2185
  Validation2.struct = (fields) => {
2163
2186
  const record = {};
@@ -2172,7 +2195,7 @@ var Validation;
2172
2195
  }
2173
2196
  }
2174
2197
  }
2175
- return errors.length > 0 ? (0, Validation2.failedAll)(errors) : (0, Validation2.passed)(record);
2198
+ return isNonEmptyArr(errors) ? (0, Validation2.failedAll)(errors) : (0, Validation2.passed)(record);
2176
2199
  };
2177
2200
  })(Validation || (Validation = {}));
2178
2201
  // Annotate the CommonJS export names for ESM import in node:
@@ -2195,9 +2218,6 @@ var Validation;
2195
2218
  Result,
2196
2219
  State,
2197
2220
  Task,
2198
- TaskMaybe,
2199
- TaskResult,
2200
- TaskValidation,
2201
2221
  These,
2202
2222
  Tuple,
2203
2223
  Validation
package/dist/core.mjs CHANGED
@@ -17,14 +17,11 @@ import {
17
17
  Result,
18
18
  State,
19
19
  Task,
20
- TaskMaybe,
21
- TaskResult,
22
- TaskValidation,
23
20
  These,
24
21
  Tuple,
25
22
  Validation
26
- } from "./chunk-COGQKPIP.mjs";
27
- import "./chunk-GBB6LVLI.mjs";
23
+ } from "./chunk-CHRXZIJU.mjs";
24
+ import "./chunk-74JKKJ4R.mjs";
28
25
  export {
29
26
  Combinable,
30
27
  Deferred,
@@ -44,9 +41,6 @@ export {
44
41
  Result,
45
42
  State,
46
43
  Task,
47
- TaskMaybe,
48
- TaskResult,
49
- TaskValidation,
50
44
  These,
51
45
  Tuple,
52
46
  Validation
package/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { and, compose, constFalse, constNull, constTrue, constUndefined, constVoid, constant, converge, curry, curry3, curry4, defaultTo, flip, flow, identity, juxt, memoize, memoizeWeak, not, on, once, or, pipe, tap, uncurry, uncurry3, uncurry4 } from './composition.mjs';
2
- export { Combinable, Failed, Failure, Lazy, Lens, Loading, Logged, NotAsked, Op, Optional, Passed, Predicate, Reader, Refinement, RemoteData, Resource, State, Success, TaskMaybe, TaskResult, TaskValidation, These, TheseBoth, TheseFirst, TheseSecond, Tuple, Validation } from './core.mjs';
3
- export { D as Deferred, E as Equality, a as Err, M as Maybe, N as None, O as Ok, b as Ordering, R as Result, S as Some, T as Task } from './Task-BprUabHP.mjs';
4
- export { Arr, Dict, Num, Rec, Str, Uniq } from './utils.mjs';
5
- export { B as Brand, D as Duration } from './Duration-BTeT9D-q.mjs';
6
- export { NonEmptyList, isNonEmptyList } from './types.mjs';
2
+ export { Combinable, Failure, Lazy, Lens, Loading, Logged, NotAsked, Op, Optional, Predicate, Reader, Refinement, RemoteData, Resource, State, Success, These, TheseBoth, TheseFirst, TheseSecond, Tuple } from './core.mjs';
3
+ export { D as Deferred } from './InternalTypes-DsCqxWZm.mjs';
4
+ export { E as Equality, a as Err, F as Failed, M as Maybe, N as None, O as Ok, b as Ordering, P as Passed, R as Result, S as Some, T as Task, V as Validation } from './Validation-Do6uWLLZ.mjs';
5
+ export { Arr, Dict, NonEmptyRecord, Num, Rec, Str, Uniq } from './utils.mjs';
6
+ export { Brand, Duration } from './types.mjs';
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { and, compose, constFalse, constNull, constTrue, constUndefined, constVoid, constant, converge, curry, curry3, curry4, defaultTo, flip, flow, identity, juxt, memoize, memoizeWeak, not, on, once, or, pipe, tap, uncurry, uncurry3, uncurry4 } from './composition.js';
2
- export { Combinable, Failed, Failure, Lazy, Lens, Loading, Logged, NotAsked, Op, Optional, Passed, Predicate, Reader, Refinement, RemoteData, Resource, State, Success, TaskMaybe, TaskResult, TaskValidation, These, TheseBoth, TheseFirst, TheseSecond, Tuple, Validation } from './core.js';
3
- export { D as Deferred, E as Equality, a as Err, M as Maybe, N as None, O as Ok, b as Ordering, R as Result, S as Some, T as Task } from './Task-Dt3ZMen6.js';
4
- export { Arr, Dict, Num, Rec, Str, Uniq } from './utils.js';
5
- export { B as Brand, D as Duration } from './Duration-BTeT9D-q.js';
6
- export { NonEmptyList, isNonEmptyList } from './types.js';
2
+ export { Combinable, Failure, Lazy, Lens, Loading, Logged, NotAsked, Op, Optional, Predicate, Reader, Refinement, RemoteData, Resource, State, Success, These, TheseBoth, TheseFirst, TheseSecond, Tuple } from './core.js';
3
+ export { D as Deferred } from './InternalTypes-DuzMFAfJ.js';
4
+ export { E as Equality, a as Err, F as Failed, M as Maybe, N as None, O as Ok, b as Ordering, P as Passed, R as Result, S as Some, T as Task, V as Validation } from './Validation-BOPLiDqa.js';
5
+ export { Arr, Dict, NonEmptyRecord, Num, Rec, Str, Uniq } from './utils.js';
6
+ export { Brand, Duration } from './types.js';