diff --git a/bun.lock b/bun.lock index 21253c491..db6a170d2 100644 --- a/bun.lock +++ b/bun.lock @@ -225,6 +225,7 @@ "@npmcli/arborist": "9.4.0", "@npmcli/config": "10.8.1", "@opencode-ai/effect-drizzle-sqlite": "workspace:*", + "@opencode-ai/effect-sqlite-node": "workspace:*", "@openrouter/ai-sdk-provider": "2.8.1", "@opentelemetry/api": "1.9.0", "@opentelemetry/context-async-hooks": "2.6.1", @@ -325,6 +326,18 @@ "@typescript/native-preview": "catalog:", }, }, + "packages/effect-sqlite-node": { + "name": "@opencode-ai/effect-sqlite-node", + "version": "1.15.10", + "dependencies": { + "effect": "catalog:", + }, + "devDependencies": { + "@tsconfig/bun": "catalog:", + "@types/node": "catalog:", + "@typescript/native-preview": "catalog:", + }, + }, "packages/enterprise": { "name": "@opencode-ai/enterprise", "version": "1.15.10", @@ -532,7 +545,6 @@ "@types/which": "3.0.4", "@types/yargs": "17.0.33", "@typescript/native-preview": "catalog:", - "drizzle-kit": "catalog:", "drizzle-orm": "catalog:", "prettier": "3.6.2", "typescript": "catalog:", @@ -1574,6 +1586,8 @@ "@opencode-ai/effect-drizzle-sqlite": ["@opencode-ai/effect-drizzle-sqlite@workspace:packages/effect-drizzle-sqlite"], + "@opencode-ai/effect-sqlite-node": ["@opencode-ai/effect-sqlite-node@workspace:packages/effect-sqlite-node"], + "@opencode-ai/enterprise": ["@opencode-ai/enterprise@workspace:packages/enterprise"], "@opencode-ai/function": ["@opencode-ai/function@workspace:packages/function"], diff --git a/packages/core/package.json b/packages/core/package.json index d8f771de6..9a13ea50a 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -62,6 +62,7 @@ "@npmcli/arborist": "9.4.0", "@npmcli/config": "10.8.1", "@opencode-ai/effect-drizzle-sqlite": "workspace:*", + "@opencode-ai/effect-sqlite-node": "workspace:*", "@opentelemetry/api": "1.9.0", "@opentelemetry/context-async-hooks": "2.6.1", "@opentelemetry/exporter-trace-otlp-http": "0.214.0", diff --git a/packages/core/src/database/sqlite.node.ts b/packages/core/src/database/sqlite.node.ts index acfcbda35..150ed6c94 100644 --- a/packages/core/src/database/sqlite.node.ts +++ b/packages/core/src/database/sqlite.node.ts @@ -1,3 +1,3 @@ -import { NodeSqliteClient } from "@opencode-ai/effect-drizzle-sqlite/node-sqlite" +import { NodeSqliteClient } from "@opencode-ai/effect-sqlite-node" export const layer = NodeSqliteClient.layer diff --git a/packages/effect-drizzle-sqlite/package.json b/packages/effect-drizzle-sqlite/package.json index 35a5a4cac..0fcba7216 100644 --- a/packages/effect-drizzle-sqlite/package.json +++ b/packages/effect-drizzle-sqlite/package.json @@ -14,7 +14,6 @@ ".": "./src/index.ts", "./effect-sqlite": "./src/effect-sqlite/index.ts", "./effect-sqlite/migrator": "./src/effect-sqlite/migrator.ts", - "./node-sqlite": "./src/node-sqlite/index.ts", "./sqlite-core/effect": "./src/sqlite-core/effect/index.ts" }, "devDependencies": { diff --git a/packages/effect-sqlite-node/package.json b/packages/effect-sqlite-node/package.json new file mode 100644 index 000000000..74671bb5b --- /dev/null +++ b/packages/effect-sqlite-node/package.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json.schemastore.org/package.json", + "version": "1.15.10", + "name": "@opencode-ai/effect-sqlite-node", + "type": "module", + "license": "MIT", + "private": true, + "scripts": { + "typecheck": "tsgo --noEmit" + }, + "exports": { + ".": "./src/index.ts" + }, + "devDependencies": { + "@tsconfig/bun": "catalog:", + "@types/node": "catalog:", + "@typescript/native-preview": "catalog:" + }, + "dependencies": { + "effect": "catalog:" + } +} diff --git a/packages/effect-drizzle-sqlite/src/node-sqlite/index.ts b/packages/effect-sqlite-node/src/index.ts similarity index 87% rename from packages/effect-drizzle-sqlite/src/node-sqlite/index.ts rename to packages/effect-sqlite-node/src/index.ts index 237d20088..8720d88cf 100644 --- a/packages/effect-drizzle-sqlite/src/node-sqlite/index.ts +++ b/packages/effect-sqlite-node/src/index.ts @@ -17,8 +17,8 @@ import * as Statement from "effect/unstable/sql/Statement" const ATTR_DB_SYSTEM_NAME = "db.system.name" -export const TypeId: TypeId = "~@opencode-ai/effect-drizzle-sqlite/NodeSqliteClient" -export type TypeId = "~@opencode-ai/effect-drizzle-sqlite/NodeSqliteClient" +export const TypeId: TypeId = "~@opencode-ai/effect-sqlite-node/NodeSqliteClient" +export type TypeId = "~@opencode-ai/effect-sqlite-node/NodeSqliteClient" export interface SqliteClient extends Client.SqlClient { readonly [TypeId]: TypeId @@ -27,7 +27,7 @@ export interface SqliteClient extends Client.SqlClient { readonly updateValues: never } -export const SqliteClient = Context.Service("@opencode-ai/effect-drizzle-sqlite/NodeSqliteClient") +export const SqliteClient = Context.Service("@opencode-ai/effect-sqlite-node/NodeSqliteClient") export interface SqliteClientConfig { readonly filename: string @@ -76,7 +76,11 @@ export const make = ( try { return Effect.succeed(statement.all(...(params as SQLInputValue[])) as Array>) } catch (cause) { - return Effect.fail(new SqlError({ reason: classifySqliteError(cause, { message: "Failed to execute statement", operation: "execute" }) })) + return Effect.fail( + new SqlError({ + reason: classifySqliteError(cause, { message: "Failed to execute statement", operation: "execute" }), + }), + ) } }) @@ -90,7 +94,11 @@ export const make = ( statement.all(...(params as SQLInputValue[])) as unknown as ReadonlyArray>, ) } catch (cause) { - return Effect.fail(new SqlError({ reason: classifySqliteError(cause, { message: "Failed to execute statement", operation: "execute" }) })) + return Effect.fail( + new SqlError({ + reason: classifySqliteError(cause, { message: "Failed to execute statement", operation: "execute" }), + }), + ) } }) @@ -114,7 +122,9 @@ export const make = ( Effect.try({ try: () => db.loadExtension(path), catch: (cause) => - new SqlError({ reason: classifySqliteError(cause, { message: "Failed to load extension", operation: "loadExtension" }) }), + new SqlError({ + reason: classifySqliteError(cause, { message: "Failed to load extension", operation: "loadExtension" }), + }), }), }) }) diff --git a/packages/effect-sqlite-node/tsconfig.json b/packages/effect-sqlite-node/tsconfig.json new file mode 100644 index 000000000..2bc480ffb --- /dev/null +++ b/packages/effect-sqlite-node/tsconfig.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "@tsconfig/bun/tsconfig.json", + "compilerOptions": { + "lib": ["ESNext", "DOM", "DOM.Iterable"], + "noUncheckedIndexedAccess": false, + "plugins": [ + { + "name": "@effect/language-service", + "transform": "@effect/language-service/transform", + "namespaceImportPackages": ["effect", "@effect/*"] + } + ] + } +}