Compare commits

..

1 Commits

Author SHA1 Message Date
Kit Langton
9d3560c1b4 refactor(file): effectify FileService as scoped service
Convert File namespace functions (init, status, read, list, search) to
FileService class extending ServiceMap.Service with Effect.fn methods.
File cache uses lazy initialization via init() matching original
Instance.state semantics. Legacy promise facade preserved.
2026-03-15 21:56:42 -04:00
2 changed files with 632 additions and 557 deletions

View File

@@ -8,6 +8,7 @@ import { FileWatcherService } from "@/file/watcher"
import { VcsService } from "@/project/vcs"
import { FileTimeService } from "@/file/time"
import { FormatService } from "@/format"
import { FileService } from "@/file"
import { Instance } from "@/project/instance"
export { InstanceContext } from "./instance-context"
@@ -20,6 +21,7 @@ export type InstanceServices =
| VcsService
| FileTimeService
| FormatService
| FileService
function lookup(directory: string) {
const project = Instance.project
@@ -32,6 +34,7 @@ function lookup(directory: string) {
Layer.fresh(VcsService.layer),
Layer.fresh(FileTimeService.layer).pipe(Layer.orDie),
Layer.fresh(FormatService.layer),
Layer.fresh(FileService.layer),
).pipe(Layer.provide(ctx))
}

File diff suppressed because it is too large Load Diff