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

Function makeCoreDb

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

Source from the content-addressed store, hash-verified

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

Callers 2

createExecutorFunction · 0.85
makeAdminFunction · 0.85

Calls 2

asLooseStorageDbFunction · 0.85
countMethod · 0.80

Tested by

no test coverage detected