@asapjs/sequelize 0.2.4 → 0.2.5

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 (131) hide show
  1. package/dist/dbml/index.d.ts +1 -1
  2. package/dist/dbml/index.d.ts.map +1 -1
  3. package/dist/dto/ExtendableDto.d.ts +22 -0
  4. package/dist/dto/ExtendableDto.d.ts.map +1 -0
  5. package/dist/dto/ExtendableDto.js +133 -0
  6. package/dist/dto/ExtendableDto.js.map +1 -0
  7. package/dist/dto/PaginationQueryDto.d.ts +6 -0
  8. package/dist/dto/PaginationQueryDto.d.ts.map +1 -0
  9. package/dist/dto/PaginationQueryDto.js +25 -0
  10. package/dist/dto/PaginationQueryDto.js.map +1 -0
  11. package/dist/dto/index.d.ts +2 -36
  12. package/dist/dto/index.d.ts.map +1 -1
  13. package/dist/dto/index.js +8 -169
  14. package/dist/dto/index.js.map +1 -1
  15. package/dist/index.d.ts +2 -2
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +3 -7
  18. package/dist/index.js.map +1 -1
  19. package/dist/table/index.d.ts +2 -1
  20. package/dist/table/index.d.ts.map +1 -1
  21. package/dist/table/index.js +22 -26
  22. package/dist/table/index.js.map +1 -1
  23. package/dist/types/array.d.ts +7 -0
  24. package/dist/types/array.d.ts.map +1 -0
  25. package/dist/types/array.js +42 -0
  26. package/dist/types/array.js.map +1 -0
  27. package/dist/types/base64.d.ts +10 -0
  28. package/dist/types/base64.d.ts.map +1 -0
  29. package/dist/types/base64.js +20 -0
  30. package/dist/types/base64.js.map +1 -0
  31. package/dist/types/belongsto.d.ts +6 -0
  32. package/dist/types/belongsto.d.ts.map +1 -0
  33. package/dist/types/belongsto.js +27 -0
  34. package/dist/types/belongsto.js.map +1 -0
  35. package/dist/types/binary.d.ts +10 -0
  36. package/dist/types/binary.d.ts.map +1 -0
  37. package/dist/types/binary.js +20 -0
  38. package/dist/types/binary.js.map +1 -0
  39. package/dist/types/boolean.d.ts +9 -0
  40. package/dist/types/boolean.d.ts.map +1 -0
  41. package/dist/types/boolean.js +27 -0
  42. package/dist/types/boolean.js.map +1 -0
  43. package/dist/types/dateonly.d.ts +8 -0
  44. package/dist/types/dateonly.d.ts.map +1 -0
  45. package/dist/types/dateonly.js +20 -0
  46. package/dist/types/dateonly.js.map +1 -0
  47. package/dist/types/datetime.d.ts +8 -0
  48. package/dist/types/datetime.d.ts.map +1 -0
  49. package/dist/types/datetime.js +20 -0
  50. package/dist/types/datetime.js.map +1 -0
  51. package/dist/types/decemal.d.ts +11 -0
  52. package/dist/types/decemal.d.ts.map +1 -0
  53. package/dist/types/decemal.js +30 -0
  54. package/dist/types/decemal.js.map +1 -0
  55. package/dist/types/double.d.ts +11 -0
  56. package/dist/types/double.d.ts.map +1 -0
  57. package/dist/types/double.js +27 -0
  58. package/dist/types/double.js.map +1 -0
  59. package/dist/types/dto.d.ts +10 -0
  60. package/dist/types/dto.d.ts.map +1 -0
  61. package/dist/types/dto.js +22 -0
  62. package/dist/types/dto.js.map +1 -0
  63. package/dist/types/enum.d.ts +9 -0
  64. package/dist/types/enum.d.ts.map +1 -0
  65. package/dist/types/enum.js +26 -0
  66. package/dist/types/enum.js.map +1 -0
  67. package/dist/types/float.d.ts +11 -0
  68. package/dist/types/float.d.ts.map +1 -0
  69. package/dist/types/float.js +27 -0
  70. package/dist/types/float.js.map +1 -0
  71. package/dist/types/foreignkey.d.ts +6 -0
  72. package/dist/types/foreignkey.d.ts.map +1 -0
  73. package/dist/types/foreignkey.js +33 -0
  74. package/dist/types/foreignkey.js.map +1 -0
  75. package/dist/types/generators/toSequelizeGenerator.d.ts +3 -0
  76. package/dist/types/generators/toSequelizeGenerator.d.ts.map +1 -0
  77. package/dist/types/generators/toSequelizeGenerator.js +6 -0
  78. package/dist/types/generators/toSequelizeGenerator.js.map +1 -0
  79. package/dist/types/generators/toSwaggerGenerator.d.ts +9 -0
  80. package/dist/types/generators/toSwaggerGenerator.d.ts.map +1 -0
  81. package/dist/types/generators/toSwaggerGenerator.js +6 -0
  82. package/dist/types/generators/toSwaggerGenerator.js.map +1 -0
  83. package/dist/types/generators/typeGenerator.d.ts +15 -0
  84. package/dist/types/generators/typeGenerator.d.ts.map +1 -0
  85. package/dist/types/generators/typeGenerator.js +38 -0
  86. package/dist/types/generators/typeGenerator.js.map +1 -0
  87. package/dist/types/index.d.ts +26 -0
  88. package/dist/types/index.d.ts.map +1 -0
  89. package/dist/types/index.js +53 -0
  90. package/dist/types/index.js.map +1 -0
  91. package/dist/types/int.d.ts +12 -0
  92. package/dist/types/int.d.ts.map +1 -0
  93. package/dist/types/int.js +27 -0
  94. package/dist/types/int.js.map +1 -0
  95. package/dist/types/json.d.ts +9 -0
  96. package/dist/types/json.d.ts.map +1 -0
  97. package/dist/types/json.js +31 -0
  98. package/dist/types/json.js.map +1 -0
  99. package/dist/types/long.d.ts +12 -0
  100. package/dist/types/long.d.ts.map +1 -0
  101. package/dist/types/long.js +27 -0
  102. package/dist/types/long.js.map +1 -0
  103. package/dist/types/paging.d.ts +6 -0
  104. package/dist/types/paging.d.ts.map +1 -0
  105. package/dist/types/paging.js +65 -0
  106. package/dist/types/paging.js.map +1 -0
  107. package/dist/types/password.d.ts +6 -0
  108. package/dist/types/password.d.ts.map +1 -0
  109. package/dist/types/password.js +20 -0
  110. package/dist/types/password.js.map +1 -0
  111. package/dist/types/query.d.ts +20 -0
  112. package/dist/types/query.d.ts.map +1 -0
  113. package/dist/types/query.js +31 -0
  114. package/dist/types/query.js.map +1 -0
  115. package/dist/types/string.d.ts +11 -0
  116. package/dist/types/string.d.ts.map +1 -0
  117. package/dist/types/string.js +26 -0
  118. package/dist/types/string.js.map +1 -0
  119. package/dist/types/text.d.ts +9 -0
  120. package/dist/types/text.d.ts.map +1 -0
  121. package/dist/types/text.js +16 -0
  122. package/dist/types/text.js.map +1 -0
  123. package/dist/types/type.d.ts +7 -0
  124. package/dist/types/type.d.ts.map +1 -0
  125. package/dist/types/type.js +3 -0
  126. package/dist/types/type.js.map +1 -0
  127. package/package.json +1 -1
  128. package/dist/type/index.d.ts +0 -110
  129. package/dist/type/index.d.ts.map +0 -1
  130. package/dist/type/index.js +0 -345
  131. package/dist/type/index.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { TypeIsData } from '../type';
