30 lines · 1.1 KB · TypeScript
RawDownload
import * as Schema from "effect/Schema";import { TrimmedNonEmptyString } from "./baseSchemas.ts"; const FILESYSTEM_PATH_MAX_LENGTH = 512; export const FilesystemBrowseInput = Schema.Struct({  partialPath: TrimmedNonEmptyString.check(Schema.isMaxLength(FILESYSTEM_PATH_MAX_LENGTH)),  cwd: Schema.optional(TrimmedNonEmptyString.check(Schema.isMaxLength(FILESYSTEM_PATH_MAX_LENGTH))),});export type FilesystemBrowseInput = typeof FilesystemBrowseInput.Type; export const FilesystemBrowseEntry = Schema.Struct({  name: TrimmedNonEmptyString,  fullPath: TrimmedNonEmptyString,});export type FilesystemBrowseEntry = typeof FilesystemBrowseEntry.Type; export const FilesystemBrowseResult = Schema.Struct({  parentPath: TrimmedNonEmptyString,  entries: Schema.Array(FilesystemBrowseEntry),});export type FilesystemBrowseResult = typeof FilesystemBrowseResult.Type; export class FilesystemBrowseError extends Schema.TaggedErrorClass<FilesystemBrowseError>()(  "FilesystemBrowseError",  {    message: TrimmedNonEmptyString,    cause: Schema.optional(Schema.Defect()),  },) {}