Executing an effect within multiple nested maps and filters
How would I properly execute an effect within a filter, within a map, within a map, within a Effect.gen?
So given:
So given:
const someThing = (
arrayOfThingWithArrayOfThings: ArrayOfThingWithArrayOfThings,
) => Effect.gen(function* (_) {
const { someFunction } = yield* _(someService);
return ReadonlyArray.map(arrayOfThingWithArrayOfThings, (thingWithArrayOfThings) => {
return {
...thingWithArrayOfThings,
arrayOfThings: ReadonlyArray.map(thingWithArrayOfThings.arrayOfThings, (thing) => {
return {
...thing,
moreThings: ReadonlyArray.filter(
thing.moreThings,
(moreThing) => someFunction(moreThing) // How would I execute this? It doesn't recognize yield* at this position
),
};
}).filter((thing) => thing.moreThings.length > 0),
};
}).filter((thingWithArrayOfThings) => thingWithArrayOfThings.arrayOfThings.length > 0);
})const someThing = (
arrayOfThingWithArrayOfThings: ArrayOfThingWithArrayOfThings,
) => Effect.gen(function* (_) {
const { someFunction } = yield* _(someService);
return ReadonlyArray.map(arrayOfThingWithArrayOfThings, (thingWithArrayOfThings) => {
return {
...thingWithArrayOfThings,
arrayOfThings: ReadonlyArray.map(thingWithArrayOfThings.arrayOfThings, (thing) => {
return {
...thing,
moreThings: ReadonlyArray.filter(
thing.moreThings,
(moreThing) => someFunction(moreThing) // How would I execute this? It doesn't recognize yield* at this position
),
};
}).filter((thing) => thing.moreThings.length > 0),
};
}).filter((thingWithArrayOfThings) => thingWithArrayOfThings.arrayOfThings.length > 0);
})