1
+ import { TypeIsData } from '../types';
2
2
  export declare const addTable: (name: string, className: string, data: {
3
3
  [k: string]: TypeIsData;
4
4
  }) => Promise<void>, getDBMLData: () => Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dbml/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAuJrC,eAAO,MAAQ,QAAQ,SA/GU,MAAM,aAAa,MAAM;;qBA+GjC,WAAW,oBAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dbml/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAuJtC,eAAO,MAAQ,QAAQ,SA/GU,MAAM,aAAa,MAAM;;qBA+GjC,WAAW,oBAA0B,CAAC"}
@@ -0,0 +1,22 @@
1
+ import 'reflect-metadata';
2
+ import { Model } from 'sequelize-typescript';
3
+ import { Attributes, Includeable } from 'sequelize';
4
+ interface DtoMiddlewareReturn {
5
+ as?: string;
6
+ model: typeof Model;
7
+ attributes: Attributes<Model>;
8
+ include?: Includeable[];
9
+ }
10
+ export default class ExtendableDto {
11
+ map: (data: any) => any;
12
+ pagingMap: (data: any) => any;
13
+ middleware: (as?: string | undefined, user?: any, extraAs?: string[] | undefined) => DtoMiddlewareReturn;
14
+ swagger: () => {
15
+ type: string;
16
+ properties: {
17
+ [key: string]: unknown;
18
+ };
19
+ };
20
+ }
21
+ export {};
22
+ //# sourceMappingURL=ExtendableDto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExtendableDto.d.ts","sourceRoot":"","sources":["../../src/dto/ExtendableDto.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAW,MAAM,WAAW,CAAC;AAM7D,UAAU,mBAAmB;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,MAAM,CAAC,OAAO,OAAO,aAAa;IACzB,GAAG,SAAU,GAAG,KAAG,GAAG,CAsC3B;IAEK,SAAS,SAAU,GAAG,KAAG,GAAG,CAIjC;IAEK,UAAU,mCAAwB,GAAG,yDAmF1C;IAEK,OAAO;;;;;MAsBZ;CACH"}
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("reflect-metadata");
4
+ const sequelize_1 = require("sequelize");
5
+ const types_1 = require("../types");
6
+ const core_1 = require("@asapjs/core");
7
+ class ExtendableDto {
8
+ constructor() {
9
+ this.map = (data) => {
10
+ const types = (0, types_1.getTypesData)(this);
11
+ const properties = Object.assign({}, types);
12
+ const o = (data === null || data === void 0 ? void 0 : data.dataValues) || data;
13
+ const isArray = Array.isArray(o);
14
+ if (isArray) {
15
+ return o.map((item) => this.map(item));
16
+ }
17
+ return Object.keys(properties).reduce((p, key) => {
18
+ var _a, _b;
19
+ const property = properties[key];
20
+ if (property.__name === 'dto') {
21
+ // DTO TYPE인데 toSequelize가 없을 경우
22
+ if (!property.toSequelize) {
23
+ core_1.logger.error(`@asapjs/sequelize :: @TypeIs.DTO - ${key}에서 에러가 발생했습니다.`);
24
+ process.exit(1);
25
+ }
26
+ const data = property.toSequelize();
27
+ if (!data.dto) {
28
+ core_1.logger.error(`@asapjs/sequelize :: @TypeIs.DTO - ${key}에 dto가 전달되지 않았습니다..`);
29
+ process.exit(1);
30
+ }
31
+ p[key] = new data.dto().map(o === null || o === void 0 ? void 0 : o[key]);
32
+ }
33
+ else if (property.__name === 'query') {
34
+ p[key] = (_a = property === null || property === void 0 ? void 0 : property.fixValue) === null || _a === void 0 ? void 0 : _a.call(property, o === null || o === void 0 ? void 0 : o[key]);
35
+ }
36
+ else {
37
+ p[key] = ((_b = property === null || property === void 0 ? void 0 : property.fixValue) === null || _b === void 0 ? void 0 : _b.call(property, o === null || o === void 0 ? void 0 : o[key])) || (o === null || o === void 0 ? void 0 : o[key]);
38
+ }
39
+ return p;
40
+ }, {});
41
+ };
42
+ this.pagingMap = (data) => {
43
+ const o = data.data;
44
+ return Object.assign(Object.assign({}, data), { data: o.map((item) => this.map(item)) });
45
+ };
46
+ this.middleware = (as, user, extraAs) => {
47
+ const modelInfo = Reflect.getMetadata('sequelize::dtoInfo', this);
48
+ const types = (0, types_1.getTypesData)(this);
49
+ const extraAsData = extraAs ? [...extraAs, as].filter((v) => !!v) : as ? [as] : [];
50
+ const attributes = [];
51
+ const include = [];
52
+ if (types) {
53
+ // DTO와 QUERY TYPE은 따로 Include 필요하기 때문에 필터링
54
+ const attributesOptions = Object.entries(types).filter(([key, v]) => !['dto', 'query'].includes(v.__name));
55
+ if (attributesOptions) {
56
+ attributesOptions.forEach(([key, v]) => {
57
+ attributes.push(key);
58
+ });
59
+ }
60
+ // QUERY TYPE 필터링
61
+ const queryOptions = Object.entries(types).filter(([key, v]) => v.__name === 'query');
62
+ if (queryOptions) {
63
+ queryOptions.forEach(([key, v]) => {
64
+ // QUERY TYPE인데 toSequelize가 없을 경우
65
+ if (!v.toSequelize) {
66
+ core_1.logger.error(`@asapjs/sequelize :: @TypeIs.QUERY - ${key}에서 에러가 발생했습니다.`);
67
+ process.exit(1);
68
+ }
69
+ if (!v.toSequelize().query) {
70
+ core_1.logger.error(`@asapjs/sequelize :: @TypeIs.QUERY - ${key}에 query가 전달되지 않았습니다..`);
71
+ process.exit(1);
72
+ }
73
+ const association = extraAsData.length >= 2 ? '`' + `${extraAsData.join('->')}` + '`' : as || modelInfo.defineTable.name;
74
+ attributes.push([
75
+ (0, sequelize_1.literal)(v.toSequelize().query({
76
+ association: association,
77
+ user,
78
+ })),
79
+ key,
80
+ ]);
81
+ });
82
+ }
83
+ // DTO TYPE 필터링
84
+ const connectOptions = Object.entries(types).filter(([key, v]) => v.__name === 'dto');
85
+ if (connectOptions) {
86
+ connectOptions.forEach(([key, v]) => {
87
+ // DTO TYPE인데 toSequelize가 없을 경우
88
+ if (!v.toSequelize) {
89
+ core_1.logger.error(`@asapjs/sequelize :: @TypeIs.DTO - ${key}에서 에러가 발생했습니다.`);
90
+ process.exit(1);
91
+ }
92
+ const data = v.toSequelize();
93
+ if (!data.dto) {
94
+ core_1.logger.error(`@asapjs/sequelize :: @TypeIs.DTO - ${key}에 dto가 전달되지 않았습니다..`);
95
+ process.exit(1);
96
+ }
97
+ include.push(new data.dto().middleware((data === null || data === void 0 ? void 0 : data.as) || key, user, extraAsData));
98
+ });
99
+ }
100
+ }
101
+ const result = {
102
+ model: modelInfo.defineTable,
103
+ attributes,
104
+ };
105
+ if (as)
106
+ result.as = as;
107
+ if (include.length > 0)
108
+ result.include = include;
109
+ return result;
110
+ };
111
+ this.swagger = () => {
112
+ const types = (0, types_1.getTypesData)(this);
113
+ const data = Object.keys(types).reduce((p, key) => {
114
+ var _a, _b;
115
+ const property = types[key];
116
+ if (property.toSwagger) {
117
+ p[key] = property.toSwagger() || null;
118
+ }
119
+ else {
120
+ core_1.logger.warn(`@asapjs/sequelize :: TypeIs.${(_b = (_a = property === null || property === void 0 ? void 0 : property.__name) === null || _a === void 0 ? void 0 : _a.toUpperCase) === null || _b === void 0 ? void 0 : _b.call(_a)}에 toSwagger가 정의되지 않았습니다.`);
121
+ p[key] = null;
122
+ }
123
+ return p;
124
+ }, {});
125
+ return {
126
+ type: 'object',
127
+ properties: data,
128
+ };
129
+ };
130
+ }
131
+ }
132
+ exports.default = ExtendableDto;
133
+ //# sourceMappingURL=ExtendableDto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExtendableDto.js","sourceRoot":"","sources":["../../src/dto/ExtendableDto.ts"],"names":[],"mappings":";;AAAA,4BAA0B;AAG1B,yCAA6D;AAE7D,oCAAwC;AACxC,uCAAsC;AAUtC,MAAqB,aAAa;IAAlC;QACS,QAAG,GAAG,CAAC,IAAS,EAAO,EAAE;YAC9B,MAAM,KAAK,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAC,CAAC;YAEjC,MAAM,UAAU,qBAAgC,KAAK,CAAE,CAAC;YAExD,MAAM,CAAC,GAAQ,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,KAAI,IAAI,CAAC;YAExC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAEjC,IAAI,OAAO,EAAE;gBACX,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;aAC7C;YAED,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAA6B,EAAE,GAAG,EAAE,EAAE;;gBAC3E,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBAEjC,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,EAAE;oBAC7B,gCAAgC;oBAChC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;wBACzB,aAAM,CAAC,KAAK,CAAC,sCAAsC,GAAG,gBAAgB,CAAC,CAAC;wBACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACjB;oBACD,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;oBAEpC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;wBACb,aAAM,CAAC,KAAK,CAAC,sCAAsC,GAAG,qBAAqB,CAAC,CAAC;wBAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACjB;oBAED,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAG,GAAG,CAAC,CAAC,CAAC;iBACvC;qBAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE;oBACtC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,yDAAG,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAG,GAAG,CAAC,CAAC,CAAC;iBACzC;qBAAM;oBACL,CAAC,CAAC,GAAG,CAAC,GAAG,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,yDAAG,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAG,GAAG,CAAC,CAAC,MAAI,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAG,GAAG,CAAC,CAAA,CAAC;iBACrD;gBAED,OAAO,CAAC,CAAC;YACX,CAAC,EAAE,EAAE,CAAC,CAAC;QACT,CAAC,CAAC;QAEK,cAAS,GAAG,CAAC,IAAS,EAAO,EAAE;YACpC,MAAM,CAAC,GAAQ,IAAI,CAAC,IAAI,CAAC;YAEzB,uCAAY,IAAI,KAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAG;QACjE,CAAC,CAAC;QAEK,eAAU,GAAG,CAAC,EAAW,EAAE,IAAU,EAAE,OAAkB,EAAE,EAAE;YAClE,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;YAClE,MAAM,KAAK,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAC,CAAC;YAEjC,MAAM,WAAW,GAAa,OAAO,CAAC,CAAC,CAAE,CAAC,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAE3G,MAAM,UAAU,GAAsB,EAAE,CAAC;YAEzC,MAAM,OAAO,GAAqB,EAAE,CAAC;YAErC,IAAI,KAAK,EAAE;gBACT,2CAA2C;gBAC3C,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBAEhH,IAAI,iBAAiB,EAAE;oBACrB,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAM,EAAE,EAAE;wBAC1C,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACvB,CAAC,CAAC,CAAC;iBACJ;gBAED,iBAAiB;gBACjB,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;gBAE3F,IAAI,YAAY,EAAE;oBAChB,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAM,EAAE,EAAE;wBACrC,kCAAkC;wBAClC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE;4BAClB,aAAM,CAAC,KAAK,CAAC,wCAAwC,GAAG,gBAAgB,CAAC,CAAC;4BAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;yBACjB;wBAED,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE;4BAC1B,aAAM,CAAC,KAAK,CAAC,wCAAwC,GAAG,uBAAuB,CAAC,CAAC;4BACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;yBACjB;wBAED,MAAM,WAAW,GACf,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC;wBAEvG,UAAU,CAAC,IAAI,CAAC;4BACd,IAAA,mBAAO,EACL,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC;gCACpB,WAAW,EAAE,WAAW;gCACxB,IAAI;6BACL,CAAC,CACH;4BACD,GAAG;yBACJ,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;iBACJ;gBAED,eAAe;gBACf,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;gBAE3F,IAAI,cAAc,EAAE;oBAClB,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAM,EAAE,EAAE;wBACvC,gCAAgC;wBAChC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE;4BAClB,aAAM,CAAC,KAAK,CAAC,sCAAsC,GAAG,gBAAgB,CAAC,CAAC;4BACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;yBACjB;wBACD,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;wBAE7B,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;4BACb,aAAM,CAAC,KAAK,CAAC,sCAAsC,GAAG,qBAAqB,CAAC,CAAC;4BAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;yBACjB;wBAED,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,KAAI,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;oBAC9E,CAAC,CAAC,CAAC;iBACJ;aACF;YAED,MAAM,MAAM,GAAwB;gBAClC,KAAK,EAAE,SAAS,CAAC,WAAW;gBAC5B,UAAU;aACX,CAAC;YAEF,IAAI,EAAE;gBAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;YAEvB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;YAEjD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QAEK,YAAO,GAAG,GAAG,EAAE;YACpB,MAAM,KAAK,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAC,CAAC;YAEjC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAA6B,EAAE,GAAG,EAAE,EAAE;;gBAC5E,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;gBAE5B,IAAI,QAAQ,CAAC,SAAS,EAAE;oBACtB,CAAC,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC;iBACvC;qBAAM;oBACL,aAAM,CAAC,IAAI,CACT,+BAA+B,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,0CAAE,WAAW,kDAAI,0BAA0B,CAC3F,CAAC;oBACF,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;iBACf;gBAED,OAAO,CAAC,CAAC;YACX,CAAC,EAAE,EAAE,CAAC,CAAC;YAEP,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,IAAI;aACjB,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CAAA;AA3JD,gCA2JC"}
@@ -0,0 +1,6 @@
1
+ import { ExtendableDto } from './index';
2
+ export default class PaginationQueryDto extends ExtendableDto {
3
+ page: number;
4
+ limit: number;
5
+ }
6
+ //# sourceMappingURL=PaginationQueryDto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaginationQueryDto.d.ts","sourceRoot":"","sources":["../../src/dto/PaginationQueryDto.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,aAAa;IAE3D,IAAI,EAAE,MAAM,CAAC;IAGb,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const types_1 = require("../types");
13
+ const index_1 = require("./index");
14
+ class PaginationQueryDto extends index_1.ExtendableDto {
15
+ }
16
+ __decorate([
17
+ types_1.TypeIs.INT({ comment: '페이지' }),
18
+ __metadata("design:type", Number)
19
+ ], PaginationQueryDto.prototype, "page", void 0);
20
+ __decorate([
21
+ types_1.TypeIs.INT({ comment: '한 페이지당 표시 개수' }),
22
+ __metadata("design:type", Number)
23
+ ], PaginationQueryDto.prototype, "limit", void 0);
24
+ exports.default = PaginationQueryDto;
25
+ //# sourceMappingURL=PaginationQueryDto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaginationQueryDto.js","sourceRoot":"","sources":["../../src/dto/PaginationQueryDto.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,oCAAkC;AAClC,mCAAwC;AAExC,MAAqB,kBAAmB,SAAQ,qBAAa;CAM5D;AAJC;IADC,cAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;gDAClB;AAGb;IADC,cAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;;iDAC1B;AALhB,qCAMC"}
@@ -1,44 +1,10 @@
1
1
  import 'reflect-metadata';
