1
+ /* eslint-disable no-unused-vars */
1
2
import { DataTypes , Includeable , IncludeOptions , Model } from 'sequelize'
3
+ import QueryHelper from 'modules/SqlizeQuery/QueryHelper'
4
+ import TransformHelper from 'modules/SqlizeQuery/TransformHelper'
2
5
3
6
type ValueParsers = ( value : any ) => any
4
7
type TransformBuild = ( value : any , transformHelper : TransformHelper ) => any
@@ -80,54 +83,11 @@ export function getPrimitiveDataType<T>(dataType: T) {
80
83
return 'string'
81
84
}
82
85
83
- class TransformHelper < T = any > {
84
- private value : T | undefined
85
-
86
- constructor ( initialValue : any ) {
87
- this . setValue ( initialValue )
88
- }
89
-
90
- setValue ( value : any ) {
91
- this . value = value
92
- }
93
-
94
- getValue ( ) {
95
- return this . value
96
- }
97
- }
98
-
99
- class QueryHelper {
100
- private valueQuery : any = { }
101
- private data : any [ ]
102
- constructor ( data : any [ ] ) {
103
- this . data = data
104
- }
105
-
106
- getDataValueById ( id : any ) {
107
- return this . data . find ( ( x ) => x . id === id ) ?. value
108
- }
109
-
110
- setQuery ( id : any , value : any ) {
111
- // set(this.valueQuery, id, value)
112
- this . valueQuery [ id ] = value
113
- }
114
-
115
- getQuery ( ) {
116
- return this . valueQuery
117
- }
118
-
119
- getQueryById ( id : any ) {
120
- return this . valueQuery [ id ]
121
- }
122
-
123
- deleteQuery ( id : any ) {
124
- return delete this . valueQuery [ id ]
125
- }
126
- }
127
-
128
86
class SqlizeQuery {
129
87
private valueParsers : ValueParsers [ ] = [ ]
88
+
130
89
private transformBuilds : TransformBuild [ ] = [ ]
90
+
131
91
private queryBuilders : QueryBuilders [ ] = [ ]
132
92
133
93
addValueParser ( fn : ValueParsers ) {
@@ -144,24 +104,24 @@ class SqlizeQuery {
144
104
145
105
build ( value : any ) {
146
106
let parserValue = value as any [ ]
147
- for ( let i = 0 ; i < this . valueParsers . length ; i ++ ) {
107
+ for ( let i = 0 ; i < this . valueParsers . length ; i += 1 ) {
148
108
const getterValue = this . valueParsers [ i ]
149
109
parserValue = getterValue ( value )
150
110
}
151
111
152
112
const queryHelper = new QueryHelper ( parserValue )
153
113
// executed queryBuilder min 1, when parserValue no data
154
- for ( let i = 0 ; i < ( parserValue . length || 1 ) ; i ++ ) {
114
+ for ( let i = 0 ; i < ( parserValue . length || 1 ) ; i += 1 ) {
155
115
const valueP = parserValue [ i ]
156
- for ( let k = 0 ; k < this . queryBuilders . length ; k ++ ) {
116
+ for ( let k = 0 ; k < this . queryBuilders . length ; k += 1 ) {
157
117
const queryBuilder = this . queryBuilders [ k ]
158
118
queryBuilder ( valueP , queryHelper )
159
119
}
160
120
}
161
121
162
- let result = queryHelper . getQuery ( )
122
+ const result = queryHelper . getQuery ( )
163
123
const transformHelper = new TransformHelper ( result )
164
- for ( let i = 0 ; i < this . transformBuilds . length ; i ++ ) {
124
+ for ( let i = 0 ; i < this . transformBuilds . length ; i += 1 ) {
165
125
const transformBuild = this . transformBuilds [ i ]
166
126
transformBuild ( result , transformHelper )
167
127
}
@@ -184,7 +144,7 @@ export function transfromIncludeToQueryable(
184
144
return value
185
145
}
186
146
function wrapFiltered ( includes : Includeable [ ] , parent ?: IncludeOptions ) {
187
- for ( let i = 0 ; i < includes . length ; i ++ ) {
147
+ for ( let i = 0 ; i < includes . length ; i += 1 ) {
188
148
const include = includes [ i ] as CustomIncludeOptions
189
149
190
150
const { model, key, include : oriInclude , ...restInclude } = include
@@ -200,6 +160,7 @@ export function transfromIncludeToQueryable(
200
160
} as IncludeOptions )
201
161
202
162
if ( parent ) {
163
+ // eslint-disable-next-line no-param-reassign
203
164
parent . include = parent . include || [ ]
204
165
parent . include . push ( data )
205
166
} else {
0 commit comments