vsrepo 2.1.0 → 2.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.
- package/README.md +54 -10
- package/README.pt-BR.md +54 -10
- package/dist/VSRepoAdapter.js +1 -0
- package/dist/VSRepoAdapter.js.map +1 -0
- package/dist/VSRepository.d.ts +9 -6
- package/dist/VSRepository.js +14 -1
- package/dist/VSRepository.js.map +1 -0
- package/dist/decorators/dynamic-method.decorator.js +1 -0
- package/dist/decorators/dynamic-method.decorator.js.map +1 -0
- package/dist/decorators/query-method.decorator.d.ts +26 -3
- package/dist/decorators/query-method.decorator.js +26 -2
- package/dist/decorators/query-method.decorator.js.map +1 -0
- package/dist/errors/VSRepoAdapterError.js +1 -0
- package/dist/errors/VSRepoAdapterError.js.map +1 -0
- package/dist/errors/VSRepoError.js +1 -0
- package/dist/errors/VSRepoError.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -0
- package/dist/internal/constants/debug-arg-symbol.constant.js +1 -0
- package/dist/internal/constants/debug-arg-symbol.constant.js.map +1 -0
- package/dist/internal/constants/dynamic-methods-key.constant.js +1 -0
- package/dist/internal/constants/dynamic-methods-key.constant.js.map +1 -0
- package/dist/internal/constants/query-methods-key.constant.js +1 -0
- package/dist/internal/constants/query-methods-key.constant.js.map +1 -0
- package/dist/internal/enums/adapter-error-code.enum.js +1 -0
- package/dist/internal/enums/adapter-error-code.enum.js.map +1 -0
- package/dist/internal/enums/transaction-isolation-level.enum.js +1 -0
- package/dist/internal/enums/transaction-isolation-level.enum.js.map +1 -0
- package/dist/internal/enums/vs-log-level.enum.js +1 -0
- package/dist/internal/enums/vs-log-level.enum.js.map +1 -0
- package/dist/internal/enums/vsrepo-error-type.enum.d.ts +1 -1
- package/dist/internal/enums/vsrepo-error-type.enum.js +2 -1
- package/dist/internal/enums/vsrepo-error-type.enum.js.map +1 -0
- package/dist/internal/resolvers/dynamic-methods.resolver.js +33 -6
- package/dist/internal/resolvers/dynamic-methods.resolver.js.map +1 -0
- package/dist/internal/resolvers/merge-wheres.resolver.js +1 -0
- package/dist/internal/resolvers/merge-wheres.resolver.js.map +1 -0
- package/dist/internal/utils/db-arg.util.d.ts +15 -0
- package/dist/internal/utils/db-arg.util.js +23 -0
- package/dist/internal/utils/db-arg.util.js.map +1 -0
- package/dist/internal/utils/uncapitalize.util.js +1 -0
- package/dist/internal/utils/uncapitalize.util.js.map +1 -0
- package/dist/internal/utils/vs-logger.util.js +1 -0
- package/dist/internal/utils/vs-logger.util.js.map +1 -0
- package/dist/internal/utils/with-db.util.d.ts +19 -0
- package/dist/internal/utils/with-db.util.js +24 -0
- package/dist/internal/utils/with-db.util.js.map +1 -0
- package/dist/internal/validators/decorators.validator.js +3 -0
- package/dist/internal/validators/decorators.validator.js.map +1 -0
- package/dist/internal/validators/schemas/ordering.schema.js +1 -0
- package/dist/internal/validators/schemas/ordering.schema.js.map +1 -0
- package/dist/internal/validators/schemas/pagination.schema.js +1 -0
- package/dist/internal/validators/schemas/pagination.schema.js.map +1 -0
- package/dist/internal/validators/schemas/where.schema.js +1 -0
- package/dist/internal/validators/schemas/where.schema.js.map +1 -0
- package/dist/internal/validators/vsrepo.validator.d.ts +1 -1
- package/dist/internal/validators/vsrepo.validator.js +2 -0
- package/dist/internal/validators/vsrepo.validator.js.map +1 -0
- package/dist/types/adapter/adapter-method-options.type.js +1 -0
- package/dist/types/adapter/adapter-method-options.type.js.map +1 -0
- package/dist/types/adapter/adapter-query-options.type.js +1 -0
- package/dist/types/adapter/adapter-query-options.type.js.map +1 -0
- package/dist/types/decorators/dynamic-method-options.type.js +1 -0
- package/dist/types/decorators/dynamic-method-options.type.js.map +1 -0
- package/dist/types/decorators/query-method-options.type.d.ts +35 -1
- package/dist/types/decorators/query-method-options.type.js +1 -0
- package/dist/types/decorators/query-method-options.type.js.map +1 -0
- package/dist/types/dynamic-methods/dynamic-method-customization.type.js +1 -0
- package/dist/types/dynamic-methods/dynamic-method-customization.type.js.map +1 -0
- package/dist/types/dynamic-methods/dynamic-method-info.type.js +1 -0
- package/dist/types/dynamic-methods/dynamic-method-info.type.js.map +1 -0
- package/dist/types/dynamic-methods/dynamic-method-where-ops.type.js +1 -0
- package/dist/types/dynamic-methods/dynamic-method-where-ops.type.js.map +1 -0
- package/dist/types/utils/count-result.type.js +1 -0
- package/dist/types/utils/count-result.type.js.map +1 -0
- package/dist/types/utils/decimal-like.type.js +1 -0
- package/dist/types/utils/decimal-like.type.js.map +1 -0
- package/dist/types/utils/deep-partial.type.js +1 -0
- package/dist/types/utils/deep-partial.type.js.map +1 -0
- package/dist/types/utils/keys-of-type.type.js +1 -0
- package/dist/types/utils/keys-of-type.type.js.map +1 -0
- package/dist/types/utils/methods-options.type.js +1 -0
- package/dist/types/utils/methods-options.type.js.map +1 -0
- package/dist/types/utils/numeric-keys.type.js +1 -0
- package/dist/types/utils/numeric-keys.type.js.map +1 -0
- package/dist/types/utils/numeric-like.type.js +1 -0
- package/dist/types/utils/numeric-like.type.js.map +1 -0
- package/dist/types/utils/ordering.type.js +1 -0
- package/dist/types/utils/ordering.type.js.map +1 -0
- package/dist/types/utils/pagination.type.js +1 -0
- package/dist/types/utils/pagination.type.js.map +1 -0
- package/dist/types/utils/perform-data.type.js +1 -0
- package/dist/types/utils/perform-data.type.js.map +1 -0
- package/dist/types/utils/primitive.type.js +1 -0
- package/dist/types/utils/primitive.type.js.map +1 -0
- package/dist/types/utils/query-args.type.d.ts +30 -0
- package/dist/types/utils/query-args.type.js +3 -0
- package/dist/types/utils/query-args.type.js.map +1 -0
- package/dist/types/utils/query-method-arg.type.d.ts +3 -2
- package/dist/types/utils/query-method-arg.type.js +1 -0
- package/dist/types/utils/query-method-arg.type.js.map +1 -0
- package/dist/types/utils/restrict-method-options.type.js +1 -0
- package/dist/types/utils/restrict-method-options.type.js.map +1 -0
- package/dist/types/utils/see-mode.type.js +1 -0
- package/dist/types/utils/see-mode.type.js.map +1 -0
- package/dist/types/vsrepo/vsrepo-args.type.js +1 -0
- package/dist/types/vsrepo/vsrepo-args.type.js.map +1 -0
- package/dist/types/vsrepo/vsrepo-method.type.js +1 -0
- package/dist/types/vsrepo/vsrepo-method.type.js.map +1 -0
- package/dist/types/vsrepo/vsrepo-options.type.js +1 -0
- package/dist/types/vsrepo/vsrepo-options.type.js.map +1 -0
- package/dist/types/vsrepo/vsrepo-orm-types.type.js +1 -0
- package/dist/types/vsrepo/vsrepo-orm-types.type.js.map +1 -0
- package/dist/types/vsrepo/vsrepo-pretty-where.type.js +1 -0
- package/dist/types/vsrepo/vsrepo-pretty-where.type.js.map +1 -0
- package/dist/types/vsrepo/vsrepo-query-options.type.d.ts +14 -0
- package/dist/types/vsrepo/vsrepo-query-options.type.js +1 -0
- package/dist/types/vsrepo/vsrepo-query-options.type.js.map +1 -0
- package/dist/types/vsrepo/vsrepo-query.type.js +1 -0
- package/dist/types/vsrepo/vsrepo-query.type.js.map +1 -0
- package/dist/types/vsrepo/vsrepo-relations.type.js +1 -0
- package/dist/types/vsrepo/vsrepo-relations.type.js.map +1 -0
- package/dist/types/vsrepo/vsrepo-resolve-args-data.type.js +1 -0
- package/dist/types/vsrepo/vsrepo-resolve-args-data.type.js.map +1 -0
- package/dist/types/vsrepo/vsrepo-select.type.js +1 -0
- package/dist/types/vsrepo/vsrepo-select.type.js.map +1 -0
- package/dist/types/vsrepo/vsrepo-transaction-options.type.js +1 -0
- package/dist/types/vsrepo/vsrepo-transaction-options.type.js.map +1 -0
- package/dist/types/vsrepo/vsrepo-ugly-where.type.js +1 -0
- package/dist/types/vsrepo/vsrepo-ugly-where.type.js.map +1 -0
- package/dist/types/vsrepo/vsrepo-where.type.js +1 -0
- package/dist/types/vsrepo/vsrepo-where.type.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.type.js","sourceRoot":"","sources":["../../../src/types/utils/pagination.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"perform-data.type.js","sourceRoot":"","sources":["../../../src/types/utils/perform-data.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitive.type.js","sourceRoot":"","sources":["../../../src/types/utils/primitive.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { DbArg } from "../../internal/utils/db-arg.util";
|
|
2
|
+
import { VSRepoOrmTypes } from "../vsrepo/vsrepo-orm-types.type";
|
|
3
|
+
/**
|
|
4
|
+
* Types the parameter list of a `@QueryMethod` declared with
|
|
5
|
+
* `{ spreadArgs: true }`: the SQL placeholder values (`T`), in order,
|
|
6
|
+
* followed by an optional trailing {@link DbArg} — built via {@link withDb} —
|
|
7
|
+
* to run the query against a specific client or transaction instead of the
|
|
8
|
+
* repository's default one.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* class UserRepository extends VSRepository<User, string> {
|
|
13
|
+
* @QueryMethod('SELECT * FROM "user" WHERE email = $1 AND "userType" = $2', {
|
|
14
|
+
* spreadArgs: true,
|
|
15
|
+
* })
|
|
16
|
+
* declare findByEmailAndType: (
|
|
17
|
+
* ...args: QueryArgs<[email: string, userType: string]>
|
|
18
|
+
* ) => Promise<User[]>;
|
|
19
|
+
* }
|
|
20
|
+
*
|
|
21
|
+
* await userRepository.findByEmailAndType("joao@email.com", "admin");
|
|
22
|
+
* await userRepository.findByEmailAndType("joao@email.com", "admin", withDb(tx));
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @publicApi
|
|
26
|
+
*/
|
|
27
|
+
export type QueryArgs<T extends Array<any> = [], O extends VSRepoOrmTypes = VSRepoOrmTypes> = [
|
|
28
|
+
...T,
|
|
29
|
+
db?: DbArg<O>
|
|
30
|
+
];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-args.type.js","sourceRoot":"","sources":["../../../src/types/utils/query-args.type.ts"],"names":[],"mappings":""}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { VSRepoOrmTypes } from "../vsrepo/vsrepo-orm-types.type";
|
|
1
2
|
/**
|
|
2
3
|
* Single argument accepted by a method declared with `@QueryMethod`.
|
|
3
4
|
*
|
|
@@ -19,9 +20,9 @@
|
|
|
19
20
|
*
|
|
20
21
|
* @publicApi
|
|
21
22
|
*/
|
|
22
|
-
export type QueryMethodArg<T extends Array<any
|
|
23
|
+
export type QueryMethodArg<T extends Array<any> = [], O extends VSRepoOrmTypes = VSRepoOrmTypes> = {
|
|
23
24
|
/** Positional parameters injected into the SQL placeholders (`$1`, `$2`, ...). */
|
|
24
25
|
args?: T;
|
|
25
26
|
/** Database client or transaction to run this query in, instead of the repository's default client. */
|
|
26
|
-
db?:
|
|
27
|
+
db?: O["dbClient"] | O["dbTransaction"];
|
|
27
28
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-method-arg.type.js","sourceRoot":"","sources":["../../../src/types/utils/query-method-arg.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restrict-method-options.type.js","sourceRoot":"","sources":["../../../src/types/utils/restrict-method-options.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"see-mode.type.js","sourceRoot":"","sources":["../../../src/types/utils/see-mode.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vsrepo-args.type.js","sourceRoot":"","sources":["../../../src/types/vsrepo/vsrepo-args.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vsrepo-method.type.js","sourceRoot":"","sources":["../../../src/types/vsrepo/vsrepo-method.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vsrepo-options.type.js","sourceRoot":"","sources":["../../../src/types/vsrepo/vsrepo-options.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vsrepo-orm-types.type.js","sourceRoot":"","sources":["../../../src/types/vsrepo/vsrepo-orm-types.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vsrepo-pretty-where.type.js","sourceRoot":"","sources":["../../../src/types/vsrepo/vsrepo-pretty-where.type.ts"],"names":[],"mappings":""}
|
|
@@ -14,4 +14,18 @@ export type VSRepoQueryOptions<T extends VSRepoOrmTypes = VSRepoOrmTypes> = {
|
|
|
14
14
|
* @default false
|
|
15
15
|
*/
|
|
16
16
|
modifying?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* When `true`, the array returned by the underlying query is collapsed
|
|
19
|
+
* into its first element (`null` if the array is empty) before
|
|
20
|
+
* being resolved to the caller. Has no effect when the query resolves
|
|
21
|
+
* to something other than an array (e.g. a `modifying` query's
|
|
22
|
+
* affected-row count).
|
|
23
|
+
*
|
|
24
|
+
* Useful for queries you already know return at most one row (e.g. a
|
|
25
|
+
* `SELECT ... LIMIT 1` or a lookup by a unique column), where declaring
|
|
26
|
+
* the return type as an array would be misleading.
|
|
27
|
+
*
|
|
28
|
+
* @default false
|
|
29
|
+
*/
|
|
30
|
+
singleResult?: boolean;
|
|
17
31
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vsrepo-query-options.type.js","sourceRoot":"","sources":["../../../src/types/vsrepo/vsrepo-query-options.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vsrepo-query.type.js","sourceRoot":"","sources":["../../../src/types/vsrepo/vsrepo-query.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vsrepo-relations.type.js","sourceRoot":"","sources":["../../../src/types/vsrepo/vsrepo-relations.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vsrepo-resolve-args-data.type.js","sourceRoot":"","sources":["../../../src/types/vsrepo/vsrepo-resolve-args-data.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vsrepo-select.type.js","sourceRoot":"","sources":["../../../src/types/vsrepo/vsrepo-select.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vsrepo-transaction-options.type.js","sourceRoot":"","sources":["../../../src/types/vsrepo/vsrepo-transaction-options.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vsrepo-ugly-where.type.js","sourceRoot":"","sources":["../../../src/types/vsrepo/vsrepo-ugly-where.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vsrepo-where.type.js","sourceRoot":"","sources":["../../../src/types/vsrepo/vsrepo-where.type.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vsrepo",
|
|
3
|
-
"version": "2.1
|
|
3
|
+
"version": "2.2.1",
|
|
4
4
|
"description": "ORM-agnostic repository pattern library with full TypeScript support and automatic type inference.",
|
|
5
5
|
"homepage": "https://github.com/jaobrabo123/VSRepository#readme",
|
|
6
6
|
"repository": {
|