nestjs-drizzle-crud 3.0.0 → 3.0.2
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.
- package/CHANGELOG.md +69 -0
- package/dist/core/abstract/sql-base-crud.service.d.ts +11 -0
- package/dist/core/abstract/sql-base-crud.service.js +108 -43
- package/dist/core/abstract/sql-base-crud.service.js.map +1 -1
- package/dist/exceptions/crud.exceptions.d.ts +7 -6
- package/dist/exceptions/crud.exceptions.js +7 -6
- package/dist/exceptions/crud.exceptions.js.map +1 -1
- package/package.json +2 -1
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to `nestjs-drizzle-crud` are documented here.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
Scope note: the 3.0.x line is PostgreSQL-first. MySQL-specific paths (non-`RETURNING`
|
|
9
|
+
restore, `ER_DUP_ENTRY` mapping, dialect locking) are tracked separately and unchanged here.
|
|
10
|
+
|
|
11
|
+
## [3.0.2] - 2026-06-19
|
|
12
|
+
|
|
13
|
+
Residual-edge hardening found by an end-to-end HTTP probe of 3.0.1 (all LOW severity;
|
|
14
|
+
no behavior change to the happy path). Verified by 35 HTTP assertions on Neon + 49 jest specs.
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
- **`fullTextSearch` now returns the same envelope as `findAll`** — `{ data, total, page, limit }`
|
|
18
|
+
instead of `{ data, total }`. `page`/`limit` are the resolved (clamped) values; the query is
|
|
19
|
+
still only constrained when the caller passes `pagination`. Callers paginating search results
|
|
20
|
+
can now read back the page/limit they got.
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
- **Invalid `sortOrder` now fails fast (400).** `?sortOrder=<anything but asc/desc>` previously
|
|
24
|
+
fell through to ascending silently; it now throws `BadRequestException`, mirroring the
|
|
25
|
+
unknown-`sortBy` check added in 3.0.1.
|
|
26
|
+
- **Non-finite numeric filter operands return 400, not 500.** A `{ gt: NaN }` / `{ lte: Infinity }`
|
|
27
|
+
operand on `gt`/`gte`/`lt`/`lte` (e.g. from an unguarded `Number('abc')` in a controller) reached
|
|
28
|
+
SQL and surfaced as an opaque `DatabaseException` (500). It is now rejected as
|
|
29
|
+
`BadRequestException`. Non-number operands (dates, strings) are unaffected.
|
|
30
|
+
|
|
31
|
+
## [3.0.1] - 2026-06-19
|
|
32
|
+
|
|
33
|
+
Correctness pass: typed exceptions now map to real HTTP status codes, plus several read-path fixes.
|
|
34
|
+
(PostgreSQL-first.)
|
|
35
|
+
|
|
36
|
+
### Fixed
|
|
37
|
+
- **Exceptions extend `HttpException`** so Nest maps them automatically:
|
|
38
|
+
`EntityNotFoundException` → 404, `DuplicateEntityException` → 409,
|
|
39
|
+
`ValidationFailedException` / `BulkOperationException` → 400,
|
|
40
|
+
`Database*` / `TransactionException` → 500. Previously every error surfaced as a generic 500.
|
|
41
|
+
- **Duplicate-key translation.** A Postgres unique violation (SQLSTATE `23505`, on either
|
|
42
|
+
`err.code` or the Drizzle-wrapped `err.cause.code`) is converted to `DuplicateEntityException`
|
|
43
|
+
(409), parsing the offending field/value from the driver `detail`.
|
|
44
|
+
- **`fullTextSearch` excludes soft-deleted rows** (added the `IS NULL` guard on the soft-delete
|
|
45
|
+
column to both the data and count queries, matching `findAll`/`count`).
|
|
46
|
+
- **Pagination clamping.** `page < 1`, `limit <= 0`, and `limit > maxLimit` are clamped via a shared
|
|
47
|
+
`resolvePagination` helper — no more negative `OFFSET` or `LIMIT 0`.
|
|
48
|
+
- **Unknown sort column fails fast.** A caller-supplied `sortBy` not on the table throws
|
|
49
|
+
`BadRequestException`; an unknown column in a configured `defaultSort` is warned and skipped.
|
|
50
|
+
- **`restore()` returns the restored row** on the Postgres `RETURNING` path (no longer re-`find()`s,
|
|
51
|
+
which would have excluded the just-restored row via the soft-delete filter).
|
|
52
|
+
|
|
53
|
+
### Added
|
|
54
|
+
- **Row-level lock options** on Postgres reads (`find`/`findOne`/`findAll`): `lock: 'update' | 'share'`
|
|
55
|
+
and `forNoKeyUpdate` apply `.for(...)`. No-op on MySQL.
|
|
56
|
+
|
|
57
|
+
## [3.0.0] - 2026-06-19
|
|
58
|
+
|
|
59
|
+
- First release under the `nestjs-drizzle-crud` name with the 3.x API surface
|
|
60
|
+
(`DrizzleCrudModule.forRoot`/`forRootAsync`/`forFeature`, `SqlBaseCrudService`).
|
|
61
|
+
|
|
62
|
+
## Earlier (≤ 2.2.0)
|
|
63
|
+
|
|
64
|
+
Published as `@quybquang/nestjs-drizzle-crud`. Notable: 2.2.0 added a configurable module-level
|
|
65
|
+
default sort; 2.1.2 documented the timestamps feature. See git history for details.
|
|
66
|
+
|
|
67
|
+
[3.0.2]: https://www.npmjs.com/package/nestjs-drizzle-crud/v/3.0.2
|
|
68
|
+
[3.0.1]: https://www.npmjs.com/package/nestjs-drizzle-crud/v/3.0.1
|
|
69
|
+
[3.0.0]: https://www.npmjs.com/package/nestjs-drizzle-crud/v/3.0.0
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DuplicateEntityException } from "../../exceptions/crud.exceptions";
|
|
1
2
|
import { ICrudService, PaginationOptions } from "../interfaces/crud-service.interface";
|
|
2
3
|
import { SqlCrudConfig, SqlOperationOptions } from "../interfaces/sql-crud-config.interface";
|
|
3
4
|
import { SortOrder } from "../types/sql.types";
|
|
@@ -29,6 +30,14 @@ export declare abstract class SqlBaseCrudService<T extends Record<string, any>,
|
|
|
29
30
|
protected applyJoins(query: any, relationNames: string[]): any;
|
|
30
31
|
protected normalizeRelations(rows: any[], eager: string[]): any[];
|
|
31
32
|
protected buildOrderBy(sortBy?: string, sortOrder?: SortOrder): any[];
|
|
33
|
+
protected resolvePagination(page?: number, limit?: number): {
|
|
34
|
+
page: number;
|
|
35
|
+
limit: number;
|
|
36
|
+
offset: number;
|
|
37
|
+
};
|
|
38
|
+
protected isUniqueViolation(error: any): boolean;
|
|
39
|
+
protected toDuplicateException(error: any): DuplicateEntityException;
|
|
40
|
+
protected applyLock(query: any, options?: SqlOperationOptions): any;
|
|
32
41
|
find(id: any, options?: SqlOperationOptions): Promise<T | null>;
|
|
33
42
|
findOne(where: Partial<T>, options?: SqlOperationOptions): Promise<T | null>;
|
|
34
43
|
findAll(filters?: FilterDto, pagination?: PaginationOptions, options?: SqlOperationOptions): Promise<{
|
|
@@ -61,5 +70,7 @@ export declare abstract class SqlBaseCrudService<T extends Record<string, any>,
|
|
|
61
70
|
fullTextSearch(searchTerm: string, searchColumns: string[], pagination?: PaginationOptions, options?: SqlOperationOptions): Promise<{
|
|
62
71
|
data: T[];
|
|
63
72
|
total: number;
|
|
73
|
+
page: number;
|
|
74
|
+
limit: number;
|
|
64
75
|
}>;
|
|
65
76
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SqlBaseCrudService = void 0;
|
|
4
4
|
const drizzle_orm_1 = require("drizzle-orm");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
5
6
|
const crud_exceptions_1 = require("../../exceptions/crud.exceptions");
|
|
6
7
|
class SqlBaseCrudService {
|
|
7
8
|
config;
|
|
@@ -167,19 +168,60 @@ class SqlBaseCrudService {
|
|
|
167
168
|
});
|
|
168
169
|
}
|
|
169
170
|
buildOrderBy(sortBy, sortOrder = "desc") {
|
|
170
|
-
if (sortBy
|
|
171
|
+
if (sortBy) {
|
|
171
172
|
const col = this.config.table[sortBy];
|
|
173
|
+
if (!col) {
|
|
174
|
+
throw new common_1.BadRequestException(`Unknown sort column: ${sortBy}`);
|
|
175
|
+
}
|
|
176
|
+
if (sortOrder !== "asc" && sortOrder !== "desc") {
|
|
177
|
+
throw new common_1.BadRequestException(`Invalid sortOrder: ${sortOrder} (expected 'asc' or 'desc')`);
|
|
178
|
+
}
|
|
172
179
|
return [sortOrder === "desc" ? (0, drizzle_orm_1.desc)(col) : (0, drizzle_orm_1.asc)(col)];
|
|
173
180
|
}
|
|
174
181
|
const out = [];
|
|
175
182
|
for (const spec of this.config.defaultSort ?? []) {
|
|
176
183
|
const col = this.config.table[spec.column];
|
|
177
|
-
if (!col)
|
|
184
|
+
if (!col) {
|
|
185
|
+
console.warn(`[nestjs-drizzle-crud] defaultSort references unknown column "${spec.column}"; skipping.`);
|
|
178
186
|
continue;
|
|
187
|
+
}
|
|
179
188
|
out.push(spec.order === "desc" ? (0, drizzle_orm_1.desc)(col) : (0, drizzle_orm_1.asc)(col));
|
|
180
189
|
}
|
|
181
190
|
return out;
|
|
182
191
|
}
|
|
192
|
+
resolvePagination(page, limit) {
|
|
193
|
+
const maxLimit = this.config.pagination.maxLimit;
|
|
194
|
+
const defaultLimit = this.config.pagination.defaultLimit;
|
|
195
|
+
const rawPage = page == null || isNaN(Number(page)) ? 1 : Math.floor(Number(page));
|
|
196
|
+
const rawLimit = limit == null || isNaN(Number(limit))
|
|
197
|
+
? defaultLimit
|
|
198
|
+
: Math.floor(Number(limit));
|
|
199
|
+
const safePage = Math.max(1, rawPage);
|
|
200
|
+
const safeLimit = Math.min(Math.max(1, rawLimit), maxLimit);
|
|
201
|
+
return {
|
|
202
|
+
page: safePage,
|
|
203
|
+
limit: safeLimit,
|
|
204
|
+
offset: (safePage - 1) * safeLimit,
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
isUniqueViolation(error) {
|
|
208
|
+
const code = error?.code ?? error?.cause?.code;
|
|
209
|
+
return code === "23505";
|
|
210
|
+
}
|
|
211
|
+
toDuplicateException(error) {
|
|
212
|
+
const detail = error?.detail ?? error?.cause?.detail ?? "";
|
|
213
|
+
const m = detail.match(/Key \((?<field>.+?)\)=\((?<value>.+?)\)/);
|
|
214
|
+
return new crud_exceptions_1.DuplicateEntityException(this.getEntityName(), m?.groups?.field ?? "unique field", m?.groups?.value ?? "");
|
|
215
|
+
}
|
|
216
|
+
applyLock(query, options) {
|
|
217
|
+
if (this.config.dialect !== "postgresql")
|
|
218
|
+
return query;
|
|
219
|
+
if (options?.forNoKeyUpdate)
|
|
220
|
+
return query.for("no key update");
|
|
221
|
+
if (options?.lock && options.lock !== "none")
|
|
222
|
+
return query.for(options.lock);
|
|
223
|
+
return query;
|
|
224
|
+
}
|
|
183
225
|
async find(id, options) {
|
|
184
226
|
const { transaction, relations = [], select = [] } = options || {};
|
|
185
227
|
const db = transaction || this.config.db;
|
|
@@ -192,6 +234,7 @@ class SqlBaseCrudService {
|
|
|
192
234
|
query = this.applyJoins(query, eager)
|
|
193
235
|
.where((0, drizzle_orm_1.and)(...conditions))
|
|
194
236
|
.limit(1);
|
|
237
|
+
query = this.applyLock(query, options);
|
|
195
238
|
const result = await query;
|
|
196
239
|
return this.normalizeRelations(result, eager)[0] || null;
|
|
197
240
|
}
|
|
@@ -207,14 +250,14 @@ class SqlBaseCrudService {
|
|
|
207
250
|
query = this.applyJoins(query, eager)
|
|
208
251
|
.where((0, drizzle_orm_1.and)(...conditions))
|
|
209
252
|
.limit(1);
|
|
253
|
+
query = this.applyLock(query, options);
|
|
210
254
|
const result = await query;
|
|
211
255
|
return this.normalizeRelations(result, eager)[0] || null;
|
|
212
256
|
}
|
|
213
257
|
async findAll(filters, pagination, options) {
|
|
214
258
|
const { transaction, relations = [], select = [] } = options || {};
|
|
215
|
-
const {
|
|
216
|
-
const safeLimit =
|
|
217
|
-
const offset = (page - 1) * safeLimit;
|
|
259
|
+
const { sortBy, sortOrder = "desc" } = pagination || {};
|
|
260
|
+
const { page, limit: safeLimit, offset, } = this.resolvePagination(pagination?.page, pagination?.limit);
|
|
218
261
|
const db = transaction || this.config.db;
|
|
219
262
|
const eager = this.eagerRelations(relations);
|
|
220
263
|
const { conditions, relations: filterRelations } = this.buildFilterConditions(filters);
|
|
@@ -232,6 +275,7 @@ class SqlBaseCrudService {
|
|
|
232
275
|
dataQuery = dataQuery.orderBy(...orderBy);
|
|
233
276
|
}
|
|
234
277
|
dataQuery = dataQuery.limit(safeLimit).offset(offset);
|
|
278
|
+
dataQuery = this.applyLock(dataQuery, options);
|
|
235
279
|
let countQuery = db
|
|
236
280
|
.select({ count: (0, drizzle_orm_1.sql) `count(*)` })
|
|
237
281
|
.from(this.config.table);
|
|
@@ -262,23 +306,30 @@ class SqlBaseCrudService {
|
|
|
262
306
|
entityData[this.config.timestamps.updatedAt] = now;
|
|
263
307
|
const db = transaction || this.config.db;
|
|
264
308
|
let insertQuery = db.insert(this.config.table).values(entityData);
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
309
|
+
try {
|
|
310
|
+
if (this.config.sql?.useReturning) {
|
|
311
|
+
insertQuery = insertQuery.returning();
|
|
312
|
+
const result = await insertQuery;
|
|
313
|
+
const createdEntity = result[0];
|
|
314
|
+
if (!hooks.skipAfter)
|
|
315
|
+
await this.afterCreate(createdEntity);
|
|
316
|
+
return createdEntity;
|
|
317
|
+
}
|
|
318
|
+
else {
|
|
319
|
+
const result = await insertQuery;
|
|
320
|
+
const lastInsertId = entityData[this.config.primaryKey] ?? result?.[0]?.insertId;
|
|
321
|
+
const createdEntity = await this.find(lastInsertId, options);
|
|
322
|
+
if (!createdEntity)
|
|
323
|
+
throw new Error("Failed to create entity");
|
|
324
|
+
if (!hooks.skipAfter)
|
|
325
|
+
await this.afterCreate(createdEntity);
|
|
326
|
+
return createdEntity;
|
|
327
|
+
}
|
|
272
328
|
}
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
if (!createdEntity)
|
|
278
|
-
throw new Error("Failed to create entity");
|
|
279
|
-
if (!hooks.skipAfter)
|
|
280
|
-
await this.afterCreate(createdEntity);
|
|
281
|
-
return createdEntity;
|
|
329
|
+
catch (error) {
|
|
330
|
+
if (this.isUniqueViolation(error))
|
|
331
|
+
throw this.toDuplicateException(error);
|
|
332
|
+
throw error;
|
|
282
333
|
}
|
|
283
334
|
}
|
|
284
335
|
async update(id, data, options) {
|
|
@@ -299,22 +350,29 @@ class SqlBaseCrudService {
|
|
|
299
350
|
.update(this.config.table)
|
|
300
351
|
.set(entityData)
|
|
301
352
|
.where((0, drizzle_orm_1.eq)(this.config.table[this.config.primaryKey], id));
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
353
|
+
try {
|
|
354
|
+
if (this.config.sql?.useReturning) {
|
|
355
|
+
updateQuery = updateQuery.returning();
|
|
356
|
+
const result = await updateQuery;
|
|
357
|
+
const updatedEntity = result[0];
|
|
358
|
+
if (!hooks.skipAfter)
|
|
359
|
+
await this.afterUpdate(updatedEntity);
|
|
360
|
+
return updatedEntity;
|
|
361
|
+
}
|
|
362
|
+
else {
|
|
363
|
+
await updateQuery;
|
|
364
|
+
const updatedEntity = await this.find(id, options);
|
|
365
|
+
if (!updatedEntity)
|
|
366
|
+
throw new Error("Failed to update entity");
|
|
367
|
+
if (!hooks.skipAfter)
|
|
368
|
+
await this.afterUpdate(updatedEntity);
|
|
369
|
+
return updatedEntity;
|
|
370
|
+
}
|
|
309
371
|
}
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
throw new Error("Failed to update entity");
|
|
315
|
-
if (!hooks.skipAfter)
|
|
316
|
-
await this.afterUpdate(updatedEntity);
|
|
317
|
-
return updatedEntity;
|
|
372
|
+
catch (error) {
|
|
373
|
+
if (this.isUniqueViolation(error))
|
|
374
|
+
throw this.toDuplicateException(error);
|
|
375
|
+
throw error;
|
|
318
376
|
}
|
|
319
377
|
}
|
|
320
378
|
async softDelete(id, options) {
|
|
@@ -575,6 +633,11 @@ class SqlBaseCrudService {
|
|
|
575
633
|
}
|
|
576
634
|
applyComplexFilter(conditions, column, filterObj) {
|
|
577
635
|
for (const [op, value] of Object.entries(filterObj)) {
|
|
636
|
+
if ((op === "gt" || op === "gte" || op === "lt" || op === "lte") &&
|
|
637
|
+
typeof value === "number" &&
|
|
638
|
+
!Number.isFinite(value)) {
|
|
639
|
+
throw new common_1.BadRequestException(`Invalid numeric filter operand for "${op}": ${value}`);
|
|
640
|
+
}
|
|
578
641
|
switch (op) {
|
|
579
642
|
case "gt":
|
|
580
643
|
conditions.push((0, drizzle_orm_1.gt)(column, value));
|
|
@@ -630,25 +693,27 @@ class SqlBaseCrudService {
|
|
|
630
693
|
const db = transaction || this.config.db;
|
|
631
694
|
const tsVector = drizzle_orm_1.sql.join(searchColumns.map((col) => (0, drizzle_orm_1.sql) `to_tsvector('english', ${this.config.table[col]})`), (0, drizzle_orm_1.sql) ` || `);
|
|
632
695
|
const tsQuery = (0, drizzle_orm_1.sql) `plainto_tsquery('english', ${searchTerm})`;
|
|
696
|
+
const matchExpr = (0, drizzle_orm_1.sql) `${tsVector} @@ ${tsQuery}`;
|
|
697
|
+
const whereExpr = this.config.softDelete?.enabled
|
|
698
|
+
? (0, drizzle_orm_1.and)(matchExpr, (0, drizzle_orm_1.isNull)(this.config.table[this.config.softDelete.column]))
|
|
699
|
+
: matchExpr;
|
|
633
700
|
let query = db
|
|
634
701
|
.select()
|
|
635
702
|
.from(this.config.table)
|
|
636
|
-
.where(
|
|
703
|
+
.where(whereExpr)
|
|
637
704
|
.orderBy((0, drizzle_orm_1.sql) `ts_rank(${tsVector}, ${tsQuery}) DESC`);
|
|
705
|
+
const { page, limit, offset } = this.resolvePagination(pagination?.page, pagination?.limit);
|
|
638
706
|
if (pagination) {
|
|
639
|
-
|
|
640
|
-
const safeLimit = Math.min(limit, this.config.pagination.maxLimit);
|
|
641
|
-
const offset = (page - 1) * safeLimit;
|
|
642
|
-
query = query.limit(safeLimit).offset(offset);
|
|
707
|
+
query = query.limit(limit).offset(offset);
|
|
643
708
|
}
|
|
644
709
|
const data = await query;
|
|
645
710
|
const countQuery = db
|
|
646
711
|
.select({ count: (0, drizzle_orm_1.sql) `count(*)` })
|
|
647
712
|
.from(this.config.table)
|
|
648
|
-
.where(
|
|
713
|
+
.where(whereExpr);
|
|
649
714
|
const totalResult = await countQuery;
|
|
650
715
|
const total = parseInt(totalResult[0]?.count?.toString() || "0");
|
|
651
|
-
return { data, total };
|
|
716
|
+
return { data, total, page, limit };
|
|
652
717
|
}
|
|
653
718
|
}
|
|
654
719
|
exports.SqlBaseCrudService = SqlBaseCrudService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-base-crud.service.js","sourceRoot":"","sources":["../../../src/core/abstract/sql-base-crud.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sql-base-crud.service.js","sourceRoot":"","sources":["../../../src/core/abstract/sql-base-crud.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
import { BadRequestException, ConflictException, InternalServerErrorException, NotFoundException } from "@nestjs/common";
|
|
2
|
+
export declare class EntityNotFoundException extends NotFoundException {
|
|
2
3
|
constructor(entityName: string, id: any);
|
|
3
4
|
}
|
|
4
|
-
export declare class DuplicateEntityException extends
|
|
5
|
+
export declare class DuplicateEntityException extends ConflictException {
|
|
5
6
|
constructor(entityName: string, field: string, value: any);
|
|
6
7
|
}
|
|
7
|
-
export declare class ValidationFailedException extends
|
|
8
|
+
export declare class ValidationFailedException extends BadRequestException {
|
|
8
9
|
constructor(message: string);
|
|
9
10
|
}
|
|
10
|
-
export declare class BulkOperationException extends
|
|
11
|
+
export declare class BulkOperationException extends BadRequestException {
|
|
11
12
|
readonly errors: Array<{
|
|
12
13
|
id?: any;
|
|
13
14
|
index?: number;
|
|
@@ -19,9 +20,9 @@ export declare class BulkOperationException extends Error {
|
|
|
19
20
|
error: Error;
|
|
20
21
|
}>);
|
|
21
22
|
}
|
|
22
|
-
export declare class DatabaseConnectionException extends
|
|
23
|
+
export declare class DatabaseConnectionException extends InternalServerErrorException {
|
|
23
24
|
constructor(message?: string);
|
|
24
25
|
}
|
|
25
|
-
export declare class TransactionException extends
|
|
26
|
+
export declare class TransactionException extends InternalServerErrorException {
|
|
26
27
|
constructor(message?: string);
|
|
27
28
|
}
|
|
@@ -1,28 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TransactionException = exports.DatabaseConnectionException = exports.BulkOperationException = exports.ValidationFailedException = exports.DuplicateEntityException = exports.EntityNotFoundException = void 0;
|
|
4
|
-
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
class EntityNotFoundException extends common_1.NotFoundException {
|
|
5
6
|
constructor(entityName, id) {
|
|
6
7
|
super(`${entityName} with id ${id} not found`);
|
|
7
8
|
this.name = "EntityNotFoundException";
|
|
8
9
|
}
|
|
9
10
|
}
|
|
10
11
|
exports.EntityNotFoundException = EntityNotFoundException;
|
|
11
|
-
class DuplicateEntityException extends
|
|
12
|
+
class DuplicateEntityException extends common_1.ConflictException {
|
|
12
13
|
constructor(entityName, field, value) {
|
|
13
14
|
super(`${entityName} with ${field} '${value}' already exists`);
|
|
14
15
|
this.name = "DuplicateEntityException";
|
|
15
16
|
}
|
|
16
17
|
}
|
|
17
18
|
exports.DuplicateEntityException = DuplicateEntityException;
|
|
18
|
-
class ValidationFailedException extends
|
|
19
|
+
class ValidationFailedException extends common_1.BadRequestException {
|
|
19
20
|
constructor(message) {
|
|
20
21
|
super(`Validation failed: ${message}`);
|
|
21
22
|
this.name = "ValidationFailedException";
|
|
22
23
|
}
|
|
23
24
|
}
|
|
24
25
|
exports.ValidationFailedException = ValidationFailedException;
|
|
25
|
-
class BulkOperationException extends
|
|
26
|
+
class BulkOperationException extends common_1.BadRequestException {
|
|
26
27
|
errors;
|
|
27
28
|
constructor(message, errors) {
|
|
28
29
|
super(`${message}. ${errors.length} error(s) occurred.`);
|
|
@@ -31,14 +32,14 @@ class BulkOperationException extends Error {
|
|
|
31
32
|
}
|
|
32
33
|
}
|
|
33
34
|
exports.BulkOperationException = BulkOperationException;
|
|
34
|
-
class DatabaseConnectionException extends
|
|
35
|
+
class DatabaseConnectionException extends common_1.InternalServerErrorException {
|
|
35
36
|
constructor(message = "Database connection failed") {
|
|
36
37
|
super(message);
|
|
37
38
|
this.name = "DatabaseConnectionException";
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
41
|
exports.DatabaseConnectionException = DatabaseConnectionException;
|
|
41
|
-
class TransactionException extends
|
|
42
|
+
class TransactionException extends common_1.InternalServerErrorException {
|
|
42
43
|
constructor(message = "Transaction failed") {
|
|
43
44
|
super(message);
|
|
44
45
|
this.name = "TransactionException";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud.exceptions.js","sourceRoot":"","sources":["../../src/exceptions/crud.exceptions.ts"],"names":[],"mappings":";;;AAAA,MAAa,uBAAwB,SAAQ,
|
|
1
|
+
{"version":3,"file":"crud.exceptions.js","sourceRoot":"","sources":["../../src/exceptions/crud.exceptions.ts"],"names":[],"mappings":";;;AAAA,2CAKwB;AAOxB,MAAa,uBAAwB,SAAQ,0BAAiB;IAC7D,YAAY,UAAkB,EAAE,EAAO;QACtC,KAAK,CAAC,GAAG,UAAU,YAAY,EAAE,YAAY,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACvC,CAAC;CACD;AALD,0DAKC;AAED,MAAa,wBAAyB,SAAQ,0BAAiB;IAC9D,YAAY,UAAkB,EAAE,KAAa,EAAE,KAAU;QACxD,KAAK,CAAC,GAAG,UAAU,SAAS,KAAK,KAAK,KAAK,kBAAkB,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACxC,CAAC;CACD;AALD,4DAKC;AAED,MAAa,yBAA0B,SAAQ,4BAAmB;IACjE,YAAY,OAAe;QAC1B,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IACzC,CAAC;CACD;AALD,8DAKC;AAED,MAAa,sBAAuB,SAAQ,4BAAmB;IAG7C;IAFjB,YACC,OAAe,EACC,MAAyD;QAEzE,KAAK,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,MAAM,qBAAqB,CAAC,CAAC;QAFzC,WAAM,GAAN,MAAM,CAAmD;QAGzE,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACtC,CAAC;CACD;AARD,wDAQC;AAED,MAAa,2BAA4B,SAAQ,qCAA4B;IAC5E,YAAY,UAAkB,4BAA4B;QACzD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC3C,CAAC;CACD;AALD,kEAKC;AAED,MAAa,oBAAqB,SAAQ,qCAA4B;IACrE,YAAY,UAAkB,oBAAoB;QACjD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACpC,CAAC;CACD;AALD,oDAKC"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nestjs-drizzle-crud",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.2",
|
|
4
4
|
"description": "A complete CRUD abstraction layer for Drizzle ORM in NestJS applications",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"files": [
|
|
8
8
|
"dist/**/*",
|
|
9
9
|
"README.md",
|
|
10
|
+
"CHANGELOG.md",
|
|
10
11
|
"LICENSE"
|
|
11
12
|
],
|
|
12
13
|
"scripts": {
|