flix

0.69.3

Fs.DirList

eff DirListSource

An effect used to list the contents of a directory.

Use the DirList.runWithFileSystem handler.

Operations

def list(f: String): Result[IoError, List[String]] \ DirList Source

Returns a list with the names of all files and directories in the given directory f.

Definitions

def handle(f: a -> b \ ef): a -> b \ (ef - DirList) + IO Source

Handles the DirList effect of the given function f.

In other words, re-interprets the DirList effect using the IO effect.

def runWithFileSystem(f: Unit -> a \ ef): a \ (ef - DirList) + FileSystem Source

Handles the DirList effect of the given function f using the FileSystem effect.

@DefaultHandler
def runWithIO(f: Unit -> a \ ef): a \ (ef - DirList) + IO Source

Runs the DirList effect of the given function f.

In other words, re-interprets the DirList effect using the IO effect.

def withAllowGlob(patterns: Nel[String], f: Unit -> a \ ef): a \ (ef - DirList) + DirList Source

Middleware that intercepts the DirList effect, validating that all file paths match at least one of the given glob patterns. Rejects paths that do not match with a PermissionDenied error.

def withAllowList(allowedDirs: Nel[String], f: Unit -> a \ ef): a \ (ef - DirList) + DirList Source

Middleware that intercepts the DirList effect, validating that all file paths resolve within one of the given allowedDirs. Rejects paths outside the allow list with a PermissionDenied error.

def withBaseDir(baseDir: String, f: Unit -> a \ ef): a \ (ef - DirList) + DirList Source

Middleware that intercepts the DirList effect, resolving all file paths relative to the given baseDir using Java's Path.resolve semantics.

Absolute paths are passed through unchanged.

def withChroot(chrootDir: String, f: Unit -> a \ ef): a \ (ef - DirList) + DirList Source

Middleware that intercepts the DirList effect, validating that all file paths resolve within the given chrootDir. Rejects paths that escape the chroot with a PermissionDenied error.

def withDenyGlob(patterns: Nel[String], f: Unit -> a \ ef): a \ (ef - DirList) + DirList Source

Middleware that intercepts the DirList effect, validating that all file paths do not match any of the given glob patterns. Rejects paths that match a denied pattern with a PermissionDenied error.

def withDenyList(deniedDirs: Nel[String], f: Unit -> a \ ef): a \ (ef - DirList) + DirList Source

Middleware that intercepts the DirList effect, validating that all file paths do not resolve within any of the given deniedDirs. Rejects paths inside a denied directory with a PermissionDenied error.

def withLogging(f: Unit -> a \ ef): a \ (ef - DirList) + DirList + Logger Source

Middleware that intercepts the DirList effect, logging each operation and its result via the Logger effect.

Successful operations are logged at Debug level; errors at Warn.