const readFiles = (files: FileNode[]) => Effect.gen(function* () {
return yield* Option.firstSomeOf([
Option.gen(function* () { // <-- Typescript error
const md = yield* MarkdownFileTranscoder;
const result = yield* md.discover(files);
return Option.some(result);
}),
Option.gen(function* () { // <-- Typescript error
const img = yield* ImageFileTranscoder;
const result = yield* img.discover(files);
return Option.some(result);
}),
]);
});
export const PipelineTranscodeService = (selection: FileNode[]) => pipe(
selection,
discoverFiles,
Effect.map(readFiles),
);
const readFiles = (files: FileNode[]) => Effect.gen(function* () {
return yield* Option.firstSomeOf([
Option.gen(function* () { // <-- Typescript error
const md = yield* MarkdownFileTranscoder;
const result = yield* md.discover(files);
return Option.some(result);
}),
Option.gen(function* () { // <-- Typescript error
const img = yield* ImageFileTranscoder;
const result = yield* img.discover(files);
return Option.some(result);
}),
]);
});
export const PipelineTranscodeService = (selection: FileNode[]) => pipe(
selection,
discoverFiles,
Effect.map(readFiles),
);