2
2
  import { Model, TableOptions } from 'sequelize-typescript';
3
- import { AbstractDataTypeConstructor, Includeable } from 'sequelize';
4
- interface DtoMiddlewareReturn {
5
- as?: string;
6
- model: typeof Model;
7
- attributes: string[];
8
- include?: Includeable[];
9
- }
10
- export declare class ExtendableDto {
11
- id?: number;
12
- version?: number | any;
13
- map: (data: any) => any;
14
- pagingMap: (data: any) => any;
15
- middleware: (as?: string | undefined, user?: any, extraAs?: string[] | undefined) => DtoMiddlewareReturn;
16
- swagger: () => {
17
- type: string;
18
- properties: {
19
- [key: string]: any;
20
- };
21
- };
22
- }
23
- export declare class PaginationQueryDto extends ExtendableDto {
24
- page: number;
25
- limit: number;
26
- }
27
3
  export declare function Dto(info: {
28
4
  timestamps?: boolean;
29
5
  name?: string;
30
6
  defineTable: typeof Model;
31
7
  }): (target: any, options?: TableOptions) => void;
32
- export declare function DtoType(ConnectTo: any, as: string): (target: any, propertyName: string, propertyDescriptor?: PropertyDescriptor | undefined) => void;
33
- interface QueryParams {
34
- user?: any;
35
- association?: string;
36
- }
37
- interface DtoQueryParams {
38
- query: (props: QueryParams) => string;
39
- type?: AbstractDataTypeConstructor;
40
- example?: any;
41
- }
42
- export declare function DtoQuery({ query, type, example }: DtoQueryParams): (target: any, propertyName: string, propertyDescriptor?: PropertyDescriptor | undefined) => void;
43
- export {};
8
+ export { default as ExtendableDto } from './ExtendableDto';
9
+ export { default as PaginationQueryDto } from './PaginationQueryDto';
44
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dto/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,WAAW,EAAW,MAAM,WAAW,CAAC;AAI9E,UAAU,mBAAmB;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,qBAAa,aAAa;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IAEvB,GAAG,SAAU,GAAG,KAAG,GAAG,CA4B3B;IAEK,SAAS,SAAU,GAAG,KAAG,GAAG,CAIjC;IAEK,UAAU,mCAAwB,GAAG,yDAgE1C;IAEK,OAAO;;;;;MAeZ;CACH;AAED,qBAAa,kBAAmB,SAAQ,aAAa;IAEnD,IAAI,EAAE,MAAM,CAAC;IAGb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,GAAG,CAAC,IAAI,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,KAAK,CAAA;CAAE,YACzD,GAAG,YAAW,YAAY,KAAQ,IAAI,CAOxE;AAuBD,wBAAgB,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,YAChC,GAAG,gBAAgB,MAAM,+DAkB1C;AAED,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,cAAc;IACtB,KAAK,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,MAAM,CAAC;IACtC,IAAI,CAAC,EAAE,2BAA2B,CAAC;IACnC,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,cAAc,YAC/C,GAAG,gBAAgB,MAAM,+DAe1C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dto/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE3D,wBAAgB,GAAG,CAAC,IAAI,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,KAAK,CAAA;CAAE,YACjE,GAAG,YAAW,YAAY,KAAQ,IAAI,CAOhE;AAED,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/dto/index.js CHANGED
@@ -1,180 +1,19 @@
1
1
  "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
