@asapjs/sequelize 0.10.44 → 1.0.0-20

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.
Files changed (157) hide show
  1. package/dist/console/index.js +4 -4
  2. package/dist/console/index.js.map +1 -1
  3. package/dist/dbml/index.d.ts.map +1 -1
  4. package/dist/dbml/index.js +2 -2
  5. package/dist/dbml/index.js.map +1 -1
  6. package/dist/dto/ExtendableDto.d.ts +42 -3
  7. package/dist/dto/ExtendableDto.d.ts.map +1 -1
  8. package/dist/dto/ExtendableDto.js +62 -49
  9. package/dist/dto/ExtendableDto.js.map +1 -1
  10. package/dist/dto/PaginationQueryDto.d.ts +2 -0
  11. package/dist/dto/PaginationQueryDto.d.ts.map +1 -1
  12. package/dist/dto/PaginationQueryDto.js +5 -4
  13. package/dist/dto/PaginationQueryDto.js.map +1 -1
  14. package/dist/dto/index.d.ts +2 -2
  15. package/dist/dto/index.d.ts.map +1 -1
  16. package/dist/dto/index.js +2 -2
  17. package/dist/dto/index.js.map +1 -1
  18. package/dist/index.d.ts +8 -3
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +25 -4
  21. package/dist/index.js.map +1 -1
  22. package/dist/plugin.d.ts +8 -0
  23. package/dist/plugin.d.ts.map +1 -0
  24. package/dist/plugin.js +68 -0
  25. package/dist/plugin.js.map +1 -0
  26. package/dist/repository/index.d.ts +18 -9
  27. package/dist/repository/index.d.ts.map +1 -1
  28. package/dist/repository/index.js +27 -24
  29. package/dist/repository/index.js.map +1 -1
  30. package/dist/sequelize/index.d.ts.map +1 -1
  31. package/dist/sequelize/index.js +47 -21
  32. package/dist/sequelize/index.js.map +1 -1
  33. package/dist/table/index.d.ts.map +1 -1
  34. package/dist/table/index.js +17 -3
  35. package/dist/table/index.js.map +1 -1
  36. package/dist/types/belongsto.d.ts +1 -1
  37. package/dist/types/belongsto.d.ts.map +1 -1
  38. package/dist/types/belongsto.js +6 -2
  39. package/dist/types/belongsto.js.map +1 -1
  40. package/dist/types/decorators.d.ts +4 -0
  41. package/dist/types/decorators.d.ts.map +1 -0
  42. package/dist/types/decorators.js +56 -0
  43. package/dist/types/decorators.js.map +1 -0
  44. package/dist/types/foreignkey.d.ts +1 -1
  45. package/dist/types/foreignkey.d.ts.map +1 -1
  46. package/dist/types/foreignkey.js +12 -7
  47. package/dist/types/foreignkey.js.map +1 -1
  48. package/dist/types/generators/toSequelizeGenerator.d.ts +1 -1
  49. package/dist/types/generators/toSequelizeGenerator.d.ts.map +1 -1
  50. package/dist/types/generators/toSwaggerGenerator.d.ts +1 -1
  51. package/dist/types/generators/toSwaggerGenerator.d.ts.map +1 -1
  52. package/dist/types/generators/typeGenerator.d.ts +1 -1
  53. package/dist/types/generators/typeGenerator.d.ts.map +1 -1
  54. package/dist/types/generators/typeGenerator.js +27 -4
  55. package/dist/types/generators/typeGenerator.js.map +1 -1
  56. package/dist/types/index.d.ts +5 -23
  57. package/dist/types/index.d.ts.map +1 -1
  58. package/dist/types/index.js +4 -38
  59. package/dist/types/index.js.map +1 -1
  60. package/dist/types/paging.d.ts +1 -1
  61. package/dist/types/paging.d.ts.map +1 -1
  62. package/dist/types/paging.js +3 -3
  63. package/dist/types/paging.js.map +1 -1
  64. package/dist/types/query.d.ts +1 -1
  65. package/dist/types/query.d.ts.map +1 -1
  66. package/dist/types/query.js +2 -2
  67. package/dist/types/query.js.map +1 -1
  68. package/dist/types/register.d.ts +2 -0
  69. package/dist/types/register.d.ts.map +1 -0
  70. package/dist/types/register.js +53 -0
  71. package/dist/types/register.js.map +1 -0
  72. package/dist/types/schema-extensions.d.ts +116 -0
  73. package/dist/types/schema-extensions.d.ts.map +1 -0
  74. package/dist/types/schema-extensions.js +150 -0
  75. package/dist/types/schema-extensions.js.map +1 -0
  76. package/dist/utils/getUserIdInQuery.d.ts.map +1 -1
  77. package/dist/utils/isClass.d.ts.map +1 -1
  78. package/dist/utils/promiseTimeout.d.ts.map +1 -1
  79. package/dist/utils/swagger.d.ts +4 -0
  80. package/dist/utils/swagger.d.ts.map +1 -0
  81. package/dist/utils/swagger.js +26 -0
  82. package/dist/utils/swagger.js.map +1 -0
  83. package/package.json +44 -33
  84. package/.yarnrc.yml +0 -1
  85. package/dist/types/array.d.ts +0 -7
  86. package/dist/types/array.d.ts.map +0 -1
  87. package/dist/types/array.js +0 -58
  88. package/dist/types/array.js.map +0 -1
  89. package/dist/types/base64.d.ts +0 -10
  90. package/dist/types/base64.d.ts.map +0 -1
  91. package/dist/types/base64.js +0 -20
  92. package/dist/types/base64.js.map +0 -1
  93. package/dist/types/bigint.d.ts +0 -12
  94. package/dist/types/bigint.d.ts.map +0 -1
  95. package/dist/types/bigint.js +0 -27
  96. package/dist/types/bigint.js.map +0 -1
  97. package/dist/types/binary.d.ts +0 -10
  98. package/dist/types/binary.d.ts.map +0 -1
  99. package/dist/types/binary.js +0 -20
  100. package/dist/types/binary.js.map +0 -1
  101. package/dist/types/boolean.d.ts +0 -9
  102. package/dist/types/boolean.d.ts.map +0 -1
  103. package/dist/types/boolean.js +0 -27
  104. package/dist/types/boolean.js.map +0 -1
  105. package/dist/types/dateonly.d.ts +0 -8
  106. package/dist/types/dateonly.d.ts.map +0 -1
  107. package/dist/types/dateonly.js +0 -20
  108. package/dist/types/dateonly.js.map +0 -1
  109. package/dist/types/datetime.d.ts +0 -8
  110. package/dist/types/datetime.d.ts.map +0 -1
  111. package/dist/types/datetime.js +0 -20
  112. package/dist/types/datetime.js.map +0 -1
  113. package/dist/types/decemal.d.ts +0 -11
  114. package/dist/types/decemal.d.ts.map +0 -1
  115. package/dist/types/decemal.js +0 -30
  116. package/dist/types/decemal.js.map +0 -1
  117. package/dist/types/double.d.ts +0 -11
  118. package/dist/types/double.d.ts.map +0 -1
  119. package/dist/types/double.js +0 -27
  120. package/dist/types/double.js.map +0 -1
  121. package/dist/types/dto.d.ts +0 -10
  122. package/dist/types/dto.d.ts.map +0 -1
  123. package/dist/types/dto.js +0 -23
  124. package/dist/types/dto.js.map +0 -1
  125. package/dist/types/enum.d.ts +0 -9
  126. package/dist/types/enum.d.ts.map +0 -1
  127. package/dist/types/enum.js +0 -26
  128. package/dist/types/enum.js.map +0 -1
  129. package/dist/types/float.d.ts +0 -11
  130. package/dist/types/float.d.ts.map +0 -1
  131. package/dist/types/float.js +0 -27
  132. package/dist/types/float.js.map +0 -1
  133. package/dist/types/int.d.ts +0 -12
  134. package/dist/types/int.d.ts.map +0 -1
  135. package/dist/types/int.js +0 -27
  136. package/dist/types/int.js.map +0 -1
  137. package/dist/types/json.d.ts +0 -9
  138. package/dist/types/json.d.ts.map +0 -1
  139. package/dist/types/json.js +0 -31
  140. package/dist/types/json.js.map +0 -1
  141. package/dist/types/long.d.ts +0 -12
  142. package/dist/types/long.d.ts.map +0 -1
  143. package/dist/types/long.js +0 -27
  144. package/dist/types/long.js.map +0 -1
  145. package/dist/types/password.d.ts +0 -6
  146. package/dist/types/password.d.ts.map +0 -1
  147. package/dist/types/password.js +0 -20
  148. package/dist/types/password.js.map +0 -1
  149. package/dist/types/string.d.ts +0 -11
  150. package/dist/types/string.d.ts.map +0 -1
  151. package/dist/types/string.js +0 -26
  152. package/dist/types/string.js.map +0 -1
  153. package/dist/types/text.d.ts +0 -9
  154. package/dist/types/text.d.ts.map +0 -1
  155. package/dist/types/text.js +0 -16
  156. package/dist/types/text.js.map +0 -1
  157. package/tsconfig.json +0 -21
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,2CAAwC;AACxC,2CAAkD;AAClD,2CAA2D;AAC3D,+CAA0D;AAC1D,qCAAmC,CAAC,eAAe;AAEnD,MAAa,eAAe;IAA5B;QACE,SAAI,GAAG,mBAAmB,CAAC;IA4C7B,CAAC;IA1CO,IAAI,CAAC,MAAoB,EAAE,OAAsB;;YACrD,eAAM,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,YAAY,CAAC,CAAC;YAEnD,IAAI,CAAC;gBACH,+CAA+C;gBAC/C,IAAI,CAAC,iBAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC/B,iBAAQ,CAAC,QAAQ,CAAC,wBAAe,CAAC,CAAC;gBACrC,CAAC;gBAED,oCAAoC;gBACpC,IAAA,iCAAsB,GAAE,CAAC;gBAEzB,MAAM,IAAA,+BAAmB,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC1C,eAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,kCAAkC,CAAC,CAAC;YAC9D,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,MAAM,GAAG,GAAG,KAAc,CAAC;gBAC3B,eAAM,CAAC,KAAK,CAAC,wBAAwB,IAAI,CAAC,IAAI,SAAS,EAAE;oBACvD,GAAG,EAAE,KAAK;oBACV,OAAO,EAAE;wBACP,OAAO,EAAE,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO;wBACrB,KAAK,EAAE,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK;wBACjB,IAAI,EAAE,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI;qBAChB;iBACF,CAAC,CAAC;gBACH,OAAO,CAAC,KAAK,CAAC,+DAA+D,EAAE,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,KAAI,KAAK,CAAC,CAAC;gBACpG,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KAAA;IAEK,OAAO;;YACX,uCAAuC;YACvC,IAAI,CAAC;gBACH,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;gBAChD,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;gBACjC,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;oBACxB,eAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,gCAAgC,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,eAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,IAAI,SAAS,EAAE,KAAK,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;KAAA;CACF;AA7CD,0CA6CC"}
@@ -1,24 +1,33 @@
1
1
  import { Model, ModelCtor } from 'sequelize-typescript';
