1import * as Layer from "effect/Layer";
2import {
3 makeFirestoreDatabaseBinding,
4 readWriteDatabaseIam,
5} from "./DatabaseHttp.ts";
6import { ReadWriteDatabase } from "./ReadWriteDatabase.ts";
7
8/**
9 * HTTP implementation of {@link ReadWriteDatabase} over the Firestore REST API.
10 *
11 * @layer
12 * @provides GCP.Firestore.ReadWriteDatabase
13 * @category Firestore
14 */
15export const ReadWriteDatabaseHttp = Layer.effect(
16 ReadWriteDatabase,
17 makeFirestoreDatabaseBinding({
18 tag: "GCP.Firestore.ReadWriteDatabase",
19 iam: readWriteDatabaseIam,
20 makeClient: (helpers, name) => ({
21 ...helpers.makeRead(name),
22 ...helpers.makeWrite(name),
23 }),
24 }),
25);