uql-orm 0.22.0 → 0.24.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/README.md +4 -4
- package/dist/browser/uql-browser.min.js.map +3 -3
- package/dist/dialect/abstractSqlDialect.d.ts +14 -1
- package/dist/dialect/abstractSqlDialect.js +21 -14
- package/dist/dialect/mysqlLikeSqlDialect.d.ts +11 -1
- package/dist/dialect/mysqlLikeSqlDialect.js +25 -0
- package/dist/dialect/pgLikeSqlDialect.d.ts +4 -7
- package/dist/dialect/pgLikeSqlDialect.js +7 -12
- package/dist/entity/decorator/bag.d.ts +35 -0
- package/dist/entity/decorator/bag.js +54 -0
- package/dist/entity/decorator/entity.d.ts +28 -2
- package/dist/entity/decorator/entity.js +40 -2
- package/dist/entity/decorator/members.d.ts +51 -0
- package/dist/entity/decorator/members.js +51 -0
- package/dist/entity/index.d.ts +3 -1
- package/dist/entity/index.js +3 -1
- package/dist/entity/metadata/definition.d.ts +23 -9
- package/dist/entity/metadata/definition.js +55 -100
- package/dist/http/contract.js +1 -2
- package/dist/http/handler.js +5 -26
- package/dist/http/query.js +1 -1
- package/dist/migrate/acquireQuerierForMigrations.d.ts +13 -1
- package/dist/migrate/acquireQuerierForMigrations.js +28 -0
- package/dist/migrate/cli-config.js +24 -8
- package/dist/migrate/cli.js +5 -1
- package/dist/migrate/codegen/entityCodeGenerator.js +3 -4
- package/dist/migrate/codegen/index.d.ts +0 -1
- package/dist/migrate/codegen/index.js +0 -2
- package/dist/migrate/drift/driftDetector.d.ts +10 -1
- package/dist/migrate/drift/driftDetector.js +22 -5
- package/dist/migrate/introspection/abstractSqlSchemaIntrospector.d.ts +5 -1
- package/dist/migrate/introspection/abstractSqlSchemaIntrospector.js +17 -27
- package/dist/migrate/introspection/mongoIntrospector.js +7 -13
- package/dist/migrate/migrator.js +44 -81
- package/dist/migrate/storage/databaseStorage.d.ts +2 -0
- package/dist/migrate/storage/databaseStorage.js +8 -23
- package/dist/mongo/mongodbQuerier.js +171 -229
- package/dist/nestjs/uqlContextInterceptor.js +58 -22
- package/dist/nestjs/uqlModule.d.ts +2 -11
- package/dist/nestjs/uqlModule.js +93 -44
- package/dist/postgres/postgresDialect.js +2 -2
- package/dist/querier/abstractQuerier.d.ts +28 -0
- package/dist/querier/abstractQuerier.js +47 -22
- package/dist/querier/abstractQuerierPool.d.ts +21 -1
- package/dist/querier/abstractQuerierPool.js +113 -3
- package/dist/querier/abstractSqlQuerier.d.ts +1 -3
- package/dist/querier/abstractSqlQuerier.js +51 -96
- package/dist/querier/index.d.ts +3 -1
- package/dist/querier/index.js +3 -1
- package/dist/querier/querierContext.browser.d.ts +12 -0
- package/dist/querier/querierContext.browser.js +18 -0
- package/dist/querier/querierContext.d.ts +22 -0
- package/dist/querier/querierContext.js +42 -0
- package/dist/querier/queryError.d.ts +22 -0
- package/dist/querier/queryError.js +20 -0
- package/dist/querier/transactional.d.ts +26 -0
- package/dist/querier/transactional.js +43 -0
- package/dist/schema/index.d.ts +1 -1
- package/dist/schema/schemaASTBuilder.d.ts +1 -1
- package/dist/schema/schemaASTBuilder.js +2 -2
- package/dist/schema/types.d.ts +0 -21
- package/dist/sqlite/abstractSqliteQuerier.d.ts +9 -2
- package/dist/sqlite/hranaQuerier.js +20 -42
- package/dist/sqlite/index.d.ts +1 -0
- package/dist/sqlite/index.js +1 -0
- package/dist/sqlite/localSqliteQuerierPool.d.ts +31 -0
- package/dist/sqlite/localSqliteQuerierPool.js +34 -0
- package/dist/sqlite/nodeSqliteAdapter.d.ts +35 -0
- package/dist/sqlite/nodeSqliteAdapter.js +28 -0
- package/dist/sqlite/nodeSqliteQuerierPool.d.ts +28 -0
- package/dist/sqlite/nodeSqliteQuerierPool.js +29 -0
- package/dist/sqlite/sqliteDialect.d.ts +1 -2
- package/dist/sqlite/sqliteDialect.js +0 -13
- package/dist/sqlite/sqliteQuerierPool.d.ts +10 -23
- package/dist/sqlite/sqliteQuerierPool.js +9 -28
- package/dist/type/entity.d.ts +95 -28
- package/dist/type/querier.d.ts +8 -35
- package/dist/type/querierPool.d.ts +13 -12
- package/dist/type/universalQuerier.d.ts +23 -7
- package/dist/util/hook.util.js +1 -1
- package/package.json +7 -16
- package/dist/entity/decorator/field.d.ts +0 -2
- package/dist/entity/decorator/field.js +0 -7
- package/dist/entity/decorator/filter.d.ts +0 -7
- package/dist/entity/decorator/filter.js +0 -11
- package/dist/entity/decorator/hook.d.ts +0 -7
- package/dist/entity/decorator/hook.js +0 -14
- package/dist/entity/decorator/id.d.ts +0 -2
- package/dist/entity/decorator/id.js +0 -7
- package/dist/entity/decorator/index-decorator.d.ts +0 -22
- package/dist/entity/decorator/index-decorator.js +0 -26
- package/dist/entity/decorator/index.d.ts +0 -8
- package/dist/entity/decorator/index.js +0 -8
- package/dist/entity/decorator/relation.d.ts +0 -8
- package/dist/entity/decorator/relation.js +0 -19
- package/dist/migrate/codegen/smartRelationDetector.d.ts +0 -47
- package/dist/migrate/codegen/smartRelationDetector.js +0 -134
- package/dist/querier/decorator/index.d.ts +0 -4
- package/dist/querier/decorator/index.js +0 -4
- package/dist/querier/decorator/injectQuerier.d.ts +0 -3
- package/dist/querier/decorator/injectQuerier.js +0 -33
- package/dist/querier/decorator/log.d.ts +0 -32
- package/dist/querier/decorator/log.js +0 -52
- package/dist/querier/decorator/serialized.d.ts +0 -6
- package/dist/querier/decorator/serialized.js +0 -13
- package/dist/querier/decorator/transactional.d.ts +0 -6
- package/dist/querier/decorator/transactional.js +0 -48
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Decorator that ensures the decorated method is executed serially within the Querier instance.
|
|
3
|
-
* It uses a private promise queue to prevent race conditions on the database connection.
|
|
4
|
-
* Note: The decorated class must extend AbstractQuerier or implement a compatible serialize method.
|
|
5
|
-
*/
|
|
6
|
-
export declare function Serialized(): (_target: object, _key: string, propDescriptor: PropertyDescriptor) => void;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Decorator that ensures the decorated method is executed serially within the Querier instance.
|
|
3
|
-
* It uses a private promise queue to prevent race conditions on the database connection.
|
|
4
|
-
* Note: The decorated class must extend AbstractQuerier or implement a compatible serialize method.
|
|
5
|
-
*/
|
|
6
|
-
export function Serialized() {
|
|
7
|
-
return (_target, _key, propDescriptor) => {
|
|
8
|
-
const originalMethod = propDescriptor.value;
|
|
9
|
-
propDescriptor.value = function (...args) {
|
|
10
|
-
return this.serialize(() => originalMethod.apply(this, args));
|
|
11
|
-
};
|
|
12
|
-
};
|
|
13
|
-
}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { IsolationLevel, QuerierPool } from '../../type/index.js';
|
|
2
|
-
export declare function Transactional({ propagation, pool, isolationLevel, }?: {
|
|
3
|
-
readonly propagation?: 'supported' | 'required';
|
|
4
|
-
readonly pool?: QuerierPool;
|
|
5
|
-
readonly isolationLevel?: IsolationLevel;
|
|
6
|
-
}): (target: object, key: string, propDescriptor: PropertyDescriptor) => void;
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { getQuerierPool } from '../../options.js';
|
|
2
|
-
import { getInjectedQuerierIndex } from './injectQuerier.js';
|
|
3
|
-
export function Transactional({ propagation = 'required', pool, isolationLevel, } = {}) {
|
|
4
|
-
return (target, key, propDescriptor) => {
|
|
5
|
-
// biome-ignore lint/suspicious/noExplicitAny: decorator pattern - runtime constructor type is erased
|
|
6
|
-
const theClass = target.constructor;
|
|
7
|
-
const originalMethod = propDescriptor.value;
|
|
8
|
-
const injectedQuerierIndex = getInjectedQuerierIndex(theClass, key);
|
|
9
|
-
if (injectedQuerierIndex === undefined) {
|
|
10
|
-
throw TypeError(`missing decorator @InjectQuerier() in '${target.constructor.name}.${key}'`);
|
|
11
|
-
}
|
|
12
|
-
propDescriptor.value = async function func(...args) {
|
|
13
|
-
const params = [...args];
|
|
14
|
-
let isOwnTransaction = false;
|
|
15
|
-
let querier;
|
|
16
|
-
if (params[injectedQuerierIndex]) {
|
|
17
|
-
querier = params[injectedQuerierIndex];
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
isOwnTransaction = true;
|
|
21
|
-
pool ??= getQuerierPool();
|
|
22
|
-
querier = await pool.getQuerier();
|
|
23
|
-
params[injectedQuerierIndex] = querier;
|
|
24
|
-
}
|
|
25
|
-
try {
|
|
26
|
-
if (propagation === 'required' && !querier.hasOpenTransaction) {
|
|
27
|
-
await querier.beginTransaction(isolationLevel ? { isolationLevel } : undefined);
|
|
28
|
-
}
|
|
29
|
-
const resp = await originalMethod.apply(this, params);
|
|
30
|
-
if (isOwnTransaction && querier.hasOpenTransaction) {
|
|
31
|
-
await querier.commitTransaction();
|
|
32
|
-
}
|
|
33
|
-
return resp;
|
|
34
|
-
}
|
|
35
|
-
catch (err) {
|
|
36
|
-
if (isOwnTransaction && querier.hasOpenTransaction) {
|
|
37
|
-
await querier.rollbackTransaction();
|
|
38
|
-
}
|
|
39
|
-
throw err;
|
|
40
|
-
}
|
|
41
|
-
finally {
|
|
42
|
-
if (isOwnTransaction) {
|
|
43
|
-
await querier.release();
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
};
|
|
48
|
-
}
|