Files
opencode/packages/core/test/lib/project.ts
T
2026-09-29 06:55:27 +00:00

26 lines
907 B
TypeScript

import { Database } from "@opencode/core/database/database"
import { Project } from "@opencode/core/project"
import { upsertProject } from "@opencode/core/project/sql"
import { makeGlobalNode } from "@opencode/util/effect/app-node"
import { Effect, Layer } from "effect"
export const globalProjectNode = makeGlobalNode({
service: Project.Service,
layer: Layer.effect(
Project.Service,
Effect.gen(function* () {
const database = yield* Database.Service
return Project.Service.of({
list: () => Effect.succeed([]),
update: () => Effect.die("not implemented"),
activate: () => Effect.void,
resolve: (directory) => {
const project = { id: Project.ID.global, directory, canonical: directory }
return upsertProject(database.db, project).pipe(Effect.orDie, Effect.as(project))
},
})
}),
),
deps: [Database.node],
})