4
  };
11
5
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.DtoQuery = exports.DtoType = exports.Dto = exports.PaginationQueryDto = exports.ExtendableDto = void 0;
6
+ exports.PaginationQueryDto = exports.ExtendableDto = exports.Dto = void 0;
13
7
  require("reflect-metadata");
14
- const sequelize_1 = require("sequelize");
15
- const type_1 = require("../type");
16
- class ExtendableDto {
17
- constructor() {
18
- this.map = (data) => {
19
- const types = (0, type_1.getTypesData)(this);
20
- const properties = Object.assign({}, types);
21
- const o = (data === null || data === void 0 ? void 0 : data.dataValues) || data;
22
- const isArray = Array.isArray(o);
23
- if (isArray) {
24
- return o.map((item) => this.map(item));
25
- }
26
- return Object.keys(properties).reduce((p, key) => {
27
- var _a, _b, _c, _d, _e, _f;
28
- const property = properties[key];
29
- if (property.__name === 'dto') {
30
- p[key] = (_d = (_c = new ((_b = (_a = property === null || property === void 0 ? void 0 : property.toSequelize) === null || _a === void 0 ? void 0 : _a.call(property)) === null || _b === void 0 ? void 0 : _b.dto)()) === null || _c === void 0 ? void 0 : _c.map) === null || _d === void 0 ? void 0 : _d.call(_c, o === null || o === void 0 ? void 0 : o[key]);
31
- }
32
- else {
33
- if (property.__name === 'query') {
34
- p[key] = (_e = property === null || property === void 0 ? void 0 : property.fixValue) === null || _e === void 0 ? void 0 : _e.call(property, o === null || o === void 0 ? void 0 : o[key]);
35
- }
36
- else {
37
- p[key] = ((_f = property === null || property === void 0 ? void 0 : property.fixValue) === null || _f === void 0 ? void 0 : _f.call(property, o === null || o === void 0 ? void 0 : o[key])) || (o === null || o === void 0 ? void 0 : o[key]);
38
- }
39
- }
40
- return p;
41
- }, {});
42
- };
43
- this.pagingMap = (data) => {
44
- const o = data.data;
45
- return Object.assign(Object.assign({}, data), { data: o.map((item) => this.map(item)) });
46
- };
47
- this.middleware = (as, user, extraAs) => {
48
- const modelInfo = Reflect.getMetadata('sequelize::dtoInfo', this);
49
- const types = (0, type_1.getTypesData)(this);
50
- // const attributesOptions = Reflect.getMetadata('sequelize:attributes', this);
51
- // const connectOptions = Reflect.getMetadata('sequelize::dtoTypes', this);
52
- // const queryOptions = Reflect.getMetadata('sequelize::queryTypes', this);
53
- const extraAsData = extraAs ? [...extraAs, as].filter((v) => !!v) : as ? [as] : [];
54
- const attributes = [];
55
- const include = [];
56
- if (types) {
57
- const attributesOptions = Object.entries(types).filter(([key, v]) => !['dto', 'query'].includes(v.__name));
58
- if (attributesOptions) {
59
- attributesOptions.forEach(([key, v]) => {
60
- attributes.push(key);
61
- });
62
- }
63
- const queryOptions = Object.entries(types).filter(([key, v]) => v.__name === 'query');
64
- if (queryOptions) {
65
- queryOptions.forEach(([key, v]) => {
66
- var _a, _b, _c;
67
- attributes.push([
68
- (0, sequelize_1.literal)((_c = (_b = (_a = v === null || v === void 0 ? void 0 : v.toSequelize) === null || _a === void 0 ? void 0 : _a.call(v)) === null || _b === void 0 ? void 0 : _b.query) === null || _c === void 0 ? void 0 : _c.call(_b, {
69
- association: extraAsData.length >= 2 ? '`' + `${extraAsData.join('->')}` + '`' : as || modelInfo.defineTable.name,
70
- user,
71
- })),
72
- key,
73
- ]);
74
- });
75
- }
76
- const connectOptions = Object.entries(types).filter(([key, v]) => v.__name === 'dto');
77
- if (connectOptions) {
78
- connectOptions.forEach(([key, v]) => {
79
- var _a;
80
- const data = (_a = v === null || v === void 0 ? void 0 : v.toSequelize) === null || _a === void 0 ? void 0 : _a.call(v);
81
- include.push(new (data === null || data === void 0 ? void 0 : data.dto)().middleware(data === null || data === void 0 ? void 0 : data.as, user, extraAsData));
82
- });
83
- }
84
- }
85
- // if (modelInfo.timestamps) {
86
- // attributes.push('created_at');
87
- // attributes.push('updated_at');
88
- // }
89
- const result = {
90
- model: modelInfo.defineTable,
91
- attributes,
92
- };
93
- if (as)
94
- result.as = as;
95
- if (include.length > 0)
96
- result.include = include;
97
- return result;
98
- };
99
- this.swagger = () => {
100
- const types = (0, type_1.getTypesData)(this);
101
- const data = Object.keys(types).reduce((p, key) => {
102
- var _a;
103
- const property = types[key];
104
- p[key] = ((_a = property === null || property === void 0 ? void 0 : property.toSwagger) === null || _a === void 0 ? void 0 : _a.call(property)) || null;
105
- return p;
106
- }, {});
107
- return {
108
- type: 'object',
109
- properties: data,
110
- };
111
- };
112
- }
113
- }
114
- exports.ExtendableDto = ExtendableDto;
115
- class PaginationQueryDto extends ExtendableDto {
116
- }
117
- __decorate([
118
- type_1.TypeIs.INT({ comment: '페이지' }),
119
- __metadata("design:type", Number)
120
- ], PaginationQueryDto.prototype, "page", void 0);
121
- __decorate([
122
- type_1.TypeIs.INT({ comment: '한 페이지당 표시 개수' }),
123
- __metadata("design:type", Number)
124
- ], PaginationQueryDto.prototype, "limit", void 0);
125
- exports.PaginationQueryDto = PaginationQueryDto;
126
8
  function Dto(info) {
127
- return function annotate(target, options = {}) {
9
+ return function (target, options = {}) {
128
10
  const args = Object.assign(Object.assign({}, info), { timestamps: info.timestamps === undefined });
129
11
  Reflect.defineMetadata('sequelize::dtoInfo', args, target.prototype);
130
12
  };
131
13
  }
132
14
  exports.Dto = Dto;
133
- const getAttributes = (target, key) => {
134
- let attributes = Reflect.getMetadata(key, target);
135
- if (attributes) {
136
- return Object.keys(attributes).reduce((copy, key) => {
137
- copy[key] = Object.assign({}, attributes[key]);
138
- return copy;
139
- }, {});
140
- }
141
- if (!attributes) {
142
- attributes = {};
143
- }
144
- return attributes;
145
- };
146
- const getDtoTypes = (target) => getAttributes(target, 'sequelize::dtoTypes');
147
- const getDtoQueries = (target) => getAttributes(target, 'sequelize::queryTypes');
148
- function DtoType(ConnectTo, as) {
149
- return (target, propertyName, propertyDescriptor) => {
150
- const attributes = getDtoTypes(target);
151
- const ConnectDto = ConnectTo();
152
- const swaggerExampleData = new ConnectDto().swagger(as);
153
- const options = {
154
- type: 'dto',
155
- as,
156
- ConnectDto,
157
- example: swaggerExampleData,
158
- };
159
- attributes[propertyName] = Object.assign({}, options);
160
- Reflect.defineMetadata('sequelize::dtoTypes', Object.assign({}, attributes), target);
161
- };
162
- }
163
- exports.DtoType = DtoType;
164
- function DtoQuery({ query, type, example }) {
165
- return (target, propertyName, propertyDescriptor) => {
166
- const queries = getDtoQueries(target);
167
- queries[propertyName] = {
168
- type: 'query',
169
- data: {
170
- as: propertyName,
171
- query: (props) => query(props),
172
- type,
173
- },
174
- example,
175
- };
176
- Reflect.defineMetadata('sequelize::queryTypes', Object.assign({}, queries), target);
177
- };
178
- }
179
- exports.DtoQuery = DtoQuery;
15
+ var ExtendableDto_1 = require("./ExtendableDto");
16
+ Object.defineProperty(exports, "ExtendableDto", { enumerable: true, get: function () { return __importDefault(ExtendableDto_1).default; } });
17
+ var PaginationQueryDto_1 = require("./PaginationQueryDto");
18
+ Object.defineProperty(exports, "PaginationQueryDto", { enumerable: true, get: function () { return __importDefault(PaginationQueryDto_1).default; } });
180
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dto/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dto/index.ts"],"names":[],"mappings":";;;;;;AAAA,4BAA0B;AAI1B,SAAgB,GAAG,CAAC,IAAwE;IAC1F,OAAO,UAAU,MAAW,EAAE,UAAwB,EAAE;QACtD,MAAM,IAAI,mCACL,IAAI,KACP,UAAU,EAAE,IAAI,CAAC,UAAU,KAAK,SAAS,GAC1C,CAAC;QACF,OAAO,CAAC,cAAc,CAAC,oBAAoB,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACvE,CAAC,CAAC;AACJ,CAAC;AARD,kBAQC;AAED,iDAA2D;AAAlD,+HAAA,OAAO,OAAiB;AACjC,2DAAqE;AAA5D,yIAAA,OAAO,OAAsB"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- export { ExtendableDto, PaginationQueryDto, Dto, DtoType, DtoQuery } from './dto';
1
+ export { ExtendableDto, PaginationQueryDto, Dto } from './dto';
2
2
  export { initSequelizeModule, getSequelize, modelsSync, generateDBML } from './sequelize';
3
3
  export { default as Repository } from './repository';
4
4
  export { Table } from './table';
5
- export { TypeIs, TypeArray, TypePaging, DtoOrTypeIs } from './type';
5
+ export { TypeIs, DtoOrTypeIs } from './types';
6
6
  export { getUserIdInQuery } from './utils/getUserIdInQuery';
7
7
  export { getDBMLData } from './dbml';
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC1F,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC1F,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC"}
package/dist/index.js CHANGED
@@ -3,13 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getDBMLData = exports.getUserIdInQuery = exports.TypePaging = exports.TypeArray = exports.TypeIs = exports.Table = exports.Repository = exports.generateDBML = exports.modelsSync = exports.getSequelize = exports.initSequelizeModule = exports.DtoQuery = exports.DtoType = exports.Dto = exports.PaginationQueryDto = exports.ExtendableDto = void 0;
6
+ exports.getDBMLData = exports.getUserIdInQuery = exports.TypeIs = exports.Table = exports.Repository = exports.generateDBML = exports.modelsSync = exports.getSequelize = exports.initSequelizeModule = exports.Dto = exports.PaginationQueryDto = exports.ExtendableDto = void 0;
7
7
  var dto_1 = require("./dto");
8
8
  Object.defineProperty(exports, "ExtendableDto", { enumerable: true, get: function () { return dto_1.ExtendableDto; } });
9
9
  Object.defineProperty(exports, "PaginationQueryDto", { enumerable: true, get: function () { return dto_1.PaginationQueryDto; } });
10
10
  Object.defineProperty(exports, "Dto", { enumerable: true, get: function () { return dto_1.Dto; } });
11
- Object.defineProperty(exports, "DtoType", { enumerable: true, get: function () { return dto_1.DtoType; } });
12
- Object.defineProperty(exports, "DtoQuery", { enumerable: true, get: function () { return dto_1.DtoQuery; } });
13
11
  var sequelize_1 = require("./sequelize");
14
12
  Object.defineProperty(exports, "initSequelizeModule", { enumerable: true, get: function () { return sequelize_1.initSequelizeModule; } });
15
13
  Object.defineProperty(exports, "getSequelize", { enumerable: true, get: function () { return sequelize_1.getSequelize; } });
@@ -19,10 +17,8 @@ var repository_1 = require("./repository");
19
17
  Object.defineProperty(exports, "Repository", { enumerable: true, get: function () { return __importDefault(repository_1).default; } });
20
18
  var table_1 = require("./table");
21
19
  Object.defineProperty(exports, "Table", { enumerable: true, get: function () { return table_1.Table; } });
22
- var type_1 = require("./type");
23
- Object.defineProperty(exports, "TypeIs", { enumerable: true, get: function () { return type_1.TypeIs; } });
24
- Object.defineProperty(exports, "TypeArray", { enumerable: true, get: function () { return type_1.TypeArray; } });
25
- Object.defineProperty(exports, "TypePaging", { enumerable: true, get: function () { return type_1.TypePaging; } });
20
+ var types_1 = require("./types");
21
+ Object.defineProperty(exports, "TypeIs", { enumerable: true, get: function () { return types_1.TypeIs; } });
26
22
  var getUserIdInQuery_1 = require("./utils/getUserIdInQuery");
27
23
  Object.defineProperty(exports, "getUserIdInQuery", { enumerable: true, get: function () { return getUserIdInQuery_1.getUserIdInQuery; } });
28
24
  var dbml_1 = require("./dbml");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,6BAAkF;AAAzE,oGAAA,aAAa,OAAA;AAAE,yGAAA,kBAAkB,OAAA;AAAE,0FAAA,GAAG,OAAA;AAAE,8FAAA,OAAO,OAAA;AAAE,+FAAA,QAAQ,OAAA;AAClE,yCAA0F;AAAjF,gHAAA,mBAAmB,OAAA;AAAE,yGAAA,YAAY,OAAA;AAAE,uGAAA,UAAU,OAAA;AAAE,yGAAA,YAAY,OAAA;AACpE,2CAAqD;AAA5C,yHAAA,OAAO,OAAc;AAC9B,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,+BAAoE;AAA3D,8FAAA,MAAM,OAAA;AAAE,iGAAA,SAAS,OAAA;AAAE,kGAAA,UAAU,OAAA;AACtC,6DAA4D;AAAnD,oHAAA,gBAAgB,OAAA;AACzB,+BAAqC;AAA5B,mGAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,6BAA+D;AAAtD,oGAAA,aAAa,OAAA;AAAE,yGAAA,kBAAkB,OAAA;AAAE,0FAAA,GAAG,OAAA;AAC/C,yCAA0F;AAAjF,gHAAA,mBAAmB,OAAA;AAAE,yGAAA,YAAY,OAAA;AAAE,uGAAA,UAAU,OAAA;AAAE,yGAAA,YAAY,OAAA;AACpE,2CAAqD;AAA5C,yHAAA,OAAO,OAAc;AAC9B,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,iCAA8C;AAArC,+FAAA,MAAM,OAAA;AACf,6DAA4D;AAAnD,oHAAA,gBAAgB,OAAA;AACzB,+BAAqC;AAA5B,mGAAA,WAAW,OAAA"}
@@ -1,3 +1,4 @@
1
1
  import { ModelOptions } from 'sequelize';
2
- export declare function Table(options: ModelOptions): <T extends new (...args: any[]) => {}>(target: T) => void;
2
+ import { ClassType } from '../types';
3
+ export declare function Table(options: ModelOptions): <T extends ClassType>(target: T) => void;
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqD,YAAY,EAAE,MAAM,WAAW,CAAC;AAc5F,wBAAgB,KAAK,CAAC,OAAO,EAAE,YAAY,4BACE,GAAG,EAAE,KAAG,EAAE,qBA4CtD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAKzC,OAAO,EAAgB,SAAS,EAAE,MAAM,UAAU,CAAC;AAEnD,wBAAgB,KAAK,CAAC,OAAO,EAAE,YAAY,4CAsC1C"}
@@ -2,42 +2,38 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Table = void 0;
4
4
  const sequelize_typescript_1 = require("sequelize-typescript");
5
- const foreign_key_service_1 = require("sequelize-typescript/dist/associations/foreign-key/foreign-key-service");
5
+ const belongsto_1 = require("../types/belongsto");
6
+ const foreignkey_1 = require("../types/foreignkey");
6
7
  const dbml_1 = require("../dbml");
7
- const type_1 = require("../type");
8
+ const types_1 = require("../types");
8
9
  function Table(options) {
9
10
  return function (target) {
10
11
  const modelName = options.tableName || target.name;
11
- const types = (0, type_1.getTypesData)(target);
12
+ const types = (0, types_1.getTypesData)(target);
12
13
  Object.entries(types).forEach(([key, type]) => {
13
- if (!['foreignkey', 'belongsto'].includes(type.__name)) {
14
- (0, sequelize_typescript_1.addAttribute)(target.prototype, key, type.toSequelize());
15
- }
16
- else if (type.__name === 'foreignkey') {
17
- const { extraData, table } = type.toSequelize();
18
- (0, foreign_key_service_1.addForeignKey)(target.prototype, table, key);
19
- if (extraData) {
20
- const sequelizeType = ((extraData === null || extraData === void 0 ? void 0 : extraData.type) || type_1.TypeIs.INT())().toSequelize();
21
- (0, sequelize_typescript_1.addAttribute)(target.prototype, key, Object.assign(Object.assign({}, extraData), sequelizeType));
22
- }
14
+ if (type.__name === 'foreignkey') {
15
+ (0, foreignkey_1.TypeIsForienKeyAddColumn)(target, type, key);
23
16
  }
24
17
  else if (type.__name === 'belongsto') {
25
- const { associatedClassGetter, optionsOrForeignKey } = type.toSequelize();
26
- const options = (0, sequelize_typescript_1.getPreparedAssociationOptions)(optionsOrForeignKey);
27
- if (!options.as)
28
- options.as = key;
29
- (0, sequelize_typescript_1.addAssociation)(target.prototype, new sequelize_typescript_1.BelongsToAssociation(associatedClassGetter, options));
18
+ (0, belongsto_1.TypeIsBelongsToAddColumn)(target, type, key);
19
+ }
20
+ else {
21
+ (0, sequelize_typescript_1.addAttribute)(target.prototype, key, type.toSequelize());
30
22
  }
31
23
  });
24
+ if ((options === null || options === void 0 ? void 0 : options.timestamps) !== false) {
25
+ (0, sequelize_typescript_1.addOptions)(target.prototype, {
26
+ createdAt: 'created_at',
27
+ timestamps: true,
28
+ });
29
+ (0, sequelize_typescript_1.addOptions)(target.prototype, {
30
+ updatedAt: 'updated_at',
31
+ timestamps: true,
32
+ });
33
+ }
34
+ // DBML GENERATE를 위한 Table 정보 저장
32
35
  (0, dbml_1.addTable)(modelName, target.name, types);
33
- (0, sequelize_typescript_1.addOptions)(target.prototype, {
34
- createdAt: 'created_at',
35
- timestamps: true,
36
- });
37
- (0, sequelize_typescript_1.addOptions)(target.prototype, {
38
- updatedAt: 'updated_at',
39
- timestamps: true,
40
- });
36
+ // sequelize-typescript
41
37
  (0, sequelize_typescript_1.setModelName)(target.prototype, modelName);
42
38
  (0, sequelize_typescript_1.addOptions)(target.prototype, Object.assign(Object.assign({}, options), { charset: 'utf8mb4', collate: 'utf8mb4_general_ci' }));
43
39
  };