| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- export * as FileSystem from "./filesystem.js"
- import { Schema } from "effect"
- import { optional } from "./schema.js"
- import { ephemeral, inventory } from "./event.js"
- import { NonNegativeInt, PositiveInt, RelativePath } from "./schema.js"
- const Changed = ephemeral({
- type: "filesystem.changed",
- schema: {
- file: Schema.String,
- event: Schema.Literals(["add", "change", "unlink"]),
- },
- })
- export const Event = { Changed, Definitions: inventory(Changed) }
- export interface Entry extends Schema.Schema.Type<typeof Entry> {}
- export const Entry = Schema.Struct({
- path: RelativePath,
- type: Schema.Literals(["file", "directory"]),
- }).annotate({ identifier: "FileSystem.Entry" })
- export interface Submatch extends Schema.Schema.Type<typeof Submatch> {}
- export const Submatch = Schema.Struct({
- text: Schema.String,
- start: NonNegativeInt,
- end: NonNegativeInt,
- }).annotate({ identifier: "FileSystem.Submatch" })
- export interface Match extends Schema.Schema.Type<typeof Match> {}
- export const Match = Schema.Struct({
- entry: Entry,
- line: PositiveInt,
- offset: NonNegativeInt,
- text: Schema.String,
- submatches: Schema.Array(Submatch),
- }).annotate({ identifier: "FileSystem.Match" })
- export class FindInput extends Schema.Class<FindInput>("FileSystem.FindInput")({
- query: Schema.String,
- type: Schema.Literals(["file", "directory"]).pipe(optional),
- limit: PositiveInt.pipe(optional),
- }) {}
|