@effect/sql-sqlite-bun 4.0.0-beta.5 → 4.0.0-beta.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,8 @@
1
1
  import * as Config from "effect/Config";
2
+ import * as Context from "effect/Context";
2
3
  import * as Effect from "effect/Effect";
3
4
  import * as Layer from "effect/Layer";
4
5
  import * as Scope from "effect/Scope";
5
- import * as ServiceMap from "effect/ServiceMap";
6
6
  import * as Reactivity from "effect/unstable/reactivity/Reactivity";
7
7
  import * as Client from "effect/unstable/sql/SqlClient";
8
8
  import { SqlError } from "effect/unstable/sql/SqlError";
@@ -32,7 +32,7 @@ export interface SqliteClient extends Client.SqlClient {
32
32
  * @category tags
33
33
  * @since 1.0.0
34
34
  */
35
- export declare const SqliteClient: ServiceMap.Service<SqliteClient, SqliteClient>;
35
+ export declare const SqliteClient: Context.Service<SqliteClient, SqliteClient>;
36
36
  /**
37
37
  * @category models
38
38
  * @since 1.0.0
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteClient.d.ts","sourceRoot":"","sources":["../src/SqliteClient.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAE/C,OAAO,KAAK,UAAU,MAAM,uCAAuC,CAAA;AACnE,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAKvD;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAA+C,CAAA;AAEpE;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,sCAAsC,CAAA;AAE3D;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,MAAM,CAAC,SAAS;IACpD,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IACpD,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAEvE,8BAA8B;IAC9B,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAA;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,gDAAoE,CAAA;AAE7F;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAEzC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAE7D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;IACrE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;CACrE;AAOD;;;GAGG;AACH,eAAO,MAAM,IAAI,GACf,SAAS,kBAAkB,KAC1B,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,CAqHrE,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,WAAW,GACtB,QAAQ,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,KACtC,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAUzB,CAAA;AAEzC;;;GAGG;AACH,eAAO,MAAM,KAAK,GAChB,QAAQ,kBAAkB,KACzB,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,CAML,CAAA"}
1
+ {"version":3,"file":"SqliteClient.d.ts","sourceRoot":"","sources":["../src/SqliteClient.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,KAAK,UAAU,MAAM,uCAAuC,CAAA;AACnE,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAEvD,OAAO,EAAuB,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAQ5E;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAA+C,CAAA;AAEpE;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,sCAAsC,CAAA;AAE3D;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,MAAM,CAAC,SAAS;IACpD,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IACpD,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAEvE,8BAA8B;IAC9B,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAA;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,6CAAiE,CAAA;AAE1F;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAEzC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAE7D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;IACrE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;CACrE;AAOD;;;GAGG;AACH,eAAO,MAAM,IAAI,GACf,SAAS,kBAAkB,KAC1B,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,CAsHrE,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,WAAW,GACtB,QAAQ,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,KACtC,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAUzB,CAAA;AAEzC;;;GAGG;AACH,eAAO,MAAM,KAAK,GAChB,QAAQ,kBAAkB,KACzB,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,CAML,CAAA"}
@@ -3,18 +3,23 @@
3
3
  */
4
4
  import { Database } from "bun:sqlite";
5
5
  import * as Config from "effect/Config";
6
+ import * as Context from "effect/Context";
6
7
  import * as Effect from "effect/Effect";
7
8
  import * as Fiber from "effect/Fiber";
8
9
  import { identity } from "effect/Function";
9
10
  import * as Layer from "effect/Layer";
10
11
  import * as Scope from "effect/Scope";
11
- import * as ServiceMap from "effect/ServiceMap";
12
+ import * as Semaphore from "effect/Semaphore";
12
13
  import * as Stream from "effect/Stream";
13
14
  import * as Reactivity from "effect/unstable/reactivity/Reactivity";
14
15
  import * as Client from "effect/unstable/sql/SqlClient";
15
- import { SqlError } from "effect/unstable/sql/SqlError";
16
+ import { classifySqliteError, SqlError } from "effect/unstable/sql/SqlError";
16
17
  import * as Statement from "effect/unstable/sql/Statement";
17
18
  const ATTR_DB_SYSTEM_NAME = "db.system.name";
19
+ const classifyError = (cause, message, operation) => classifySqliteError(cause, {
20
+ message,
21
+ operation
22
+ });
18
23
  /**
19
24
  * @category type ids
20
25
  * @since 1.0.0
@@ -24,7 +29,7 @@ export const TypeId = "~@effect/sql-sqlite-bun/SqliteClient";
24
29
  * @category tags
25
30
  * @since 1.0.0
26
31
  */
27
- export const SqliteClient = /*#__PURE__*/ServiceMap.Service("@effect/sql-sqlite-bun/Client");
32
+ export const SqliteClient = /*#__PURE__*/Context.Service("@effect/sql-sqlite-bun/Client");
28
33
  /**
29
34
  * @category constructor
30
35
  * @since 1.0.0
@@ -44,29 +49,27 @@ export const make = options => Effect.gen(function* () {
44
49
  }
45
50
  const run = (sql, params = []) => Effect.withFiber(fiber => {
46
51
  const statement = db.query(sql);
47
- const useSafeIntegers = ServiceMap.get(fiber.services, Client.SafeIntegers);
52
+ const useSafeIntegers = Context.get(fiber.context, Client.SafeIntegers);
48
53
  // @ts-ignore bun-types missing safeIntegers method, fixed in https://github.com/oven-sh/bun/pull/26627
49
54
  statement.safeIntegers(useSafeIntegers);
50
55
  try {
51
56
  return Effect.succeed(statement.all(...params) ?? []);
52
57
  } catch (cause) {
53
58
  return Effect.fail(new SqlError({
54
- cause,
55
- message: "Failed to execute statement"
59
+ reason: classifyError(cause, "Failed to execute statement", "execute")
56
60
  }));
57
61
  }
58
62
  });
59
63
  const runValues = (sql, params = []) => Effect.withFiber(fiber => {
60
64
  const statement = db.query(sql);
61
- const useSafeIntegers = ServiceMap.get(fiber.services, Client.SafeIntegers);
65
+ const useSafeIntegers = Context.get(fiber.context, Client.SafeIntegers);
62
66
  // @ts-ignore bun-types missing safeIntegers method, fixed in https://github.com/oven-sh/bun/pull/26627
63
67
  statement.safeIntegers(useSafeIntegers);
64
68
  try {
65
69
  return Effect.succeed(statement.values(...params) ?? []);
66
70
  } catch (cause) {
67
71
  return Effect.fail(new SqlError({
68
- cause,
69
- message: "Failed to execute statement"
72
+ reason: classifyError(cause, "Failed to execute statement", "execute")
70
73
  }));
71
74
  }
72
75
  });
@@ -89,25 +92,23 @@ export const make = options => Effect.gen(function* () {
89
92
  export: Effect.try({
90
93
  try: () => db.serialize(),
91
94
  catch: cause => new SqlError({
92
- cause,
93
- message: "Failed to export database"
95
+ reason: classifyError(cause, "Failed to export database", "export")
94
96
  })
95
97
  }),
96
98
  loadExtension: path => Effect.try({
97
99
  try: () => db.loadExtension(path),
98
100
  catch: cause => new SqlError({
99
- cause,
100
- message: "Failed to load extension"
101
+ reason: classifyError(cause, "Failed to load extension", "loadExtension")
101
102
  })
102
103
  })
103
104
  });
104
105
  });
105
- const semaphore = yield* Effect.makeSemaphore(1);
106
+ const semaphore = yield* Semaphore.make(1);
106
107
  const connection = yield* makeConnection;
107
108
  const acquirer = semaphore.withPermits(1)(Effect.succeed(connection));
108
109
  const transactionAcquirer = Effect.uninterruptibleMask(restore => {
109
110
  const fiber = Fiber.getCurrent();
110
- const scope = ServiceMap.getUnsafe(fiber.services, Scope.Scope);
111
+ const scope = Context.getUnsafe(fiber.context, Scope.Scope);
111
112
  return Effect.as(Effect.tap(restore(semaphore.take(1)), () => Scope.addFinalizer(scope, semaphore.release(1))), connection);
112
113
  });
113
114
  return Object.assign(yield* Client.make({
@@ -127,10 +128,10 @@ export const make = options => Effect.gen(function* () {
127
128
  * @category layers
128
129
  * @since 1.0.0
129
130
  */
130
- export const layerConfig = config => Layer.effectServices(Config.unwrap(config).asEffect().pipe(Effect.flatMap(make), Effect.map(client => ServiceMap.make(SqliteClient, client).pipe(ServiceMap.add(Client.SqlClient, client))))).pipe(Layer.provide(Reactivity.layer));
131
+ export const layerConfig = config => Layer.effectContext(Config.unwrap(config).asEffect().pipe(Effect.flatMap(make), Effect.map(client => Context.make(SqliteClient, client).pipe(Context.add(Client.SqlClient, client))))).pipe(Layer.provide(Reactivity.layer));
131
132
  /**
132
133
  * @category layers
133
134
  * @since 1.0.0
134
135
  */
135
- export const layer = config => Layer.effectServices(Effect.map(make(config), client => ServiceMap.make(SqliteClient, client).pipe(ServiceMap.add(Client.SqlClient, client)))).pipe(Layer.provide(Reactivity.layer));
136
+ export const layer = config => Layer.effectContext(Effect.map(make(config), client => Context.make(SqliteClient, client).pipe(Context.add(Client.SqlClient, client)))).pipe(Layer.provide(Reactivity.layer));
136
137
  //# sourceMappingURL=SqliteClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteClient.js","names":["Database","Config","Effect","Fiber","identity","Layer","Scope","ServiceMap","Stream","Reactivity","Client","SqlError","Statement","ATTR_DB_SYSTEM_NAME","TypeId","SqliteClient","Service","make","options","gen","compiler","makeCompilerSqlite","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","undefined","makeConnection","db","filename","readonly","readwrite","create","addFinalizer","sync","close","disableWAL","run","sql","params","withFiber","fiber","statement","query","useSafeIntegers","get","services","SafeIntegers","safeIntegers","succeed","all","cause","fail","message","runValues","values","execute","map","executeRaw","executeValues","executeUnprepared","executeStream","_sql","_params","die","export","try","serialize","catch","loadExtension","path","semaphore","makeSemaphore","connection","acquirer","withPermits","transactionAcquirer","uninterruptibleMask","restore","getCurrent","scope","getUnsafe","as","tap","take","release","Object","assign","spanAttributes","entries","config","flatMap","_","layerConfig","effectServices","unwrap","asEffect","pipe","client","add","SqlClient","provide","layer"],"sources":["../src/SqliteClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SqliteClient.js","names":["Database","Config","Context","Effect","Fiber","identity","Layer","Scope","Semaphore","Stream","Reactivity","Client","classifySqliteError","SqlError","Statement","ATTR_DB_SYSTEM_NAME","classifyError","cause","message","operation","TypeId","SqliteClient","Service","make","options","gen","compiler","makeCompilerSqlite","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","undefined","makeConnection","db","filename","readonly","readwrite","create","addFinalizer","sync","close","disableWAL","run","sql","params","withFiber","fiber","statement","query","useSafeIntegers","get","context","SafeIntegers","safeIntegers","succeed","all","fail","reason","runValues","values","execute","map","executeRaw","executeValues","executeUnprepared","executeStream","_sql","_params","die","export","try","serialize","catch","loadExtension","path","semaphore","connection","acquirer","withPermits","transactionAcquirer","uninterruptibleMask","restore","getCurrent","scope","getUnsafe","as","tap","take","release","Object","assign","spanAttributes","entries","config","flatMap","_","layerConfig","effectContext","unwrap","asEffect","pipe","client","add","SqlClient","provide","layer"],"sources":["../src/SqliteClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/sql-sqlite-bun",
3
- "version": "4.0.0-beta.5",
3
+ "version": "4.0.0-beta.51",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "A SQLite toolkit for Effect",
@@ -43,12 +43,12 @@
43
43
  "provenance": true
44
44
  },
