vona-module-test-vona 5.0.55 → 5.0.57

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.
@@ -404,6 +404,7 @@ declare module 'vona-module-test-vona' {
404
404
  relations: {
405
405
  posts: IModelRelationHasMany<ModelPost, 'userId', false, 'id' | 'title', ['test-vona:user', ModelPostContent], undefined, undefined>;
406
406
  roles: IModelRelationBelongsToMany<'test-vona:roleUser', 'test-vona:role', false, 'id' | 'name', undefined, undefined, undefined>;
407
+ orders: IModelRelationHasMany<ModelOrder, 'userId', false, undefined, undefined, undefined, undefined>;
407
408
  };
408
409
  }
409
410
  interface IModelOptionsUserStats {
@@ -61,14 +61,14 @@ export declare class ControllerOrder extends BeanBase {
61
61
  joins?: import("vona-module-a-orm").IModelSelectParamsJoin<import("vona-module-test-vona").EntityOrder, import("vona").TypeRecordValues<{
62
62
  user: "testVonaUser";
63
63
  products: "testVonaProduct";
64
- }>, import("vona-module-a-orm").TypeEntityTableColumnNamesOfModelSelf<ModelOrder> | import("vona").TypeRecordValues<{
64
+ }>, import("vona").TypeRecordValues<{
65
65
  user: "testVonaUser.name" | "testVonaUser.id" | "testVonaUser.iid" | "testVonaUser.createdAt" | "testVonaUser.updatedAt" | "testVonaUser.deleted" | "testVonaUser.age" | "testVonaUser.scores";
66
66
  products: "testVonaProduct.name" | "testVonaProduct.id" | "testVonaProduct.iid" | "testVonaProduct.createdAt" | "testVonaProduct.updatedAt" | "testVonaProduct.deleted" | "testVonaProduct.price" | "testVonaProduct.quantity" | "testVonaProduct.amount" | "testVonaProduct.orderId";
67
- }>>[] | undefined;
68
- orders?: import("vona-module-a-orm").IModelSelectParamsOrder<import("vona-module-a-orm").TypeEntityTableColumnNamesOfModelSelf<ModelOrder> | import("vona").TypeRecordValues<{
67
+ }> | import("vona-module-a-orm").TypeEntityTableColumnNamesOfModelSelf<ModelOrder>>[] | undefined;
68
+ orders?: import("vona-module-a-orm").IModelSelectParamsOrder<import("vona").TypeRecordValues<{
69
69
  user: "testVonaUser.name" | "testVonaUser.id" | "testVonaUser.iid" | "testVonaUser.createdAt" | "testVonaUser.updatedAt" | "testVonaUser.deleted" | "testVonaUser.age" | "testVonaUser.scores";
70
70
  products: "testVonaProduct.name" | "testVonaProduct.id" | "testVonaProduct.iid" | "testVonaProduct.createdAt" | "testVonaProduct.updatedAt" | "testVonaProduct.deleted" | "testVonaProduct.price" | "testVonaProduct.quantity" | "testVonaProduct.amount" | "testVonaProduct.orderId";
71
- }>>[] | undefined;
71
+ }> | import("vona-module-a-orm").TypeEntityTableColumnNamesOfModelSelf<ModelOrder>>[] | undefined;
72
72
  limit?: number;
73
73
  offset?: number;
74
74
  }, undefined, undefined, undefined, 50>>;
package/dist/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './.metadata/index.ts';
2
2
  export * from './lib/index.ts';
3
+ export * from './types/index.ts';
package/dist/index.js CHANGED
@@ -550,7 +550,8 @@ let ModelUser = (_dec$16 = Model({
550
550
  }, ['test-vona:user', ModelPostContent]),
551
551
  roles: $relation.belongsToMany('test-vona:roleUser', 'test-vona:role', 'userId', 'roleId', {
552
552
  columns: ['id', 'name']
553
- })
553
+ }),
554
+ orders: $relation.hasMany(() => ModelOrder, 'userId')
554
555
  },
