nicot 1.1.14 → 1.1.15

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 CHANGED
@@ -161,14 +161,15 @@ name: string;
161
161
 
162
162
  NICOT 提供以下装饰器用于控制字段在不同接口中的表现:
163
163
 
164
- | 装饰器名 | 行为控制说明 |
165
- |----------------------------------------|-------------------------------|
166
- | `@NotWritable()` | 不允许在创建(POST)或修改(PATCH)时传入 |
167
- | `@NotChangeable()` | 不允许在修改(PATCH)时更新(只可创建) |
168
- | `@NotQueryable()` | 不允许在 GET 查询参数中使用该字段 |
169
- | `@NotInResult()` | 不会出现在任何返回结果中(如密码字段) |
170
- | `@NotColumn()` | 不是数据库字段(仅逻辑字段,如计算用字段) |
171
- | `@RelationComputed(() => EntityClass)` | 标识该字段依赖关系字段推导而来(通常在 afterGet) |
164
+ | 装饰器名 | 行为控制说明 |
165
+ |----------------------------------------|-----------------------------------------------|
166
+ | `@NotWritable()` | 不允许在创建(POST)或修改(PATCH)时传入 |
167
+ | `@NotChangeable()` | 不允许在修改(PATCH)时更新(只可创建) |
168
+ | `@NotQueryable()` | 不允许在 GET 查询参数中使用该字段 |
169
+ | `@NotInResult()` | 不会出现在任何返回结果中(如密码字段) |
170
+ | `@NotColumn()` | 不是数据库字段,仅作为查询结果间接字段(在 afterGet 钩子方法赋值) |
171
+ | `@QueryColumn()` | 不是数据库字段,仅作为虚拟查询字段(和 @QueryEqual() 等查询装饰器同时使用) |
172
+ | `@RelationComputed(() => EntityClass)` | 标识该字段依赖关系字段推导而来(通常在 afterGet) |
172
173
 
173
174
  RestfulFactory 处理 Entity 类的时候,会以这些装饰器为依据,裁剪生成的 DTO 和查询参数。
174
175
 
@@ -203,17 +204,18 @@ NICOT 提供了一套查询装饰器,用于在 Entity 字段上声明支持的
203
204
 
204
205
  ### ✅ 内建查询装饰器
205
206
 
206
- | 装饰器名 | 查询效果 |
207
- |-------------------------------|------------------------------------------|
208
- | `@QueryEqual()` | 精确匹配:`WHERE field = :value` |
209
- | `@QueryLike()` | 前缀模糊匹配:`WHERE field LIKE :value%` |
210
- | `@QuerySearch()` | 宽泛模糊搜索:`WHERE field LIKE %:value%` |
211
- | `@QueryMatchBoolean()` | `true/false/1/0` 转换为布尔类型查询 |
212
- | `@QueryEqualZeroNullable()` | `0 → IS NULL`,否则 `= :value`(适合 nullable) |
213
- | `@QueryGreater(field)` | 大于查询:`WHERE field > :value` |
214
- | `@QueryLess(field)` | 小于查询:`WHERE field < :value` |
215
- | `@QueryGreaterOrEqual(field)` | 大于等于查询:`WHERE field >= :value` |
216
- | `@QueryLessOrEqual(field)` | 小于等于查询:`WHERE field <= :value` |
207
+ | 装饰器名 | 查询效果 |
208
+ |----------------------------------------------|------------------------------------------|
209
+ | `@QueryEqual()` | 精确匹配:`WHERE field = :value` |
210
+ | `@QueryLike()` | 前缀模糊匹配:`WHERE field LIKE :value%` |
211
+ | `@QuerySearch()` | 宽泛模糊搜索:`WHERE field LIKE %:value%` |
212
+ | `@QueryMatchBoolean()` | `true/false/1/0` 转换为布尔类型查询 |
213
+ | `@QueryEqualZeroNullable()` | `0 → IS NULL`,否则 `= :value`(适合 nullable) |
214
+ | `@QueryGreater(field)` | 大于查询:`WHERE field > :value` |
215
+ | `@QueryLess(field)` | 小于查询:`WHERE field < :value` |
216
+ | `@QueryGreaterOrEqual(field)` | 大于等于查询:`WHERE field >= :value` |
217
+ | `@QueryLessOrEqual(field)` | 小于等于查询:`WHERE field <= :value` |
218
+ | `@QueryFullText({ configration?, parser? })` | 全文搜索查询,只支持 PostgreSQL,会自动建索引 |
217
219
 
218
220
  ---
219
221
 
@@ -272,7 +274,31 @@ isPublished: boolean;
272
274
  viewsOrderBy?: 'ASC' | 'DESC';
273
275
  ```
274
276
 
277
+ ---
278
+
279
+ ## 🧩 实体关系示例
280
+
281
+ ```ts
282
+ @Entity()
283
+ class Article extends IdBase() {
284
+ @QueryEqual()
285
+ @IntColumn('bigint', { unsigned: true })
286
+ userId: number;
287
+
288
+ @ManyToOne(() => User, user => user.articles, { onDelete: 'CASCADE' })
289
+ user: User;
290
+ }
275
291
 
292
+ @Entity()
293
+ class User extends IdBase() {
294
+ @OneToMany(() => Article, article => article.user)
295
+ articles: Article[];
296
+
297
+ async afterGet() {
298
+ this.articleCount = this.articles.length;
299
+ }
300
+ }
301
+ ```
276
302
 
277
303
  ---
278
304
 
@@ -658,7 +684,7 @@ class LogEntry extends IdBase() {
658
684
 
659
685
  ### 示例:分页 + 条件查询
660
686
 
661
- ```ts
687
+ ```
662
688
  GET /user?name=Tom&pageCount=2&recordsPerPage=10
663
689
  // 查询第 2 页,每页 10 条,筛选 name = Tom 的用户
664
690
  ```
