@asapjs/sequelize 0.2.2 → 0.2.6

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 (133) hide show
  1. package/dist/dbml/index.d.ts +1 -1
  2. package/dist/dbml/index.d.ts.map +1 -1
  3. package/dist/dbml/index.js +39 -36
  4. package/dist/dbml/index.js.map +1 -1
  5. package/dist/dto/ExtendableDto.d.ts +22 -0
  6. package/dist/dto/ExtendableDto.d.ts.map +1 -0
  7. package/dist/dto/ExtendableDto.js +133 -0
  8. package/dist/dto/ExtendableDto.js.map +1 -0
  9. package/dist/dto/PaginationQueryDto.d.ts +6 -0
  10. package/dist/dto/PaginationQueryDto.d.ts.map +1 -0
  11. package/dist/dto/PaginationQueryDto.js +25 -0
  12. package/dist/dto/PaginationQueryDto.js.map +1 -0
  13. package/dist/dto/index.d.ts +2 -37
  14. package/dist/dto/index.d.ts.map +1 -1
  15. package/dist/dto/index.js +8 -187
  16. package/dist/dto/index.js.map +1 -1
  17. package/dist/index.d.ts +2 -2
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +3 -7
  20. package/dist/index.js.map +1 -1
  21. package/dist/table/index.d.ts +2 -1
  22. package/dist/table/index.d.ts.map +1 -1
  23. package/dist/table/index.js +22 -21
  24. package/dist/table/index.js.map +1 -1
  25. package/dist/types/array.d.ts +7 -0
  26. package/dist/types/array.d.ts.map +1 -0
  27. package/dist/types/array.js +42 -0
  28. package/dist/types/array.js.map +1 -0
  29. package/dist/types/base64.d.ts +10 -0
  30. package/dist/types/base64.d.ts.map +1 -0
  31. package/dist/types/base64.js +20 -0
  32. package/dist/types/base64.js.map +1 -0
  33. package/dist/types/belongsto.d.ts +6 -0
  34. package/dist/types/belongsto.d.ts.map +1 -0
  35. package/dist/types/belongsto.js +27 -0
  36. package/dist/types/belongsto.js.map +1 -0
  37. package/dist/types/binary.d.ts +10 -0
  38. package/dist/types/binary.d.ts.map +1 -0
  39. package/dist/types/binary.js +20 -0
  40. package/dist/types/binary.js.map +1 -0
  41. package/dist/types/boolean.d.ts +9 -0
  42. package/dist/types/boolean.d.ts.map +1 -0
  43. package/dist/types/boolean.js +27 -0
  44. package/dist/types/boolean.js.map +1 -0
  45. package/dist/types/dateonly.d.ts +8 -0
  46. package/dist/types/dateonly.d.ts.map +1 -0
  47. package/dist/types/dateonly.js +20 -0
  48. package/dist/types/dateonly.js.map +1 -0
  49. package/dist/types/datetime.d.ts +8 -0
  50. package/dist/types/datetime.d.ts.map +1 -0
  51. package/dist/types/datetime.js +20 -0
  52. package/dist/types/datetime.js.map +1 -0
  53. package/dist/types/decemal.d.ts +11 -0
  54. package/dist/types/decemal.d.ts.map +1 -0
  55. package/dist/types/decemal.js +30 -0
  56. package/dist/types/decemal.js.map +1 -0
  57. package/dist/types/double.d.ts +11 -0
  58. package/dist/types/double.d.ts.map +1 -0
  59. package/dist/types/double.js +27 -0
  60. package/dist/types/double.js.map +1 -0
  61. package/dist/types/dto.d.ts +10 -0
  62. package/dist/types/dto.d.ts.map +1 -0
  63. package/dist/types/dto.js +22 -0
  64. package/dist/types/dto.js.map +1 -0
  65. package/dist/types/enum.d.ts +9 -0
  66. package/dist/types/enum.d.ts.map +1 -0
  67. package/dist/types/enum.js +26 -0
  68. package/dist/types/enum.js.map +1 -0
  69. package/dist/types/float.d.ts +11 -0
  70. package/dist/types/float.d.ts.map +1 -0
  71. package/dist/types/float.js +27 -0
  72. package/dist/types/float.js.map +1 -0
  73. package/dist/types/foreignkey.d.ts +6 -0
  74. package/dist/types/foreignkey.d.ts.map +1 -0
  75. package/dist/types/foreignkey.js +33 -0
  76. package/dist/types/foreignkey.js.map +1 -0
  77. package/dist/types/generators/toSequelizeGenerator.d.ts +3 -0
  78. package/dist/types/generators/toSequelizeGenerator.d.ts.map +1 -0
  79. package/dist/types/generators/toSequelizeGenerator.js +6 -0
  80. package/dist/types/generators/toSequelizeGenerator.js.map +1 -0
  81. package/dist/types/generators/toSwaggerGenerator.d.ts +9 -0
  82. package/dist/types/generators/toSwaggerGenerator.d.ts.map +1 -0
  83. package/dist/types/generators/toSwaggerGenerator.js +6 -0
  84. package/dist/types/generators/toSwaggerGenerator.js.map +1 -0
  85. package/dist/types/generators/typeGenerator.d.ts +15 -0
  86. package/dist/types/generators/typeGenerator.d.ts.map +1 -0
  87. package/dist/types/generators/typeGenerator.js +38 -0
  88. package/dist/types/generators/typeGenerator.js.map +1 -0
  89. package/dist/types/index.d.ts +26 -0
  90. package/dist/types/index.d.ts.map +1 -0
  91. package/dist/types/index.js +53 -0
  92. package/dist/types/index.js.map +1 -0
  93. package/dist/types/int.d.ts +12 -0
  94. package/dist/types/int.d.ts.map +1 -0
  95. package/dist/types/int.js +27 -0
  96. package/dist/types/int.js.map +1 -0
  97. package/dist/types/json.d.ts +9 -0
  98. package/dist/types/json.d.ts.map +1 -0
  99. package/dist/types/json.js +31 -0
  100. package/dist/types/json.js.map +1 -0
  101. package/dist/types/long.d.ts +12 -0
  102. package/dist/types/long.d.ts.map +1 -0
  103. package/dist/types/long.js +27 -0
  104. package/dist/types/long.js.map +1 -0
  105. package/dist/types/paging.d.ts +6 -0
  106. package/dist/types/paging.d.ts.map +1 -0
  107. package/dist/types/paging.js +65 -0
  108. package/dist/types/paging.js.map +1 -0
  109. package/dist/types/password.d.ts +6 -0
  110. package/dist/types/password.d.ts.map +1 -0
  111. package/dist/types/password.js +20 -0
  112. package/dist/types/password.js.map +1 -0
  113. package/dist/types/query.d.ts +20 -0
  114. package/dist/types/query.d.ts.map +1 -0
  115. package/dist/types/query.js +31 -0
  116. package/dist/types/query.js.map +1 -0
  117. package/dist/types/string.d.ts +11 -0
  118. package/dist/types/string.d.ts.map +1 -0
  119. package/dist/types/string.js +26 -0
  120. package/dist/types/string.js.map +1 -0
  121. package/dist/types/text.d.ts +9 -0
  122. package/dist/types/text.d.ts.map +1 -0
  123. package/dist/types/text.js +16 -0
  124. package/dist/types/text.js.map +1 -0
  125. package/dist/types/type.d.ts +7 -0
  126. package/dist/types/type.d.ts.map +1 -0
  127. package/dist/types/type.js +3 -0
  128. package/dist/types/type.js.map +1 -0
  129. package/package.json +1 -1
  130. package/dist/type/index.d.ts +0 -159
  131. package/dist/type/index.d.ts.map +0 -1
  132. package/dist/type/index.js +0 -343
  133. package/dist/type/index.js.map +0 -1
