bradb 1.2.0 → 1.2.1

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.
@@ -10,7 +10,7 @@ function findAllRelational(map, q, config) {
10
10
  const conditions = (0, utils_1.getConditions)(options, map);
11
11
  const items = q.findMany({
12
12
  ...config,
13
- where: (0, drizzle_orm_1.and)(...conditions),
13
+ where: (table, { isNull }) => (0, drizzle_orm_1.and)(isNull(table.deletedAt), ...conditions),
14
14
  limit: limit,
15
15
  offset: offset
16
16
  });
@@ -22,7 +22,7 @@ function findOneRelational(q, config) {
22
22
  const result = await q.findFirst({
23
23
  ...config,
24
24
  // TODO: Validate table contains 'id' field
25
- where: (table, { eq }) => eq(table.id, id),
25
+ where: (table, { eq, isNull }) => (0, drizzle_orm_1.and)(isNull(table.deletedAt), eq(table.id, id))
26
26
  });
27
27
  if (!result) {
28
28
  // TODO: proper name
@@ -17,15 +17,7 @@ export declare class ServiceBuilder<T extends Table, TSchema extends Record<stri
17
17
  }>;
18
18
  findAll<S extends PgSelect<T["_"]["name"]>>(select: S): (options: FindAllOptions<T>) => Promise<({ [Key in keyof T["_"]["columns"] & string as Key]: T["_"]["columns"][Key]["_"]["notNull"] extends true ? T["_"]["columns"][Key]["_"]["data"] : T["_"]["columns"][Key]["_"]["data"] | null; } extends infer T_1 ? { [K in keyof T_1]: T_1[K]; } : never)[]>;
19
19
  create(): (data: InferInsertModel<T>) => Promise<{ [Key in keyof T["_"]["columns"] & string as Key]: T["_"]["columns"][Key]["_"]["notNull"] extends true ? T["_"]["columns"][Key]["_"]["data"] : T["_"]["columns"][Key]["_"]["data"] | null; } extends infer T_1 ? { [K in keyof T_1]: T_1[K]; } : never>;
20
- update(): (id: PrimaryKeyType<T>, data: Partial<InferInsertModel<T>>) => Promise<(Record<T["_"]["name"], "not-null"> extends infer T_1 ? T_1 extends Record<T["_"]["name"], "not-null"> ? T_1 extends T_1 ? import("drizzle-orm/query-builders/select.types").GetSelectTableSelection<T> extends infer T_2 ? { [Key in keyof T_2]: T_2[Key] extends infer TField ? TField extends import("drizzle-orm").Table<import("drizzle-orm").TableConfig<import("drizzle-orm").Column<any, object, object>>> ? TField["_"]["name"] extends keyof TNullability ? import("drizzle-orm/query-builders/select.types").ApplyNullability<(TField["_"]["columns"] extends infer T_4 ? { [Key_2 in keyof T_4]: import("drizzle-orm/query-builders/select.types").SelectResultField<T_4[Key_2], TDeep>; } : never) extends infer T_3 ? { [K in keyof T_3]: T_3[K]; } : never, TNullability[TField["_"]["name"]]> : never : TField extends import("drizzle-orm").Column<import("drizzle-orm").ColumnBaseConfig<import("drizzle-orm").ColumnDataType, string>, object, object> ? TField["_"]["tableName"] extends keyof TNullability ? import("drizzle-orm/query-builders/select.types").ApplyNullability<import("drizzle-orm/query-builders/select.types").SelectResultField<TField, true>, TNullability[TField["_"]["tableName"]]> : never : TField extends import("drizzle-orm").SQL<unknown> | import("drizzle-orm").SQL.Aliased<unknown> ? import("drizzle-orm/query-builders/select.types").SelectResultField<TField, true> : TField extends Record<string, any> ? TField[keyof TField] extends import("drizzle-orm").SQL<unknown> | import("drizzle-orm").SQL.Aliased<unknown> | import("drizzle-orm").AnyColumn<{
21
- tableName: infer TTableName extends string;
22
- }> ? (((TTableName extends any ? TTableName extends TTableName ? false : true : never) extends false ? false : true) extends infer T_5 ? T_5 extends ((TTableName extends any ? TTableName extends TTableName ? false : true : never) extends false ? false : true) ? T_5 extends true ? false : true : never : never) extends true ? import("drizzle-orm/query-builders/select.types").ApplyNullability<{ [K_1 in keyof { [Key_3 in keyof TField]: import("drizzle-orm/query-builders/select.types").SelectResultField<TField[Key_3], true>; }]: { [Key_3 in keyof TField]: import("drizzle-orm/query-builders/select.types").SelectResultField<TField[Key_3], true>; }[K_1]; }, TNullability[TTableName]> : TNullability extends TNullability ? { [Key_4 in keyof TField]: TField[Key_4] extends infer TField ? TField extends import("drizzle-orm").Table<import("drizzle-orm").TableConfig<import("drizzle-orm").Column<any, object, object>>> ? TField["_"]["name"] extends keyof TNullability ? import("drizzle-orm/query-builders/select.types").ApplyNullability<(TField["_"]["columns"] extends infer T_7 ? { [Key_2 in keyof T_7]: import("drizzle-orm/query-builders/select.types").SelectResultField<T_7[Key_2], TDeep>; } : never) extends infer T_6 ? { [K in keyof T_6]: T_6[K]; } : never, TNullability[TField["_"]["name"]]> : never : TField extends import("drizzle-orm").Column<import("drizzle-orm").ColumnBaseConfig<import("drizzle-orm").ColumnDataType, string>, object, object> ? TField["_"]["tableName"] extends keyof TNullability ? import("drizzle-orm/query-builders/select.types").ApplyNullability<import("drizzle-orm/query-builders/select.types").SelectResultField<TField, true>, TNullability[TField["_"]["tableName"]]> : never : TField extends import("drizzle-orm").SQL<unknown> | import("drizzle-orm").SQL.Aliased<unknown> ? import("drizzle-orm/query-builders/select.types").SelectResultField<TField, true> : TField extends Record<string, any> ? TField[keyof TField] extends import("drizzle-orm").SQL<unknown> | import("drizzle-orm").SQL.Aliased<unknown> | import("drizzle-orm").AnyColumn<{
23
- tableName: infer TTableName extends string;
24
- }> ? (((TTableName extends any ? TTableName extends TTableName ? false : true : never) extends false ? false : true) extends infer T_8 ? T_8 extends ((TTableName extends any ? TTableName extends TTableName ? false : true : never) extends false ? false : true) ? T_8 extends true ? false : true : never : never) extends true ? import("drizzle-orm/query-builders/select.types").ApplyNullability<{ [K_1 in keyof { [Key_3 in keyof TField]: import("drizzle-orm/query-builders/select.types").SelectResultField<TField[Key_3], true>; }]: { [Key_3 in keyof TField]: import("drizzle-orm/query-builders/select.types").SelectResultField<TField[Key_3], true>; }[K_1]; }, TNullability[TTableName]> : TNullability extends TNullability ? /*elided*/ any : never : never : never : never; } : never : never : never : never; } : never : never : never : never) extends infer T_3 ? T_3 extends (Record<T["_"]["name"], "not-null"> extends infer T_4 ? T_4 extends Record<T["_"]["name"], "not-null"> ? T_4 extends T_4 ? import("drizzle-orm/query-builders/select.types").GetSelectTableSelection<T> extends infer T_5 ? { [Key_1 in keyof T_5]: T_5[Key_1] extends infer TField ? TField extends import("drizzle-orm").Table<import("drizzle-orm").TableConfig<import("drizzle-orm").Column<any, object, object>>> ? TField["_"]["name"] extends keyof TNullability ? import("drizzle-orm/query-builders/select.types").ApplyNullability<(TField["_"]["columns"] extends infer T_7 ? { [Key_3 in keyof T_7]: import("drizzle-orm/query-builders/select.types").SelectResultField<T_7[Key_3], TDeep>; } : never) extends infer T_6 ? { [K in keyof T_6]: T_6[K]; } : never, TNullability[TField["_"]["name"]]> : never : TField extends import("drizzle-orm").Column<import("drizzle-orm").ColumnBaseConfig<import("drizzle-orm").ColumnDataType, string>, object, object> ? TField["_"]["tableName"] extends keyof TNullability ? import("drizzle-orm/query-builders/select.types").ApplyNullability<import("drizzle-orm/query-builders/select.types").SelectResultField<TField, true>, TNullability[TField["_"]["tableName"]]> : never : TField extends import("drizzle-orm").SQL<unknown> | import("drizzle-orm").SQL.Aliased<unknown> ? import("drizzle-orm/query-builders/select.types").SelectResultField<TField, true> : TField extends Record<string, any> ? TField[keyof TField] extends import("drizzle-orm").SQL<unknown> | import("drizzle-orm").SQL.Aliased<unknown> | import("drizzle-orm").AnyColumn<{
25
- tableName: infer TTableName extends string;
26
- }> ? (((TTableName extends any ? TTableName extends TTableName ? false : true : never) extends false ? false : true) extends infer T_8 ? T_8 extends ((TTableName extends any ? TTableName extends TTableName ? false : true : never) extends false ? false : true) ? T_8 extends true ? false : true : never : never) extends true ? import("drizzle-orm/query-builders/select.types").ApplyNullability<{ [K_1 in keyof { [Key_4 in keyof TField]: import("drizzle-orm/query-builders/select.types").SelectResultField<TField[Key_4], true>; }]: { [Key_4 in keyof TField]: import("drizzle-orm/query-builders/select.types").SelectResultField<TField[Key_4], true>; }[K_1]; }, TNullability[TTableName]> : TNullability extends TNullability ? { [Key_5 in keyof TField]: TField[Key_5] extends infer TField ? TField extends import("drizzle-orm").Table<import("drizzle-orm").TableConfig<import("drizzle-orm").Column<any, object, object>>> ? TField["_"]["name"] extends keyof TNullability ? import("drizzle-orm/query-builders/select.types").ApplyNullability<(TField["_"]["columns"] extends infer T_10 ? { [Key_3 in keyof T_10]: import("drizzle-orm/query-builders/select.types").SelectResultField<T_10[Key_3], TDeep>; } : never) extends infer T_9 ? { [K in keyof T_9]: T_9[K]; } : never, TNullability[TField["_"]["name"]]> : never : TField extends import("drizzle-orm").Column<import("drizzle-orm").ColumnBaseConfig<import("drizzle-orm").ColumnDataType, string>, object, object> ? TField["_"]["tableName"] extends keyof TNullability ? import("drizzle-orm/query-builders/select.types").ApplyNullability<import("drizzle-orm/query-builders/select.types").SelectResultField<TField, true>, TNullability[TField["_"]["tableName"]]> : never : TField extends import("drizzle-orm").SQL<unknown> | import("drizzle-orm").SQL.Aliased<unknown> ? import("drizzle-orm/query-builders/select.types").SelectResultField<TField, true> : TField extends Record<string, any> ? TField[keyof TField] extends import("drizzle-orm").SQL<unknown> | import("drizzle-orm").SQL.Aliased<unknown> | import("drizzle-orm").AnyColumn<{
27
- tableName: infer TTableName extends string;
28
- }> ? (((TTableName extends any ? TTableName extends TTableName ? false : true : never) extends false ? false : true) extends infer T_11 ? T_11 extends ((TTableName extends any ? TTableName extends TTableName ? false : true : never) extends false ? false : true) ? T_11 extends true ? false : true : never : never) extends true ? import("drizzle-orm/query-builders/select.types").ApplyNullability<{ [K_1 in keyof { [Key_4 in keyof TField]: import("drizzle-orm/query-builders/select.types").SelectResultField<TField[Key_4], true>; }]: { [Key_4 in keyof TField]: import("drizzle-orm/query-builders/select.types").SelectResultField<TField[Key_4], true>; }[K_1]; }, TNullability[TTableName]> : TNullability extends TNullability ? /*elided*/ any : never : never : never : never; } : never : never : never : never; } : never : never : never : never) ? T_3 extends undefined ? import("pg").QueryResult<never> : T_3[] : never : never>;
20
+ update(): (id: PrimaryKeyType<T>, data: Partial<InferInsertModel<T>>) => Promise<{ [Key in keyof T["_"]["columns"] & string as Key]: T["_"]["columns"][Key]["_"]["notNull"] extends true ? T["_"]["columns"][Key]["_"]["data"] : T["_"]["columns"][Key]["_"]["data"] | null; } extends infer T_1 ? { [K in keyof T_1]: T_1[K]; } : never>;
29
21
  softDelete(): (id: PrimaryKeyType<T>) => Promise<void>;
30
22
  hardDelete(): (id: PrimaryKeyType<T>) => Promise<void>;
31
23
  count(): (filters: Filter<T>) => Promise<number>;
@@ -15,7 +15,7 @@ class ServiceBuilder {
15
15
  return async (id) => {
16
16
  const result = await select.where((0, drizzle_orm_1.eq)(this.table.id, id));
17
17
  if (result.length == 0) {
18
- throw new Error(`${this.tableName} with id ${id} not found`);
18
+ throw notFoundWithId(this.tableName, id);
19
19
  }
20
20
  return result[0];
21
21
  };
@@ -47,14 +47,14 @@ class ServiceBuilder {
47
47
  if (Object.keys(data).length == 0) {
48
48
  throw new errors_1.BadRequest("update needs at least one field");
49
49
  }
50
- const result = await this.db
50
+ const [result] = await this.db
51
51
  .update(this.table)
52
52
  .set(data)
53
53
  .where((0, drizzle_orm_1.eq)(this.table.id, id))
54
54
  .returning()
55
55
  .catch((e) => (0, errors_1.handleSqlError)(e));
56
56
  if (!result) {
57
- throw new errors_1.NotFound(`${this.tableName} with id ${id} not found`);
57
+ throw notFoundWithId(this.tableName, id);
58
58
  }
59
59
  return result;
60
60
  };
@@ -66,7 +66,7 @@ class ServiceBuilder {
66
66
  .set({ deletedAt: new Date() })
67
67
  .where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(this.table.id, id), (0, drizzle_orm_1.isNull)(this.table.deletedAt)));
68
68
  if (rowCount == 0) {
69
- throw new errors_1.NotFound(`${this.tableName} with id ${id} not found`);
69
+ throw notFoundWithId(this.tableName, id);
70
70
  }
71
71
  };
72
72
  }
@@ -76,7 +76,7 @@ class ServiceBuilder {
76
76
  .delete(this.table)
77
77
  .where((0, drizzle_orm_1.eq)(this.table.id, id));
78
78
  if (rowCount == 0) {
79
- throw new errors_1.NotFound(`${this.tableName} with id ${id} not found`);
79
+ throw notFoundWithId(this.tableName, id);
80
80
  }
81
81
  };
82
82
  }
@@ -91,3 +91,6 @@ class ServiceBuilder {
91
91
  }
92
92
  }
93
93
  exports.ServiceBuilder = ServiceBuilder;
94
+ function notFoundWithId(tableName, id) {
95
+ return new errors_1.NotFound(`${tableName} with id ${id} not found`);
96
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bradb",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",