File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -141,7 +141,9 @@ export class IterableResult<T> {
141141 ) as IterableResult < T > ;
142142 }
143143
144- static from < T > ( iterableResult : ( ) => IterableResult < T > ) : IterableResult < T > {
144+ static handleThrows < T > (
145+ iterableResult : ( ) => IterableResult < T > ,
146+ ) : IterableResult < T > {
145147 try {
146148 return iterableResult ( ) ;
147149 } catch ( error ) {
@@ -202,7 +204,9 @@ export class IterableResult<T> {
202204 for ( const result of this ) {
203205 switch ( result . type ) {
204206 case "value" : {
205- const more = IterableResult . from ( ( ) => mapper ( result . value ) ) ;
207+ const more = IterableResult . handleThrows ( ( ) =>
208+ mapper ( result . value )
209+ ) ;
206210 for ( const result of more ) {
207211 switch ( result . type ) {
208212 case "value" :
Original file line number Diff line number Diff line change @@ -33,7 +33,7 @@ export function adjective(
3333 const { definition, reduplicationCount, emphasis } = options ;
3434 type EmphasisSo = Readonly < { emphasis : boolean ; so : null | string } > ;
3535 return IterableResult . concat (
36- IterableResult . from ( ( ) => IterableResult . single ( so ( emphasis ) ) )
36+ IterableResult . handleThrows ( ( ) => IterableResult . single ( so ( emphasis ) ) )
3737 . map ( ( so ) : EmphasisSo => ( { emphasis : false , so } ) ) ,
3838 IterableResult . single < EmphasisSo > ( { emphasis : emphasis != null , so : null } ) ,
3939 )
Original file line number Diff line number Diff line change @@ -170,7 +170,7 @@ function oClause(clause: TokiPona.Clause & { type: "o clause" }) {
170170 return IterableResult . concat (
171171 verb ( predicate , subjectPerspective , subjectQuantity )
172172 . map ( ( verb ) => iWish ( subject , verb ) ) ,
173- IterableResult . from ( ( ) => {
173+ IterableResult . handleThrows ( ( ) => {
174174 return verb (
175175 addModalToAll ( {
176176 modal : "should" ,
Original file line number Diff line number Diff line change @@ -46,7 +46,7 @@ function nounPhrase(
4646 } > ,
4747) {
4848 const { emphasis, noun, modifier } = options ;
49- return IterableResult . from ( ( ) => {
49+ return IterableResult . handleThrows ( ( ) => {
5050 const determiners = [
5151 ...modifier . determiners . toReversed ( ) ,
5252 ...noun . determiners ,
@@ -222,7 +222,7 @@ function defaultPhrase(
222222 } else if (
223223 headWord . type === "verb" && modifier . type === "adverbial"
224224 ) {
225- return IterableResult . from ( ( ) =>
225+ return IterableResult . handleThrows ( ( ) =>
226226 IterableResult . single < PhraseTranslation > ( {
227227 type : "verb" ,
228228 verb : {
Original file line number Diff line number Diff line change @@ -130,7 +130,7 @@ function predicateVerb(
130130 case "adjective" :
131131 return make ( predicate , object ) ;
132132 case "verb" :
133- return IterableResult . from ( ( ) =>
133+ return IterableResult . handleThrows ( ( ) =>
134134 IterableResult . single ( verbObject ( predicate . verb , object ) )
135135 ) ;
136136 }
Original file line number Diff line number Diff line change @@ -32,7 +32,7 @@ export function adjective(
3232 const { definition, reduplicationCount, emphasis } = options ;
3333 type EmphasisSo = Readonly < { emphasis : boolean ; so : null | string } > ;
3434 return IterableResult . concat (
35- IterableResult . from ( ( ) => IterableResult . single ( so ( emphasis ) ) )
35+ IterableResult . handleThrows ( ( ) => IterableResult . single ( so ( emphasis ) ) )
3636 . map ( ( so ) : EmphasisSo => ( { emphasis : false , so } ) ) ,
3737 IterableResult . single < EmphasisSo > ( { emphasis : emphasis != null , so : null } ) ,
3838 )
Original file line number Diff line number Diff line change @@ -88,10 +88,12 @@ function nasinNanpaPona(numbers: ReadonlyArray<number>) {
8888function combineNumbers ( numbers : ReadonlyArray < number > ) {
8989 if ( numbers . length === 1 || ! numbers . includes ( 0 ) ) {
9090 return IterableResult . concat (
91- IterableResult . from ( ( ) =>
91+ IterableResult . handleThrows ( ( ) =>
9292 IterableResult . fromNullable ( nasinNanpaPona ( numbers ) )
9393 ) ,
94- IterableResult . from ( ( ) => IterableResult . single ( regularNumber ( numbers ) ) ) ,
94+ IterableResult . handleThrows ( ( ) =>
95+ IterableResult . single ( regularNumber ( numbers ) )
96+ ) ,
9597 ) ;
9698 } else {
9799 return IterableResult . errors ( [
Original file line number Diff line number Diff line change @@ -187,7 +187,7 @@ function defaultPhrase(
187187 } else if (
188188 headWord . type === "verb" && adjectivalIsNone ( modifier . adjectival )
189189 ) {
190- return IterableResult . from ( ( ) =>
190+ return IterableResult . handleThrows ( ( ) =>
191191 IterableResult . single < PhraseTranslation > ( {
192192 type : "verb" ,
193193 verb : {
You can’t perform that action at this time.
0 commit comments