2
2
  import { FindOptions } from 'sequelize';
3
- import { ExtendableDto } from '../dto';
4
- interface IArgs<T extends Model> extends FindOptions<T> {
5
- exportTo: typeof ExtendableDto;
3
+ import { ExtendableDto, type DtoData, type PagingResponse } from '../dto';
4
+ /** @internal */
5
+ export interface IArgs<T extends Model, D extends ExtendableDto = ExtendableDto> extends FindOptions<T> {
6
+ exportTo: new (...args: any[]) => D;
6
7
  user?: any;
7
8
  paging?: {
8
9
  page: number;
9
10
  limit: number;
10
11
  };
11
12
  }
12
- type FindAllResponse<T> = T[];
13
- type FindOneResponse<T> = T | null;
13
+ /** repository 객체의 공개 API. 반환 타입은 Dto 데이터 필드만 포함(메서드 제외). */
14
+ interface RepositoryApi {
15
+ findAll<M extends Model, D extends ExtendableDto>(model: ModelCtor<M>, args: IArgs<M, D> & {
16
+ paging?: undefined;
17
+ }): Promise<M[]>;
18
+ findAll<M extends Model, D extends ExtendableDto>(model: ModelCtor<M>, args: IArgs<M, D> & {
19
+ paging: {
20
+ page: number;
21
+ limit: number;
22
+ };
23
+ }): Promise<PagingResponse<DtoData<D>>>;
24
+ findOne<M extends Model, D extends ExtendableDto>(model: ModelCtor<M>, args: IArgs<M, D>): Promise<DtoData<D> | null>;
25
+ }
14
26
  export default class Repository {
15
27
  private getOptionsWithArgs;
16
28
  private findAll;
17
29
  private findOne;
18
- repository: {
19
- findAll: <T extends Model<any, any>>(model: ModelCtor<T>, args: IArgs<T>) => Promise<FindAllResponse<T>>;
20
- findOne: <T_1 extends Model<any, any>>(model: ModelCtor<T_1>, args: IArgs<T_1>) => Promise<FindOneResponse<T_1>>;
21
- };
30
+ repository: RepositoryApi;
22
31
  }
23
32
  export {};
24
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/repository/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,UAAU,KAAK,CAAC,CAAC,SAAS,KAAK,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IACrD,QAAQ,EAAE,OAAO,aAAa,CAAC;IAC/B,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1C;AAED,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AAC9B,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEnC,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,OAAO,CAAC,kBAAkB,CAoBxB;IAEF,OAAO,CAAC,OAAO,CAqBb;IAEF,OAAO,CAAC,OAAO,CAIb;IAEK,UAAU;;;MAGf;CACH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/repository/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AAE1E,gBAAgB;AAChB,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,aAAa,GAAG,aAAa,CAC9E,SAAQ,WAAW,CAAC,CAAC,CAAC;IACtB,QAAQ,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AAED,4DAA4D;AAC5D,UAAU,aAAa;IACtB,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,aAAa,EAC/C,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,MAAM,CAAC,EAAE,SAAS,CAAA;KAAE,GACxC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,aAAa,EAC/C,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAC7D,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,aAAa,EAC/C,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GACf,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;CAC9B;AAED,MAAM,CAAC,OAAO,OAAO,UAAU;IAC9B,OAAO,CAAC,kBAAkB;YAsBZ,OAAO;YAkCP,OAAO;IASd,UAAU,EAAE,aAAa,CAG9B;CACF"}
@@ -22,29 +22,34 @@ var __rest = (this && this.__rest) || function (s, e) {
22
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
23
  class Repository {
24
24
  constructor() {
25
- this.getOptionsWithArgs = (args) => {
26
- const { exportTo: Dto, user, paging } = args, options = __rest(args, ["exportTo", "user", "paging"]);
27
- const exportDto = new Dto();
28
- const _a = exportDto.middleware(undefined, user), { model: _ } = _a, queryOptions = __rest(_a, ["model"]);
29
- const page = parseInt(String(paging === null || paging === void 0 ? void 0 : paging.page), 10);
30
- const limit = parseInt(String(paging === null || paging === void 0 ? void 0 : paging.limit), 10);
31
- const pagingOptions = paging
32
- ? {
33
- limit,
34
- offset: limit * page,
35
- }
36
- : {};
37
- const additionalOptions = { distinct: true };
38
- const query = Object.assign(Object.assign(Object.assign(Object.assign({}, queryOptions), options), pagingOptions), additionalOptions);
39
- return query;
25
+ this.repository = {
26
+ findAll: this.findAll.bind(this),
27
+ findOne: this.findOne.bind(this),
40
28
  };
41
- this.findAll = (model, args) => __awaiter(this, void 0, void 0, function* () {
42
- var _a, _b;
29
+ }
30
+ getOptionsWithArgs(args) {
31
+ const { exportTo: Dto, user, paging } = args, options = __rest(args, ["exportTo", "user", "paging"]);
32
+ const exportDto = new Dto();
33
+ const _a = exportDto.middleware(undefined, user), { model: _ } = _a, queryOptions = __rest(_a, ["model"]);
34
+ const page = parseInt(String(paging === null || paging === void 0 ? void 0 : paging.page), 10);
35
+ const limit = parseInt(String(paging === null || paging === void 0 ? void 0 : paging.limit), 10);
36
+ const pagingOptions = paging
37
+ ? {
38
+ limit,
39
+ offset: limit * page,
40
+ }
41
+ : {};
42
+ const additionalOptions = { distinct: true };
43
+ const query = Object.assign(Object.assign(Object.assign(Object.assign({}, queryOptions), options), pagingOptions), additionalOptions);
44
+ return query;
45
+ }
46
+ findAll(model, args) {
47
+ return __awaiter(this, void 0, void 0, function* () {
43
48
  const query = this.getOptionsWithArgs(args);
44
49
  if (args === null || args === void 0 ? void 0 : args.paging) {
45
50
  const { rows: raws, count: total } = yield model.findAndCountAll(query);
46
- const page = parseInt(String((_a = args === null || args === void 0 ? void 0 : args.paging) === null || _a === void 0 ? void 0 : _a.page), 10);
47
- const limit = parseInt(String((_b = args === null || args === void 0 ? void 0 : args.paging) === null || _b === void 0 ? void 0 : _b.limit), 10);
51
+ const page = parseInt(String(args.paging.page), 10);
52
+ const limit = parseInt(String(args.paging.limit), 10);
48
53
  const max_page = Math.ceil(total / limit) - 1;
49
54
  return {
50
55
  data: raws,
@@ -59,15 +64,13 @@ class Repository {
59
64
  const raws = yield model.findAll(query);
60
65
  return raws;
61
66
  });
62
- this.findOne = (model, args) => __awaiter(this, void 0, void 0, function* () {
67
+ }
68
+ findOne(model, args) {
69
+ return __awaiter(this, void 0, void 0, function* () {
63
70
  const query = this.getOptionsWithArgs(args);
64
71
  const raw = yield model.findOne(query);
65
72
  return raw;
66
73
  });
67
- this.repository = {
68
- findAll: this.findAll,
69
- findOne: this.findOne,
70
- };
71
74
  }
72
75
  }
73
76
  exports.default = Repository;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repository/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAcA,MAAqB,UAAU;IAA/B;QACU,uBAAkB,GAAG,CAAkB,IAAc,EAAE,EAAE;YAC/D,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAiB,IAAI,EAAhB,OAAO,UAAK,IAAI,EAAlD,8BAA2C,CAAO,CAAC;YACzD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;YAC5B,MAAM,KAAgC,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,EAArE,EAAE,KAAK,EAAE,CAAC,OAA2D,EAAtD,YAAY,cAA3B,SAA6B,CAAwC,CAAC;YAE5E,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAElD,MAAM,aAAa,GAAG,MAAM;gBAC1B,CAAC,CAAC;oBACE,KAAK;oBACL,MAAM,EAAE,KAAK,GAAG,IAAI;iBACrB;gBACH,CAAC,CAAC,EAAE,CAAC;YAEP,MAAM,iBAAiB,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAE7C,MAAM,KAAK,+DAAQ,YAAY,GAAK,OAAO,GAAK,aAAa,GAAK,iBAAiB,CAAE,CAAC;YAEtF,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEM,YAAO,GAAG,CAAwB,KAAmB,EAAE,IAAc,EAA+B,EAAE;;YAC5G,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAI,IAAI,CAAC,CAAC;YAE/C,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,EAAE;gBAChB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBACxE,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,0CAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;gBACtD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,0CAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC9C,OAAO;oBACL,IAAI,EAAE,IAAI;oBACV,IAAI;oBACJ,SAAS,EAAE,KAAK;oBAChB,QAAQ;oBACR,QAAQ,EAAE,IAAI,KAAK,CAAC;oBACpB,QAAQ,EAAE,QAAQ,GAAG,IAAI;oBACzB,cAAc,EAAE,KAAK;iBACf,CAAC;aACV;YAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACxC,OAAO,IAAW,CAAC;QACrB,CAAC,CAAA,CAAC;QAEM,YAAO,GAAG,CAAwB,KAAmB,EAAE,IAAc,EAA+B,EAAE;YAC5G,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAI,IAAI,CAAC,CAAC;YAC/C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACvC,OAAO,GAAU,CAAC;QACpB,CAAC,CAAA,CAAC;QAEK,eAAU,GAAG;YAClB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;CAAA;AAxDD,6BAwDC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repository/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA6BA,MAAqB,UAAU;IAA/B;QAkEQ,eAAU,GAAkB;YAClC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAA6B;YAC5D,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAA6B;SAC5D,CAAC;IACH,CAAC;IArEQ,kBAAkB,CAA2C,IAAiB;QACrF,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAiB,IAAI,EAAhB,OAAO,UAAK,IAAI,EAAlD,8BAA2C,CAAO,CAAC;QACzD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC5B,MAAM,KAAgC,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,EAArE,EAAE,KAAK,EAAE,CAAC,OAA2D,EAAtD,YAAY,cAA3B,SAA6B,CAAwC,CAAC;QAE5E,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAElD,MAAM,aAAa,GAAG,MAAM;YAC3B,CAAC,CAAC;gBACA,KAAK;gBACL,MAAM,EAAE,KAAK,GAAG,IAAI;aACpB;YACF,CAAC,CAAC,EAAE,CAAC;QAEN,MAAM,iBAAiB,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAE7C,MAAM,KAAK,+DAAQ,YAAY,GAAK,OAAO,GAAK,aAAa,GAAK,iBAAiB,CAAE,CAAC;QAEtF,OAAO,KAAK,CAAC;IACd,CAAC;IAUa,OAAO,CACpB,KAAmB,EACnB,IAAiB;;YAEjB,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAE5C,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,EAAE,CAAC;gBAClB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBACxE,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;gBACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC9C,OAAO;oBACN,IAAI,EAAE,IAAI;oBACV,IAAI;oBACJ,SAAS,EAAE,KAAK;oBAChB,QAAQ;oBACR,QAAQ,EAAE,IAAI,KAAK,CAAC;oBACpB,QAAQ,EAAE,QAAQ,GAAG,IAAI;oBACzB,cAAc,EAAE,KAAK;iBACoB,CAAC;YAC5C,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACxC,OAAO,IAAW,CAAC;QACpB,CAAC;KAAA;IAEa,OAAO,CACpB,KAAmB,EACnB,IAAiB;;YAEjB,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACvC,OAAO,GAAmC,CAAC;QAC5C,CAAC;KAAA;CAMD;AAtED,6BAsEC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sequelize/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAKrF,OAAO,kBAAkB,CAAC;AAS1B,eAAO,MAAM,MAAM,WAAkB,gBAAgB,uBA0CpD,CAAC;AAWF,eAAO,MAAM,QAAQ,SAAgB,MAAM,WAAW,MAAM,kBAiB3D,CAAC;AAEF,eAAO,MAAM,oBAAoB,qBAGhC,CAAC;AAEF,eAAO,MAAM,gBAAgB,qBAc5B,CAAC;AAEF,eAAO,MAAM,UAAU,wBAItB,CAAC;AAEF,eAAO,MAAM,YAAY,iBAAmB,CAAC;AAE7C,eAAO,MAAM,mBAAmB,YAAmB,MAAM,KAAG,QAAQ,SAAS,CAM5E,CAAC;AAEF,eAAO,MAAM,YAAY,qBAAiB,CAAC;AAE3C,eAAO,MAAM,WAAW,wBAgBvB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sequelize/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAKrF,OAAO,kBAAkB,CAAC;AAS1B,eAAO,MAAM,MAAM,GAAU,QAAQ,gBAAgB,uBA8CpD,CAAC;AAWF,eAAO,MAAM,QAAQ,GAAU,MAAM,MAAM,EAAE,SAAS,MAAM,kBAyC3D,CAAC;AAEF,eAAO,MAAM,oBAAoB,qBAGhC,CAAC;AAEF,eAAO,MAAM,gBAAgB,qBAc5B,CAAC;AAEF,eAAO,MAAM,UAAU,wBAItB,CAAC;AAEF,eAAO,MAAM,YAAY,iBAAmB,CAAC;AAE7C,eAAO,MAAM,mBAAmB,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,SAAS,CAM5E,CAAC;AAEF,eAAO,MAAM,YAAY,qBAAiB,CAAC;AAE3C,eAAO,MAAM,WAAW,wBAgBvB,CAAC"}
@@ -15,7 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.healthCheck = exports.generateDBML = exports.initSequelizeModule = exports.getSequelize = exports.modelsSync = exports.addDtosToSwagger = exports.addModelsToSequelize = exports.loadPath = exports.dbInit = void 0;
16
16
  const sequelize_typescript_1 = require("sequelize-typescript");
17
17
  const fs_1 = __importDefault(require("fs"));
18
- const core_1 = require("@asapjs/core");
18
+ const common_1 = require("@asapjs/common");
19
19
  require("reflect-metadata");
20
20
  const promiseTimeout_1 = require("../utils/promiseTimeout");
21
21
  let container = null;
@@ -27,7 +27,7 @@ const dbInit = (config) => __awaiter(void 0, void 0, void 0, function* () {
27
27
  sequelize
28
28
  .authenticate()
29
29
  .then(() => {
30
- core_1.logger.info('@sequelize :: Database connected.');
30
+ common_1.logger.info('@sequelize :: Database connected.');
31
31
  })
32
32
  .catch((err) => __awaiter(void 0, void 0, void 0, function* () {
33
33
  // if error occured for database is not exist, create it
@@ -35,30 +35,32 @@ const dbInit = (config) => __awaiter(void 0, void 0, void 0, function* () {
35
35
  err.original.code === 'ER_BAD_DB_ERROR' &&
36
36
  err.original.sqlMessage.startsWith('Unknown database')) {
37
37
  const databaseName = config.database;
38
- core_1.logger.error(`@sequelize :: Database ${databaseName} has not craeted. Run auto database create process`);
38
+ common_1.logger.error(`@sequelize :: Database ${databaseName} has not craeted. Run auto database create process`);
39
39
  const temp_config = Object.assign({}, config);
40
40
  temp_config.database = undefined;
41
41
  // create temp sequelize connection
42
42
  const sequelize_temp = new sequelize_typescript_1.Sequelize(temp_config);
43
43
  sequelize_temp.authenticate().then(() => {
44
- core_1.logger.info('@sequelize(temp_session) :: Database connected.');
44
+ common_1.logger.info('@sequelize(temp_session) :: Database connected.');
45
45
  });
46
46
  // if database is not exist, run create database query
47
- yield sequelize_temp.query(`CREATE DATABASE IF NOT EXISTS \`${databaseName}\`;`).then(() => {
48
- core_1.logger.info(`@sequelize(temp_session) :: Database ${databaseName} Create Successfully`);
47
+ yield sequelize_temp
48
+ .query(`CREATE DATABASE IF NOT EXISTS \`${databaseName}\`;`)
49
+ .then(() => {
50
+ common_1.logger.info(`@sequelize(temp_session) :: Database ${databaseName} Create Successfully`);
49
51
  });
50
52
  sequelize_temp.close().then(() => {
51
- core_1.logger.info(`@sequelize(temp_session) :: Release temp session successfully`);
53
+ common_1.logger.info(`@sequelize(temp_session) :: Release temp session successfully`);
52
54
  });
53
55
  sequelize.authenticate().then(() => {
54
- core_1.logger.info('@sequelize :: Database Reconnect Successfully');
56
+ common_1.logger.info('@sequelize :: Database Reconnect Successfully');
55
57
  });
56
58
  }
57
59
  else {
58
- core_1.logger.error('@sequelize :: Unable to connect to the database:\n', err);
60
+ common_1.logger.error('@sequelize :: Unable to connect to the database:\n', err);
59
61
  }
60
62
  }));
61
- core_1.logger.info('@sequelize :: database initalize.');
63
+ common_1.logger.info('@sequelize :: database initalize.');
62
64
  return sequelize;
63
65
  });
64
66
  exports.dbInit = dbInit;
@@ -71,14 +73,38 @@ const extensionInlcude = (includeFileName, fileName) => {
71
73
  };
72
74
  const loadPath = (path, subPath) => __awaiter(void 0, void 0, void 0, function* () {
73
75
  const files = yield fs_1.default.readdirSync(path + subPath, { withFileTypes: true });
74
- // const extension = process.env.NODE_ENV === 'production' ? 'js' : 'ts';
75
- const extension = 'js';
76
+ const extension = process.env.NODE_ENV === 'production' ? 'js' : 'ts';
77
+ const otherDirs = files.filter((f) => f.isDirectory() && f.name !== 'src');
78
+ const hasOtherDirsAtRoot = extension === 'js' && subPath === '' && otherDirs.length > 0;
76
79
  for (const file of files) {
77
80
  if (file.isDirectory()) {
81
+ // production에서 dist/ 아래에 dist/afreeca, dist/auth 등과 dist/src/ 가 공존할 때,
82
+ // dist/src/ 쪽은 건너뜀. 동일 테이블 중복 로드 및 dist/src/ 컴파일 결과의
83
+ // 모듈 해석 차이(TypeIs undefined) 방지. src만 있을 때는 건너뛰지 않음.
84
+ if (hasOtherDirsAtRoot && file.name === 'src') {
85
+ continue;
86
+ }
78
87
  yield (0, exports.loadPath)(path, `${subPath}/${file.name}`);
79
88
  }
80
89
  else if (extensionInlcude('Table', file.name) && file.name.endsWith('map') === false) {
81
- models.push(require(`${path}/${subPath}/${file.name}`).default);
90
+ const tablePath = `${path}/${subPath}/${file.name}`;
91
+ common_1.logger.info(`@sequelize :: Loading table: ${tablePath}`);
92
+ try {
93
+ models.push(require(tablePath).default);
94
+ }
95
+ catch (loadError) {
96
+ const e = loadError;
97
+ common_1.logger.error('@sequelize :: Failed to load table file', {
98
+ err: loadError,
99
+ context: {
100
+ file: tablePath,
101
+ message: e === null || e === void 0 ? void 0 : e.message,
102
+ stack: e === null || e === void 0 ? void 0 : e.stack,
103
+ },
104
+ });
105
+ console.error(`[@sequelize] Failed to load table (full stack):`, (e === null || e === void 0 ? void 0 : e.stack) || loadError);
106
+ throw loadError;
107
+ }
82
108
  }
83
109
  else if (extensionInlcude('Dto', file.name) && file.name.endsWith('map') === false) {
84
110
  const dto = require(`${path}/${subPath}/${file.name}`).default;
@@ -91,32 +117,32 @@ const loadPath = (path, subPath) => __awaiter(void 0, void 0, void 0, function*
91
117
  exports.loadPath = loadPath;
92
118
  const addModelsToSequelize = () => __awaiter(void 0, void 0, void 0, function* () {
93
119
  container.addModels(models);
94
- core_1.logger.info('@sequelize :: add models to sequelize instance.');
120
+ common_1.logger.info('@sequelize :: add models to sequelize instance.');
95
121
  });
96
122
  exports.addModelsToSequelize = addModelsToSequelize;
97
123
  const addDtosToSwagger = () => __awaiter(void 0, void 0, void 0, function* () {
98
124
  yield Promise.all(dtos.map((Dto) => {
99
125
  const dto = new Dto();
100
126
  if (!(dto === null || dto === void 0 ? void 0 : dto.init)) {
101
- core_1.logger.warn(`@sequelize :: ${dto.constructor.name} is not a valid dto class. It should extends with ExtendableDto.`);
127
+ common_1.logger.warn(`@sequelize :: ${dto.constructor.name} is not a valid dto class. It should extends with ExtendableDto.`);
102
128
  }
103
129
  else {
104
130
  dto === null || dto === void 0 ? void 0 : dto.init();
105
131
  }
106
132
  }));
107
- core_1.logger.info('@sequelize :: add dto to swagger schemas.');
133
+ common_1.logger.info('@sequelize :: add dto to swagger schemas.');
108
134
  });
109
135
  exports.addDtosToSwagger = addDtosToSwagger;
110
136
  const modelsSync = () => __awaiter(void 0, void 0, void 0, function* () {
111
137
  yield container.sync({ alter: { drop: false } });
112
- core_1.logger.info('@sequelize :: models sync finished');
138
+ common_1.logger.info('@sequelize :: models sync finished');
113
139
  return true;
114
140
  });
115
141
  exports.modelsSync = modelsSync;
116
142
  const getSequelize = () => container;
117
143
  exports.getSequelize = getSequelize;
118
144
  const initSequelizeModule = (dirname) => __awaiter(void 0, void 0, void 0, function* () {
119
- const dbContainer = yield (0, exports.dbInit)((0, core_1.getConfig)().db);
145
+ const dbContainer = yield (0, exports.dbInit)((0, common_1.getConfig)().db);
120
146
  yield (0, exports.loadPath)(dirname, '');
121
147
  yield (0, exports.addModelsToSequelize)();
122
148
  yield (0, exports.addDtosToSwagger)();
@@ -128,17 +154,17 @@ exports.generateDBML = generateDBML;
128
154
  const healthCheck = () => __awaiter(void 0, void 0, void 0, function* () {
129
155
  const connection = container;
130
156
  if (!connection) {
131
- core_1.logger.error(`@sequelize(health-check) :: Sequelize connection is not initialized`);
157
+ common_1.logger.error(`@sequelize(health-check) :: Sequelize connection is not initialized`);
132
158
  throw Error('Sequelize connection is not initialized');
133
159
  }
134
160
  try {
135
161
  const check = connection.query(`SELECT 1`);
136
162
  yield (0, promiseTimeout_1.promiseTimeout)(1000, check);
137
- core_1.logger.info(`@sequelize(health-check) :: Sequelize connection is healthy`);
163
+ common_1.logger.info(`@sequelize(health-check) :: Sequelize connection is healthy`);
138
164
  return true;
139
165
  }
140
166
  catch (err) {
141
- core_1.logger.error(`@sequelize(health-check) :: Sequelize connection is not healthy`);
167
+ common_1.logger.error(`@sequelize(health-check) :: Sequelize connection is not healthy`);
142
168
  throw Error('Sequelize connection is not healthy');
143
169
  }
144
170
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sequelize/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sequelize/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAMzC,OAAO,EAAgB,SAAS,EAAE,MAAM,UAAU,CAAC;AAEnD,wBAAgB,KAAK,CAAC,OAAO,EAAE,YAAY,4CAuC1C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAMzC,OAAO,EAAgB,SAAS,EAAE,MAAM,UAAU,CAAC;AAInD,wBAAgB,KAAK,CAAC,OAAO,EAAE,YAAY,IACxB,CAAC,SAAS,SAAS,EAAE,QAAQ,CAAC,UAsDhD"}
@@ -1,14 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Table = void 0;
3
+ exports.Table = Table;
4
4
  const sequelize_typescript_1 = require("sequelize-typescript");
5
5
  const belongsto_1 = require("../types/belongsto");
6
6
  const foreignkey_1 = require("../types/foreignkey");
7
7
  const dbml_1 = require("../dbml");
8
8
  const console_1 = require("../console");
9
9
  const types_1 = require("../types");
10
+ const schema_1 = require("@asapjs/schema");
11
+ const register_1 = require("../types/register");
10
12
  function Table(options) {
11
13
  return function (target) {
14
+ // Sequelize 플러그인과 타입 등록 확인
15
+ if (!schema_1.registry.has('sequelize')) {
16
+ schema_1.registry.register(schema_1.sequelizePlugin);
17
+ }
18
+ (0, register_1.registerSequelizeTypes)();
12
19
  const modelName = options.tableName || target.name;
13
20
  const types = (0, types_1.getTypesData)(target);
14
21
  Object.entries(types).forEach(([key, type]) => {
@@ -19,7 +26,15 @@ function Table(options) {
19
26
  (0, belongsto_1.TypeIsBelongsToAddColumn)(target, type, key);
20
27
  }
21
28
  else {
22
- (0, sequelize_typescript_1.addAttribute)(target.prototype, key, type.toSequelize());
29
+ let sequelizeConfig = type.toSequelize();
30
+ // id 필드에 대한 특별 처리
31
+ if (key === 'id' && sequelizeConfig && !sequelizeConfig.primaryKey) {
32
+ // 오류 메시지로 보아 primaryKey가 제대로 전달되지 않고 있음
33
+ // 임시로 primaryKey를 true로 설정
34
+ console.warn(`Warning: 'id' field missing primaryKey in table '${modelName}'. Adding primaryKey: true`);
35
+ sequelizeConfig = Object.assign(Object.assign({}, sequelizeConfig), { primaryKey: true });
36
+ }
37
+ (0, sequelize_typescript_1.addAttribute)(target.prototype, key, sequelizeConfig);
23
38
  }
24
39
  });
25
40
  if ((options === null || options === void 0 ? void 0 : options.timestamps) !== false) {
@@ -40,5 +55,4 @@ function Table(options) {
40
55
  (0, sequelize_typescript_1.addOptions)(target.prototype, Object.assign(Object.assign({}, options), { charset: 'utf8mb4', collate: 'utf8mb4_general_ci' }));
41
56
  };
42
57
  }
43
- exports.Table = Table;
44
58
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/table/index.ts"],"names":[],"mappings":";;;AACA,+DAA8E;AAC9E,kDAA8D;AAC9D,oDAA+D;AAC/D,kCAAmD;AACnD,wCAAyD;AACzD,oCAAmD;AAEnD,SAAgB,KAAK,CAAC,OAAqB;IACzC,OAAO,UAA+B,MAAS;QAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC;QACnD,MAAM,KAAK,GAAG,IAAA,oBAAY,EAAC,MAAM,CAAC,CAAC;QAEnC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;YAC5C,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,EAAE;gBAChC,IAAA,qCAAwB,EAAI,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;aAChD;iBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE;gBACtC,IAAA,oCAAwB,EAAI,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;aAChD;iBAAM;gBACL,IAAA,mCAAY,EAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAG,IAAY,CAAC,WAAW,EAAE,CAAC,CAAC;aAClE;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,MAAK,KAAK,EAAE;YACjC,IAAA,iCAAU,EAAC,MAAM,CAAC,SAAS,EAAE;gBAC3B,SAAS,EAAE,YAAY;gBACvB,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;YAEH,IAAA,iCAAU,EAAC,MAAM,CAAC,SAAS,EAAE;gBAC3B,SAAS,EAAE,YAAY;gBACvB,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;SACJ;QAED,gCAAgC;QAChC,IAAA,eAAY,EAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAA,kBAAe,EAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAE/C,uBAAuB;QACvB,IAAA,mCAAY,EAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC1C,IAAA,iCAAU,EAAC,MAAM,CAAC,SAAS,kCACtB,OAAO,KACV,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,oBAAoB,IAC7B,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAvCD,sBAuCC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/table/index.ts"],"names":[],"mappings":";;AAUA,sBAuDC;AAhED,+DAA8E;AAC9E,kDAA8D;AAC9D,oDAA+D;AAC/D,kCAAmD;AACnD,wCAAyD;AACzD,oCAAmD;AACnD,2CAA2D;AAC3D,gDAA2D;AAE3D,SAAgB,KAAK,CAAC,OAAqB;IACzC,OAAO,UAA+B,MAAS;QAC7C,2BAA2B;QAC3B,IAAI,CAAC,iBAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,iBAAQ,CAAC,QAAQ,CAAC,wBAAe,CAAC,CAAC;QACrC,CAAC;QACD,IAAA,iCAAsB,GAAE,CAAC;QAEzB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC;QACnD,MAAM,KAAK,GAAG,IAAA,oBAAY,EAAC,MAAM,CAAC,CAAC;QAEnC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;YAC5C,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;gBACjC,IAAA,qCAAwB,EAAI,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YACjD,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACvC,IAAA,oCAAwB,EAAI,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,IAAI,eAAe,GAAI,IAAY,CAAC,WAAW,EAAE,CAAC;gBAElD,kBAAkB;gBAClB,IAAI,GAAG,KAAK,IAAI,IAAI,eAAe,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;oBACnE,wCAAwC;oBACxC,2BAA2B;oBAC3B,OAAO,CAAC,IAAI,CAAC,oDAAoD,SAAS,4BAA4B,CAAC,CAAC;oBACxG,eAAe,mCAAQ,eAAe,KAAE,UAAU,EAAE,IAAI,GAAE,CAAC;gBAC7D,CAAC;gBAED,IAAA,mCAAY,EAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC;YACvD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,MAAK,KAAK,EAAE,CAAC;YAClC,IAAA,iCAAU,EAAC,MAAM,CAAC,SAAS,EAAE;gBAC3B,SAAS,EAAE,YAAY;gBACvB,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;YAEH,IAAA,iCAAU,EAAC,MAAM,CAAC,SAAS,EAAE;gBAC3B,SAAS,EAAE,YAAY;gBACvB,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;QACL,CAAC;QAED,gCAAgC;QAChC,IAAA,eAAY,EAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAA,kBAAe,EAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAE/C,uBAAuB;QACvB,IAAA,mCAAY,EAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC1C,IAAA,iCAAU,EAAC,MAAM,CAAC,SAAS,kCACtB,OAAO,KACV,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,oBAAoB,IAC7B,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { ClassType } from './index';
2
2
  import { TypeIsData } from './generators/typeGenerator';
3
3
  export declare const TypeIsBelongsToAddColumn: <T extends ClassType>(target: T, type: TypeIsData, key: string) => void;
4
- declare const TypeIsBelongsTo: (...options: any[]) => (target?: any, propertyName?: string | undefined, propertyDescriptor?: PropertyDescriptor | undefined) => void & TypeIsData;
4
+ declare const TypeIsBelongsTo: (...options: any[]) => (target?: any, propertyName?: string, propertyDescriptor?: PropertyDescriptor) => void & TypeIsData;
5
5
  export default TypeIsBelongsTo;
6
6
  //# sourceMappingURL=belongsto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"belongsto.d.ts","sourceRoot":"","sources":["../../src/types/belongsto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAiB,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAEvE,eAAO,MAAM,wBAAwB,yCAA0C,UAAU,OAAO,MAAM,SASrG,CAAC;AAEF,QAAA,MAAM,eAAe,oJAMlB,CAAC;AAEJ,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"belongsto.d.ts","sourceRoot":"","sources":["../../src/types/belongsto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAiB,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAEvE,eAAO,MAAM,wBAAwB,GAAI,CAAC,SAAS,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,UAAU,EAAE,KAAK,MAAM,SAarG,CAAC;AAEF,QAAA,MAAM,eAAe,0BASmsB,YAAY,EAAC,qBAAsB,EAAC,uCAAwC,sBAHjyB,CAAC;AAEJ,eAAe,eAAe,CAAC"}
@@ -1,15 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TypeIsBelongsToAddColumn = void 0;
4
- const core_1 = require("@asapjs/core");
4
+ const common_1 = require("@asapjs/common");
5
5
  const sequelize_typescript_1 = require("sequelize-typescript");
6
6
  const typeGenerator_1 = require("./generators/typeGenerator");
7
7
  const TypeIsBelongsToAddColumn = (target, type, key) => {
8
8
  if (!type.toSequelize) {
9
- core_1.logger.error('@asapjs/sequelize :: TypeIs.BELONGSTO에 toSequelize가 정의되지 않았습니다.');
9
+ common_1.logger.error('@asapjs/sequelize :: TypeIs.BELONGSTO에 toSequelize가 정의되지 않았습니다.');
10
10
  process.exit(1);
11
11
  }
12
12
  const { associatedClassGetter, optionsOrForeignKey } = type.toSequelize();
13
+ if (typeof associatedClassGetter !== 'function') {
14
+ common_1.logger.error('@asapjs/sequelize :: TypeIs.BELONGSTO associatedClassGetter가 함수가 아닙니다.');
15
+ process.exit(1);
16
+ }
13
17
  const options = (0, sequelize_typescript_1.getPreparedAssociationOptions)(optionsOrForeignKey);
14
18
  if (!options.as)
15
19
  options.as = key;
@@ -1 +1 @@
1
- {"version":3,"file":"belongsto.js","sourceRoot":"","sources":["../../src/types/belongsto.ts"],"names":[],"mappings":";;;AAAA,uCAAsC;AACtC,+DAA2G;AAE3G,8DAAuE;AAEhE,MAAM,wBAAwB,GAAG,CAAsB,MAAS,EAAE,IAAgB,EAAE,GAAW,EAAE,EAAE;IACxG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;QACrB,aAAM,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;QAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IACD,MAAM,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1E,MAAM,OAAO,GAAG,IAAA,oDAA6B,EAAC,mBAAmB,CAAC,CAAC;IACnE,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,GAAG,GAAG,CAAC;IAClC,IAAA,qCAAc,EAAC,MAAM,CAAC,SAAS,EAAE,IAAI,2CAAoB,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC,CAAC;AAC7F,CAAC,CAAC;AATW,QAAA,wBAAwB,4BASnC;AAEF,MAAM,eAAe,GAAG,IAAA,6BAAa,EAAC,CAAC,qBAA0B,EAAE,mBAAyB,EAAE,EAAE,CAAC,CAAC;IAChG,MAAM,EAAE,WAAW;IACnB,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;QAClB,qBAAqB;QACrB,mBAAmB;KACpB,CAAC;CACH,CAAC,CAAC,CAAC;AAEJ,kBAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"belongsto.js","sourceRoot":"","sources":["../../src/types/belongsto.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,+DAA2G;AAE3G,8DAAuE;AAEhE,MAAM,wBAAwB,GAAG,CAAsB,MAAS,EAAE,IAAgB,EAAE,GAAW,EAAE,EAAE;IACxG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACtB,eAAM,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;QAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1E,IAAI,OAAO,qBAAqB,KAAK,UAAU,EAAE,CAAC;QAChD,eAAM,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;QACvF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,OAAO,GAAG,IAAA,oDAA6B,EAAC,mBAAmB,CAAC,CAAC;IACnE,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,GAAG,GAAG,CAAC;IAClC,IAAA,qCAAc,EAAC,MAAM,CAAC,SAAS,EAAE,IAAI,2CAAoB,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC,CAAC;AAC7F,CAAC,CAAC;AAbW,QAAA,wBAAwB,4BAanC;AAEF,MAAM,eAAe,GAAG,IAAA,6BAAa,EAAC,CAAC,qBAA0B,EAAE,mBAAyB,EAAE,EAAE,CAAC,CAAC;IAChG,MAAM,EAAE,WAAW;IACnB,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;QAClB,qBAAqB;QACrB,mBAAmB;KACpB,CAAC;CACH,CAAC,CAAC,CAAC;AAEJ,kBAAe,eAAe,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { TypeIs } from '@asapjs/schema';
2
+ export declare function createDecorator(typeName: keyof typeof TypeIs): (options?: any) => (target: any, propertyName: string, propertyDescriptor?: PropertyDescriptor) => void;
3
+ export declare const TypeIsDecorators: any;
4
+ //# sourceMappingURL=decorators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/types/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA6B,MAAM,gBAAgB,CAAC;AAWnE,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,OAAO,MAAM,IACnD,UAAU,GAAG,MACX,QAAQ,GAAG,EAAE,cAAc,MAAM,EAAE,qBAAqB,kBAAkB,UA4BrF;AAiBD,eAAO,MAAM,gBAAgB,KAA2B,CAAC"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TypeIsDecorators = void 0;
4
+ exports.createDecorator = createDecorator;
5
+ const schema_1 = require("@asapjs/schema");
6
+ const typeGenerator_1 = require("./generators/typeGenerator");
7
+ const register_1 = require("./register");
8
+ // 데코레이터가 생성될 때 sequelize 플러그인 확인
9
+ if (!schema_1.registry.has('sequelize')) {
10
+ schema_1.registry.register(schema_1.sequelizePlugin);
11
+ }
12
+ (0, register_1.registerSequelizeTypes)();
13
+ // 데코레이터로 사용할 수 있도록 wrapper 함수 생성
14
+ function createDecorator(typeName) {
15
+ return (options) => {
16
+ return (target, propertyName, propertyDescriptor) => {
17
+ // TypeIs에서 타입 생성
18
+ const typeFactory = schema_1.TypeIs[typeName];
19
+ if (!typeFactory) {
20
+ throw new Error(`Type ${typeName} is not registered in TypeIs`);
21
+ }
22
+ const schemaType = typeFactory(options);
23
+ // 기존 sequelize 메타데이터 시스템과 호환
24
+ (0, typeGenerator_1.saveTypesData)(target, propertyName, {
25
+ __name: schemaType.__name,
26
+ toSwagger: () => schemaType.toSwagger ? schemaType.toSwagger() : {},
27
+ toSequelize: () => schemaType.toSequelize ? schemaType.toSequelize() : {},
28
+ fixValue: schemaType.parse ? (v) => {
29
+ try {
30
+ return schemaType.parse(v);
31
+ }
32
+ catch (_a) {
33
+ return v;
34
+ }
35
+ } : undefined,
36
+ });
37
+ if (propertyDescriptor) {
38
+ propertyDescriptor.value = schemaType;
39
+ }
40
+ };
41
+ };
42
+ }
43
+ // 모든 TypeIs 타입에 대한 데코레이터를 동적으로 생성
44
+ function createTypeIsDecorators() {
45
+ const decorators = {};
46
+ // TypeIs의 모든 속성에 대해 데코레이터 생성
47
+ for (const key in schema_1.TypeIs) {
48
+ if (schema_1.TypeIs.hasOwnProperty(key) && typeof schema_1.TypeIs[key] === 'function') {
49
+ decorators[key] = createDecorator(key);
50
+ }
51
+ }
52
+ return decorators;
53
+ }
54
+ // 모든 TypeIs 타입에 대한 데코레이터 export
55
+ exports.TypeIsDecorators = createTypeIsDecorators();
56
+ //# sourceMappingURL=decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/types/decorators.ts"],"names":[],"mappings":";;;AAWA,0CA8BC;AAzCD,2CAAmE;AACnE,8DAA2D;AAC3D,yCAAoD;AAEpD,iCAAiC;AACjC,IAAI,CAAC,iBAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;IAC/B,iBAAQ,CAAC,QAAQ,CAAC,wBAAe,CAAC,CAAC;AACrC,CAAC;AACD,IAAA,iCAAsB,GAAE,CAAC;AAEzB,iCAAiC;AACjC,SAAgB,eAAe,CAAC,QAA6B;IAC3D,OAAO,CAAC,OAAa,EAAE,EAAE;QACvB,OAAO,CAAC,MAAW,EAAE,YAAoB,EAAE,kBAAuC,EAAE,EAAE;YACpF,iBAAiB;YACjB,MAAM,WAAW,GAAG,eAAM,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,8BAA8B,CAAC,CAAC;YAClE,CAAC;YAED,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;YAExC,6BAA6B;YAC7B,IAAA,6BAAa,EAAC,MAAM,EAAE,YAAY,EAAE;gBAClC,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,SAAS,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE;gBACnE,WAAW,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;gBACzE,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAM,EAAE,EAAE;oBACtC,IAAI,CAAC;wBACH,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC7B,CAAC;oBAAC,WAAM,CAAC;wBACP,OAAO,CAAC,CAAC;oBACX,CAAC;gBACH,CAAC,CAAC,CAAC,CAAC,SAAS;aACd,CAAC,CAAC;YAEH,IAAI,kBAAkB,EAAE,CAAC;gBACvB,kBAAkB,CAAC,KAAK,GAAG,UAAU,CAAC;YACxC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,kCAAkC;AAClC,SAAS,sBAAsB;IAC7B,MAAM,UAAU,GAAQ,EAAE,CAAC;IAE3B,6BAA6B;IAC7B,KAAK,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;QACzB,IAAI,eAAM,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,OAAO,eAAM,CAAC,GAA0B,CAAC,KAAK,UAAU,EAAE,CAAC;YAC3F,UAAU,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,GAA0B,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,gCAAgC;AACnB,QAAA,gBAAgB,GAAG,sBAAsB,EAAE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { TypeIsData } from './generators/typeGenerator';
2
2
  import { ClassType } from './index';
3
3
  export declare const TypeIsForienKeyAddColumn: <T extends ClassType>(target: T, type: TypeIsData, key: string) => void;
4
- declare const TypeIsForeignKey: (...options: any[]) => (target?: any, propertyName?: string | undefined, propertyDescriptor?: PropertyDescriptor | undefined) => void & TypeIsData;
4
+ declare const TypeIsForeignKey: (...options: any[]) => (target?: any, propertyName?: string, propertyDescriptor?: PropertyDescriptor) => void & TypeIsData;
5
5
  export default TypeIsForeignKey;
6
6
  //# sourceMappingURL=foreignkey.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"foreignkey.d.ts","sourceRoot":"","sources":["../../src/types/foreignkey.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAEvE,OAAO,EAAE,SAAS,EAAU,MAAM,SAAS,CAAC;AAM5C,eAAO,MAAM,wBAAwB,yCAA0C,UAAU,OAAO,MAAM,SAiBrG,CAAC;AAEF,QAAA,MAAM,gBAAgB,oJAMnB,CAAC;AAEJ,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"foreignkey.d.ts","sourceRoot":"","sources":["../../src/types/foreignkey.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAEvE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAOpC,eAAO,MAAM,wBAAwB,GAAI,CAAC,SAAS,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,UAAU,EAAE,KAAK,MAAM,SAyBrG,CAAC;AAEF,QAAA,MAAM,gBAAgB,0BASqT,YAAY,EAAC,qBAAsB,EAAC,uCAAwC,sBAHpZ,CAAC;AAEJ,eAAe,gBAAgB,CAAC"}
@@ -1,24 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TypeIsForienKeyAddColumn = void 0;
4
- const core_1 = require("@asapjs/core");
4
+ const common_1 = require("@asapjs/common");
5
5
  const typeGenerator_1 = require("./generators/typeGenerator");
6
- const index_1 = require("./index");
6
+ const schema_1 = require("@asapjs/schema");
7
7
  // sequelize-typescript
8
8
  const foreign_key_service_1 = require("sequelize-typescript/dist/associations/foreign-key/foreign-key-service");
9
9
  const attribute_service_1 = require("sequelize-typescript/dist/model/column/attribute-service");
10
10
  const TypeIsForienKeyAddColumn = (target, type, key) => {
11
11
  if (!type.toSequelize) {
12
- core_1.logger.error('@asapjs/sequelize :: TypeIs.FOREIGNKEY에 toSequelize가 정의되지 않았습니다.');
12
+ common_1.logger.error('@asapjs/sequelize :: TypeIs.FOREIGNKEY에 toSequelize가 정의되지 않았습니다.');
13
13
  process.exit(1);
14
14
  }
15
15
  const { extraData, table } = type.toSequelize();
16
- (0, foreign_key_service_1.addForeignKey)(target.prototype, table, key);
16
+ // sequelize-typescript addForeignKey relatedClassGetter 함수를 기대
17
+ if (typeof table === 'function') {
18
+ (0, foreign_key_service_1.addForeignKey)(target.prototype, table, key);
19
+ }
17
20
  if (extraData) {
18
21
  // 지정한 type이 없을 경우 INT로 지정
19
- const type = (extraData === null || extraData === void 0 ? void 0 : extraData.type) || index_1.TypeIs.INT();
20
- const sequelizeType = type().toSequelize();
21
- (0, attribute_service_1.addAttribute)(target.prototype, key, Object.assign(Object.assign({}, extraData), sequelizeType));
22
+ const resolvedType = (extraData === null || extraData === void 0 ? void 0 : extraData.type) || schema_1.TypeIs.INT;
23
+ const schemaType = typeof resolvedType === 'function' ? resolvedType() : resolvedType;
24
+ const sequelizeType = (schemaType === null || schemaType === void 0 ? void 0 : schemaType.toSequelize) ? schemaType.toSequelize() : {};
25
+ const referenceOption = table && typeof table === 'object' && table.model && table.key ? { references: table } : {};
26
+ (0, attribute_service_1.addAttribute)(target.prototype, key, Object.assign(Object.assign(Object.assign({}, extraData), referenceOption), sequelizeType));
22
27
  }
23
28
  };
24
29
  exports.TypeIsForienKeyAddColumn = TypeIsForienKeyAddColumn;
@@ -1 +1 @@
1
- {"version":3,"file":"foreignkey.js","sourceRoot":"","sources":["../../src/types/foreignkey.ts"],"names":[],"mappings":";;;AAAA,uCAAsC;AACtC,8DAAuE;AAEvE,mCAA4C;AAE5C,uBAAuB;AACvB,gHAAuG;AACvG,gGAAwF;AAEjF,MAAM,wBAAwB,GAAG,CAAsB,MAAS,EAAE,IAAgB,EAAE,GAAW,EAAE,EAAE;IACxG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;QACrB,aAAM,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IACD,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAChD,IAAA,mCAAa,EAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAE5C,IAAI,SAAS,EAAE;QACb,0BAA0B;QAC1B,MAAM,IAAI,GAAG,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,KAAI,cAAM,CAAC,GAAG,EAAE,CAAC;QAC7C,MAAM,aAAa,GAAG,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAA,gCAAY,EAAC,MAAM,CAAC,SAAS,EAAE,GAAG,kCAC7B,SAAS,GACT,aAAa,EAChB,CAAC;KACJ;AACH,CAAC,CAAC;AAjBW,QAAA,wBAAwB,4BAiBnC;AAEF,MAAM,gBAAgB,GAAG,IAAA,6BAAa,EAAC,CAAC,KAAU,EAAE,SAAe,EAAE,EAAE,CAAC,CAAC;IACvE,MAAM,EAAE,YAAY;IACpB,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;QAClB,KAAK;QACL,SAAS;KACV,CAAC;CACH,CAAC,CAAC,CAAC;AAEJ,kBAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"foreignkey.js","sourceRoot":"","sources":["../../src/types/foreignkey.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,8DAAuE;AAGvE,2CAAwC;AAExC,uBAAuB;AACvB,gHAAuG;AACvG,gGAAwF;AAEjF,MAAM,wBAAwB,GAAG,CAAsB,MAAS,EAAE,IAAgB,EAAE,GAAW,EAAE,EAAE;IACxG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACtB,eAAM,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAChD,gEAAgE;IAChE,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QAChC,IAAA,mCAAa,EAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,0BAA0B;QAC1B,MAAM,YAAY,GAAG,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,KAAI,eAAM,CAAC,GAAG,CAAC;QACnD,MAAM,UAAU,GAAG,OAAO,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;QACtF,MAAM,aAAa,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,WAAW,EAAC,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,MAAM,eAAe,GACnB,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAE9F,IAAA,gCAAY,EAAC,MAAM,CAAC,SAAS,EAAE,GAAG,gDAC7B,SAAS,GACT,eAAe,GACf,aAAa,EAChB,CAAC;IACL,CAAC;AACH,CAAC,CAAC;AAzBW,QAAA,wBAAwB,4BAyBnC;AAEF,MAAM,gBAAgB,GAAG,IAAA,6BAAa,EAAC,CAAC,KAAU,EAAE,SAAe,EAAE,EAAE,CAAC,CAAC;IACvE,MAAM,EAAE,YAAY;IACpB,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;QAClB,KAAK;QACL,SAAS;KACV,CAAC;CACH,CAAC,CAAC,CAAC;AAEJ,kBAAe,gBAAgB,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import { ModelAttributeColumnOptions } from 'sequelize';
2
- export declare const toSequelizeGenerator: <T>(generator: (options?: (T & ModelAttributeColumnOptions<import("sequelize").Model<any, any>>) | undefined) => ModelAttributeColumnOptions) => (options?: (T & ModelAttributeColumnOptions<import("sequelize").Model<any, any>>) | undefined) => ModelAttributeColumnOptions;
2
+ export declare const toSequelizeGenerator: <T>(generator: (options?: T & ModelAttributeColumnOptions) => ModelAttributeColumnOptions) => (options?: T & ModelAttributeColumnOptions) => ModelAttributeColumnOptions;
3
3
  //# sourceMappingURL=toSequelizeGenerator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toSequelizeGenerator.d.ts","sourceRoot":"","sources":["../../../src/types/generators/toSequelizeGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC;AAExD,eAAO,MAAM,oBAAoB,mHAC2B,2BAA2B,uGAA3B,2BAC9C,CAAC"}
1
+ {"version":3,"file":"toSequelizeGenerator.d.ts","sourceRoot":"","sources":["../../../src/types/generators/toSequelizeGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC;AAExD,eAAO,MAAM,oBAAoB,GAAI,CAAC,EACpC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,2BAA2B,KAAK,2BAA2B,gBAA/D,CAAC,GAAG,2BAA2B,KAAK,2BAC9C,CAAC"}
@@ -6,5 +6,5 @@ export interface ISwaggerData {
6
6
  items?: any;
7
7
  $ref?: string;
8
8
  }
9
- export declare const toSwaggerGenerator: <T>(generator: (options?: (T & ModelAttributeColumnOptions<import("sequelize").Model<any, any>>) | undefined) => ISwaggerData) => (options?: (T & ModelAttributeColumnOptions<import("sequelize").Model<any, any>>) | undefined) => ISwaggerData;
9
+ export declare const toSwaggerGenerator: <T>(generator: (options?: T & ModelAttributeColumnOptions) => ISwaggerData) => (options?: T & ModelAttributeColumnOptions) => ISwaggerData;
10
10
  //# sourceMappingURL=toSwaggerGenerator.d.ts.map