@h3ravel/arquebus 0.4.1 → 0.6.0
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.
- package/README.md +20 -1
- package/bin/index.cjs +225 -171
- package/bin/index.js +208 -122
- package/bin/seeders-8GJzfIIN.js +3 -0
- package/bin/seeders-ByeSoCAQ.cjs +131 -0
- package/bin/seeders-CltigymO.js +79 -0
- package/bin/seeders-_xJ6VGVS.cjs +3 -0
- package/dist/browser/index.cjs +9 -9
- package/dist/browser/index.d.cts +3655 -183
- package/dist/browser/index.d.ts +3655 -183
- package/dist/browser/index.js +9 -9
- package/dist/index.cjs +270 -135
- package/dist/index.d.cts +3797 -294
- package/dist/index.d.ts +3797 -294
- package/dist/index.js +263 -133
- package/dist/inspector/index.cjs +122 -46
- package/dist/inspector/index.js +119 -46
- package/dist/migrations/index.cjs +171 -151
- package/dist/migrations/index.d.cts +3510 -27
- package/dist/migrations/index.d.ts +3510 -27
- package/dist/migrations/index.js +177 -150
- package/dist/migrations/stubs/migration-js.stub +1 -1
- package/dist/migrations/stubs/migration-ts.stub +1 -1
- package/dist/migrations/stubs/migration.create-js.stub +5 -5
- package/dist/migrations/stubs/migration.create-ts.stub +5 -5
- package/dist/migrations/stubs/migration.update-js.stub +2 -2
- package/dist/migrations/stubs/migration.update-ts.stub +3 -3
- package/dist/seeders/index.cjs +141 -0
- package/dist/seeders/index.d.cts +4766 -0
- package/dist/seeders/index.d.ts +4766 -0
- package/dist/seeders/index.js +118 -0
- package/dist/seeders/index.ts +3 -0
- package/dist/seeders/runner.ts +102 -0
- package/dist/seeders/seeder-creator.ts +42 -0
- package/dist/seeders/seeder.ts +10 -0
- package/dist/stubs/seeder-js.stub +13 -0
- package/dist/stubs/seeder-ts.stub +9 -0
- package/package.json +15 -4
- package/types/builder.ts +158 -80
- package/types/container.ts +79 -66
- package/types/generics.ts +75 -36
- package/types/modeling.ts +213 -158
- package/types/query-builder.ts +223 -186
- package/types/query-methods.ts +160 -104
- package/types/utils.ts +64 -55
package/types/query-methods.ts
CHANGED
|
@@ -4,41 +4,51 @@ import type { Knex } from 'knex'
|
|
|
4
4
|
import type { Model } from 'src/model'
|
|
5
5
|
import type { PrimitiveValue } from './generics'
|
|
6
6
|
|
|
7
|
-
type Operator = string
|
|
8
|
-
type ColumnRef = string | Raw
|
|
9
|
-
type FieldExpression = string
|
|
10
|
-
type JsonObjectOrFieldExpression = object | object[] | FieldExpression
|
|
11
|
-
|
|
12
|
-
type TableRef<QB extends AnyQueryBuilder> =
|
|
13
|
-
|
|
14
|
-
|
|
7
|
+
type Operator = string
|
|
8
|
+
type ColumnRef = string | Raw
|
|
9
|
+
type FieldExpression = string
|
|
10
|
+
type JsonObjectOrFieldExpression = object | object[] | FieldExpression
|
|
11
|
+
|
|
12
|
+
type TableRef<QB extends AnyQueryBuilder> =
|
|
13
|
+
| ColumnRef
|
|
14
|
+
| AnyQueryBuilder
|
|
15
|
+
| CallbackVoid<QB>
|
|
16
|
+
type Selection<QB extends AnyQueryBuilder> =
|
|
17
|
+
| ColumnRef
|
|
18
|
+
| AnyQueryBuilder
|
|
19
|
+
| CallbackVoid<QB>
|
|
20
|
+
type QBOrCallback<QB extends AnyQueryBuilder> =
|
|
21
|
+
| AnyQueryBuilder
|
|
22
|
+
| CallbackVoid<QB>
|
|
15
23
|
|
|
16
24
|
interface CallbackVoid<T> {
|
|
17
|
-
|
|
25
|
+
(this: T, arg: T): void
|
|
18
26
|
}
|
|
19
27
|
|
|
20
|
-
export type Raw = Knex.Raw
|
|
28
|
+
export type Raw = Knex.Raw
|
|
21
29
|
|
|
22
|
-
export type OrderByDirection = 'asc' | 'desc' | 'ASC' | 'DESC'
|
|
30
|
+
export type OrderByDirection = 'asc' | 'desc' | 'ASC' | 'DESC'
|
|
23
31
|
|
|
24
32
|
export interface OrderByDescriptor {
|
|
25
|
-
|
|
26
|
-
|
|
33
|
+
column: ColumnRef
|
|
34
|
+
order?: OrderByDirection
|
|
27
35
|
}
|
|
28
36
|
|
|
29
|
-
export type AnyQueryBuilder<M extends Model = any, R = any> =
|
|
37
|
+
export type AnyQueryBuilder<M extends Model = any, R = any> =
|
|
38
|
+
| IQueryBuilder<M, R>
|
|
39
|
+
| IBuilder<M, R>
|
|
30
40
|
|
|
31
|
-
export type Expression<T> = T | Raw | AnyQueryBuilder
|
|
41
|
+
export type Expression<T> = T | Raw | AnyQueryBuilder
|
|
32
42
|
|
|
33
|
-
export type ColumnRefOrOrderByDescriptor = ColumnRef | OrderByDescriptor
|
|
43
|
+
export type ColumnRefOrOrderByDescriptor = ColumnRef | OrderByDescriptor
|
|
34
44
|
|
|
35
45
|
export interface RawInterface<R> {
|
|
36
|
-
|
|
46
|
+
(sql: string, ...bindings: any[]): R
|
|
37
47
|
}
|
|
38
48
|
|
|
39
49
|
export interface BaseSetOperations<QB extends AnyQueryBuilder> {
|
|
40
|
-
|
|
41
|
-
|
|
50
|
+
(callbackOrBuilder: QBOrCallback<QB>, wrap?: boolean): QB
|
|
51
|
+
(callbacksOrBuilders: QBOrCallback<QB>[], wrap?: boolean): QB
|
|
42
52
|
}
|
|
43
53
|
|
|
44
54
|
export type JoinRawMethod<QB extends AnyQueryBuilder> = RawInterface<QB> & {}
|
|
@@ -48,136 +58,182 @@ export type OrderByRawMethod<QB extends AnyQueryBuilder> = RawInterface<QB> & {}
|
|
|
48
58
|
export type WhereRawMethod<QB extends AnyQueryBuilder> = RawInterface<QB> & {}
|
|
49
59
|
|
|
50
60
|
export interface GroupByMethod<QB extends AnyQueryBuilder> {
|
|
51
|
-
|
|
52
|
-
|
|
61
|
+
(...columns: ColumnRef[]): QB
|
|
62
|
+
(columns: ColumnRef[]): QB
|
|
53
63
|
}
|
|
54
64
|
|
|
55
|
-
export type WithRelationType =
|
|
56
|
-
|
|
57
|
-
|
|
65
|
+
export type WithRelationType =
|
|
66
|
+
| {
|
|
67
|
+
[key: string]: <T extends IBuilder<any>>(builder: T) => T | void
|
|
68
|
+
}
|
|
69
|
+
| string
|
|
70
|
+
| string[]
|
|
58
71
|
|
|
59
|
-
export interface SetOperationsMethod<QB extends AnyQueryBuilder>
|
|
60
|
-
|
|
72
|
+
export interface SetOperationsMethod<QB extends AnyQueryBuilder>
|
|
73
|
+
extends BaseSetOperations<QB> {
|
|
74
|
+
(...callbacksOrBuilders: QBOrCallback<QB>[]): QB
|
|
61
75
|
}
|
|
62
76
|
|
|
63
77
|
export interface SelectMethod<QB extends AnyQueryBuilder> {
|
|
64
|
-
|
|
65
|
-
|
|
78
|
+
<QBP extends QB>(...columns: Selection<QBP>[]): QB
|
|
79
|
+
<QBP extends QB>(columns: Selection<QBP>[]): QB
|
|
66
80
|
}
|
|
67
81
|
|
|
68
82
|
export interface WhereMethod<QB extends AnyQueryBuilder> {
|
|
69
|
-
|
|
70
|
-
|
|
83
|
+
(col: ColumnRef, op: Operator, expr: Expression<PrimitiveValue>): QB
|
|
84
|
+
(col: ColumnRef, expr: Expression<PrimitiveValue>): QB
|
|
71
85
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
86
|
+
(condition: boolean): QB
|
|
87
|
+
(cb: CallbackVoid<QB>): QB
|
|
88
|
+
(raw: Raw): QB
|
|
89
|
+
<QBA extends AnyQueryBuilder>(qb: QBA): QB
|
|
76
90
|
|
|
77
|
-
|
|
91
|
+
(obj: object): QB
|
|
78
92
|
}
|
|
79
93
|
|
|
80
94
|
export interface WhereWrappedMethod<QB extends AnyQueryBuilder> {
|
|
81
|
-
|
|
95
|
+
(cb: CallbackVoid<QB>): QB
|
|
82
96
|
}
|
|
83
97
|
|
|
84
98
|
export interface WhereFieldExpressionMethod<QB extends AnyQueryBuilder> {
|
|
85
|
-
|
|
99
|
+
(fieldExpression: FieldExpression): QB
|
|
86
100
|
}
|
|
87
101
|
|
|
88
102
|
export interface WhereExistsMethod<QB extends AnyQueryBuilder> {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
103
|
+
(cb: CallbackVoid<QB>): QB
|
|
104
|
+
(raw: Raw): QB
|
|
105
|
+
<QBA extends AnyQueryBuilder>(qb: QBA): QB
|
|
92
106
|
}
|
|
93
107
|
|
|
94
108
|
export interface WhereInMethod<QB extends AnyQueryBuilder> {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
109
|
+
(col: ColumnRef | ColumnRef[], expr: Expression<PrimitiveValue>[]): QB
|
|
110
|
+
(col: ColumnRef | ColumnRef[], cb: CallbackVoid<QB>): QB
|
|
111
|
+
(col: ColumnRef | ColumnRef[], qb: AnyQueryBuilder): QB
|
|
98
112
|
}
|
|
99
113
|
|
|
100
114
|
export interface WhereBetweenMethod<QB extends AnyQueryBuilder> {
|
|
101
|
-
|
|
115
|
+
(
|
|
116
|
+
column: ColumnRef,
|
|
117
|
+
range: [Expression<PrimitiveValue>, Expression<PrimitiveValue>],
|
|
118
|
+
): QB
|
|
102
119
|
}
|
|
103
120
|
|
|
104
121
|
export interface WhereNullMethod<QB extends AnyQueryBuilder> {
|
|
105
|
-
|
|
122
|
+
(column: ColumnRef): QB
|
|
106
123
|
}
|
|
107
124
|
|
|
108
125
|
export interface OrderByMethod<QB extends AnyQueryBuilder> {
|
|
109
|
-
|
|
110
|
-
|
|
126
|
+
(column: ColumnRef, order?: OrderByDirection): QB
|
|
127
|
+
(columns: ColumnRefOrOrderByDescriptor[]): QB
|
|
111
128
|
}
|
|
112
129
|
|
|
113
130
|
export interface WhereJsonExpressionMethod<QB extends AnyQueryBuilder> {
|
|
114
|
-
|
|
131
|
+
(fieldExpression: FieldExpression, keys: string | string[]): QB
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
export interface ReturningMethod<QB extends AnyQueryBuilder> {
|
|
135
|
+
(
|
|
136
|
+
key: FieldExpression | FieldExpression[],
|
|
137
|
+
options?: { [key: string]: any },
|
|
138
|
+
): QB
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
export interface FirstOrFailMethod<QB extends AnyQueryBuilder> {
|
|
142
|
+
(): Promise<QB>
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export interface AddSelectMethod<QB extends AnyQueryBuilder> {
|
|
146
|
+
(params: string[]): QB
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
export interface ForceDeleteMethod {
|
|
150
|
+
(): Promise<boolean | number>
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
export interface RestoreMethod {
|
|
154
|
+
(): Promise<number>
|
|
115
155
|
}
|
|
116
156
|
|
|
117
157
|
export interface WhereColumnMethod<QB extends AnyQueryBuilder> {
|
|
118
|
-
|
|
119
|
-
|
|
158
|
+
(col1: ColumnRef, op: Operator, col2: ColumnRef): QB
|
|
159
|
+
(col1: ColumnRef, col2: ColumnRef): QB
|
|
120
160
|
}
|
|
121
161
|
|
|
122
162
|
export interface JoinMethod<QB extends AnyQueryBuilder> {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
163
|
+
(
|
|
164
|
+
table: TableRef<QB>,
|
|
165
|
+
leftCol: ColumnRef,
|
|
166
|
+
op: Operator,
|
|
167
|
+
rightCol: ColumnRef,
|
|
168
|
+
): QB
|
|
169
|
+
(table: TableRef<QB>, leftCol: ColumnRef, rightCol: ColumnRef): QB
|
|
170
|
+
(table: TableRef<QB>, cb: CallbackVoid<Knex.JoinClause>): QB
|
|
171
|
+
(table: TableRef<QB>, raw: Raw): QB
|
|
172
|
+
(raw: Raw): QB
|
|
128
173
|
}
|
|
129
174
|
|
|
130
175
|
export interface WhereJsonMethod<QB extends AnyQueryBuilder> {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
export interface UnionMethod<QB extends AnyQueryBuilder>
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
176
|
+
(
|
|
177
|
+
fieldExpression: FieldExpression,
|
|
178
|
+
jsonObjectOrFieldExpression: JsonObjectOrFieldExpression,
|
|
179
|
+
): QB
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
export interface UnionMethod<QB extends AnyQueryBuilder>
|
|
183
|
+
extends BaseSetOperations<QB> {
|
|
184
|
+
(arg1: QBOrCallback<QB>, wrap?: boolean): QB
|
|
185
|
+
(arg1: QBOrCallback<QB>, arg2: QBOrCallback<QB>, wrap?: boolean): QB
|
|
186
|
+
(
|
|
187
|
+
arg1: QBOrCallback<QB>,
|
|
188
|
+
arg2: QBOrCallback<QB>,
|
|
189
|
+
arg3: QBOrCallback<QB>,
|
|
190
|
+
wrap?: boolean,
|
|
191
|
+
): QB
|
|
192
|
+
(
|
|
193
|
+
arg1: QBOrCallback<QB>,
|
|
194
|
+
arg2: QBOrCallback<QB>,
|
|
195
|
+
arg3: QBOrCallback<QB>,
|
|
196
|
+
arg4: QBOrCallback<QB>,
|
|
197
|
+
wrap?: boolean,
|
|
198
|
+
): QB
|
|
199
|
+
(
|
|
200
|
+
arg1: QBOrCallback<QB>,
|
|
201
|
+
arg2: QBOrCallback<QB>,
|
|
202
|
+
arg3: QBOrCallback<QB>,
|
|
203
|
+
arg4: QBOrCallback<QB>,
|
|
204
|
+
arg5: QBOrCallback<QB>,
|
|
205
|
+
wrap?: boolean,
|
|
206
|
+
): QB
|
|
207
|
+
(
|
|
208
|
+
arg1: QBOrCallback<QB>,
|
|
209
|
+
arg2: QBOrCallback<QB>,
|
|
210
|
+
arg3: QBOrCallback<QB>,
|
|
211
|
+
arg4: QBOrCallback<QB>,
|
|
212
|
+
arg5: QBOrCallback<QB>,
|
|
213
|
+
arg6: QBOrCallback<QB>,
|
|
214
|
+
wrap?: boolean,
|
|
215
|
+
): QB
|
|
216
|
+
(
|
|
217
|
+
arg1: QBOrCallback<QB>,
|
|
218
|
+
arg2: QBOrCallback<QB>,
|
|
219
|
+
arg3: QBOrCallback<QB>,
|
|
220
|
+
arg4: QBOrCallback<QB>,
|
|
221
|
+
arg5: QBOrCallback<QB>,
|
|
222
|
+
arg6: QBOrCallback<QB>,
|
|
223
|
+
arg7: QBOrCallback<QB>,
|
|
224
|
+
wrap?: boolean,
|
|
225
|
+
): QB
|
|
175
226
|
}
|
|
176
227
|
|
|
177
228
|
export interface JoinMethod<QB extends AnyQueryBuilder> {
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
229
|
+
(
|
|
230
|
+
table: TableRef<QB>,
|
|
231
|
+
leftCol: ColumnRef,
|
|
232
|
+
op: Operator,
|
|
233
|
+
rightCol: ColumnRef,
|
|
234
|
+
): QB
|
|
235
|
+
(table: TableRef<QB>, leftCol: ColumnRef, rightCol: ColumnRef): QB
|
|
236
|
+
(table: TableRef<QB>, cb: CallbackVoid<Knex.JoinClause>): QB
|
|
237
|
+
(table: TableRef<QB>, raw: Raw): QB
|
|
238
|
+
(raw: Raw): QB
|
|
183
239
|
}
|
package/types/utils.ts
CHANGED
|
@@ -6,64 +6,73 @@ import type { IModel } from './modeling'
|
|
|
6
6
|
import type Model from 'src/model'
|
|
7
7
|
import type { TGeneric } from './generics'
|
|
8
8
|
|
|
9
|
-
export interface ICollection<T extends Model | BModel>
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
9
|
+
export interface ICollection<T extends Model | BModel>
|
|
10
|
+
extends BaseCollection<T> {
|
|
11
|
+
items?: T[]
|
|
12
|
+
load(...relations: T[]): Promise<ICollection<T>>
|
|
13
|
+
loadAggregate(
|
|
14
|
+
relations: T | T[],
|
|
15
|
+
column: string,
|
|
16
|
+
action?: string | null,
|
|
17
|
+
): Promise<this>
|
|
18
|
+
loadCount(relation: T, column: string): Promise<this>
|
|
19
|
+
loadMax(relation: T, column: string): Promise<this>
|
|
20
|
+
loadMin(relation: T, column: string): Promise<this>
|
|
21
|
+
loadSum(relation: T, column: string): Promise<this>
|
|
22
|
+
loadAvg(relation: T, column: string): Promise<this>
|
|
23
|
+
mapThen(callback: () => void): Promise<any>
|
|
24
|
+
modelKeys(): string[] | number[]
|
|
25
|
+
contains(key: IModel | any, operator?: any, value?: any): boolean
|
|
26
|
+
diff(items: ICollection<T> | any[]): ICollection<T>
|
|
27
|
+
except(keys: any[]): ICollection<T>
|
|
28
|
+
intersect(items: T[]): ICollection<T>
|
|
29
|
+
unique(key?: any, strict?: boolean): ICollection<T>
|
|
30
|
+
find(key: any, defaultValue?: any): any
|
|
31
|
+
fresh(withs?: any[]): Promise<ICollection<T>>
|
|
32
|
+
makeVisible(attributes: string | string[]): this
|
|
33
|
+
makeHidden(attributes: string | string[]): this
|
|
34
|
+
append(attributes: string[]): this
|
|
35
|
+
only(keys: null | any[]): this
|
|
36
|
+
getDictionary(items?: any[]): TGeneric
|
|
37
|
+
toQuery(): IBuilder<T, any>
|
|
38
|
+
toData(): any
|
|
39
|
+
toJSON(): any
|
|
40
|
+
toJson(): string
|
|
41
|
+
toString(): string
|
|
42
|
+
[key: string]: any
|
|
43
|
+
[Symbol.iterator]: () => Iterator<T>
|
|
39
44
|
}
|
|
40
45
|
|
|
41
46
|
export interface IPaginatorParams {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
47
|
+
current_page: number
|
|
48
|
+
data: any[]
|
|
49
|
+
per_page: number
|
|
50
|
+
total: number
|
|
51
|
+
last_page: number
|
|
52
|
+
count: number
|
|
53
|
+
paginated?: boolean
|
|
48
54
|
}
|
|
49
55
|
|
|
50
|
-
export interface IPaginator<
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
56
|
+
export interface IPaginator<
|
|
57
|
+
T extends Model | BModel,
|
|
58
|
+
K extends IPaginatorParams = IPaginatorParams,
|
|
59
|
+
> {
|
|
60
|
+
formatter?(paginator: IPaginator<any>): any | null
|
|
61
|
+
setFormatter?(formatter: (paginator: IPaginator<any>) => any | null): void
|
|
62
|
+
setItems(items: T[] | Collection<T>): void
|
|
63
|
+
hasMorePages(): boolean
|
|
64
|
+
get(index: number): T | null
|
|
65
|
+
count(): number
|
|
66
|
+
items(): Collection<T>
|
|
67
|
+
map(callback: (value: T, index: number) => T): Collection<T>
|
|
68
|
+
currentPage(): number
|
|
69
|
+
perPage(): number
|
|
70
|
+
lastPage(): number
|
|
71
|
+
firstItem(): number | null
|
|
72
|
+
lastItem(): number | null
|
|
73
|
+
total(): number
|
|
74
|
+
toData<U = K>(): U
|
|
75
|
+
toJSON<U = K>(): U
|
|
76
|
+
toJson(): string
|
|
77
|
+
[Symbol.iterator]?(): { next: () => { value: T; done: boolean } }
|
|
69
78
|
}
|