555
556
  cache: {
556
557
  modelsClear: [() => ModelUserStats, () => ModelUserStatsGroup]
@@ -0,0 +1,5 @@
1
+ declare module 'vona-module-a-orm' {
2
+ interface IDatabaseClientRecord {
3
+ }
4
+ }
5
+ export {};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vona-module-test-vona",
3
3
  "type": "module",
4
- "version": "5.0.55",
4
+ "version": "5.0.57",
5
5
  "title": "test-vona",
6
6
  "vonaModule": {
7
7
  "fileVersion": 1,
@@ -491,6 +491,7 @@ export interface IModelOptionsUser {
491
491
  relations: {
492
492
  posts: IModelRelationHasMany<ModelPost, 'userId', false, 'id'|'title', ['test-vona:user',ModelPostContent], undefined, undefined>;
493
493
  roles: IModelRelationBelongsToMany<'test-vona:roleUser', 'test-vona:role', false, 'id'|'name',undefined,undefined,undefined>;
494
+ orders: IModelRelationHasMany<ModelOrder, 'userId', false, undefined, undefined, undefined, undefined>;
494
495
  };
495
496
  }
496
497
  export interface IModelOptionsUserStats {
package/src/index.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './.metadata/index.ts';
2
2
  export * from './lib/index.ts';
3
+ export * from './types/index.ts';
package/src/model/user.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import type { IDecoratorModelOptions } from 'vona-module-a-orm';
2
2
  import { $relation, BeanModelBase, Model } from 'vona-module-a-orm';
3
3
  import { EntityUser } from '../entity/user.ts';
4
+ import { ModelOrder } from './order.ts';
4
5
  import { ModelPost } from './post.ts';
5
6
  import { ModelPostContent } from './postContent.ts';
6
7
  import { ModelUserStats } from './userStats.ts';
@@ -13,6 +14,7 @@ export interface IModelOptionsUser extends IDecoratorModelOptions<EntityUser> {}
13
14
  relations: {
14
15
  posts: $relation.hasMany(() => ModelPost, 'userId', { columns: ['id', 'title'] }, ['test-vona:user', ModelPostContent]),
15
16
  roles: $relation.belongsToMany('test-vona:roleUser', 'test-vona:role', 'userId', 'roleId', { columns: ['id', 'name'] }),
17
+ orders: $relation.hasMany(() => ModelOrder, 'userId'),
16
18
  },
17
19
  cache: {
18
20
  modelsClear: [() => ModelUserStats, () => ModelUserStatsGroup],
@@ -0,0 +1,6 @@
1
+ declare module 'vona-module-a-orm' {
2
+ export interface IDatabaseClientRecord {
3
+ // 'user-pg': never;
4
+ // 'order-mysql': never;
5
+ }
6
+ }
@@ -0,0 +1,26 @@
1
+ import assert from 'node:assert';
2
+ import { describe, it } from 'node:test';
3
+ import { app } from 'vona-mock';
4
+
5
+ describe('instance.test.ts', () => {
6
+ it('action:instance:shareTest', async () => {
7
+ await app.bean.executor.mockCtx(async () => {
8
+ const scopeDatabase = app.bean.scope('a-orm');
9
+ const defaultClientName = scopeDatabase.service.database.getDefaultClientName();
10
+ assert.equal(app.ctx.instanceName, 'shareTest');
11
+ assert.equal(app.ctx.instance.name, 'shareTest');
12
+ assert.equal(app.bean.database.current.clientName, defaultClientName);
13
+ assert.equal(['pg', 'mysql'].includes(app.bean.database.current.clientName), true);
14
+ }, { instanceName: 'shareTest' as any });
15
+ });
16
+ it('action:instance:isolateTest', async () => {
17
+ await app.bean.executor.mockCtx(async () => {
18
+ const scopeDatabase = app.bean.scope('a-orm');
19
+ const defaultClientName = scopeDatabase.service.database.getDefaultClientName();
20
+ assert.equal(app.ctx.instanceName, 'isolateTest');
21
+ assert.equal(app.ctx.instance.name, 'isolateTest');
22
+ assert.equal(app.bean.database.current.clientName, defaultClientName);
23
+ assert.equal(app.bean.database.current.clientName, 'isolateTest');
24
+ }, { instanceName: 'isolateTest' as any });
25
+ });
26
+ });