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

Function makeCoreDb

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

Source from the content-addressed store, hash-verified

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

Callers 2

createExecutorFunction · 0.85
makeAdminFunction · 0.85

Calls 2

asLooseStorageDbFunction · 0.85
countMethod · 0.80

Tested by

no test coverage detected