@avytrix/nestjs-drizzle-crud 3.5.1 → 3.6.0
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/AGENT.md +3 -3
- package/CHANGELOG.md +53 -0
- package/README.md +52 -45
- package/dist/controller/crud-controller.factory.d.ts +2 -1
- package/dist/controller/crud-controller.factory.js +43 -15
- package/dist/controller/crud-controller.factory.js.map +1 -1
- package/dist/core/abstract/sql-base-crud.service.d.ts +10 -5
- package/dist/core/abstract/sql-base-crud.service.js +116 -83
- package/dist/core/abstract/sql-base-crud.service.js.map +1 -1
- package/dist/core/utils/query-parser.d.ts +2 -0
- package/dist/core/utils/query-parser.js +36 -2
- package/dist/core/utils/query-parser.js.map +1 -1
- package/package.json +17 -8
package/AGENT.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
> # Gemini CLI reads ./GEMINI.md, Aider reads ./CONVENTIONS.md
|
|
12
12
|
> ```
|
|
13
13
|
>
|
|
14
|
-
> Or let the agent read these docs on demand: `npx nestjs-drizzle-crud-mcp` is an
|
|
14
|
+
> Or let the agent read these docs on demand: `npx -p @avytrix/nestjs-drizzle-crud nestjs-drizzle-crud-mcp` is an
|
|
15
15
|
> MCP server shipped with the package. See
|
|
16
16
|
> [crud.avytrix.dev/docs/ai-agents](https://crud.avytrix.dev/docs/ai-agents).
|
|
17
17
|
>
|
|
@@ -56,7 +56,7 @@ service, stop and check the API reference first.
|
|
|
56
56
|
# Installation
|
|
57
57
|
|
|
58
58
|
```bash
|
|
59
|
-
pnpm add nestjs-drizzle-crud
|
|
59
|
+
pnpm add @avytrix/nestjs-drizzle-crud
|
|
60
60
|
pnpm add @nestjs/common @nestjs/core drizzle-orm reflect-metadata # peers, always
|
|
61
61
|
pnpm add postgres # PostgreSQL
|
|
62
62
|
pnpm add mysql2 # MySQL
|
|
@@ -246,7 +246,7 @@ ignores the primary key and `createdAt`.
|
|
|
246
246
|
|
|
247
247
|
# Sorting and cursor pagination
|
|
248
248
|
|
|
249
|
-
`sortBy` takes one column (with `sortOrder`, default `'
|
|
249
|
+
`sortBy` takes one column (with `sortOrder`, default `'asc'`) or a list:
|
|
250
250
|
`['team.name', '-created_at']` or `[{ column, order }]`. A dotted entry sorts by a
|
|
251
251
|
top-level belongs-to column. The primary key is always the last sort column.
|
|
252
252
|
|
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,59 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
8
8
|
Scope note: the 3.0.x line is PostgreSQL-first. MySQL-specific paths (non-`RETURNING`
|
|
9
9
|
restore, `ER_DUP_ENTRY` mapping, dialect locking) are tracked separately and unchanged here.
|
|
10
10
|
|
|
11
|
+
## [3.6.0] - 2026-11-02
|
|
12
|
+
|
|
13
|
+
Fixes from the second audit. The first one is a security fix: upgrade if you use `scope`.
|
|
14
|
+
|
|
15
|
+
### Security
|
|
16
|
+
|
|
17
|
+
- Related tables now follow the tenant scope. Loaded relations, the joins behind relation columns,
|
|
18
|
+
relation filters (`some`, `none`, `every` and nested columns) and `counts` only see related rows
|
|
19
|
+
of the caller's tenant when the related table has the scope columns. Before, a row pointing at
|
|
20
|
+
another tenant's row (a plain foreign key allows it) loaded that row, and a filter on it
|
|
21
|
+
answered questions about it.
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
|
|
25
|
+
- `createCrudController` takes `validation`, the validator options for the bulk bodies. Pass the
|
|
26
|
+
same options as your global `ValidationPipe`.
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
|
|
30
|
+
- `PATCH /bulk` validates `data` against `dto.update`, the check a single `PATCH` already had.
|
|
31
|
+
- Route decorators that wrap the handler now run. Before, the factory dropped the wrapped handler.
|
|
32
|
+
- Bulk ids are parsed like `:id`, so a bad id is a 400 before any statement runs.
|
|
33
|
+
- A filter nested deeper than 32 objects is a 400. A thousand nested `not` groups used to
|
|
34
|
+
overflow the stack and answer with a 500.
|
|
35
|
+
- A batch past the bound-parameter limit (60,000 values: rows times columns for `massCreate` and
|
|
36
|
+
`massUpsert`, ids for the id based methods, values in an `IN` filter) is a 400 that names the
|
|
37
|
+
limit, instead of a driver protocol error and a 500.
|
|
38
|
+
- A missing required value (`23502`) is a 400 that names the column.
|
|
39
|
+
- MySQL `ER_DUP_ENTRY` is a 409, and foreign key errors are a 400 on a write and a 409 on a delete.
|
|
40
|
+
- `upsert` no longer updates a row in the trash: the conflict writes nothing and is a 404.
|
|
41
|
+
- With `useReturning: false`, a scoped `upsert` no longer reads back another tenant's row.
|
|
42
|
+
- `restore` on a live row is a 404 before any hook or event runs. It used to succeed and bump
|
|
43
|
+
`updated_at` and the version.
|
|
44
|
+
- `?relation[some]=` and `[none]=` with no column need the relation, or one of its columns, in
|
|
45
|
+
`filterableColumns`.
|
|
46
|
+
- A nested child row cannot set its own generated primary key.
|
|
47
|
+
|
|
48
|
+
## [3.5.2] - 2026-11-02
|
|
49
|
+
|
|
50
|
+
### Fixed
|
|
51
|
+
|
|
52
|
+
- `softDelete`, `restore`, `massSoftDelete` and `massRestore` on an entity without soft delete,
|
|
53
|
+
and full-text search on MySQL (`fullTextSearch()` or `search.mode: "fullText"`), now throw a
|
|
54
|
+
`BadRequestException`. They were a plain `Error`, which reached the client as a 500.
|
|
55
|
+
- `options.counts` now applies the tenant scope to the related rows it counts, when the related
|
|
56
|
+
table has the scope column. Before, a parent's count included rows of other tenants.
|
|
57
|
+
|
|
58
|
+
### Changed
|
|
59
|
+
|
|
60
|
+
- `sortOrder` now defaults to `"asc"` in `findAll` and `findByCursor`, so a bare
|
|
61
|
+
`sortBy: "name"` sorts the same way as `?sortBy=name` over HTTP. Pass `sortOrder: "desc"` to
|
|
62
|
+
keep the old order.
|
|
63
|
+
|
|
11
64
|
## [3.5.1] - 2026-11-02
|
|
12
65
|
|
|
13
66
|
### Changed
|
package/README.md
CHANGED
|
@@ -1,11 +1,38 @@
|
|
|
1
1
|
# nestjs-drizzle-crud
|
|
2
2
|
|
|
3
3
|
[](https://crud.avytrix.dev)
|
|
4
|
-
[](https://www.npmjs.com/package/nestjs-drizzle-crud)
|
|
5
|
-
[](./LICENSE)
|
|
4
|
+
[](https://www.npmjs.com/package/@avytrix/nestjs-drizzle-crud)
|
|
5
|
+
[](./LICENSE)
|
|
6
6
|
[](https://github.com/sponsors/avytrix)
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
**nestjs-drizzle-crud is a NestJS + Drizzle ORM CRUD library: extend one base class and every table gets type-safe find, create, update, delete, filtering, pagination, relations and soft delete, on PostgreSQL or MySQL.**
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
pnpm add @avytrix/nestjs-drizzle-crud drizzle-orm
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
> **Renamed.** From 3.5.1 the package is `@avytrix/nestjs-drizzle-crud`; the unscoped `nestjs-drizzle-crud` is deprecated. Change the dependency and the imports, nothing else changes.
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
// app.module.ts: configure the connection once
|
|
18
|
+
DrizzleCrudModule.forRoot({
|
|
19
|
+
dialect: 'postgresql',
|
|
20
|
+
connectionString: process.env.DATABASE_URL,
|
|
21
|
+
schema,
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
// users.service.ts: a full CRUD service is an empty subclass
|
|
25
|
+
export class UsersService extends SqlBaseCrudService<
|
|
26
|
+
User, CreateUserDto, UpdateUserDto, CrudFilter
|
|
27
|
+
> {}
|
|
28
|
+
|
|
29
|
+
// users.module.ts: bind it to a table
|
|
30
|
+
DrizzleCrudModule.forFeature([{ service: UsersService, table: users }]);
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**[Read the docs at crud.avytrix.dev](https://crud.avytrix.dev)**, starting with the [quick start](https://crud.avytrix.dev/docs/quick-start/). Also on [npm](https://www.npmjs.com/package/@avytrix/nestjs-drizzle-crud) and [GitHub](https://github.com/avytrix/nestjs-drizzle-crud).
|
|
34
|
+
|
|
35
|
+
Built and maintained by **[Avytrix Technologies](https://avytrix.dev/?utm_source=nestjs-drizzle-crud&utm_medium=docs&utm_campaign=readme)**. Need help shipping? [Hire the team behind the library](https://crud.avytrix.dev/docs/commercial-support/).
|
|
9
36
|
|
|
10
37
|
## ❤️ Sponsoring is what keeps this package free
|
|
11
38
|
|
|
@@ -19,36 +46,13 @@ sponsors are what make keeping it free sustainable.
|
|
|
19
46
|
|
|
20
47
|
**Even $1 a month helps.** It funds bug fixes, new guides, and the next release.
|
|
21
48
|
|
|
22
|
-
> Sponsors get a spot on the [sponsor page](https://crud.avytrix.dev/docs/sponsor)
|
|
49
|
+
> Sponsors get a spot on the [sponsor page](https://crud.avytrix.dev/docs/sponsor/)
|
|
23
50
|
> and our thanks.
|
|
24
51
|
|
|
25
52
|
### 👉 [Sponsor on GitHub →](https://github.com/sponsors/avytrix) · thank you 🙏
|
|
26
53
|
|
|
27
54
|
---
|
|
28
55
|
|
|
29
|
-
A type-safe CRUD layer for [Drizzle ORM](https://orm.drizzle.team/) in [NestJS](https://nestjs.com/) applications.
|
|
30
|
-
|
|
31
|
-
**[Documentation](https://crud.avytrix.dev)** · **[npm](https://www.npmjs.com/package/nestjs-drizzle-crud)** · **[GitHub](https://github.com/avytrix/nestjs-drizzle-crud)** · **[Sponsor](https://github.com/sponsors/avytrix)**
|
|
32
|
-
|
|
33
|
-
Configure the database connection **once**, then every entity gets full CRUD (find / create / update / delete / soft-delete / bulk / pagination / filtering / full-text search) by extending one base class. No per-service connection wiring.
|
|
34
|
-
|
|
35
|
-
```typescript
|
|
36
|
-
// 1. configure once (app.module.ts)
|
|
37
|
-
DrizzleCrudModule.forRoot({
|
|
38
|
-
dialect: 'postgresql',
|
|
39
|
-
connectionString: process.env.DATABASE_URL,
|
|
40
|
-
schema,
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
// 2. a fully-featured CRUD service is just:
|
|
44
|
-
export class UsersService extends SqlBaseCrudService<User> {}
|
|
45
|
-
|
|
46
|
-
// 3. bind it to a table (users.module.ts)
|
|
47
|
-
DrizzleCrudModule.forFeature([{ service: UsersService, table: users }]);
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
---
|
|
51
|
-
|
|
52
56
|
## Table of contents
|
|
53
57
|
|
|
54
58
|
- [Features](#features)
|
|
@@ -116,11 +120,11 @@ DrizzleCrudModule.forFeature([{ service: UsersService, table: users }]);
|
|
|
116
120
|
## Installation
|
|
117
121
|
|
|
118
122
|
```bash
|
|
119
|
-
pnpm add nestjs-drizzle-crud
|
|
123
|
+
pnpm add @avytrix/nestjs-drizzle-crud
|
|
120
124
|
# or
|
|
121
|
-
npm install nestjs-drizzle-crud
|
|
125
|
+
npm install @avytrix/nestjs-drizzle-crud
|
|
122
126
|
# or
|
|
123
|
-
yarn add nestjs-drizzle-crud
|
|
127
|
+
yarn add @avytrix/nestjs-drizzle-crud
|
|
124
128
|
```
|
|
125
129
|
|
|
126
130
|
Peer dependencies (install the ones you use):
|
|
@@ -141,9 +145,10 @@ pnpm add @nestjs/swagger
|
|
|
141
145
|
|
|
142
146
|
> Using npm or yarn? Swap `pnpm add` for `npm install` / `yarn add`.
|
|
143
147
|
|
|
144
|
-
> **pnpm note:** `postgres
|
|
145
|
-
> peer deps strictly, so if you build the connection from a
|
|
146
|
-
> make sure
|
|
148
|
+
> **pnpm note:** `postgres` is an optional peer dependency and `mysql2` is not a peer
|
|
149
|
+
> at all. pnpm enforces peer deps strictly, so if you build the connection from a
|
|
150
|
+
> `connectionString` make sure `postgres` is installed in your app; for MySQL you
|
|
151
|
+
> install `mysql2` yourself and pass the `db` you build with it.
|
|
147
152
|
|
|
148
153
|
> `postgres` is an **optional** peer dependency. It's only needed when you let the
|
|
149
154
|
> module build the connection from a `connectionString` for the `postgresql` dialect.
|
|
@@ -174,7 +179,7 @@ export type User = typeof users.$inferSelect;
|
|
|
174
179
|
```typescript
|
|
175
180
|
// app.module.ts
|
|
176
181
|
import { Module } from '@nestjs/common';
|
|
177
|
-
import { DrizzleCrudModule } from 'nestjs-drizzle-crud';
|
|
182
|
+
import { DrizzleCrudModule } from '@avytrix/nestjs-drizzle-crud';
|
|
178
183
|
import { schema } from './db/schema';
|
|
179
184
|
import { UsersModule } from './users/users.module';
|
|
180
185
|
|
|
@@ -198,7 +203,7 @@ application shutdown (when the module built it from a `connectionString`).
|
|
|
198
203
|
|
|
199
204
|
```typescript
|
|
200
205
|
// users/users.service.ts
|
|
201
|
-
import { SqlBaseCrudService } from 'nestjs-drizzle-crud';
|
|
206
|
+
import { SqlBaseCrudService } from '@avytrix/nestjs-drizzle-crud';
|
|
202
207
|
import type { User } from '../db/schema';
|
|
203
208
|
|
|
204
209
|
export interface CreateUserDto { name: string; email: string }
|
|
@@ -218,7 +223,7 @@ export class UsersService extends SqlBaseCrudService<
|
|
|
218
223
|
```typescript
|
|
219
224
|
// users/users.module.ts
|
|
220
225
|
import { Module } from '@nestjs/common';
|
|
221
|
-
import { DrizzleCrudModule } from 'nestjs-drizzle-crud';
|
|
226
|
+
import { DrizzleCrudModule } from '@avytrix/nestjs-drizzle-crud';
|
|
222
227
|
import { users } from '../db/schema';
|
|
223
228
|
import { UsersController } from './users.controller';
|
|
224
229
|
import { UsersService } from './users.service';
|
|
@@ -362,7 +367,9 @@ The minimal service is an empty class. Connection, dialect and defaults are
|
|
|
362
367
|
injected by the module:
|
|
363
368
|
|
|
364
369
|
```typescript
|
|
365
|
-
export class UsersService extends SqlBaseCrudService<
|
|
370
|
+
export class UsersService extends SqlBaseCrudService<
|
|
371
|
+
User, CreateUserDto, UpdateUserDto, CrudFilter
|
|
372
|
+
> {}
|
|
366
373
|
```
|
|
367
374
|
|
|
368
375
|
Add custom behaviour by overriding hooks (see [Lifecycle hooks](#lifecycle-hooks--validation))
|
|
@@ -590,7 +597,7 @@ await service.findAll(
|
|
|
590
597
|
// → { data: [...], total: 240, page: 2, limit: 25 }
|
|
591
598
|
```
|
|
592
599
|
|
|
593
|
-
`limit` is capped at `pagination.maxLimit`. `sortOrder` defaults to `'
|
|
600
|
+
`limit` is capped at `pagination.maxLimit`. `sortOrder` defaults to `'asc'`.
|
|
594
601
|
The primary key is always the last `ORDER BY` column, so rows that tie on the
|
|
595
602
|
sort column never repeat or go missing between pages.
|
|
596
603
|
|
|
@@ -1144,7 +1151,7 @@ service stamps `created_at`/`updated_at` automatically.
|
|
|
1144
1151
|
## Testing
|
|
1145
1152
|
|
|
1146
1153
|
```typescript
|
|
1147
|
-
import { TestCrudFactory } from 'nestjs-drizzle-crud';
|
|
1154
|
+
import { TestCrudFactory } from '@avytrix/nestjs-drizzle-crud';
|
|
1148
1155
|
|
|
1149
1156
|
const mockDb = TestCrudFactory.createMockDb();
|
|
1150
1157
|
const mockTable = TestCrudFactory.createMockTable();
|
|
@@ -1164,18 +1171,18 @@ const service = TestCrudFactory.createTestService(UsersService, mockDb, mockTabl
|
|
|
1164
1171
|
when they use it. Copy the pointer template to the filename your tool reads:
|
|
1165
1172
|
|
|
1166
1173
|
```bash
|
|
1167
|
-
cp node_modules/nestjs-drizzle-crud/AGENTS.template.md ./AGENTS.md # Codex, Cursor, Copilot, Zed, Cline, Windsurf
|
|
1168
|
-
cp node_modules/nestjs-drizzle-crud/CLAUDE.template.md ./CLAUDE.md # Claude Code
|
|
1174
|
+
cp node_modules/@avytrix/nestjs-drizzle-crud/AGENTS.template.md ./AGENTS.md # Codex, Cursor, Copilot, Zed, Cline, Windsurf
|
|
1175
|
+
cp node_modules/@avytrix/nestjs-drizzle-crud/CLAUDE.template.md ./CLAUDE.md # Claude Code
|
|
1169
1176
|
# Gemini CLI reads ./GEMINI.md, Aider reads ./CONVENTIONS.md
|
|
1170
1177
|
```
|
|
1171
1178
|
|
|
1172
|
-
Each template is one `@node_modules/nestjs-drizzle-crud/AGENT.md` line, so an
|
|
1179
|
+
Each template is one `@node_modules/@avytrix/nestjs-drizzle-crud/AGENT.md` line, so an
|
|
1173
1180
|
upgrade updates the rules with it and you never hold a stale copy.
|
|
1174
1181
|
|
|
1175
1182
|
### Or run the MCP server
|
|
1176
1183
|
|
|
1177
1184
|
```bash
|
|
1178
|
-
npx nestjs-drizzle-crud-mcp
|
|
1185
|
+
npx -p @avytrix/nestjs-drizzle-crud nestjs-drizzle-crud-mcp
|
|
1179
1186
|
```
|
|
1180
1187
|
|
|
1181
1188
|
A stdio MCP server, zero dependencies, that serves this package's docs to any MCP
|
|
@@ -1187,7 +1194,7 @@ client through three tools: `list_docs`, `get_doc` (`agent-guide` / `readme` /
|
|
|
1187
1194
|
"mcpServers": {
|
|
1188
1195
|
"nestjs-drizzle-crud": {
|
|
1189
1196
|
"command": "npx",
|
|
1190
|
-
"args": ["-y", "nestjs-drizzle-crud-mcp"]
|
|
1197
|
+
"args": ["-y", "-p", "@avytrix/nestjs-drizzle-crud", "nestjs-drizzle-crud-mcp"]
|
|
1191
1198
|
}
|
|
1192
1199
|
}
|
|
1193
1200
|
}
|
|
@@ -1204,7 +1211,7 @@ read-only and never touches your database. Full setup:
|
|
|
1204
1211
|
|
|
1205
1212
|
Use these facts instead of guessing.
|
|
1206
1213
|
|
|
1207
|
-
**Package:** `nestjs-drizzle-crud` · **Peers:** `@nestjs/common`, `@nestjs/core`, `drizzle-orm`, `reflect-metadata`; optional `postgres` (PG) /
|
|
1214
|
+
**Package:** `nestjs-drizzle-crud` · **Peers:** `@nestjs/common`, `@nestjs/core`, `drizzle-orm`, `reflect-metadata`; optional `postgres` (PG) / `@nestjs/swagger` (for `ApiCrudList`); `mysql2` is installed by you for MySQL, not a peer.
|
|
1208
1215
|
|
|
1209
1216
|
**Setup is two steps and no per-service connection wiring:**
|
|
1210
1217
|
1. `DrizzleCrudModule.forRoot({ dialect, connectionString | db, schema, defaults })` once in `AppModule`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Type } from "@nestjs/common";
|
|
1
|
+
import { type Type, type ValidationPipeOptions } from "@nestjs/common";
|
|
2
2
|
import type { SqlBaseCrudService } from "../core/abstract/sql-base-crud.service";
|
|
3
3
|
import type { ParseCrudQueryOptions } from "../core/interfaces/query.interface";
|
|
4
4
|
import { type ApiCrudSource } from "../openapi/api-crud.decorators";
|
|
@@ -14,6 +14,7 @@ export interface CrudControllerOptions {
|
|
|
14
14
|
create?: Type<unknown>;
|
|
15
15
|
update?: Type<unknown>;
|
|
16
16
|
};
|
|
17
|
+
validation?: ValidationPipeOptions;
|
|
17
18
|
query?: ParseCrudQueryOptions;
|
|
18
19
|
routes?: Partial<Record<CrudRouteName, boolean | CrudRouteOptions>>;
|
|
19
20
|
decorators?: MethodDecorator[];
|
|
@@ -10,12 +10,29 @@ const BULK_ROUTES = new Set([
|
|
|
10
10
|
"bulkDelete",
|
|
11
11
|
"bulkRestore",
|
|
12
12
|
]);
|
|
13
|
-
|
|
13
|
+
class BulkUpdateBodyPipe {
|
|
14
|
+
dto;
|
|
15
|
+
pipe;
|
|
16
|
+
constructor(dto, options) {
|
|
17
|
+
this.dto = dto;
|
|
18
|
+
this.pipe = new common_1.ValidationPipe(options);
|
|
19
|
+
}
|
|
20
|
+
async transform(body) {
|
|
21
|
+
if (!body?.data || typeof body.data !== "object")
|
|
22
|
+
return body;
|
|
23
|
+
const data = await this.pipe.transform(body.data, {
|
|
24
|
+
type: "body",
|
|
25
|
+
metatype: this.dto,
|
|
26
|
+
});
|
|
27
|
+
return { ...body, data };
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
async function idsOf(service, body) {
|
|
14
31
|
const ids = body?.ids;
|
|
15
32
|
if (!Array.isArray(ids) || ids.length === 0) {
|
|
16
33
|
throw new common_1.BadRequestException("ids must be a non-empty array");
|
|
17
34
|
}
|
|
18
|
-
return ids;
|
|
35
|
+
return Promise.all(ids.map((id) => service.parseId(id)));
|
|
19
36
|
}
|
|
20
37
|
function createCrudController(service, options = {}) {
|
|
21
38
|
const routeOptions = (name) => {
|
|
@@ -78,21 +95,21 @@ function createCrudController(service, options = {}) {
|
|
|
78
95
|
}
|
|
79
96
|
return this.service.massCreate(body, readOptions(this.service, query));
|
|
80
97
|
}
|
|
81
|
-
bulkUpdate(body, query) {
|
|
98
|
+
async bulkUpdate(body, query) {
|
|
82
99
|
if (!body?.data || typeof body.data !== "object") {
|
|
83
100
|
throw new common_1.BadRequestException("data must be an object");
|
|
84
101
|
}
|
|
85
|
-
return this.service.massUpdate(idsOf(body), body.data, readOptions(this.service, query));
|
|
102
|
+
return this.service.massUpdate(await idsOf(this.service, body), body.data, readOptions(this.service, query));
|
|
86
103
|
}
|
|
87
|
-
bulkDelete(body) {
|
|
88
|
-
const ids = idsOf(body);
|
|
104
|
+
async bulkDelete(body) {
|
|
105
|
+
const ids = await idsOf(this.service, body);
|
|
89
106
|
return options.deleteMode === "soft"
|
|
90
107
|
? this.service.massSoftDelete(ids)
|
|
91
108
|
: this.service.massDelete(ids);
|
|
92
109
|
}
|
|
93
|
-
bulkRestore(body, query) {
|
|
110
|
+
async bulkRestore(body, query) {
|
|
94
111
|
softDeleteOn(this.service);
|
|
95
|
-
return this.service.massRestore(idsOf(body), readOptions(this.service, query));
|
|
112
|
+
return this.service.massRestore(await idsOf(this.service, body), readOptions(this.service, query));
|
|
96
113
|
}
|
|
97
114
|
async get(rawId, query) {
|
|
98
115
|
const id = await this.id(rawId);
|
|
@@ -148,7 +165,10 @@ function createCrudController(service, options = {}) {
|
|
|
148
165
|
http: (0, common_1.Post)("bulk"),
|
|
149
166
|
params: [
|
|
150
167
|
options.dto?.create
|
|
151
|
-
? (0, common_1.Body)(new common_1.ParseArrayPipe({
|
|
168
|
+
? (0, common_1.Body)(new common_1.ParseArrayPipe({
|
|
169
|
+
...options.validation,
|
|
170
|
+
items: options.dto.create,
|
|
171
|
+
}))
|
|
152
172
|
: (0, common_1.Body)(),
|
|
153
173
|
(0, common_1.Query)(),
|
|
154
174
|
],
|
|
@@ -157,7 +177,12 @@ function createCrudController(service, options = {}) {
|
|
|
157
177
|
{
|
|
158
178
|
name: "bulkUpdate",
|
|
159
179
|
http: (0, common_1.Patch)("bulk"),
|
|
160
|
-
params: [
|
|
180
|
+
params: [
|
|
181
|
+
options.dto?.update
|
|
182
|
+
? (0, common_1.Body)(new BulkUpdateBodyPipe(options.dto.update, options.validation))
|
|
183
|
+
: (0, common_1.Body)(),
|
|
184
|
+
(0, common_1.Query)(),
|
|
185
|
+
],
|
|
161
186
|
types: [Object, Object],
|
|
162
187
|
extra: [(0, common_1.HttpCode)(200)],
|
|
163
188
|
},
|
|
@@ -227,19 +252,22 @@ function createCrudController(service, options = {}) {
|
|
|
227
252
|
configurable: true,
|
|
228
253
|
enumerable: false,
|
|
229
254
|
});
|
|
230
|
-
|
|
255
|
+
let descriptor = Object.getOwnPropertyDescriptor(proto, route.name);
|
|
231
256
|
route.params.forEach((decorate, index) => {
|
|
232
257
|
decorate(proto, route.name, index);
|
|
233
258
|
});
|
|
234
259
|
Reflect.defineMetadata("design:paramtypes", route.types, proto, route.name);
|
|
235
|
-
|
|
260
|
+
const decorators = [
|
|
236
261
|
route.http,
|
|
237
262
|
...(route.extra ?? []),
|
|
238
|
-
...(options.decorators ?? []),
|
|
239
263
|
...(settings.decorators ?? []),
|
|
240
|
-
|
|
241
|
-
|
|
264
|
+
...(options.decorators ?? []),
|
|
265
|
+
];
|
|
266
|
+
for (const decorate of decorators.reverse()) {
|
|
267
|
+
descriptor =
|
|
268
|
+
decorate(proto, route.name, descriptor) ?? descriptor;
|
|
242
269
|
}
|
|
270
|
+
Object.defineProperty(proto, route.name, descriptor);
|
|
243
271
|
}
|
|
244
272
|
for (const decorate of options.classDecorators ?? []) {
|
|
245
273
|
decorate(CrudController);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud-controller.factory.js","sourceRoot":"","sources":["../../src/controller/crud-controller.factory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crud-controller.factory.js","sourceRoot":"","sources":["../../src/controller/crud-controller.factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,8 @@ export declare abstract class SqlBaseCrudService<T extends Record<string, any>,
|
|
|
27
27
|
protected rowScope(options?: SqlOperationOptions): any[];
|
|
28
28
|
protected resolveScope(options?: SqlOperationOptions): CrudScopeValues | null;
|
|
29
29
|
protected scopeConditions(options?: SqlOperationOptions, table?: any): any[];
|
|
30
|
+
protected relatedRowScope(target: any, options?: SqlOperationOptions): any[];
|
|
31
|
+
protected relatedScopeConditions(target: any, options?: SqlOperationOptions): any[];
|
|
30
32
|
protected applyScopeToRow(row: Record<string, any>, options?: SqlOperationOptions): void;
|
|
31
33
|
protected softDeleteScope(options?: SqlOperationOptions): any | undefined;
|
|
32
34
|
protected managedColumns(operation: "create" | "update"): string[];
|
|
@@ -65,12 +67,12 @@ export declare abstract class SqlBaseCrudService<T extends Record<string, any>,
|
|
|
65
67
|
protected collectionOrderBy(relation: RelationConfig): any[];
|
|
66
68
|
protected softDeleteCondition(table: any): any | undefined;
|
|
67
69
|
protected relationProjection(table: any, wanted: string[], requiredKeys: string[]): Record<string, any> | undefined;
|
|
68
|
-
protected loadRelations(db: any, hosts: any[], nodes: RelationNode[], select?: SelectTree, hostTable?: any): Promise<void>;
|
|
69
|
-
protected loadBelongsTo(db: any, hosts: any[], node: RelationNode, select: SelectTree): Promise<void>;
|
|
70
|
-
protected loadHasMany(db: any, hosts: any[], node: RelationNode, select: SelectTree, hostTable?: any): Promise<void>;
|
|
71
|
-
protected loadManyToMany(db: any, hosts: any[], node: RelationNode, select: SelectTree, hostTable?: any): Promise<void>;
|
|
70
|
+
protected loadRelations(db: any, hosts: any[], nodes: RelationNode[], select?: SelectTree, hostTable?: any, options?: SqlOperationOptions): Promise<void>;
|
|
71
|
+
protected loadBelongsTo(db: any, hosts: any[], node: RelationNode, select: SelectTree, options?: SqlOperationOptions): Promise<void>;
|
|
72
|
+
protected loadHasMany(db: any, hosts: any[], node: RelationNode, select: SelectTree, hostTable?: any, options?: SqlOperationOptions): Promise<void>;
|
|
73
|
+
protected loadManyToMany(db: any, hosts: any[], node: RelationNode, select: SelectTree, hostTable?: any, options?: SqlOperationOptions): Promise<void>;
|
|
72
74
|
private groupCollection;
|
|
73
|
-
protected applyJoins(query: any, relationNames: string[]): any;
|
|
75
|
+
protected applyJoins(query: any, relationNames: string[], options?: SqlOperationOptions): any;
|
|
74
76
|
protected normalizeRelations(rows: any[], eager: string[]): any[];
|
|
75
77
|
protected buildOrderBy(sortBy?: SortInput, sortOrder?: SortOrder): any[];
|
|
76
78
|
protected orderOf(spec: SortSpec): any;
|
|
@@ -210,6 +212,9 @@ export declare abstract class SqlBaseCrudService<T extends Record<string, any>,
|
|
|
210
212
|
protected buildWhereConditions(filters?: any): any[];
|
|
211
213
|
private parseFlag;
|
|
212
214
|
private expectArray;
|
|
215
|
+
static readonly MAX_BATCH_PARAMETERS = 60000;
|
|
216
|
+
protected assertBatchSize(parameters: number): void;
|
|
217
|
+
protected insertParameters(rows: unknown[]): number;
|
|
213
218
|
private requirePostgres;
|
|
214
219
|
private patternCondition;
|
|
215
220
|
protected applyComplexFilter(conditions: any[], column: any, filterObj: any): void;
|