@@ -800,6 +826,58 @@ class UserController extends factory.baseController({
800
826
 
801
827
  ---
802
828
 
829
+ ## 一键生成 CrudService
830
+
831
+ 利用 `factory.crudService()` 生成标准的 CRUD 服务类,自动处理所有 CRUD 接口。效果与 `CrudService(Entity, options)` 类似。
832
+
833
+ `relations` 的配置与 `RestfulFactory` 的 `relations` 参数一致,保证 DTO 与查询参数的一致性。
834
+
835
+ ```ts
836
+ const factory = new RestfulFactory(User, {
837
+ relations: ['articles'],
838
+ });
839
+
840
+ class UserService extends factory.crudService() {
841
+ constructor(@InjectRepository(User) repo) {
842
+ super(repo);
843
+ }
844
+ }
845
+ ```
846
+
847
+ 推荐在 Entity 文件中定义 `RestfulFactory`,然后在 Service 中使用 `factory.crudService()` 生成服务类,而在 Controller 中使用 `factory.baseController()` 生成控制器。
848
+
849
+ ```ts
850
+ // user.entity.ts
851
+ @Entity()
852
+ export class User extends IdBase() {
853
+ //
854
+ }
855
+
856
+ export const UserRestfulFactory = new RestfulFactory(User, {
857
+ relations: ['articles'], // 自动代入 UserService 和 UserController 的 relations
858
+ });
859
+
860
+ // user.service.ts
861
+ @Injectable()
862
+ export class UserService extends UserRestfulFactory.crudService() {
863
+ constructor(@InjectRepository(User) repo) {
864
+ super(repo);
865
+ }
866
+ }
867
+
868
+ // user.controller.ts
869
+ @Controller('user')
870
+ export class UserController extends UserRestfulFactory.baseController() {
871
+ constructor(userService: UserService) {
872
+ super(userService);
873
+ }
874
+ }
875
+ ```
876
+
877
+ 这么做可以真正实现『一处定义,处处使用』,避免了 DTO 与查询参数的重复定义。
878
+
879
+ ---
880
+
803
881
  ## 📦 统一返回结构与接口注解
804
882
 
805
883
  NICOT 默认提供统一的接口返回格式与 Swagger 自动注解能力,便于前后端标准化对接。
@@ -971,32 +1049,6 @@ async create(@DataBody() dto: CreateUserDto) {
971
1049
 
972
1050
  ---
973
1051
 
974
- ## 🧩 实体关系示例
975
-
976
- ```ts
977
- @Entity()
978
- class Article extends IdBase() {
979
- @QueryEqual()
980
- @IntColumn('bigint', { unsigned: true })
981
- userId: number;
982
-
983
- @ManyToOne(() => User, user => user.articles, { onDelete: 'CASCADE' })
984
- user: User;
985
- }
986
-
987
- @Entity()
988
- class User extends IdBase() {
989
- @OneToMany(() => Article, article => article.user)
990
- articles: Article[];
991
-
992
- async afterGet() {
993
- this.articleCount = this.articles.length;
994
- }
995
- }
996
- ```
997
-
998
- ---
999
-
1000
1052
  ## 📊 和同类框架的对比
1001
1053
 
1002
1054
  在实际开发中,很多框架也提供了 CRUD 接口构建能力,但存在不同程度的痛点。NICOT 从底层设计上解决了这些问题,适合长期维护的中大型后端项目。
@@ -1,6 +1,7 @@
1
- import { CrudBase, RelationDef } from '../crud-base';
1
+ import { CrudBase } from '../crud-base';
2
2
  import { Repository } from 'typeorm';
3
3
  import { ClassType } from 'nesties';
4
+ import { RelationDef } from '../utility/relation-def';
4
5
  export declare const RestfulMethods: readonly ["findOne", "findAll", "create", "update", "delete", "import"];
5
6
  export type RestfulMethods = typeof RestfulMethods[number];
6
7
  export type RestfulPaginateType = 'offset' | 'cursor' | 'none';
@@ -1 +1 @@
1
- {"version":3,"file":"base-restful-controller.js","sourceRoot":"","sources":["../../../src/bases/base-restful-controller.ts"],"names":[],"mappings":";;;AAAA,4CAAkE;AAIrD,QAAA,cAAc,GAAG;IAC5B,SAAS;IACT,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;CACA,CAAC;AAMX,MAAa,qBAAqB;IAEhC,YACE,aAA0C,EACnC,WAIF,EAAE;QAJA,aAAQ,GAAR,QAAQ,CAIR;QAEP,IAAI,aAAa,YAAY,oBAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,MAAM,gBAAgB,GAAG,IAAA,uBAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;gBAC9D,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS;aACnC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,OAAO,CAAC,EAAU;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,CAAC,GAAe;QACrB,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QACD,GAAG,CAAC,gBAAgB,CAAC,KAAK,KAAK,CAAC;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,GAAM;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,EAAU,EAAE,GAAe;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,IAAmB;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;CACF;AAlDD,sDAkDC"}
1
+ {"version":3,"file":"base-restful-controller.js","sourceRoot":"","sources":["../../../src/bases/base-restful-controller.ts"],"names":[],"mappings":";;;AAAA,4CAAqD;AAKxC,QAAA,cAAc,GAAG;IAC5B,SAAS;IACT,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;CACA,CAAC;AAMX,MAAa,qBAAqB;IAEhC,YACE,aAA0C,EACnC,WAIF,EAAE;QAJA,aAAQ,GAAR,QAAQ,CAIR;QAEP,IAAI,aAAa,YAAY,oBAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,MAAM,gBAAgB,GAAG,IAAA,uBAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;gBAC9D,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS;aACnC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,OAAO,CAAC,EAAU;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,CAAC,GAAe;QACrB,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QACD,GAAG,CAAC,gBAAgB,CAAC,KAAK,KAAK,CAAC;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,GAAM;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,EAAU,EAAE,GAAe;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,IAAmB;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;CACF;AAlDD,sDAkDC"}
@@ -1,18 +1,12 @@
1
1
  import { FindOptionsWhere, Repository, SelectQueryBuilder } from 'typeorm';
2
2
  import { EntityHooks, PageSettingsDto, PageSettingsFactory, QueryWise } from './bases';
3
3
  import { ConsoleLogger } from '@nestjs/common';
4
- import { BlankReturnMessageDto, ClassType, PageSettingsWise } from 'nesties';
4
+ import { BlankReturnMessageDto, ClassType } from 'nesties';
5
5
  import { CursorPaginationDto } from './dto/cursor-pagination';
6
+ import { RelationDef } from './utility/relation-def';
6
7
  export type EntityId<T extends {
7
8
  id: any;
8
9
  }> = T['id'];
9
- export interface RelationDef {
10
- name: string;
11
- inner?: boolean;
12
- extraCondition?: string;
13
- extraConditionFields?: Record<string, any>;
14
- noSelect?: boolean;
15
- }
16
10
  export declare const Relation: (name: string, options?: Omit<RelationDef, "name">) => RelationDef;
17
11
  export declare const Inner: (name: string, options?: Omit<RelationDef, "name">) => RelationDef;
18
12
  export type ValidCrudEntity<T> = Record<string, any> & {
@@ -42,16 +36,12 @@ export declare class CrudBase<T extends ValidCrudEntity<T>> {
42
36
  result: string;
43
37
  entry: T;
44
38
  }[]>;
45
- readonly entityPaginatedReturnMessageDto: new (statusCode: number, message: string, data: T[], total: number, pageSettings: PageSettingsWise) => import("nesties").GenericPaginatedReturnMessageDto<T>;
39
+ readonly entityPaginatedReturnMessageDto: new (statusCode: number, message: string, data: T[], total: number, pageSettings: import("nesties").PageSettingsWise) => import("nesties").GenericPaginatedReturnMessageDto<T>;
46
40
  readonly entityCursorPaginatedReturnMessageDto: new (statusCode: number, message: string, data: T[], cursorResponse: import("./dto").CursorPaginationResponseWise) => import("./dto").GenericCursorPaginationReturnMessageDto<T>;
47
41
  readonly entityRelations: (string | RelationDef)[];
48
42
  readonly extraGetQuery: (qb: SelectQueryBuilder<T>) => void;
49
43
  readonly log: ConsoleLogger;
50
- readonly _typeormRelations: {
51
- isArray: boolean;
52
- propertyClass: import("nesties").AnyClass;
53
- propertyName: string;
54
- }[];
44
+ readonly _typeormRelations: import("./utility/get-typeorm-relations").TypeormRelation<any, string>[];
55
45
  constructor(entityClass: ClassType<T>, repo: Repository<T>, crudOptions: CrudOptions<T>);
56
46
  _cleanEntityNotInResultFields(ent: T): T;
57
47
  cleanEntityNotInResultFields<E extends T | T[]>(ents: E): E;
@@ -83,6 +73,8 @@ export declare class CrudBase<T extends ValidCrudEntity<T>> {
83
73
  entry: T;
84
74
  }[]>>;
85
75
  exists(id: EntityId<T>): Promise<boolean>;
76
+ _loadFullTextIndex(): Promise<void>;
77
+ onModuleInit(): Promise<void>;
86
78
  }
87
79
  export declare function CrudService<T extends ValidCrudEntity<T>>(entityClass: ClassType<T>, crudOptions?: CrudOptions<T>): {
88
80
  new (repo: Repository<T>): {
@@ -99,16 +91,12 @@ export declare function CrudService<T extends ValidCrudEntity<T>>(entityClass: C
99
91
  result: string;
100
92
  entry: T;
101
93
  }[]>;
102
- readonly entityPaginatedReturnMessageDto: new (statusCode: number, message: string, data: T[], total: number, pageSettings: PageSettingsWise) => import("nesties").GenericPaginatedReturnMessageDto<T>;
94
+ readonly entityPaginatedReturnMessageDto: new (statusCode: number, message: string, data: T[], total: number, pageSettings: import("nesties").PageSettingsWise) => import("nesties").GenericPaginatedReturnMessageDto<T>;
103
95
  readonly entityCursorPaginatedReturnMessageDto: new (statusCode: number, message: string, data: T[], cursorResponse: import("./dto").CursorPaginationResponseWise) => import("./dto").GenericCursorPaginationReturnMessageDto<T>;
104
96
  readonly entityRelations: (string | RelationDef)[];
105
97
  readonly extraGetQuery: (qb: SelectQueryBuilder<T>) => void;
106
98
  readonly log: ConsoleLogger;
107
- readonly _typeormRelations: {
108
- isArray: boolean;
109
- propertyClass: import("nesties").AnyClass;
110
- propertyName: string;
111
- }[];
99
+ readonly _typeormRelations: import("./utility/get-typeorm-relations").TypeormRelation<any, string>[];
112
100
  entityClass: ClassType<T>;
113
101
  repo: Repository<T>;
114
102
  crudOptions: CrudOptions<T>;
@@ -142,5 +130,7 @@ export declare function CrudService<T extends ValidCrudEntity<T>>(entityClass: C
142
130
  entry: T;
143
131
  }[]>>;
144
132
  exists(id: EntityId<T>): Promise<boolean>;
133
+ _loadFullTextIndex(): Promise<void>;
134
+ onModuleInit(): Promise<void>;
145
135
  };
146
136
  };
@@ -32,6 +32,9 @@ var __importStar = (this && this.__importStar) || (function () {
32
32
  return result;
33
33
  };
34
34
  })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
35
38
  Object.defineProperty(exports, "__esModule", { value: true });
36
39
  exports.CrudBase = exports.Inner = exports.Relation = void 0;
37
40
  exports.CrudService = CrudService;
@@ -46,6 +49,8 @@ const metadata_1 = require("./utility/metadata");
46
49
  const get_typeorm_relations_1 = require("./utility/get-typeorm-relations");
47
50
  const cursor_pagination_1 = require("./dto/cursor-pagination");
48
51
  const cursor_pagination_utils_1 = require("./utility/cursor-pagination-utils");
52
+ const p_queue_1 = __importDefault(require("p-queue"));
53
+ const filter_relations_1 = require("./utility/filter-relations");
49
54
  const Relation = (name, options = {}) => {
50
55
  return { name, inner: false, ...options };
51
56
  };
@@ -54,6 +59,10 @@ const Inner = (name, options = {}) => {
54
59
  return (0, exports.Relation)(name, { inner: true, ...options });
55
60
  };
56
61
  exports.Inner = Inner;
62
+ const loadedParsers = new Set();
63
+ const loadFullTextQueue = new p_queue_1.default({
64
+ concurrency: 1,
65
+ });
57
66
  class CrudBase {
58
67
  constructor(entityClass, repo, crudOptions) {
59
68
  this.entityClass = entityClass;
@@ -65,11 +74,10 @@ class CrudBase {
65
74
  this.importReturnMessageDto = (0, nesties_1.ReturnMessageDto)([this.importEntryDto]);
66
75
  this.entityPaginatedReturnMessageDto = (0, nesties_1.PaginatedReturnMessageDto)(this.entityClass);
67
76
  this.entityCursorPaginatedReturnMessageDto = (0, cursor_pagination_1.CursorPaginationReturnMessageDto)(this.entityClass);
77
+ this.entityRelations = (0, filter_relations_1.filterRelations)(this.entityClass, this.crudOptions.relations);
78
+ this.extraGetQuery = this.crudOptions.extraGetQuery || ((qb) => { });
68
79
  this.log = new common_1.ConsoleLogger(`${this.entityClass.name}Service`);
69
80
  this._typeormRelations = (0, get_typeorm_relations_1.getTypeormRelations)(this.entityClass);
70
- this.entityRelations = crudOptions.relations || [];
71
- // eslint-disable-next-line @typescript-eslint/no-empty-function
72
- this.extraGetQuery = crudOptions.extraGetQuery || ((qb) => { });
73
81
  }
74
82
  _cleanEntityNotInResultFields(ent) {
75
83
  const visited = new Set();
@@ -435,6 +443,32 @@ class CrudBase {
435
443
  const ent = await this.repo.findOne({ where: { id }, select: ['id'] });
436
444
  return !!ent;
437
445
  }
446
+ async _loadFullTextIndex() {
447
+ const fields = metadata_1.reflector.getArray('queryFullTextColumnFields', this.entityClass);
448
+ const metadata = this.repo.metadata;
449
+ const tableName = metadata.tableName; // 真正数据库里的表名
450
+ const sqls = [];
451
+ for (const field of fields) {
452
+ const options = metadata_1.reflector.get('queryFullTextColumn', this.entityClass, field);
453
+ if (!options)
454
+ continue;
455
+ const configurationName = options.configuration;
456
+ const parser = options.parser;
457
+ if (parser && !loadedParsers.has(parser)) {
458
+ loadedParsers.add(parser);
459
+ sqls.push(`CREATE EXTENSION IF NOT EXISTS ${parser};`, `DROP TEXT SEARCH CONFIGURATION IF EXISTS ${configurationName};`, `CREATE TEXT SEARCH CONFIGURATION ${configurationName} (PARSER = ${parser});`, `ALTER TEXT SEARCH CONFIGURATION ${configurationName} ADD MAPPING FOR n, v, a, i, e, l WITH simple;`);
460
+ }
461
+ const indexName = `idx_fulltext_${this.entityName}_${field}`;
462
+ // 建立索引,索引名字用 this.entityName,表名用真实 tableName
463
+ sqls.push(`CREATE INDEX IF NOT EXISTS "${indexName}" ON "${tableName}" USING GIN (to_tsvector('${configurationName}', "${field}"));`);
464
+ }
465
+ if (sqls.length) {
466
+ await this.repo.manager.query(sqls.join('\n'));
467
+ }
468
+ }
469
+ async onModuleInit() {
470
+ await loadFullTextQueue.add(() => this._loadFullTextIndex());
471
+ }
438
472
  }
439
473
  exports.CrudBase = CrudBase;
440
474
  function CrudService(entityClass, crudOptions = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"crud-base.js","sourceRoot":"","sources":["../../src/crud-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crud-base.js","sourceRoot":"","sources":["../../src/crud-base.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { QueryCond } from '../bases';
2
+ import { QueryFullTextColumnOptions } from '../utility/query-full-text-column-options.interface';
2
3
  export declare const QueryCondition: (cond: QueryCond) => PropertyDecorator;
3
4
  export declare const QueryEqual: () => PropertyDecorator;
4
5
  export declare const QueryLike: () => PropertyDecorator;
@@ -12,3 +13,4 @@ export declare const QueryGreaterEqual: (field?: string) => PropertyDecorator;
12
13
  export declare const QueryLess: (field?: string) => PropertyDecorator;
13
14
  export declare const QueryLessEqual: (field?: string) => PropertyDecorator;
14
15
  export declare const QueryNotEqual: (field?: string) => PropertyDecorator;
16
+ export declare const QueryFullText: (options?: QueryFullTextColumnOptions) => PropertyDecorator;
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.QueryNotEqual = exports.QueryLessEqual = exports.QueryLess = exports.QueryGreaterEqual = exports.QueryGreater = exports.createQueryOperator = exports.QueryOperator = exports.QueryMatchBoolean = exports.QueryEqualZeroNullable = exports.QuerySearch = exports.QueryLike = exports.QueryEqual = exports.QueryCondition = void 0;
3
+ exports.QueryFullText = exports.QueryNotEqual = exports.QueryLessEqual = exports.QueryLess = exports.QueryGreaterEqual = exports.QueryGreater = exports.createQueryOperator = exports.QueryOperator = exports.QueryMatchBoolean = exports.QueryEqualZeroNullable = exports.QuerySearch = exports.QueryLike = exports.QueryEqual = exports.QueryCondition = void 0;
4
4
  const metadata_1 = require("../utility/metadata");
5
5
  const utility_1 = require("../utility");
6
+ const nesties_1 = require("nesties");
6
7
  const QueryCondition = (cond) => metadata_1.Metadata.set('queryCondition', cond, 'queryConditionFields');
7
8
  exports.QueryCondition = QueryCondition;
8
9
  const QueryEqual = () => (0, exports.QueryCondition)(utility_1.applyQueryProperty);
@@ -32,4 +33,25 @@ exports.QueryGreaterEqual = (0, exports.createQueryOperator)('>=');
32
33
  exports.QueryLess = (0, exports.createQueryOperator)('<');
33
34
  exports.QueryLessEqual = (0, exports.createQueryOperator)('<=');
34
35
  exports.QueryNotEqual = (0, exports.createQueryOperator)('!=');
36
+ const QueryFullText = (options = {}) => {
37
+ const configurationName = options.parser
38
+ ? `nicot_parser_${options.parser}`
39
+ : options.configuration || 'english';
40
+ return (0, nesties_1.MergePropertyDecorators)([
41
+ (0, exports.QueryCondition)((obj, qb, entityName, key) => {
42
+ if (obj[key] == null)
43
+ return;
44
+ const fieldName = key;
45
+ const typeormField = key;
46
+ qb.andWhere(`to_tsvector('${configurationName}', "${entityName}"."${fieldName}") @@ to_tsquery('${configurationName}', :${typeormField})`, {
47
+ [typeormField]: obj[key],
48
+ });
49
+ }),
50
+ metadata_1.Metadata.set('queryFullTextColumn', {
51
+ ...options,
52
+ configuration: configurationName,
53
+ }, 'queryFullTextColumnFields'),
54
+ ]);
55
+ };
56
+ exports.QueryFullText = QueryFullText;
35
57
  //# sourceMappingURL=query.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/decorators/query.ts"],"names":[],"mappings":";;;AACA,kDAA+C;AAC/C,wCAMoB;AAEb,MAAM,cAAc,GAAG,CAAC,IAAe,EAAE,EAAE,CAChD,mBAAQ,CAAC,GAAG,CACV,gBAAgB,EAChB,IAAI,EACJ,sBAAsB,CACF,CAAC;AALZ,QAAA,cAAc,kBAKF;AAClB,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,IAAA,sBAAc,EAAC,4BAAkB,CAAC,CAAC;AAAtD,QAAA,UAAU,cAA4C;AAC5D,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,IAAA,sBAAc,EAAC,gCAAsB,CAAC,CAAC;AAAzD,QAAA,SAAS,aAAgD;AAC/D,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,IAAA,sBAAc,EAAC,kCAAwB,CAAC,CAAC;AAA7D,QAAA,WAAW,eAAkD;AAEnE,MAAM,sBAAsB,GAAG,GAAG,EAAE,CACzC,IAAA,sBAAc,EAAC,wCAA8B,CAAC,CAAC;AADpC,QAAA,sBAAsB,0BACc;AAE1C,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,IAAA,sBAAc,EAAC,gCAAsB,CAAC,CAAC;AAAjE,QAAA,iBAAiB,qBAAgD;AAEvE,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAE,KAAc,EAAE,EAAE,CAChE,IAAA,sBAAc,EAAC,CAAC,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE;IAC1C,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI;QAAE,OAAO;IAC7B,MAAM,SAAS,GAAG,KAAK,IAAI,GAAG,CAAC;IAC/B,MAAM,YAAY,GAAG,mBAAmB,UAAU,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;IACzE,EAAE,CAAC,QAAQ,CAAC,GAAG,UAAU,IAAI,SAAS,IAAI,QAAQ,KAAK,YAAY,EAAE,EAAE;QACrE,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;KACzB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AARQ,QAAA,aAAa,iBAQrB;AAEE,MAAM,mBAAmB,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,CAAC,KAAc,EAAE,EAAE,CAC1E,IAAA,qBAAa,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AADpB,QAAA,mBAAmB,uBACC;AAEpB,QAAA,YAAY,GAAG,IAAA,2BAAmB,EAAC,GAAG,CAAC,CAAC;AACxC,QAAA,iBAAiB,GAAG,IAAA,2BAAmB,EAAC,IAAI,CAAC,CAAC;AAC9C,QAAA,SAAS,GAAG,IAAA,2BAAmB,EAAC,GAAG,CAAC,CAAC;AACrC,QAAA,cAAc,GAAG,IAAA,2BAAmB,EAAC,IAAI,CAAC,CAAC;AAC3C,QAAA,aAAa,GAAG,IAAA,2BAAmB,EAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/decorators/query.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
- import { AnyClass, ClassType } from 'nesties';
1
+ import { AnyClass, BlankReturnMessageDto, ClassType } from 'nesties';
2
2
  import { OperationObject } from '@nestjs/swagger/dist/interfaces/open-api-spec.interface';
3
- import { CrudBase, RelationDef } from './crud-base';
3
+ import { CrudBase, CrudOptions } from './crud-base';
4
+ import { PageSettingsDto } from './bases';
5
+ import { CursorPaginationDto } from './dto/cursor-pagination';
4
6
  import { BaseRestfulController, RestfulMethods, RestfulPaginateType } from './bases/base-restful-controller';
5
7
  import { Repository } from 'typeorm';
8
+ import { RelationDef } from './utility/relation-def';
6
9
  export interface RestfulFactoryOptions<T> {
7
10
  fieldsToOmit?: (keyof T)[];
8
11
  prefix?: string;
@@ -65,4 +68,62 @@ export declare class RestfulFactory<T extends {
65
68
  }> = {}>(routeOptions?: Options): new (service: CrudBase<T> | Repository<T>) => Omit<BaseRestfulController<T>, { [M in keyof NonNullable<Options["routes"]>]: NonNullable<Options["routes"]>[M] extends {
66
69
  enabled: false;
67
70
  } ? M : never; }[keyof NonNullable<Options["routes"]>]>;
71
+ crudService(options?: CrudOptions<T>): {
72
+ new (repo: Repository<T>): {
73
+ readonly entityName: string;
74
+ readonly entityReturnMessageDto: new (statusCode: number, message: string, data: T) => import("nesties").GenericReturnMessageDto<T>;
75
+ readonly importEntryDto: new () => {
76
+ result: string;
77
+ entry: T;
78
+ };
79
+ readonly importReturnMessageDto: new (statusCode: number, message: string, data: {
80
+ result: string;
81
+ entry: T;
82
+ }[]) => import("nesties").GenericReturnMessageDto<{
83
+ result: string;
84
+ entry: T;
85
+ }[]>;
86
+ readonly entityPaginatedReturnMessageDto: new (statusCode: number, message: string, data: T[], total: number, pageSettings: import("nesties").PageSettingsWise) => import("nesties").GenericPaginatedReturnMessageDto<T>;
87
+ readonly entityCursorPaginatedReturnMessageDto: new (statusCode: number, message: string, data: T[], cursorResponse: import("./dto").CursorPaginationResponseWise) => import("./dto").GenericCursorPaginationReturnMessageDto<T>;
88
+ readonly entityRelations: (string | RelationDef)[];
89
+ readonly extraGetQuery: (qb: import("typeorm").SelectQueryBuilder<T>) => void;
90
+ readonly log: import("@nestjs/common").ConsoleLogger;
91
+ readonly _typeormRelations: import("./utility/get-typeorm-relations").TypeormRelation<any, string>[];
92
+ entityClass: ClassType<T>;
93
+ repo: Repository<T>;
94
+ crudOptions: CrudOptions<T>;
95
+ _cleanEntityNotInResultFields(ent: T): T;
96
+ cleanEntityNotInResultFields<E extends T | T[]>(ents: E): E;
97
+ _batchCreate(ents: T[], beforeCreate?: (repo: Repository<T>) => Promise<void>, skipErrors?: boolean): Promise<{
98
+ results: T[];
99
+ skipped: {
100
+ result: string;
101
+ entry: T;
102
+ }[];
103
+ }>;
104
+ create(_ent: T, beforeCreate?: (repo: Repository<T>) => Promise<void>): Promise<import("nesties").GenericReturnMessageDto<T>>;
105
+ readonly entityAliasName: string;
106
+ _applyQueryRelation(qb: import("typeorm").SelectQueryBuilder<T>, relation: RelationDef): void;
107
+ _applyQueryRelations(qb: import("typeorm").SelectQueryBuilder<T>): void;
108
+ _applyQueryFilters(qb: import("typeorm").SelectQueryBuilder<T>, ent: T): void;
109
+ queryBuilder(): import("typeorm").SelectQueryBuilder<T>;
110
+ findOne(id: import("./crud-base").EntityId<T>, extraQuery?: (qb: import("typeorm").SelectQueryBuilder<T>) => void): Promise<import("nesties").GenericReturnMessageDto<T>>;
111
+ _preFindAll(ent?: Partial<T>, extraQuery?: (qb: import("typeorm").SelectQueryBuilder<T>) => void): Promise<{
112
+ query: import("typeorm").SelectQueryBuilder<T>;
113
+ newEnt: T;
114
+ pageSettings: T & PageSettingsDto;
115
+ }>;
116
+ findAll(ent?: Partial<T>, extraQuery?: (qb: import("typeorm").SelectQueryBuilder<T>) => void): Promise<import("nesties").GenericPaginatedReturnMessageDto<T>>;
117
+ findAllCursorPaginated(ent?: Partial<T & Partial<CursorPaginationDto>>, extraQuery?: (qb: import("typeorm").SelectQueryBuilder<T>) => void): Promise<import("./dto").GenericCursorPaginationReturnMessageDto<T>>;
118
+ update(id: import("./crud-base").EntityId<T>, entPart: Partial<T>, cond?: import("typeorm").FindOptionsWhere<T>): Promise<BlankReturnMessageDto>;
119
+ delete(id: import("./crud-base").EntityId<T>, cond?: import("typeorm").FindOptionsWhere<T>): Promise<BlankReturnMessageDto>;
120
+ importEntities(_ents: T[], extraChecking?: (ent: T) => string | Promise<string>): Promise<import("nesties").GenericReturnMessageDto<{
121
+ result: string;
122
+ entry: T;
123
+ }[]>>;
124
+ exists(id: import("./crud-base").EntityId<T>): Promise<boolean>;
125
+ _loadFullTextIndex(): Promise<void>;
126
+ onModuleInit(): Promise<void>;
127
+ };
128
+ };
68
129
  }
@@ -44,17 +44,11 @@ const metadata_1 = require("./utility/metadata");
44
44
  const rename_class_1 = require("./utility/rename-class");
45
45
  const constants_1 = require("@nestjs/swagger/dist/constants");
46
46
  const get_typeorm_relations_1 = require("./utility/get-typeorm-relations");
47
+ const crud_base_1 = require("./crud-base");
47
48
  const bases_1 = require("./bases");
48
49
  const cursor_pagination_1 = require("./dto/cursor-pagination");
49
50
  const base_restful_controller_1 = require("./bases/base-restful-controller");
50
- const extractRelationName = (relation) => {
51
- if (typeof relation === 'string') {
52
- return relation;
53
- }
54
- else {
55
- return relation.name;
56
- }
57
- };
51
+ const filter_relations_1 = require("./utility/filter-relations");
58
52
  const getCurrentLevelRelations = (relations) => relations.filter((r) => !r.includes('.'));
59
53
  const getNextLevelRelations = (relations, enteringField) => relations
60
54
  .filter((r) => r.includes('.') && r.startsWith(`${enteringField}.`))
@@ -66,7 +60,7 @@ class RestfulFactory {
66
60
  resolveEntityResultDto() {
67
61
  const relations = (0, get_typeorm_relations_1.getTypeormRelations)(this.entityClass);
68
62
  const currentLevelRelations = this.options.relations &&
69
- new Set(getCurrentLevelRelations(this.options.relations.map(extractRelationName)));
63
+ new Set(getCurrentLevelRelations(this.options.relations.map(filter_relations_1.extractRelationName)));
70
64
  const outputFieldsToOmit = new Set([
71
65
  ...(0, metadata_1.getNotInResultFields)(this.entityClass, this.options.keepEntityVersioningDates),
72
66
  ...(this.options.outputFieldsToOmit || []),
@@ -102,7 +96,7 @@ class RestfulFactory {
102
96
  ? (0, lodash_1.upperFirst)(relation.propertyName)
103
97
  : relation.propertyClass.name}`,
104
98
  relations: this.options.relations &&
105
- getNextLevelRelations(this.options.relations.map(extractRelationName), relation.propertyName),
99
+ getNextLevelRelations(this.options.relations.map(filter_relations_1.extractRelationName), relation.propertyName),
106
100
  }, this.__resolveVisited);
107
101
  const relationResultDto = relationFactory.entityResultDto;
108
102
  replace([relationResultDto]);
@@ -151,6 +145,10 @@ class RestfulFactory {
151
145
  ]);
152
146
  // eslint-disable-next-line @typescript-eslint/ban-types
153
147
  this.idType = Reflect.getMetadata('design:type', this.entityClass.prototype, 'id');
148
+ if (options.relations) {
149
+ // we have to filter once to ensure every relation is correct
150
+ (0, filter_relations_1.filterRelations)(entityClass, options.relations);
151
+ }
154
152
  }
155
153
  usePrefix(methodDec, path) {
156
154
  if (path) {
@@ -391,6 +389,12 @@ class RestfulFactory {
391
389
  }
392
390
  return (0, rename_class_1.RenameClass)(cl, `${this.getEntityClassName()}Controller`);
393
391
  }
392
+ crudService(options = {}) {
393
+ return (0, crud_base_1.CrudService)(this.entityClass, {
394
+ relations: this.options.relations,
395
+ ...options,
396
+ });
397
+ }
394
398
  }
395
399
  exports.RestfulFactory = RestfulFactory;
396
400
  //# sourceMappingURL=restful.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"restful.js","sourceRoot":"","sources":["../../src/restful.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"restful.js","sourceRoot":"","sources":["../../src/restful.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { AnyClass } from 'nesties';
2
+ import { RelationDef } from './relation-def';
3
+ export declare const extractRelationName: (relation: string | RelationDef) => string;
4
+ export declare const filterRelations: <T extends string | RelationDef>(cl: AnyClass, relations?: T[]) => T[];
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.filterRelations = exports.extractRelationName = void 0;
4
+ const get_typeorm_relations_1 = require("./get-typeorm-relations");
5
+ const extractRelationName = (relation) => {
6
+ if (typeof relation === 'string') {
7
+ return relation;
8
+ }
9
+ else {
10
+ return relation.name;
11
+ }
12
+ };
13
+ exports.extractRelationName = extractRelationName;
14
+ const typeormRelationsCache = new Map();
15
+ const filterRelations = (cl, relations) => {
16
+ const fetchTypeormRelations = (cl) => {
17
+ if (typeormRelationsCache.has(cl)) {
18
+ return typeormRelationsCache.get(cl);
19
+ }
20
+ const relations = (0, get_typeorm_relations_1.getTypeormRelations)(cl);
21
+ const map = Object.fromEntries(relations.map((r) => [r.propertyName, r]));
22
+ typeormRelationsCache.set(cl, map);
23
+ return map;
24
+ };
25
+ return (relations?.filter((r) => {
26
+ const relationName = (0, exports.extractRelationName)(r);
27
+ const checkLevel = (entityClass, name) => {
28
+ const [currentLevel, ...nextLevel] = name.split('.');
29
+ const relation = fetchTypeormRelations(entityClass)?.[currentLevel];
30
+ if (!relation) {
31
+ throw new Error(`Relation ${currentLevel} not found in ${entityClass.name} (Reading ${relationName} in ${cl.name})`);
32
+ }
33
+ if (relation.computed)
34
+ return false;
35
+ if (!nextLevel.length)
36
+ return true;
37
+ return checkLevel(relation.propertyClass, nextLevel.join('.'));
38
+ };
39
+ return checkLevel(cl, relationName);
40
+ }) || []);
41
+ };
42
+ exports.filterRelations = filterRelations;
43
+ //# sourceMappingURL=filter-relations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-relations.js","sourceRoot":"","sources":["../../../src/utility/filter-relations.ts"],"names":[],"mappings":";;;AAEA,mEAA+E;AAExE,MAAM,mBAAmB,GAAG,CAAC,QAA8B,EAAE,EAAE;IACpE,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;AACH,CAAC,CAAC;AANW,QAAA,mBAAmB,uBAM9B;AAEF,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAGlC,CAAC;AAEG,MAAM,eAAe,GAAG,CAC7B,EAAY,EACZ,SAAe,EACf,EAAE;IACF,MAAM,qBAAqB,GAAG,CAAC,EAAY,EAAE,EAAE;QAC7C,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAClC,OAAO,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC;QACxC,CAAC;QACD,MAAM,SAAS,GAAG,IAAA,2CAAmB,EAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAC5B,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CACP,CAAC;QACrC,qBAAqB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACnC,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IACF,OAAO,CACL,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACtB,MAAM,YAAY,GAAG,IAAA,2BAAmB,EAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,CAAC,WAAqB,EAAE,IAAY,EAAW,EAAE;YAClE,MAAM,CAAC,YAAY,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,WAAW,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CACb,YAAY,YAAY,iBAAiB,WAAW,CAAC,IAAI,aAAa,YAAY,OAAO,EAAE,CAAC,IAAI,GAAG,CACpG,CAAC;YACJ,CAAC;YACD,IAAI,QAAQ,CAAC,QAAQ;gBAAE,OAAO,KAAK,CAAC;YACpC,IAAI,CAAC,SAAS,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YACnC,OAAO,UAAU,CAAC,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC;QACF,OAAO,UAAU,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC,CAAC,IAAI,EAAE,CACT,CAAC;AACJ,CAAC,CAAC;AAjCW,QAAA,eAAe,mBAiC1B"}
@@ -1,11 +1,9 @@
1
- import { AnyClass, ClassType } from 'nesties';
2
- export declare function getTypeormRelations<T>(cl: ClassType<T>): {
1
+ import { ClassType } from 'nesties';
2
+ export type TypeormRelation<T = any, KT = string> = {
3
3
  isArray: boolean;
4
- propertyClass: AnyClass;
5
- propertyName: string;
6
- }[];
7
- export declare function getTypeormRelationsMap<T>(cl: ClassType<T>): { [key in keyof T]: {
8
- isArray: boolean;
9
- propertyClass: ClassType<T[key]>;
10
- propertyName: key;
11
- }; };
4
+ propertyClass: ClassType<T>;
5
+ propertyName: KT;
6
+ computed: boolean;
7
+ };
8
+ export declare function getTypeormRelations<T>(cl: ClassType<T>): TypeormRelation[];
9
+ export declare function getTypeormRelationsMap<T>(cl: ClassType<T>): { [key in keyof T]: TypeormRelation<T, key>; };
@@ -28,6 +28,7 @@ function getTypeormRelations(cl) {
28
28
  isArray,
29
29
  propertyClass,
30
30
  propertyName: relation.propertyName,
31
+ computed: false,
31
32
  };
32
33
  });
33
34
  const computedRelations = (0, metadata_1.getSpecificFields)(cl, 'relationComputed').map((field) => {
@@ -37,6 +38,7 @@ function getTypeormRelations(cl) {
37
38
  isArray: res.isArray,
38
39
  propertyClass: res.entityClass,
39
40
  propertyName: field,
41
+ computed: true,
40
42
  };
41
43
  });
42
44
  return lodash_1.default.uniqBy([...typeormRelations, ...computedRelations], // Merge typeorm relations and computed relations
@@ -1 +1 @@
1
- {"version":3,"file":"get-typeorm-relations.js","sourceRoot":"","sources":["../../../src/utility/get-typeorm-relations.ts"],"names":[],"mappings":";;;;;AAKA,kDA6CC;AAED,wDAUC;AA7DD,qCAAiD;AACjD,yCAA0D;AAC1D,oDAAuB;AAEvB,SAAgB,mBAAmB,CAAI,EAAgB;IACrD,MAAM,SAAS,GAAG,IAAA,gCAAsB,GAAE,CAAC,SAAS,CAAC,MAAM,CACzD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,CACvB,CAAC;IAEF,MAAM,gBAAgB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,oBAAoB,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC3C,oCAAoC;QACpC,IAAI,aAAuB,CAAC;QAC5B,IAAI,OAAO,oBAAoB,KAAK,UAAU,EAAE,CAAC;YAC/C,MAAM,aAAa,GAAI,oBAAuC,EAAE,CAAC;YACjE,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE,CAAC;gBACxC,aAAa,GAAG,aAAa,CAAC;YAChC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,aAAa,GAAG,OAAO,CAAC,WAAW,CACjC,aAAa,EACb,EAAE,CAAC,SAAS,EACZ,QAAQ,CAAC,YAAY,CACtB,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO;YACP,aAAa;YACb,YAAY,EAAE,QAAQ,CAAC,YAAY;SACpC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,IAAA,4BAAiB,EAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC,GAAG,CACrE,CAAC,KAAK,EAAE,EAAE;QACR,MAAM,IAAI,GAAG,oBAAS,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,IAAI,EAAE,CAAC;QACnB,OAAO;YACL,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,aAAa,EAAE,GAAG,CAAC,WAAW;YAC9B,YAAY,EAAE,KAAK;SACpB,CAAC;IACJ,CAAC,CACF,CAAC;IACF,OAAO,gBAAC,CAAC,MAAM,CACb,CAAC,GAAG,gBAAgB,EAAE,GAAG,iBAAiB,CAAC,EAAE,iDAAiD;IAC9F,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CACtB,CAAC;AACJ,CAAC;AAED,SAAgB,sBAAsB,CAAI,EAAgB;IACxD,OAAO,MAAM,CAAC,WAAW,CACvB,mBAAmB,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAOxD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-typeorm-relations.js","sourceRoot":"","sources":["../../../src/utility/get-typeorm-relations.ts"],"names":[],"mappings":";;;;;AAYA,kDA+CC;AAED,wDAMC;AAlED,qCAAiD;AACjD,yCAA0D;AAC1D,oDAAuB;AASvB,SAAgB,mBAAmB,CAAI,EAAgB;IACrD,MAAM,SAAS,GAAG,IAAA,gCAAsB,GAAE,CAAC,SAAS,CAAC,MAAM,CACzD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,CACvB,CAAC;IAEF,MAAM,gBAAgB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,oBAAoB,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC3C,oCAAoC;QACpC,IAAI,aAAuB,CAAC;QAC5B,IAAI,OAAO,oBAAoB,KAAK,UAAU,EAAE,CAAC;YAC/C,MAAM,aAAa,GAAI,oBAAuC,EAAE,CAAC;YACjE,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE,CAAC;gBACxC,aAAa,GAAG,aAAa,CAAC;YAChC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,aAAa,GAAG,OAAO,CAAC,WAAW,CACjC,aAAa,EACb,EAAE,CAAC,SAAS,EACZ,QAAQ,CAAC,YAAY,CACtB,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO;YACP,aAAa;YACb,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,QAAQ,EAAE,KAAK;SAChB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,IAAA,4BAAiB,EAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC,GAAG,CACrE,CAAC,KAAK,EAAE,EAAE;QACR,MAAM,IAAI,GAAG,oBAAS,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,IAAI,EAAE,CAAC;QACnB,OAAO;YACL,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,aAAa,EAAE,GAAG,CAAC,WAAW;YAC9B,YAAY,EAAE,KAAK;YACnB,QAAQ,EAAE,IAAI;SACf,CAAC;IACJ,CAAC,CACF,CAAC;IACF,OAAO,gBAAC,CAAC,MAAM,CACb,CAAC,GAAG,gBAAgB,EAAE,GAAG,iBAAiB,CAAC,EAAE,iDAAiD;IAC9F,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CACtB,CAAC;AACJ,CAAC;AAED,SAAgB,sBAAsB,CAAI,EAAgB;IACxD,OAAO,MAAM,CAAC,WAAW,CACvB,mBAAmB,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAGxD,CAAC;AACJ,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { MetadataSetter, Reflector } from 'typed-reflector';
2
2
  import { QueryCond } from '../bases';
3
3
  import { AnyClass } from 'nesties';
4
+ import { QueryFullTextColumnOptions } from './query-full-text-column-options.interface';
4
5
  interface SpecificFields {
5
6
  notColumn: boolean;
6
7
  notWritable: boolean;
@@ -12,6 +13,7 @@ interface SpecificFields {
12
13
  entityClass: AnyClass;
13
14
  isArray: boolean;
14
15
  };
16
+ queryFullTextColumn: QueryFullTextColumnOptions;
15
17
  }
16
18
  interface MetadataMap extends SpecificFields {
17
19
  queryCondition: QueryCond;
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/utility/metadata.ts"],"names":[],"mappings":";;;AA2BA,8CAIC;AAED,oDAYC;AA7CD,qDAA4D;AAwB/C,QAAA,QAAQ,GAAG,IAAI,gCAAc,EAAiC,CAAC;AAC/D,QAAA,SAAS,GAAG,IAAI,2BAAS,EAAiC,CAAC;AAExE,SAAgB,iBAAiB,CAAC,GAAQ,EAAE,IAA0B;IACpE,OAAO,iBAAS;SACb,QAAQ,CAAC,GAAG,IAAI,QAAQ,EAAE,GAAG,CAAC;SAC9B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAgB,oBAAoB,CAClC,GAAQ,EACR,yBAAyB,GAAG,KAAK;IAEjC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAChE,IAAI,yBAAyB,EAAE,CAAC;QAC9B,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IACD,OAAO;QACL,GAAG,iBAAiB;QACpB,GAAG,iBAAiB,CAAC,GAAG,EAAE,sBAAsB,CAAC;KAClD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/utility/metadata.ts"],"names":[],"mappings":";;;AA6BA,8CAIC;AAED,oDAYC;AA/CD,qDAA4D;AA0B/C,QAAA,QAAQ,GAAG,IAAI,gCAAc,EAAiC,CAAC;AAC/D,QAAA,SAAS,GAAG,IAAI,2BAAS,EAAiC,CAAC;AAExE,SAAgB,iBAAiB,CAAC,GAAQ,EAAE,IAA0B;IACpE,OAAO,iBAAS;SACb,QAAQ,CAAC,GAAG,IAAI,QAAQ,EAAE,GAAG,CAAC;SAC9B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAgB,oBAAoB,CAClC,GAAQ,EACR,yBAAyB,GAAG,KAAK;IAEjC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAChE,IAAI,yBAAyB,EAAE,CAAC;QAC9B,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IACD,OAAO;QACL,GAAG,iBAAiB;QACpB,GAAG,iBAAiB,CAAC,GAAG,EAAE,sBAAsB,CAAC;KAClD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ export interface QueryFullTextColumnOptions {
2
+ configuration?: string;
3
+ parser?: string;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=query-full-text-column-options.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-full-text-column-options.interface.js","sourceRoot":"","sources":["../../../src/utility/query-full-text-column-options.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ export interface RelationDef {
2
+ name: string;
3
+ inner?: boolean;
4
+ extraCondition?: string;
5
+ extraConditionFields?: Record<string, any>;
6
+ noSelect?: boolean;
7
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=relation-def.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation-def.js","sourceRoot":"","sources":["../../../src/utility/relation-def.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "nicot",
3
3
  "description": "Nest.js interacting with class-validator + OpenAPI + TypeORM for Nest.js Restful API development.",
4
- "version": "1.1.14",
4
+ "version": "1.1.15",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "scripts": {
@@ -83,6 +83,7 @@
83
83
  "dependencies": {
84
84
  "lodash": "^4.17.21",
85
85
  "nesties": "^1.1.2",
86
+ "p-queue": "6.6.2",
86
87
  "superjson": "1.13.3",
87
88
  "typed-reflector": "^1.0.11"
88
89
  }