@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
@@ -0,0 +1,11 @@
1
+ export interface TypeIsStringOption {
2
+ length?: number;
3
+ binary?: boolean;
4
+ comment?: string;
5
+ }
6
+ export declare const TypeIsStringToSwagger: (options?: (TypeIsStringOption & import("sequelize/types").ModelAttributeColumnOptions<import("sequelize/types").Model<any, any>>) | undefined) => import("./generators/toSwaggerGenerator").ISwaggerData;
7
+ export declare const TypeIsStringToSequelize: (options?: (TypeIsStringOption & import("sequelize/types").ModelAttributeColumnOptions<import("sequelize/types").Model<any, any>>) | undefined) => import("sequelize/types").ModelAttributeColumnOptions<import("sequelize/types").Model<any, any>>;
8
+ export declare const TypeIsStringFixValue: (o: any) => any;
9
+ declare const TypeIsString: (...options: (import("sequelize/types").ModelAttributeColumnOptions<import("sequelize/types").Model<any, any>> | TypeIsStringOption)[]) => (target?: any, propertyName?: string | undefined, propertyDescriptor?: PropertyDescriptor | undefined) => void & import("./generators/typeGenerator").TypeIsData;
10
+ export default TypeIsString;
11
+ //# sourceMappingURL=string.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../src/types/string.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,qBAAqB,2MAG/B,CAAC;AAEJ,eAAO,MAAM,uBAAuB,qPAIjC,CAAC;AAEJ,eAAO,MAAM,oBAAoB,MAAO,GAAG,QAG1C,CAAC;AAEF,QAAA,MAAM,YAAY,6SAKf,CAAC;AAEJ,eAAe,YAAY,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TypeIsStringFixValue = exports.TypeIsStringToSequelize = exports.TypeIsStringToSwagger = void 0;
4
+ const types_1 = require("sequelize/types");
5
+ const toSequelizeGenerator_1 = require("./generators/toSequelizeGenerator");
6
+ const toSwaggerGenerator_1 = require("./generators/toSwaggerGenerator");
7
+ const typeGenerator_1 = require("./generators/typeGenerator");
8
+ exports.TypeIsStringToSwagger = (0, toSwaggerGenerator_1.toSwaggerGenerator)((options) => ({
9
+ type: 'string',
10
+ description: options === null || options === void 0 ? void 0 : options.comment,
11
+ }));
12
+ exports.TypeIsStringToSequelize = (0, toSequelizeGenerator_1.toSequelizeGenerator)((options) => (Object.assign(Object.assign({}, options), { type: types_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 })));
13
+ const TypeIsStringFixValue = (o) => {
14
+ if (o === undefined || o === null)
15
+ return o;
16
+ return String(o);
17
+ };
18
+ exports.TypeIsStringFixValue = TypeIsStringFixValue;
19
+ const TypeIsString = (0, typeGenerator_1.typeGenerator)((options) => ({
20
+ __name: 'string',
21
+ toSwagger: () => (0, exports.TypeIsStringToSwagger)(options),
22
+ toSequelize: () => (0, exports.TypeIsStringToSequelize)(options),
23
+ fixValue: exports.TypeIsStringFixValue,
24
+ }));
25
+ exports.default = TypeIsString;
26
+ //# sourceMappingURL=string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/types/string.ts"],"names":[],"mappings":";;;AAAA,2CAA4C;AAC5C,4EAAyE;AACzE,wEAAqE;AACrE,8DAA2D;AAQ9C,QAAA,qBAAqB,GAAG,IAAA,uCAAkB,EAAqB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACxF,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO;CAC9B,CAAC,CAAC,CAAC;AAES,QAAA,uBAAuB,GAAG,IAAA,2CAAoB,EAAqB,CAAC,OAAO,EAAE,EAAE,CAAC,iCACxF,OAAO,KACV,IAAI,EAAE,iBAAS,CAAC,MAAM,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAC,EACxD,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,IACzB,CAAC,CAAC;AAEG,MAAM,oBAAoB,GAAG,CAAC,CAAM,EAAE,EAAE;IAC7C,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC;AAHW,QAAA,oBAAoB,wBAG/B;AAEF,MAAM,YAAY,GAAG,IAAA,6BAAa,EAAqB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACnE,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,GAAG,EAAE,CAAC,IAAA,6BAAqB,EAAC,OAAO,CAAC;IAC/C,WAAW,EAAE,GAAG,EAAE,CAAC,IAAA,+BAAuB,EAAC,OAAO,CAAC;IACnD,QAAQ,EAAE,4BAAoB;CAC/B,CAAC,CAAC,CAAC;AAEJ,kBAAe,YAAY,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { TextLength } from 'sequelize/types';
2
+ export interface TypeIsTextOption {
3
+ length?: TextLength;
4
+ comment?: string;
5
+ }
6
+ export declare const TypeIsTextToSequelize: (options?: (TypeIsTextOption & import("sequelize/types").ModelAttributeColumnOptions<import("sequelize/types").Model<any, any>>) | undefined) => import("sequelize/types").ModelAttributeColumnOptions<import("sequelize/types").Model<any, any>>;
7
+ declare const TypeIsText: (...options: (import("sequelize/types").ModelAttributeColumnOptions<import("sequelize/types").Model<any, any>> | TypeIsTextOption)[]) => (target?: any, propertyName?: string | undefined, propertyDescriptor?: PropertyDescriptor | undefined) => void & import("./generators/typeGenerator").TypeIsData;
8
+ export default TypeIsText;
9
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/types/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAKxD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,qBAAqB,mPAI/B,CAAC;AAEJ,QAAA,MAAM,UAAU,2SAKb,CAAC;AAEJ,eAAe,UAAU,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TypeIsTextToSequelize = void 0;
4
+ const types_1 = require("sequelize/types");
5
+ const string_1 = require("./string");
6
+ const typeGenerator_1 = require("./generators/typeGenerator");
7
+ const toSequelizeGenerator_1 = require("./generators/toSequelizeGenerator");
8
+ exports.TypeIsTextToSequelize = (0, toSequelizeGenerator_1.toSequelizeGenerator)((options) => (Object.assign(Object.assign({}, options), { type: types_1.DataTypes.TEXT({ length: options === null || options === void 0 ? void 0 : options.length }), comment: options === null || options === void 0 ? void 0 : options.comment })));
9
+ const TypeIsText = (0, typeGenerator_1.typeGenerator)((options) => ({
10
+ __name: 'text',
11
+ toSwagger: () => (0, string_1.TypeIsStringToSwagger)(options),
12
+ toSequelize: () => (0, exports.TypeIsTextToSequelize)(options),
13
+ fixValue: string_1.TypeIsStringFixValue,
14
+ }));
15
+ exports.default = TypeIsText;
16
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/types/text.ts"],"names":[],"mappings":";;;AAAA,2CAAwD;AACxD,qCAA2F;AAC3F,8DAA2D;AAC3D,4EAAyE;AAO5D,QAAA,qBAAqB,GAAG,IAAA,2CAAoB,EAAmB,CAAC,OAAO,EAAE,EAAE,CAAC,iCACpF,OAAO,KACV,IAAI,EAAE,iBAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE,CAAC,EACjD,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,IACzB,CAAC,CAAC;AAEJ,MAAM,UAAU,GAAG,IAAA,6BAAa,EAAmB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC/D,MAAM,EAAE,MAAM;IACd,SAAS,EAAE,GAAG,EAAE,CAAC,IAAA,8BAAqB,EAAC,OAAc,CAAC;IACtD,WAAW,EAAE,GAAG,EAAE,CAAC,IAAA,6BAAqB,EAAC,OAAO,CAAC;IACjD,QAAQ,EAAE,6BAAoB;CAC/B,CAAC,CAAC,CAAC;AAEJ,kBAAe,UAAU,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { ExtendableDto } from '../dto';
2
+ import { TypeIsData } from './generators/typeGenerator';
3
+ export declare type DtoOrTypeIs = typeof ExtendableDto | (() => TypeIsData);
4
+ export declare type ClassType = {
5
+ new (...args: any[]): {};
6
+ };
7
+ //# sourceMappingURL=type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../src/types/type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,oBAAY,WAAW,GAAG,OAAO,aAAa,GAAG,CAAC,MAAM,UAAU,CAAC,CAAC;AAEpE,oBAAY,SAAS,GAAG;IAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;CAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/types/type.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@asapjs/sequelize",
3
- "version": "0.2.4",
3
+ "version": "0.2.5",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -1,110 +0,0 @@
1
- import { BlobSize, ModelAttributeColumnOptions as DefaultModelAttributeColumnOptions } from 'sequelize';
2
- import { ExtendableDto } from '../dto';
3
- declare type ModelAttributeColumnOptions = Partial<DefaultModelAttributeColumnOptions>;
4
- export declare const getTypesData: (target: any) => any;
5
- export declare const saveNewTypesData: (attributes: any, target: any) => void;
6
- export declare const saveTypesData: (target: any, propertyName: any, value: any) => void;
7
- export declare type TypeIsData = {
8
- __name: string;
9
- toSwagger?: (...args: any[]) => any;
10
- toSequelize?: (...args: any[]) => any;
11
- fixValue?: (o: any) => any;
12
- };
13
- declare type TypeIsReturnFunc = (target?: any, propertyName?: string, propertyDescriptor?: PropertyDescriptor) => void & TypeIsData;
14
- interface TypeIsInterface {
15
- INT: (options?: {
16
- decimals?: number;
17
- precision?: number;
18
- scale?: number;
19
- comment?: string;
20
- } & ModelAttributeColumnOptions) => TypeIsReturnFunc;
21
- LONG: (options?: {
22
- decimals?: number;
23
- precision?: number;
24
- scale?: number;
25
- comment?: string;
26
- } & ModelAttributeColumnOptions) => TypeIsReturnFunc;
27
- FLOAT: (options?: {
28
- length?: number;
29
- decimals?: number;
30
- comment?: string;
31
- } & ModelAttributeColumnOptions) => TypeIsReturnFunc;
32
- DECIMAL: (options: {
33
- precision: number;
34
- scale: number;
35
- comment?: string;
36
- } & ModelAttributeColumnOptions) => TypeIsReturnFunc;
37
- DOUBLE: (options?: {
38
- length?: number;
39
- decimals?: number;
40
- comment?: string;
41
- } & ModelAttributeColumnOptions) => TypeIsReturnFunc;
42
- STRING: (options?: {
43
- length?: number;
44
- binary?: boolean;
45
- comment?: string;
46
- } & ModelAttributeColumnOptions) => TypeIsReturnFunc;
47
- TEXT: (options?: {
48
- length?: number;
49
- comment?: string;
50
- } & ModelAttributeColumnOptions) => TypeIsReturnFunc;
51
- PASSWORD: (options?: {
52
- comment?: string;
53
- } & ModelAttributeColumnOptions) => TypeIsReturnFunc;
54
- ENUM: (options?: {
55
- values?: string[];
56
- comment?: string;
57
- } & ModelAttributeColumnOptions) => TypeIsReturnFunc;
58
- JSON: (options?: {
59
- comment?: string;
60
- } & ModelAttributeColumnOptions) => TypeIsReturnFunc;
61
- BASE64: (options?: {
62
- length?: BlobSize;
63
- comment?: string;
64
- } & ModelAttributeColumnOptions) => TypeIsReturnFunc;
65
- BINARY: (options?: {
66
- length?: BlobSize;
67
- comment?: string;
68
- } & ModelAttributeColumnOptions) => TypeIsReturnFunc;
69
- BOOLEAN: (options?: {
70
- comment?: string;
71
- } & ModelAttributeColumnOptions) => TypeIsReturnFunc;
72
- DATEONLY: (options?: {
73
- comment?: string;
74
- } & ModelAttributeColumnOptions) => TypeIsReturnFunc;
75
- DATETIME: (options?: {
76
- comment?: string;
77
- } & ModelAttributeColumnOptions) => TypeIsReturnFunc;
78
- FOREIGNKEY: (table?: any, extraData?: any) => TypeIsReturnFunc;
79
- BELONGSTO: (associatedClassGetter: any, optionsOrForeignKey: any) => TypeIsReturnFunc;
80
- DTO: (options?: {
81
- dto: any;
82
- as?: any;
83
- comment?: string;
84
- }) => TypeIsReturnFunc;
85
- QUERY: (options: {
86
- query: (props: {
87
- user?: any;
88
- association?: string;
89
- }) => string;
90
- type?: any;
91
- }) => TypeIsReturnFunc;
92
- ARRAY: (options: DtoOrTypeIs) => TypeIsReturnFunc;
93
- PAGING: (options: DtoOrTypeIs) => TypeIsReturnFunc;
94
- }
95
- export declare const TypeIs: TypeIsInterface;
96
- export declare type DtoOrTypeIs = typeof ExtendableDto | (() => TypeIsData) | TypeArrayClass;
97
- interface TypeArrayClass {
98
- new (n: string): TypeArrayInterface;
99
- }
100
- export interface TypeArrayInterface {
101
- swagger: () => {
102
- type: string;
103
- items: any;
104
- };
105
- }
106
- export interface TypePagingInterface {
107
- swagger: () => any;
108
- }
109
- export {};
110
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/type/index.ts"],"names":[],"mappings":"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"}
@@ -1,345 +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.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: () => (Object.assign(Object.assign({}, options), { 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: () => (Object.assign(Object.assign({}, options), { 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: () => (Object.assign(Object.assign({}, options), { 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: () => (Object.assign(Object.assign({}, options), { type: sequelize_1.DataTypes.DECIMAL({
93
- precision: options === null || options === void 0 ? void 0 : options.precision,
94
- scale: options === null || options === void 0 ? void 0 : options.scale,
95
- }), comment: options === null || options === void 0 ? void 0 : options.comment })),
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: () => (Object.assign(Object.assign({}, options), { 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: () => (Object.assign(Object.assign({}, options), { 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: () => (Object.assign(Object.assign({}, options), { 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: () => (Object.assign(Object.assign({}, options), { 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: () => (Object.assign(Object.assign({}, options), { 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: () => (Object.assign(Object.assign({}, options), { type: sequelize_1.DataTypes.JSON, comment: options === null || options === void 0 ? void 0 : options.comment })),
173
- fixValue: (o) => {
174
- try {
175
- if (typeof o === 'string')
176
- return JSON.parse(String(o));
177
- return o;
178
- }
179
- catch (_a) {
180
- return o;
181
- }
182
- },
183
- })),
184
- BASE64: typeGenerator((options) => ({
185
- __name: 'base64',
186
- toSwagger: () => ({
187
- type: 'string',
188
- format: 'byte',
189
- description: options === null || options === void 0 ? void 0 : options.comment,
190
- }),
191
- toSequelize: () => (Object.assign(Object.assign({}, options), { type: sequelize_1.DataTypes.BLOB(options === null || options === void 0 ? void 0 : options.length), comment: options === null || options === void 0 ? void 0 : options.comment })),
192
- })),
193
- BINARY: typeGenerator((options) => ({
194
- __name: 'binary',
195
- toSwagger: () => ({
196
- type: 'string',
197
- format: 'binary',
198
- description: options === null || options === void 0 ? void 0 : options.comment,
199
- }),
200
- toSequelize: () => (Object.assign(Object.assign({}, options), { type: sequelize_1.DataTypes.BLOB(options === null || options === void 0 ? void 0 : options.length), comment: options === null || options === void 0 ? void 0 : options.comment })),
201
- })),
202
- BOOLEAN: typeGenerator((options) => ({
203
- __name: 'boolean',
204
- toSwagger: () => ({
205
- type: 'boolean',
206
- description: options === null || options === void 0 ? void 0 : options.comment,
207
- }),
208
- toSequelize: () => (Object.assign(Object.assign({}, options), { type: sequelize_1.DataTypes.BOOLEAN, comment: options === null || options === void 0 ? void 0 : options.comment })),
209
- fixValue: (o) => {
210
- if (o === undefined || o === null)
211
- return o;
212
- const v = String(o) === 'true' ? true : String(o) === 'false' ? false : !!o;
213
- return Boolean(v);
214
- },
215
- })),
216
- DATEONLY: typeGenerator((options) => ({
217
- __name: 'date',
218
- toSwagger: () => ({
219
- type: 'string',
220
- format: 'date',
221
- description: options === null || options === void 0 ? void 0 : options.comment,
222
- }),
223
- toSequelize: () => (Object.assign(Object.assign({}, options), { type: sequelize_1.DataTypes.DATEONLY(), comment: options === null || options === void 0 ? void 0 : options.comment })),
224
- })),
225
- DATETIME: typeGenerator((options) => ({
226
- __name: 'datetime',
227
- toSwagger: () => ({
228
- type: 'string',
229
- format: 'date-time',
230
- description: options === null || options === void 0 ? void 0 : options.comment,
231
- }),
232
- toSequelize: () => (Object.assign(Object.assign({}, options), { type: sequelize_1.DataTypes.DATE(), comment: options === null || options === void 0 ? void 0 : options.comment })),
233
- })),
234
- FOREIGNKEY: typeGenerator((table, extraData) => ({
235
- __name: 'foreignkey',
236
- toSequelize: () => ({
237
- table,
238
- extraData,
239
- }),
240
- })),
241
- BELONGSTO: typeGenerator((associatedClassGetter, optionsOrForeignKey) => ({
242
- __name: 'belongsto',
243
- toSequelize: () => ({
244
- associatedClassGetter,
245
- optionsOrForeignKey,
246
- }),
247
- })),
248
- DTO: typeGenerator((options) => ({
249
- __name: 'dto',
250
- toSequelize: () => ({ dto: options === null || options === void 0 ? void 0 : options.dto, as: options === null || options === void 0 ? void 0 : options.as }),
251
- toSwagger: () => {
252
- var _a;
253
- const result = (_a = new (options === null || options === void 0 ? void 0 : options.dto)()) === null || _a === void 0 ? void 0 : _a.swagger();
254
- return Object.assign(Object.assign({}, result), { comment: options === null || options === void 0 ? void 0 : options.comment });
255
- },
256
- })),
257
- QUERY: typeGenerator((options) => ({
258
- __name: 'query',
259
- toSequelize: () => ({
260
- query: (props) => options === null || options === void 0 ? void 0 : options.query(props),
261
- type: options === null || options === void 0 ? void 0 : options.type,
262
- }),
263
- fixValue: (o) => {
264
- var _a, _b, _c;
265
- return (_c = (_b = (_a = options === null || options === void 0 ? void 0 : options.type) === null || _a === void 0 ? void 0 : _a.call(options)) === null || _b === void 0 ? void 0 : _b.fixValue) === null || _c === void 0 ? void 0 : _c.call(_b, o);
266
- },
267
- toSwagger: () => {
268
- var _a, _b, _c;
269
- return (_c = (_b = (_a = options === null || options === void 0 ? void 0 : options.type) === null || _a === void 0 ? void 0 : _a.call(options)) === null || _b === void 0 ? void 0 : _b.toSwagger) === null || _c === void 0 ? void 0 : _c.call(_b);
270
- },
271
- })),
272
- ARRAY: typeGenerator((options) => ({
273
- __name: 'array',
274
- fixValue: (o) => {
275
- try {
276
- if (typeof o === 'string')
277
- return JSON.parse(String(o));
278
- return o;
279
- }
280
- catch (_a) {
281
- return o;
282
- }
283
- },
284
- toSwagger: () => {
285
- var _a, _b, _c;
286
- const isDto = (0, isClass_1.default)(options);
287
- return {
288
- type: 'array',
289
- items: isDto
290
- ? (_a = new options()) === null || _a === void 0 ? void 0 : _a.swagger()
291
- : (_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),
292
- // description: options?.comment,
293
- };
294
- },
295
- })),
296
- PAGING: typeGenerator((options) => ({
297
- __name: 'array',
298
- toSwagger: () => {
299
- var _a, _b, _c;
300
- const isDto = (0, isClass_1.default)(options);
301
- return {
302
- type: 'object',
303
- properties: {
304
- data: {
305
- type: 'array',
306
- items: isDto
307
- ? (_a = new options()) === null || _a === void 0 ? void 0 : _a.swagger()
308
- : (_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),
309
- },
310
- page: {
311
- type: 'integer',
312
- format: 'int32',
313
- description: '현재 페이지',
314
- },
315
- page_size: {
316
- type: 'integer',
317
- format: 'int32',
318
- description: '페이지당 표시 개수',
319
- },
320
- max_page: {
321
- type: 'integer',
322
- format: 'int32',
323
- description: '최대 페이지',
324
- },
325
- has_prev: {
326
- type: 'boolean',
327
- format: 'boolean',
328
- description: '이전 이동가능 여부',
329
- },
330
- has_Next: {
331
- type: 'boolean',
332
- format: 'boolean',
333
- description: '다음 이동가능 여부',
334
- },
335
- total_elements: {
336
- type: 'integer',
337
- format: 'int32',
338
- description: '전체 레코드 개수',
339
- },
340
- },
341
- };
342
- },
343
- })),
344
- };
345
- //# 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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"}