const getProduct = (prodName: string) => {
return Effect.tryPromise({
try: () => getEntry('products', 'index'),
catch: (err) => new AstroCollectionError('collection products not found', err as Error)
}).pipe(
Effect.map(coll => coll.data),
Effect.map( ReadonlyArray.findFirst(e => e.name === prodName )),
Effect.flatMap( Option.match({
onNone: () => Effect.fail(new EntryNotFoundError(`${prodName} in Products`)),
onSome: (value) => Effect.succeed(value)
}))
)
}
const getProduct = (prodName: string) => {
return Effect.tryPromise({
try: () => getEntry('products', 'index'),
catch: (err) => new AstroCollectionError('collection products not found', err as Error)
}).pipe(
Effect.map(coll => coll.data),
Effect.map( ReadonlyArray.findFirst(e => e.name === prodName )),
Effect.flatMap( Option.match({
onNone: () => Effect.fail(new EntryNotFoundError(`${prodName} in Products`)),
onSome: (value) => Effect.succeed(value)
}))
)
}