Skip to content
Docs menu / Path

Path

The @effect/platform/Path module provides a set of operations for working with file paths.

Basic Usage

The module provides a single Path tag, which acts as the gateway for interacting with paths.

Example (Accessing the Path Service)

import { Path } from "@effect/platform"
import { Effect } from "effect"
const program = Effect.gen(function* () {
const path = yield* Path.Path
// Use `path` to perform various path operations
})

The Path interface includes the following operations:

Operation Description
basename Returns the last part of a path, optionally removing a given suffix.
dirname Returns the directory part of a path.
extname Returns the file extension from a path.
format Formats a path object into a path string.
fromFileUrl Converts a file URL to a path.
isAbsolute Checks if a path is absolute.
join Joins multiple path segments into one.
normalize Normalizes a path by resolving . and .. segments.
parse Parses a path string into an object with its segments.
relative Computes the relative path from one path to another.
resolve Resolves a sequence of paths to an absolute path.
sep Returns the platform-specific path segment separator (e.g., / on POSIX).
toFileUrl Converts a path to a file URL.
toNamespacedPath Converts a path to a namespaced path (specific to Windows).

Example (Joining Path Segments)

import { Path } from "@effect/platform"
import { Effect } from "effect"
import { NodeContext, NodeRuntime } from "@effect/platform-node"
const program = Effect.gen(function* () {
const path = yield* Path.Path
const mypath = path.join("tmp", "file.txt")
console.log(mypath)
})
NodeRuntime.runMain(program.pipe(Effect.provide(NodeContext.layer)))
// Output: "tmp/file.txt"