@@ -1,343 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TypePaging = exports.TypeArray = exports.TypeIs = exports.saveTypesData = exports.saveNewTypesData = exports.getTypesData = void 0;
7
- const sequelize_1 = require("sequelize");
8
- const isClass_1 = __importDefault(require("../utils/isClass"));
9
- const data = {};
10
- const getTypesData = (target) => {
11
- var _a;
12
- const values = data[(target === null || target === void 0 ? void 0 : target.name) || ((_a = target === null || target === void 0 ? void 0 : target.constructor) === null || _a === void 0 ? void 0 : _a.name)];
13
- if (!values)
14
- return {};
15
- return values;
16
- };
17
- exports.getTypesData = getTypesData;
18
- const saveNewTypesData = (attributes, target) => {
19
- data[target.constructor.name] = attributes;
20
- };
21
- exports.saveNewTypesData = saveNewTypesData;
22
- const saveTypesData = (target, propertyName, value) => {
23
- const types = (0, exports.getTypesData)(target);
24
- types[propertyName] = value;
25
- (0, exports.saveNewTypesData)(types, target);
26
- };
27
- exports.saveTypesData = saveTypesData;
28
- const typeGenerator = (data) => (...options) => {
29
- return (target, propertyName, propertyDescriptor) => {
30
- if (target !== undefined) {
31
- const type = data(...options);
32
- (0, exports.saveTypesData)(target, propertyName, type);
33
- if (propertyDescriptor) {
34
- propertyDescriptor.value = type;
35
- }
36
- }
37
- else {
38
- return data(...options);
39
- }
40
- };
41
- };
42
- exports.TypeIs = {
43
- INT: typeGenerator((options) => ({
44
- __name: 'int',
45
- toSwagger: () => ({
46
- type: 'integer',
47
- format: 'int32',
48
- description: options === null || options === void 0 ? void 0 : options.comment,
49
- }),
50
- toSequelize: () => ({ type: sequelize_1.DataTypes.INTEGER(options), comment: options === null || options === void 0 ? void 0 : options.comment }),
51
- fixValue: (o) => {
52
- if (o === undefined || o === null)
53
- return o;
54
- return parseInt(String(o), 10);
55
- },
56
- })),
57
- LONG: typeGenerator((options) => ({
58
- __name: 'long',
59
- toSwagger: () => ({
60
- type: 'integer',
61
- format: 'int64',
62
- description: options === null || options === void 0 ? void 0 : options.comment,
63
- }),
64
- toSequelize: () => ({ type: sequelize_1.DataTypes.INTEGER(options), comment: options === null || options === void 0 ? void 0 : options.comment }),
65
- fixValue: (o) => {
66
- if (o === undefined || o === null)
67
- return o;
68
- return parseInt(String(o), 10);
69
- },
70
- })),
71
- FLOAT: typeGenerator((options) => ({
72
- __name: 'float',
73
- toSwagger: () => ({
74
- type: 'integer',
75
- format: 'float',
76
- description: options === null || options === void 0 ? void 0 : options.comment,
77
- }),
78
- toSequelize: () => ({ type: sequelize_1.DataTypes.FLOAT(options === null || options === void 0 ? void 0 : options.length, options === null || options === void 0 ? void 0 : options.decimals), comment: options === null || options === void 0 ? void 0 : options.comment }),
79
- fixValue: (o) => {
80
- if (o === undefined || o === null)
81
- return o;
82
- return parseFloat(String(o));
83
- },
84
- })),
85
- DECIMAL: typeGenerator((options) => ({
86
- __name: 'decimal',
87
- toSwagger: () => ({
88
- type: 'integer',
89
- format: 'float',
90
- description: options === null || options === void 0 ? void 0 : options.comment,
91
- }),
92
- toSequelize: () => ({
93
- type: sequelize_1.DataTypes.DECIMAL({ precision: options === null || options === void 0 ? void 0 : options.precision, scale: options === null || options === void 0 ? void 0 : options.scale }),
94
- comment: options === null || options === void 0 ? void 0 : options.comment,
95
- }),
96
- fixValue: (o) => {
97
- if (o === undefined || o === null)
98
- return o;
99
- return parseFloat(String(o));
100
- },
101
- })),
102
- DOUBLE: typeGenerator((options) => ({
103
- __name: 'double',
104
- toSwagger: () => ({
105
- type: 'number',
106
- format: 'double',
107
- description: options === null || options === void 0 ? void 0 : options.comment,
108
- }),
109
- toSequelize: () => ({ type: sequelize_1.DataTypes.DOUBLE(options === null || options === void 0 ? void 0 : options.length, options === null || options === void 0 ? void 0 : options.decimals), comment: options === null || options === void 0 ? void 0 : options.comment }),
110
- fixValue: (o) => {
111
- if (o === undefined || o === null)
112
- return o;
113
- return parseFloat(String(o));
114
- },
115
- })),
116
- STRING: typeGenerator((options) => ({
117
- __name: 'string',
118
- toSwagger: () => ({
119
- type: 'string',
120
- description: options === null || options === void 0 ? void 0 : options.comment,
121
- }),
122
- toSequelize: () => ({ type: sequelize_1.DataTypes.STRING(options === null || options === void 0 ? void 0 : options.length, options === null || options === void 0 ? void 0 : options.binary), comment: options === null || options === void 0 ? void 0 : options.comment }),
123
- fixValue: (o) => {
124
- if (o === undefined || o === null)
125
- return o;
126
- return String(o);
127
- },
128
- })),
129
- TEXT: typeGenerator((options) => ({
130
- __name: 'text',
131
- toSwagger: () => ({
132
- type: 'string',
133
- description: options === null || options === void 0 ? void 0 : options.comment,
134
- }),
135
- toSequelize: () => ({ type: sequelize_1.DataTypes.TEXT({ length: options === null || options === void 0 ? void 0 : options.length }), comment: options === null || options === void 0 ? void 0 : options.comment }),
136
- fixValue: (o) => {
137
- if (o === undefined || o === null)
138
- return o;
139
- return String(o);
140
- },
141
- })),
142
- PASSWORD: typeGenerator((options) => ({
143
- __name: 'password',
144
- toSwagger: () => ({
145
- type: 'string',
146
- format: 'password',
147
- description: options === null || options === void 0 ? void 0 : options.comment,
148
- }),
149
- toSequelize: () => ({ type: sequelize_1.DataTypes.STRING(512), comment: options === null || options === void 0 ? void 0 : options.comment }),
150
- })),
151
- ENUM: typeGenerator((options) => ({
152
- __name: 'enum',
153
- toSwagger: () => ({
154
- type: 'string',
155
- enum: options === null || options === void 0 ? void 0 : options.values,
156
- description: options === null || options === void 0 ? void 0 : options.comment,
157
- }),
158
- toSequelize: () => ({ type: sequelize_1.DataTypes.ENUM({ values: options === null || options === void 0 ? void 0 : options.values }), comment: options === null || options === void 0 ? void 0 : options.comment }),
159
- fixValue: (o) => {
160
- var _a, _b;
161
- if (o === undefined || o === null)
162
- return o;
163
- return ((_b = (_a = options === null || options === void 0 ? void 0 : options.values) === null || _a === void 0 ? void 0 : _a.includes) === null || _b === void 0 ? void 0 : _b.call(_a, String(o))) ? String(o) : undefined;
164
- },
165
- })),
166
- JSON: typeGenerator((options) => ({
167
- __name: 'json',
168
- toSwagger: () => ({
169
- type: 'object',
170
- description: options === null || options === void 0 ? void 0 : options.comment,
171
- }),
172
- toSequelize: () => ({ type: sequelize_1.DataTypes.JSON, comment: options === null || options === void 0 ? void 0 : options.comment }),
173
- fixValue: (o) => {
174
- if (typeof o === 'string')
175
- return JSON.parse(String(o));
176
- return o;
177
- },
178
- })),
179
- BASE64: typeGenerator((options) => ({
180
- __name: 'base64',
181
- toSwagger: () => ({
182
- type: 'string',
183
- format: 'byte',
184
- description: options === null || options === void 0 ? void 0 : options.comment,
185
- }),
186
- toSequelize: () => ({ type: sequelize_1.DataTypes.BLOB(options === null || options === void 0 ? void 0 : options.length), comment: options === null || options === void 0 ? void 0 : options.comment }),
187
- })),
188
- BINARY: typeGenerator((options) => ({
189
- __name: 'binary',
190
- toSwagger: () => ({
191
- type: 'string',
192
- format: 'binary',
193
- description: options === null || options === void 0 ? void 0 : options.comment,
194
- }),
195
- toSequelize: () => ({ type: sequelize_1.DataTypes.BLOB(options === null || options === void 0 ? void 0 : options.length), comment: options === null || options === void 0 ? void 0 : options.comment }),
196
- })),
197
- BOOLEAN: typeGenerator((options) => ({
198
- __name: 'boolean',
199
- toSwagger: () => ({
200
- type: 'boolean',
201
- }),
202
- toSequelize: () => ({ type: sequelize_1.DataTypes.BOOLEAN, comment: options === null || options === void 0 ? void 0 : options.comment }),
203
- fixValue: (o) => {
204
- if (o === undefined || o === null)
205
- return o;
206
- return String(o) === 'true' ? true : String(o) === 'false' ? false : !!o;
207
- },
208
- })),
209
- DATEONLY: typeGenerator((options) => ({
210
- __name: 'date',
211
- toSwagger: () => ({
212
- type: 'string',
213
- format: 'date',
214
- description: options === null || options === void 0 ? void 0 : options.comment,
215
- }),
216
- toSequelize: () => ({ type: sequelize_1.DataTypes.DATEONLY(), comment: options === null || options === void 0 ? void 0 : options.comment }),
217
- })),
218
- DATETIME: typeGenerator((options) => ({
219
- __name: 'datetime',
220
- toSwagger: () => ({
221
- type: 'string',
222
- format: 'date-time',
223
- description: options === null || options === void 0 ? void 0 : options.comment,
224
- }),
225
- toSequelize: () => ({ type: sequelize_1.DataTypes.DATE(), comment: options === null || options === void 0 ? void 0 : options.comment }),
226
- })),
227
- FOREIGNKEY: typeGenerator((table) => ({
228
- __name: 'foreignkey',
229
- toSequelize: () => table,
230
- })),
231
- BELONGSTO: typeGenerator((associatedClassGetter, optionsOrForeignKey) => ({
232
- __name: 'belongsto',
233
- toSequelize: () => ({
234
- associatedClassGetter,
235
- optionsOrForeignKey,
236
- }),
237
- })),
238
- DTO: typeGenerator((options) => ({
239
- __name: 'dto',
240
- toSequelize: () => ({ dto: options === null || options === void 0 ? void 0 : options.dto, as: options === null || options === void 0 ? void 0 : options.as }),
241
- toSwagger: () => {
242
- var _a;
243
- const result = (_a = new (options === null || options === void 0 ? void 0 : options.dto)()) === null || _a === void 0 ? void 0 : _a.swagger();
244
- return Object.assign(Object.assign({}, result), { comment: options === null || options === void 0 ? void 0 : options.comment });
245
- },
246
- })),
247
- QUERY: typeGenerator((options) => ({
248
- __name: 'query',
249
- toSequelize: () => ({
250
- query: (props) => options === null || options === void 0 ? void 0 : options.query(props),
251
- type: options === null || options === void 0 ? void 0 : options.type,
252
- }),
253
- fixValue: (o) => {
254
- var _a, _b;
255
- return ((_b = (_a = options === null || options === void 0 ? void 0 : options.type) === null || _a === void 0 ? void 0 : _a.fixValue) === null || _b === void 0 ? void 0 : _b.call(_a, o)) || o;
256
- },
257
- })),
258
- ARRAY: typeGenerator((options) => ({
259
- __name: 'array',
260
- toSwagger: () => {
261
- var _a, _b, _c;
262
- const isDto = (0, isClass_1.default)(options);
263
- return {
264
- type: 'array',
265
- items: isDto
266
- ? (_a = new options()) === null || _a === void 0 ? void 0 : _a.swagger()
267
- : (_c = (_b = options === null || options === void 0 ? void 0 : options()) === null || _b === void 0 ? void 0 : _b.toSwagger) === null || _c === void 0 ? void 0 : _c.call(_b),
268
- // description: options?.comment,
269
- };
270
- },
271
- })),
272
- };
273
- const TypeArray = (value) => {
274
- return class TypeArrayClass {
275
- constructor() {
276
- this.swagger = () => {
277
- var _a, _b, _c;
278
- const isDto = (0, isClass_1.default)(value);
279
- return {
280
- type: 'array',
281
- items: isDto
282
- ? (_a = new value()) === null || _a === void 0 ? void 0 : _a.swagger()
283
- : (_c = (_b = value === null || value === void 0 ? void 0 : value()) === null || _b === void 0 ? void 0 : _b.toSwagger) === null || _c === void 0 ? void 0 : _c.call(_b),
284
- // description: options?.comment,
285
- };
286
- };
287
- }
288
- };
289
- };
290
- exports.TypeArray = TypeArray;
291
- const TypePaging = (value) => {
292
- return class TypePagingClass {
293
- constructor() {
294
- this.swagger = () => {
295
- var _a, _b, _c;
296
- const isDto = (0, isClass_1.default)(value);
297
- return {
298
- type: 'object',
299
- properties: {
300
- data: {
301
- type: 'array',
302
- items: isDto
303
- ? (_a = new value()) === null || _a === void 0 ? void 0 : _a.swagger()
304
- : (_c = (_b = value === null || value === void 0 ? void 0 : value()) === null || _b === void 0 ? void 0 : _b.toSwagger) === null || _c === void 0 ? void 0 : _c.call(_b),
305
- },
306
- page: {
307
- type: 'integer',
308
- format: 'int32',
309
- description: '현재 페이지',
310
- },
311
- page_size: {
312
- type: 'integer',
313
- format: 'int32',
314
- description: '페이지당 표시 개수',
315
- },
316
- max_page: {
317
- type: 'integer',
318
- format: 'int32',
319
- description: '최대 페이지',
320
- },
321
- has_prev: {
322
- type: 'boolean',
323
- format: 'boolean',
324
- description: '이전 이동가능 여부',
325
- },
326
- has_Next: {
327
- type: 'boolean',
328
- format: 'boolean',
329
- description: '다음 이동가능 여부',
330
- },
331
- total_elements: {
332
- type: 'integer',
333
- format: 'int32',
334
- description: '전체 레코드 개수',
335
- },
336
- },
337
- };
338
- };
339
- }
340
- };
341
- };
342
- exports.TypePaging = TypePaging;
343
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/type/index.ts"],"names":[],"mappings":"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"}