@angelps/prisma-query-builder 0.1.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.
- package/README.md +709 -0
- package/dist/adapters/index.d.ts +3 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +3 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/valibot.adapter.d.ts +14 -0
- package/dist/adapters/valibot.adapter.d.ts.map +1 -0
- package/dist/adapters/valibot.adapter.js +21 -0
- package/dist/adapters/valibot.adapter.js.map +1 -0
- package/dist/adapters/zod.adapter.d.ts +29 -0
- package/dist/adapters/zod.adapter.d.ts.map +1 -0
- package/dist/adapters/zod.adapter.js +42 -0
- package/dist/adapters/zod.adapter.js.map +1 -0
- package/dist/controllers/generic.controller.d.ts +79 -0
- package/dist/controllers/generic.controller.d.ts.map +1 -0
- package/dist/controllers/generic.controller.js +279 -0
- package/dist/controllers/generic.controller.js.map +1 -0
- package/dist/controllers/index.d.ts +2 -0
- package/dist/controllers/index.d.ts.map +1 -0
- package/dist/controllers/index.js +2 -0
- package/dist/controllers/index.js.map +1 -0
- package/dist/errors/app-errors.d.ts +17 -0
- package/dist/errors/app-errors.d.ts.map +1 -0
- package/dist/errors/app-errors.js +28 -0
- package/dist/errors/app-errors.js.map +1 -0
- package/dist/errors/error-messages.d.ts +80 -0
- package/dist/errors/error-messages.d.ts.map +1 -0
- package/dist/errors/error-messages.js +75 -0
- package/dist/errors/error-messages.js.map +1 -0
- package/dist/errors/index.d.ts +3 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +3 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/query-builder/helpers/order-by.helper.d.ts +4 -0
- package/dist/query-builder/helpers/order-by.helper.d.ts.map +1 -0
- package/dist/query-builder/helpers/order-by.helper.js +24 -0
- package/dist/query-builder/helpers/order-by.helper.js.map +1 -0
- package/dist/query-builder/helpers/pagination.helper.d.ts +6 -0
- package/dist/query-builder/helpers/pagination.helper.d.ts.map +1 -0
- package/dist/query-builder/helpers/pagination.helper.js +9 -0
- package/dist/query-builder/helpers/pagination.helper.js.map +1 -0
- package/dist/query-builder/helpers/where.helper.d.ts +5 -0
- package/dist/query-builder/helpers/where.helper.d.ts.map +1 -0
- package/dist/query-builder/helpers/where.helper.js +356 -0
- package/dist/query-builder/helpers/where.helper.js.map +1 -0
- package/dist/query-builder/index.d.ts +3 -0
- package/dist/query-builder/index.d.ts.map +1 -0
- package/dist/query-builder/index.js +3 -0
- package/dist/query-builder/index.js.map +1 -0
- package/dist/query-builder/query-builder.d.ts +56 -0
- package/dist/query-builder/query-builder.d.ts.map +1 -0
- package/dist/query-builder/query-builder.js +149 -0
- package/dist/query-builder/query-builder.js.map +1 -0
- package/dist/query-builder/query-builder.types.d.ts +83 -0
- package/dist/query-builder/query-builder.types.d.ts.map +1 -0
- package/dist/query-builder/query-builder.types.js +2 -0
- package/dist/query-builder/query-builder.types.js.map +1 -0
- package/dist/repositories/crud.repository.prisma.d.ts +44 -0
- package/dist/repositories/crud.repository.prisma.d.ts.map +1 -0
- package/dist/repositories/crud.repository.prisma.js +246 -0
- package/dist/repositories/crud.repository.prisma.js.map +1 -0
- package/dist/repositories/index.d.ts +2 -0
- package/dist/repositories/index.d.ts.map +1 -0
- package/dist/repositories/index.js +2 -0
- package/dist/repositories/index.js.map +1 -0
- package/dist/services/audit.service.d.ts +32 -0
- package/dist/services/audit.service.d.ts.map +1 -0
- package/dist/services/audit.service.js +57 -0
- package/dist/services/audit.service.js.map +1 -0
- package/dist/services/error-handler.service.d.ts +34 -0
- package/dist/services/error-handler.service.d.ts.map +1 -0
- package/dist/services/error-handler.service.js +159 -0
- package/dist/services/error-handler.service.js.map +1 -0
- package/dist/services/index.d.ts +3 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +3 -0
- package/dist/services/index.js.map +1 -0
- package/dist/types/crud-config.d.ts +20 -0
- package/dist/types/crud-config.d.ts.map +1 -0
- package/dist/types/crud-config.js +2 -0
- package/dist/types/crud-config.js.map +1 -0
- package/dist/types/generic-repository.d.ts +36 -0
- package/dist/types/generic-repository.d.ts.map +1 -0
- package/dist/types/generic-repository.js +2 -0
- package/dist/types/generic-repository.js.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/logger.d.ts +17 -0
- package/dist/types/logger.d.ts.map +1 -0
- package/dist/types/logger.js +8 -0
- package/dist/types/logger.js.map +1 -0
- package/dist/types/pagination.d.ts +11 -0
- package/dist/types/pagination.d.ts.map +1 -0
- package/dist/types/pagination.js +2 -0
- package/dist/types/pagination.js.map +1 -0
- package/dist/types/prisma-delegate.types.d.ts +36 -0
- package/dist/types/prisma-delegate.types.d.ts.map +1 -0
- package/dist/types/prisma-delegate.types.js +15 -0
- package/dist/types/prisma-delegate.types.js.map +1 -0
- package/dist/types/query-params.d.ts +40 -0
- package/dist/types/query-params.d.ts.map +1 -0
- package/dist/types/query-params.js +2 -0
- package/dist/types/query-params.js.map +1 -0
- package/dist/types/schema-adapter.d.ts +19 -0
- package/dist/types/schema-adapter.d.ts.map +1 -0
- package/dist/types/schema-adapter.js +2 -0
- package/dist/types/schema-adapter.js.map +1 -0
- package/dist/utils/date.utils.d.ts +13 -0
- package/dist/utils/date.utils.d.ts.map +1 -0
- package/dist/utils/date.utils.js +75 -0
- package/dist/utils/date.utils.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +4 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/phone.utils.d.ts +7 -0
- package/dist/utils/phone.utils.d.ts.map +1 -0
- package/dist/utils/phone.utils.js +15 -0
- package/dist/utils/phone.utils.js.map +1 -0
- package/dist/utils/response.utils.d.ts +5 -0
- package/dist/utils/response.utils.d.ts.map +1 -0
- package/dist/utils/response.utils.js +13 -0
- package/dist/utils/response.utils.js.map +1 -0
- package/package.json +49 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"where.helper.js","sourceRoot":"","sources":["../../../src/query-builder/helpers/where.helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/query-builder/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/query-builder/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { CrudConfig } from '../types/crud-config.js';
|
|
2
|
+
import type { PaginationModel } from '../types/pagination.js';
|
|
3
|
+
import type { QueryParams } from '../types/query-params.js';
|
|
4
|
+
import type { FindAllAndCountOptions, FindAllWithCursorOptions, CursorPaginationResult, QueryBuilderOptions, PrismaCrudDelegate } from './query-builder.types.js';
|
|
5
|
+
export declare class PrismaQueryBuilder<TResult, TWhere, TOrderBy> {
|
|
6
|
+
protected readonly config: CrudConfig<any>;
|
|
7
|
+
protected readonly options: QueryBuilderOptions<TResult>;
|
|
8
|
+
constructor(config?: CrudConfig<any>, options?: QueryBuilderOptions<TResult>);
|
|
9
|
+
/**
|
|
10
|
+
* Create a PrismaQueryBuilder with types inferred from the Prisma delegate.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* // Instead of:
|
|
15
|
+
* const qb = new PrismaQueryBuilder<User, Prisma.UserWhereInput, Prisma.UserOrderByWithRelationInput>(config, options);
|
|
16
|
+
*
|
|
17
|
+
* // You can write:
|
|
18
|
+
* const qb = PrismaQueryBuilder.from(prisma.user, config, options);
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
static from<D extends PrismaCrudDelegate<any, any, any>>(_delegate: D, config?: CrudConfig<any>, options?: QueryBuilderOptions<any>): PrismaQueryBuilder<Awaited<ReturnType<D['findMany']>> extends (infer T)[] ? T : never, D extends {
|
|
22
|
+
count(args: {
|
|
23
|
+
where?: infer W;
|
|
24
|
+
}): any;
|
|
25
|
+
} ? NonNullable<W> : never, any>;
|
|
26
|
+
findAllAndCount<TResult, TWhere, TOrderBy, TFindManyArgs extends Record<string, unknown>>(options: FindAllAndCountOptions<TResult, TWhere, TOrderBy, TFindManyArgs>): Promise<PaginationModel<TResult>>;
|
|
27
|
+
/**
|
|
28
|
+
* Paginate using cursor-based strategy (better for large datasets).
|
|
29
|
+
*
|
|
30
|
+
* Uses Prisma's native cursor pagination: fetches `take + 1` items to
|
|
31
|
+
* determine if there are more pages, then trims the extra item.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts
|
|
35
|
+
* const result = await qb.findAllWithCursor({
|
|
36
|
+
* delegate: prisma.user,
|
|
37
|
+
* queryParams: { cursor: 42, size: 10 },
|
|
38
|
+
* buildWhere: (p) => qb.buildWhere(p),
|
|
39
|
+
* });
|
|
40
|
+
* // { items, nextCursor, hasMore }
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
findAllWithCursor<TResult, TWhere, TOrderBy, TFindManyArgs extends Record<string, unknown>>(options: FindAllWithCursorOptions<TResult, TWhere, TOrderBy, TFindManyArgs>): Promise<CursorPaginationResult<TResult>>;
|
|
44
|
+
findAllWithoutPagination<TResult, TWhere, TOrderBy, TFindManyArgs extends Record<string, unknown>>(options: FindAllAndCountOptions<TResult, TWhere, TOrderBy, TFindManyArgs>): Promise<TResult[]>;
|
|
45
|
+
buildWhere(params: QueryParams, additionalWhere?: Record<string, unknown>): TWhere;
|
|
46
|
+
buildOrderBy(sort?: string): TOrderBy[] | undefined;
|
|
47
|
+
/**
|
|
48
|
+
* Build a Prisma `select` object from a comma-separated `fields` string.
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* buildSelect('id,name,email')
|
|
52
|
+
* // → { id: true, name: true, email: true }
|
|
53
|
+
*/
|
|
54
|
+
buildSelect(fields?: string): Record<string, true> | undefined;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=query-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/query-builder/query-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAI5D,OAAO,KAAK,EACV,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAElC,qBAAa,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ;IAErD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC;IAC1C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC;gBADrC,MAAM,GAAE,UAAU,CAAC,GAAG,CAAM,EAC5B,OAAO,GAAE,mBAAmB,CAAC,OAAO,CAAM;IAK/D;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACrD,SAAS,EAAE,CAAC,EACZ,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,EACxB,OAAO,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,GACjC,kBAAkB,CACnB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,EAClE,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAA;SAAE,GAAG,GAAG,CAAA;KAAE,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,KAAK,EAC5E,GAAG,CACJ;IAMK,eAAe,CACnB,OAAO,EACP,MAAM,EACN,QAAQ,EACR,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAE7C,OAAO,EAAE,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,GACxE,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IA8CpC;;;;;;;;;;;;;;;OAeG;IACG,iBAAiB,CACrB,OAAO,EACP,MAAM,EACN,QAAQ,EACR,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAE7C,OAAO,EAAE,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,GAC1E,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAsDrC,wBAAwB,CAC5B,OAAO,EACP,MAAM,EACN,QAAQ,EACR,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAE7C,OAAO,EAAE,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,GACxE,OAAO,CAAC,OAAO,EAAE,CAAC;IAoBrB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,eAAe,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,MAAM;IAItF,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,GAAG,SAAS;IAInD;;;;;;OAMG;IACH,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,SAAS;CAQ/D"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { parsePagination } from './helpers/pagination.helper.js';
|
|
2
|
+
import { buildWhereClause } from './helpers/where.helper.js';
|
|
3
|
+
import { buildOrderByClause } from './helpers/order-by.helper.js';
|
|
4
|
+
export class PrismaQueryBuilder {
|
|
5
|
+
config;
|
|
6
|
+
options;
|
|
7
|
+
constructor(config = {}, options = {}) {
|
|
8
|
+
this.config = config;
|
|
9
|
+
this.options = options;
|
|
10
|
+
}
|
|
11
|
+
// ─── Factory method for simplified generics ───────────────────────────
|
|
12
|
+
/**
|
|
13
|
+
* Create a PrismaQueryBuilder with types inferred from the Prisma delegate.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* // Instead of:
|
|
18
|
+
* const qb = new PrismaQueryBuilder<User, Prisma.UserWhereInput, Prisma.UserOrderByWithRelationInput>(config, options);
|
|
19
|
+
*
|
|
20
|
+
* // You can write:
|
|
21
|
+
* const qb = PrismaQueryBuilder.from(prisma.user, config, options);
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
static from(_delegate, config, options) {
|
|
25
|
+
return new PrismaQueryBuilder(config, options);
|
|
26
|
+
}
|
|
27
|
+
// ─── Paginated queries ────────────────────────────────────────────────
|
|
28
|
+
async findAllAndCount(options) {
|
|
29
|
+
const { delegate, queryParams = {}, pageDefault = 1, sizeDefault = 10, extraArgs, buildWhere, buildOrderBy, } = options;
|
|
30
|
+
const { page, size } = parsePagination(queryParams, pageDefault, sizeDefault);
|
|
31
|
+
const where = buildWhere(queryParams);
|
|
32
|
+
const orderBy = buildOrderBy ? buildOrderBy(queryParams.sort) : undefined;
|
|
33
|
+
const select = this.buildSelect(queryParams.fields);
|
|
34
|
+
const canApplySelect = select && !extraArgs?.['select'] && !extraArgs?.['include'];
|
|
35
|
+
const findManyArgs = {
|
|
36
|
+
...(extraArgs ?? {}),
|
|
37
|
+
...(canApplySelect ? { select } : {}),
|
|
38
|
+
where,
|
|
39
|
+
...(orderBy ? { orderBy } : {}),
|
|
40
|
+
skip: (page - 1) * size,
|
|
41
|
+
take: size,
|
|
42
|
+
};
|
|
43
|
+
const [items, count] = await Promise.all([
|
|
44
|
+
delegate.findMany(findManyArgs),
|
|
45
|
+
delegate.count({ where }),
|
|
46
|
+
]);
|
|
47
|
+
return {
|
|
48
|
+
items,
|
|
49
|
+
pagination: {
|
|
50
|
+
count,
|
|
51
|
+
pages: Math.ceil(count / size),
|
|
52
|
+
size,
|
|
53
|
+
current: page,
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
// ─── Cursor-based pagination ──────────────────────────────────────────
|
|
58
|
+
/**
|
|
59
|
+
* Paginate using cursor-based strategy (better for large datasets).
|
|
60
|
+
*
|
|
61
|
+
* Uses Prisma's native cursor pagination: fetches `take + 1` items to
|
|
62
|
+
* determine if there are more pages, then trims the extra item.
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```ts
|
|
66
|
+
* const result = await qb.findAllWithCursor({
|
|
67
|
+
* delegate: prisma.user,
|
|
68
|
+
* queryParams: { cursor: 42, size: 10 },
|
|
69
|
+
* buildWhere: (p) => qb.buildWhere(p),
|
|
70
|
+
* });
|
|
71
|
+
* // { items, nextCursor, hasMore }
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
async findAllWithCursor(options) {
|
|
75
|
+
const { delegate, queryParams = {}, sizeDefault = 10, cursorField = 'id', extraArgs, buildWhere, buildOrderBy, } = options;
|
|
76
|
+
const rawSize = queryParams.size
|
|
77
|
+
? parseInt(String(queryParams.size), 10)
|
|
78
|
+
: sizeDefault;
|
|
79
|
+
const size = Number.isFinite(rawSize) && rawSize > 0 ? rawSize : sizeDefault;
|
|
80
|
+
const where = buildWhere(queryParams);
|
|
81
|
+
const orderBy = buildOrderBy ? buildOrderBy(queryParams.sort) : undefined;
|
|
82
|
+
const select = this.buildSelect(queryParams.fields);
|
|
83
|
+
const canApplySelect = select && !extraArgs?.['select'] && !extraArgs?.['include'];
|
|
84
|
+
const cursorValue = queryParams.cursor;
|
|
85
|
+
const cursorId = cursorValue !== undefined ? Number(cursorValue) : undefined;
|
|
86
|
+
const findManyArgs = {
|
|
87
|
+
...(extraArgs ?? {}),
|
|
88
|
+
...(canApplySelect ? { select } : {}),
|
|
89
|
+
where,
|
|
90
|
+
...(orderBy ? { orderBy } : {}),
|
|
91
|
+
take: size + 1, // fetch one extra to check hasMore
|
|
92
|
+
...(cursorId !== undefined && !Number.isNaN(cursorId)
|
|
93
|
+
? {
|
|
94
|
+
cursor: { [cursorField]: cursorId },
|
|
95
|
+
skip: 1, // skip the cursor item itself
|
|
96
|
+
}
|
|
97
|
+
: {}),
|
|
98
|
+
};
|
|
99
|
+
const items = await delegate.findMany(findManyArgs);
|
|
100
|
+
const hasMore = items.length > size;
|
|
101
|
+
const trimmed = hasMore ? items.slice(0, size) : items;
|
|
102
|
+
const lastItem = trimmed[trimmed.length - 1];
|
|
103
|
+
const nextCursor = hasMore && lastItem ? lastItem[cursorField] : null;
|
|
104
|
+
return {
|
|
105
|
+
items: trimmed,
|
|
106
|
+
nextCursor,
|
|
107
|
+
hasMore,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
// ─── Unpaginated queries ──────────────────────────────────────────────
|
|
111
|
+
async findAllWithoutPagination(options) {
|
|
112
|
+
const { delegate, queryParams = {}, extraArgs, buildWhere, buildOrderBy } = options;
|
|
113
|
+
const where = buildWhere(queryParams);
|
|
114
|
+
const orderBy = buildOrderBy ? buildOrderBy(queryParams.sort) : undefined;
|
|
115
|
+
const select = this.buildSelect(queryParams.fields);
|
|
116
|
+
const canApplySelect = select && !extraArgs?.['select'] && !extraArgs?.['include'];
|
|
117
|
+
const findManyArgs = {
|
|
118
|
+
...(extraArgs ?? {}),
|
|
119
|
+
...(canApplySelect ? { select } : {}),
|
|
120
|
+
where,
|
|
121
|
+
...(orderBy ? { orderBy } : {}),
|
|
122
|
+
};
|
|
123
|
+
return delegate.findMany(findManyArgs);
|
|
124
|
+
}
|
|
125
|
+
// ─── Builder helpers ──────────────────────────────────────────────────
|
|
126
|
+
buildWhere(params, additionalWhere = {}) {
|
|
127
|
+
return buildWhereClause(params, this.options, this.config, additionalWhere);
|
|
128
|
+
}
|
|
129
|
+
buildOrderBy(sort) {
|
|
130
|
+
return buildOrderByClause(sort, this.options, this.config);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Build a Prisma `select` object from a comma-separated `fields` string.
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* buildSelect('id,name,email')
|
|
137
|
+
* // → { id: true, name: true, email: true }
|
|
138
|
+
*/
|
|
139
|
+
buildSelect(fields) {
|
|
140
|
+
if (!fields || typeof fields !== 'string' || fields.trim() === '')
|
|
141
|
+
return undefined;
|
|
142
|
+
const select = {};
|
|
143
|
+
for (const field of fields.split(',').map((f) => f.trim()).filter(Boolean)) {
|
|
144
|
+
select[field] = true;
|
|
145
|
+
}
|
|
146
|
+
return Object.keys(select).length > 0 ? select : undefined;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=query-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../src/query-builder/query-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { QueryParams } from '../types/query-params.js';
|
|
2
|
+
export interface PrismaCrudDelegate<TResult, TWhere, TFindManyArgs> {
|
|
3
|
+
findMany(args: TFindManyArgs): Promise<TResult[]>;
|
|
4
|
+
count(args: {
|
|
5
|
+
where?: TWhere;
|
|
6
|
+
}): Promise<number>;
|
|
7
|
+
findUnique?(args: {
|
|
8
|
+
where: TWhere;
|
|
9
|
+
}): Promise<TResult | null>;
|
|
10
|
+
findFirst?(args: {
|
|
11
|
+
where: TWhere;
|
|
12
|
+
}): Promise<TResult | null>;
|
|
13
|
+
create(args: {
|
|
14
|
+
data: any;
|
|
15
|
+
}): Promise<TResult>;
|
|
16
|
+
update(args: {
|
|
17
|
+
where: TWhere;
|
|
18
|
+
data: any;
|
|
19
|
+
}): Promise<TResult>;
|
|
20
|
+
delete?(args: {
|
|
21
|
+
where: TWhere;
|
|
22
|
+
}): Promise<TResult>;
|
|
23
|
+
createMany?(args: {
|
|
24
|
+
data: any;
|
|
25
|
+
skipDuplicates?: boolean;
|
|
26
|
+
}): Promise<{
|
|
27
|
+
count: number;
|
|
28
|
+
}>;
|
|
29
|
+
updateMany?(args: {
|
|
30
|
+
where: TWhere;
|
|
31
|
+
data: any;
|
|
32
|
+
}): Promise<{
|
|
33
|
+
count: number;
|
|
34
|
+
}>;
|
|
35
|
+
deleteMany?(args: {
|
|
36
|
+
where: TWhere;
|
|
37
|
+
}): Promise<{
|
|
38
|
+
count: number;
|
|
39
|
+
}>;
|
|
40
|
+
upsert?(args: {
|
|
41
|
+
where: TWhere;
|
|
42
|
+
create: any;
|
|
43
|
+
update: any;
|
|
44
|
+
}): Promise<TResult>;
|
|
45
|
+
}
|
|
46
|
+
export type FindAllAndCountOptions<TResult, TWhere, TOrderBy, TFindManyArgs> = {
|
|
47
|
+
delegate: PrismaCrudDelegate<TResult, TWhere, TFindManyArgs>;
|
|
48
|
+
queryParams?: QueryParams;
|
|
49
|
+
pageDefault?: number;
|
|
50
|
+
sizeDefault?: number;
|
|
51
|
+
buildWhere: (params: QueryParams) => TWhere;
|
|
52
|
+
buildOrderBy?: (sort?: string) => TOrderBy[] | undefined;
|
|
53
|
+
extraArgs?: Omit<TFindManyArgs, 'where' | 'orderBy' | 'skip' | 'take'>;
|
|
54
|
+
};
|
|
55
|
+
/** Result type for cursor-based pagination. */
|
|
56
|
+
export type CursorPaginationResult<TResult> = {
|
|
57
|
+
items: TResult[];
|
|
58
|
+
nextCursor: string | number | null;
|
|
59
|
+
hasMore: boolean;
|
|
60
|
+
};
|
|
61
|
+
export type FindAllWithCursorOptions<TResult, TWhere, TOrderBy, TFindManyArgs> = {
|
|
62
|
+
delegate: PrismaCrudDelegate<TResult, TWhere, TFindManyArgs>;
|
|
63
|
+
queryParams?: QueryParams;
|
|
64
|
+
sizeDefault?: number;
|
|
65
|
+
cursorField?: string;
|
|
66
|
+
buildWhere: (params: QueryParams) => TWhere;
|
|
67
|
+
buildOrderBy?: (sort?: string) => TOrderBy[] | undefined;
|
|
68
|
+
extraArgs?: Omit<TFindManyArgs, 'where' | 'orderBy' | 'skip' | 'take' | 'cursor'>;
|
|
69
|
+
};
|
|
70
|
+
export interface QueryBuilderOptions<TResult> {
|
|
71
|
+
filterableFields?: (keyof TResult)[];
|
|
72
|
+
likeFields?: (keyof TResult)[];
|
|
73
|
+
notLikeFields?: (keyof TResult)[];
|
|
74
|
+
sortableFields?: (keyof TResult)[];
|
|
75
|
+
searchDateFields?: (keyof TResult)[];
|
|
76
|
+
operationFields?: (keyof TResult)[];
|
|
77
|
+
omitFields?: (keyof TResult)[];
|
|
78
|
+
orderBy?: {
|
|
79
|
+
field: string;
|
|
80
|
+
direction: 'asc' | 'desc';
|
|
81
|
+
}[];
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=query-builder.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-builder.types.d.ts","sourceRoot":"","sources":["../../src/query-builder/query-builder.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-builder.types.js","sourceRoot":"","sources":["../../src/query-builder/query-builder.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { PrismaQueryBuilder } from "../query-builder/query-builder.js";
|
|
2
|
+
import { PrismaCrudDelegate, QueryBuilderOptions } from "../query-builder/query-builder.types.js";
|
|
3
|
+
import { PaginationModel } from "../types/pagination.js";
|
|
4
|
+
import { QueryParams } from "../types/query-params.js";
|
|
5
|
+
import { FindByIdOptions, RepositoryOptions } from "../types/generic-repository.js";
|
|
6
|
+
import { CrudConfig } from "../types/crud-config.js";
|
|
7
|
+
import type { SchemaAdapter } from "../types/schema-adapter.js";
|
|
8
|
+
export type CrudRepositoryExtras = {
|
|
9
|
+
/** Custom schema adapter (defaults to ValibotAdapter). */
|
|
10
|
+
schemaAdapter?: SchemaAdapter;
|
|
11
|
+
};
|
|
12
|
+
export declare class CrudRepository<TResult, TWhere, TOrderBy, TFindManyArgs extends Record<string, unknown>, TGroupByArgs = any> {
|
|
13
|
+
protected readonly delegate: PrismaCrudDelegate<TResult, TWhere, TFindManyArgs>;
|
|
14
|
+
protected readonly config: CrudConfig<TFindManyArgs>;
|
|
15
|
+
protected readonly queryOptions: QueryBuilderOptions<TResult>;
|
|
16
|
+
protected createSchema: unknown;
|
|
17
|
+
protected updateSchema: unknown;
|
|
18
|
+
protected readonly qb: PrismaQueryBuilder<TResult, TWhere, TOrderBy>;
|
|
19
|
+
protected readonly schemaAdapter: SchemaAdapter;
|
|
20
|
+
constructor(delegate: PrismaCrudDelegate<TResult, TWhere, TFindManyArgs>, config?: CrudConfig<TFindManyArgs>, queryOptions?: QueryBuilderOptions<TResult>, extras?: CrudRepositoryExtras);
|
|
21
|
+
findAll(queryParams?: QueryParams): Promise<PaginationModel<TResult>>;
|
|
22
|
+
findById(id: number, options?: FindByIdOptions): Promise<TResult | null>;
|
|
23
|
+
findOne(whereInput: Partial<TResult>, options?: RepositoryOptions): Promise<TResult | null>;
|
|
24
|
+
create(data: unknown, options?: RepositoryOptions): Promise<TResult>;
|
|
25
|
+
update(id: number, data: unknown, options?: RepositoryOptions): Promise<void>;
|
|
26
|
+
delete(id: number, options?: RepositoryOptions): Promise<void>;
|
|
27
|
+
createMany(data: unknown[], options?: RepositoryOptions): Promise<{
|
|
28
|
+
count: number;
|
|
29
|
+
}>;
|
|
30
|
+
updateMany(ids: number[], data: unknown, options?: RepositoryOptions): Promise<{
|
|
31
|
+
count: number;
|
|
32
|
+
}>;
|
|
33
|
+
deleteMany(ids: number[], options?: RepositoryOptions): Promise<{
|
|
34
|
+
count: number;
|
|
35
|
+
}>;
|
|
36
|
+
upsert(data: unknown, options?: RepositoryOptions): Promise<TResult>;
|
|
37
|
+
/**
|
|
38
|
+
* Override in subclasses to transform validated data before it reaches
|
|
39
|
+
* the Prisma delegate. Common use case: convert string dates to Date objects
|
|
40
|
+
* for @db.Date / @db.Time fields.
|
|
41
|
+
*/
|
|
42
|
+
protected transformData(data: Record<string, unknown>): Record<string, unknown>;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=crud.repository.prisma.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crud.repository.prisma.d.ts","sourceRoot":"","sources":["../../src/repositories/crud.repository.prisma.ts"],"names":[],"mappings":"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"}
|