45
45
  "devDependencies": {
46
- "@types/bun": "^1.3.8",
47
- "@effect/platform-bun": "^4.0.0-beta.5",
48
- "effect": "^4.0.0-beta.5"
46
+ "@types/bun": "^1.3.12",
47
+ "@effect/platform-bun": "^4.0.0-beta.51",
48
+ "effect": "^4.0.0-beta.51"
49
49
  },
50
50
  "peerDependencies": {
51
- "effect": "^4.0.0-beta.5"
51
+ "effect": "^4.0.0-beta.51"
52
52
  },
53
53
  "scripts": {
54
54
  "codegen": "effect-utils codegen",
@@ -3,21 +3,25 @@
3
3
  */
4
4
  import { Database } from "bun:sqlite"
5
5
  import * as Config from "effect/Config"
6
+ import * as Context from "effect/Context"
6
7
  import * as Effect from "effect/Effect"
7
8
  import * as Fiber from "effect/Fiber"
8
9
  import { identity } from "effect/Function"
9
10
  import * as Layer from "effect/Layer"
10
11
  import * as Scope from "effect/Scope"
11
- import * as ServiceMap from "effect/ServiceMap"
12
+ import * as Semaphore from "effect/Semaphore"
12
13
  import * as Stream from "effect/Stream"
13
14
  import * as Reactivity from "effect/unstable/reactivity/Reactivity"
14
15
  import * as Client from "effect/unstable/sql/SqlClient"
15
16
  import type { Connection } from "effect/unstable/sql/SqlConnection"
16
- import { SqlError } from "effect/unstable/sql/SqlError"
17
+ import { classifySqliteError, SqlError } from "effect/unstable/sql/SqlError"
17
18
  import * as Statement from "effect/unstable/sql/Statement"
18
19
 
19
20
  const ATTR_DB_SYSTEM_NAME = "db.system.name"
20
21
 
22
+ const classifyError = (cause: unknown, message: string, operation: string) =>
23
+ classifySqliteError(cause, { message, operation })
24
+
21
25
  /**
22
26
  * @category type ids
23
27
  * @since 1.0.0
@@ -48,7 +52,7 @@ export interface SqliteClient extends Client.SqlClient {
48
52
  * @category tags
49
53
  * @since 1.0.0
50
54
  */
51
- export const SqliteClient = ServiceMap.Service<SqliteClient>("@effect/sql-sqlite-bun/Client")
55
+ export const SqliteClient = Context.Service<SqliteClient>("@effect/sql-sqlite-bun/Client")
52
56
 
53
57
  /**
54
58
  * @category models
@@ -105,13 +109,13 @@ export const make = (
105
109
  ) =>
106
110
  Effect.withFiber<Array<any>, SqlError>((fiber) => {
107
111
  const statement = db.query(sql)
108
- const useSafeIntegers = ServiceMap.get(fiber.services, Client.SafeIntegers)
112
+ const useSafeIntegers = Context.get(fiber.context, Client.SafeIntegers)
109
113
  // @ts-ignore bun-types missing safeIntegers method, fixed in https://github.com/oven-sh/bun/pull/26627
110
114
  statement.safeIntegers(useSafeIntegers)
111
115
  try {
112
116
  return Effect.succeed((statement.all(...(params as any)) ?? []) as Array<any>)
113
117
  } catch (cause) {
114
- return Effect.fail(new SqlError({ cause, message: "Failed to execute statement" }))
118
+ return Effect.fail(new SqlError({ reason: classifyError(cause, "Failed to execute statement", "execute") }))
115
119
  }
116
120
  })
117
121
 
@@ -121,13 +125,13 @@ export const make = (
121
125
  ) =>
122
126
  Effect.withFiber<Array<any>, SqlError>((fiber) => {
123
127
  const statement = db.query(sql)
124
- const useSafeIntegers = ServiceMap.get(fiber.services, Client.SafeIntegers)
128
+ const useSafeIntegers = Context.get(fiber.context, Client.SafeIntegers)
125
129
  // @ts-ignore bun-types missing safeIntegers method, fixed in https://github.com/oven-sh/bun/pull/26627
126
130
  statement.safeIntegers(useSafeIntegers)
127
131
  try {
128
132
  return Effect.succeed((statement.values(...(params as any)) ?? []) as Array<any>)
129
133
  } catch (cause) {
130
- return Effect.fail(new SqlError({ cause, message: "Failed to execute statement" }))
134
+ return Effect.fail(new SqlError({ reason: classifyError(cause, "Failed to execute statement", "execute") }))
131
135
  }
132
136
  })
133
137
 
@@ -151,23 +155,24 @@ export const make = (
151
155
  },
152
156
  export: Effect.try({
153
157
  try: () => db.serialize(),
154
- catch: (cause) => new SqlError({ cause, message: "Failed to export database" })
158
+ catch: (cause) => new SqlError({ reason: classifyError(cause, "Failed to export database", "export") })
155
159
  }),
156
160
  loadExtension: (path) =>
157
161
  Effect.try({
158
162
  try: () => db.loadExtension(path),
159
- catch: (cause) => new SqlError({ cause, message: "Failed to load extension" })
163
+ catch: (cause) =>
164
+ new SqlError({ reason: classifyError(cause, "Failed to load extension", "loadExtension") })
160
165
  })
161
166
  })
162
167
  })
163
168
 
164
- const semaphore = yield* Effect.makeSemaphore(1)
169
+ const semaphore = yield* Semaphore.make(1)
165
170
  const connection = yield* makeConnection
166
171
 
167
172
  const acquirer = semaphore.withPermits(1)(Effect.succeed(connection))
168
173
  const transactionAcquirer = Effect.uninterruptibleMask((restore) => {
169
174
  const fiber = Fiber.getCurrent()!
170
- const scope = ServiceMap.getUnsafe(fiber.services, Scope.Scope)
175
+ const scope = Context.getUnsafe(fiber.context, Scope.Scope)
171
176
  return Effect.as(
172
177
  Effect.tap(
173
178
  restore(semaphore.take(1)),
@@ -204,12 +209,12 @@ export const make = (
204
209
  export const layerConfig = (
205
210
  config: Config.Wrap<SqliteClientConfig>
206
211
  ): Layer.Layer<SqliteClient | Client.SqlClient, Config.ConfigError> =>
207
- Layer.effectServices(
212
+ Layer.effectContext(
208
213
  Config.unwrap(config).asEffect().pipe(
209
214
  Effect.flatMap(make),
210
215
  Effect.map((client) =>
211
- ServiceMap.make(SqliteClient, client).pipe(
212
- ServiceMap.add(Client.SqlClient, client)
216
+ Context.make(SqliteClient, client).pipe(
217
+ Context.add(Client.SqlClient, client)
213
218
  )
214
219
  )
215
220
  )
@@ -222,9 +227,9 @@ export const layerConfig = (
222
227
  export const layer = (
223
228
  config: SqliteClientConfig
224
229
  ): Layer.Layer<SqliteClient | Client.SqlClient> =>
225
- Layer.effectServices(
230
+ Layer.effectContext(
226
231
  Effect.map(make(config), (client) =>
227
- ServiceMap.make(SqliteClient, client).pipe(
228
- ServiceMap.add(Client.SqlClient, client)
232
+ Context.make(SqliteClient, client).pipe(
233
+ Context.add(Client.SqlClient, client)
229
234
  ))
230
235
  ).pipe(Layer.provide(Reactivity.layer))