1- import { nullableAsArray } from "../misc/misc.ts" ;
2-
31export type ArrayResultOptions = {
42 cause : unknown ;
53 isHtml : boolean ;
@@ -60,11 +58,11 @@ export class ArrayResult<const T> {
6058 ) ;
6159 }
6260 }
63- filterMap < const U > ( mapper : ( value : T ) => U ) : ArrayResult < NonNullable < U > > {
64- return this . flatMap ( ( value ) =>
65- new ArrayResult ( nullableAsArray ( mapper ( value ) ) )
66- ) ;
67- }
61+ // filterMap<const U>(mapper: (value: T) => U): ArrayResult<NonNullable<U>> {
62+ // return this.flatMap((value) =>
63+ // new ArrayResult(nullableAsArray(mapper(value)))
64+ // );
65+ // }
6866 sort ( comparer : ( left : T , right : T ) => number ) : ArrayResult < T > {
6967 if ( this . isError ( ) ) {
7068 return this ;
@@ -75,13 +73,13 @@ export class ArrayResult<const T> {
7573 sortBy ( mapper : ( value : T ) => number ) : ArrayResult < T > {
7674 return this . sort ( ( left , right ) => mapper ( left ) - mapper ( right ) ) ;
7775 }
78- addErrorWhenNone ( error : ( ) => ResultError ) : ArrayResult < T > {
79- if ( this . isError ( ) && this . errors . length === 0 ) {
80- return ArrayResult . errors ( [ error ( ) ] ) ;
81- } else {
82- return this ;
83- }
84- }
76+ // addErrorWhenNone(error: () => ResultError): ArrayResult<T> {
77+ // if (this.isError() && this.errors.length === 0) {
78+ // return ArrayResult.errors([error()]);
79+ // } else {
80+ // return this;
81+ // }
82+ // }
8583 asIterableResult ( ) : IterableResult < T > {
8684 if ( this . isError ( ) ) {
8785 return IterableResult . errors ( this . errors ) ;
@@ -100,27 +98,27 @@ export class ArrayResult<const T> {
10098 ArrayResult . empty ( ) ,
10199 ) ;
102100 }
103- static combine < T extends ReadonlyArray < unknown > > (
104- ...arrayResults :
105- & Readonly < { [ I in keyof T ] : ArrayResult < T [ I ] > } >
106- & Readonly < { length : T [ "length" ] } >
107- ) : ArrayResult < T > {
108- // we resorted to using `any` types here, make sure it works properly
109- return arrayResults . reduce (
110- ( left : ArrayResult < any > , right ) => {
111- if ( left . isError ( ) && right . isError ( ) ) {
112- return ArrayResult . concat ( left , right ) ;
113- } else if ( left . isError ( ) ) {
114- return left ;
115- } else if ( right . isError ( ) ) {
116- return right ;
117- } else {
118- return left . flatMap ( ( left ) => right . map ( ( right ) => [ ...left , right ] ) ) ;
119- }
120- } ,
121- new ArrayResult < any > ( [ [ ] ] ) ,
122- ) as ArrayResult < T > ;
123- }
101+ // static combine<T extends ReadonlyArray<unknown>>(
102+ // ...arrayResults:
103+ // & Readonly<{ [I in keyof T]: ArrayResult<T[I]> }>
104+ // & Readonly<{ length: T["length"] }>
105+ // ): ArrayResult<T> {
106+ // // we resorted to using `any` types here, make sure it works properly
107+ // return arrayResults.reduce(
108+ // (left: ArrayResult<any>, right) => {
109+ // if (left.isError() && right.isError()) {
110+ // return ArrayResult.concat(left, right);
111+ // } else if (left.isError()) {
112+ // return left;
113+ // } else if (right.isError()) {
114+ // return right;
115+ // } else {
116+ // return left.flatMap((left) => right.map((right) => [...left, right]));
117+ // }
118+ // },
119+ // new ArrayResult<any>([[]]),
120+ // ) as ArrayResult<T>;
121+ // }
124122 static from < T > ( arrayResult : ( ) => ArrayResult < T > ) : ArrayResult < T > {
125123 try {
126124 return arrayResult ( ) ;
0 commit comments