MCPcopy
hub / github.com/Effect-TS/effect / getFileList

Function getFileList

packages/cli/src/internal/prompt/file.ts:63–86  ·  view source on GitHub ↗
(directory: string, options: FileOptions)

Source from the content-addressed store, hash-verified

61}
62
63function getFileList(directory: string, options: FileOptions) {
64 return Effect.gen(function*() {
65 const fs = yield* FileSystem.FileSystem
66 const path = yield* Path.Path
67 const files = yield* Effect.orDie(fs.readDirectory(directory)).pipe(
68 // Always prepend the `".."` option to the file list but allow it
69 // to be filtered out if the user so desires
70 Effect.map((files) => ["..", ...files])
71 )
72 return yield* Effect.filter(files, (file) => {
73 const result = options.filter(file)
74 const userDefinedFilter = Effect.isEffect(result)
75 ? result
76 : Effect.succeed(result)
77 const directoryFilter = options.type === "directory"
78 ? Effect.map(
79 Effect.orDie(fs.stat(path.join(directory, file))),
80 (info) => info.type === "Directory"
81 )
82 : Effect.succeed(true)
83 return Effect.zipWith(userDefinedFilter, directoryFilter, (a, b) => a && b)
84 }, { concurrency: files.length })
85 })
86}
87
88function handleClear(options: FileOptions) {
89 return (state: State, _: Prompt.Prompt.Action<State, string>) => {

Callers 3

processSelectionFunction · 0.85
handleProcessFunction · 0.85
fileFunction · 0.85

Calls 4

statMethod · 0.80
pipeMethod · 0.65
mapMethod · 0.65
joinMethod · 0.65

Tested by

no test coverage detected