MCPcopy Create free account
hub / github.com/UsefulSoftwareCo/executor / makeCoreDb

Function makeCoreDb

packages/core/sdk/src/executor.ts:953–1006  ·  view source on GitHub ↗
(fuma: ReturnType<typeof makeFumaClient>)

Source from the content-addressed store, hash-verified

951const asLooseStorageDb = (db: unknown): LooseStorageDb => db as LooseStorageDb;
952
953const makeCoreDb = (fuma: ReturnType<typeof makeFumaClient>) => ({
954 count: <TName extends CoreTableName>(
955 tableName: TName,
956 options?: { readonly where?: CoreWhere },
957 ): Effect.Effect<number, StorageFailure> =>
958 fuma.use(`${tableName}.count`, (db) => asLooseStorageDb(db).count(tableName, options)),
959 create: <TName extends CoreTableName>(
960 tableName: TName,
961 row: Record<string, unknown>,
962 ): Effect.Effect<CoreRow<TName>, StorageFailure> =>
963 fuma.use(`${tableName}.create`, (db) =>
964 asLooseStorageDb(db).create(tableName, row),
965 ) as Effect.Effect<CoreRow<TName>, StorageFailure>,
966 createMany: <TName extends CoreTableName>(
967 tableName: TName,
968 rows: readonly Record<string, unknown>[],
969 ): Effect.Effect<void, StorageFailure> =>
970 rows.length === 0
971 ? Effect.void
972 : fuma
973 .use(`${tableName}.createMany`, (db) => asLooseStorageDb(db).createMany(tableName, rows))
974 .pipe(Effect.asVoid),
975 deleteMany: <TName extends CoreTableName>(
976 tableName: TName,
977 options: { readonly where?: CoreWhere } = {},
978 ): Effect.Effect<void, StorageFailure> =>
979 fuma.use(`${tableName}.deleteMany`, (db) =>
980 asLooseStorageDb(db).deleteMany(tableName, options),
981 ),
982 findFirst: <TName extends CoreTableName, const TOptions extends CoreFindFirstOptions<TName>>(
983 tableName: TName,
984 options: TOptions,
985 ): Effect.Effect<CoreProjectedRow<TName, TOptions["select"]> | null, StorageFailure> =>
986 fuma.use(`${tableName}.findFirst`, (db) =>
987 asLooseStorageDb(db).findFirst(tableName, options),
988 ) as Effect.Effect<CoreProjectedRow<TName, TOptions["select"]> | null, StorageFailure>,
989 findMany: <TName extends CoreTableName, const TOptions extends CoreFindManyOptions<TName>>(
990 tableName: TName,
991 options: TOptions = {} as TOptions,
992 ): Effect.Effect<readonly CoreProjectedRow<TName, TOptions["select"]>[], StorageFailure> =>
993 fuma.use(`${tableName}.findMany`, (db) =>
994 asLooseStorageDb(db).findMany(tableName, options),
995 ) as Effect.Effect<readonly CoreProjectedRow<TName, TOptions["select"]>[], StorageFailure>,
996 updateMany: <TName extends CoreTableName>(
997 tableName: TName,
998 options: {
999 readonly where?: CoreWhere;
1000 readonly set: Record<string, unknown>;
1001 },
1002 ): Effect.Effect<void, StorageFailure> =>
1003 fuma.use(`${tableName}.updateMany`, (db) =>
1004 asLooseStorageDb(db).updateMany(tableName, options),
1005 ),
1006});
1007
1008type CoreDb = ReturnType<typeof makeCoreDb>;
1009

Callers 2

createExecutorFunction · 0.85
makeAdminFunction · 0.85

Calls 2

asLooseStorageDbFunction · 0.85
countMethod · 0.80

Tested by

no test coverage detected