-
-
Notifications
You must be signed in to change notification settings - Fork 128
/
Copy pathStaticModel.js
138 lines (99 loc) · 2.01 KB
/
StaticModel.js
1
2
3
4
5
6
7
8
9
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
/**
* Provide static calls for all methods.
*
* Instead this: let users = new User().with('country').get()
* We can do this: let users = User.with('conutry').get()
*
*/
export default class StaticModel {
static instance() {
return new this
}
static include(...args) {
let self = this.instance()
self.include(...args)
return self
}
static with(...args) {
let self = this.instance()
self.with(...args)
return self
}
static append(...args) {
let self = this.instance()
self.append(...args)
return self
}
static select(...fields) {
let self = this.instance()
self.select(...fields)
return self
}
static where(field, value) {
let self = this.instance()
self.where(field, value)
return self
}
static whereIn(field, array) {
let self = this.instance()
self.whereIn(field, array)
return self
}
static orderBy(...args) {
let self = this.instance()
self.orderBy(...args)
return self
}
static page(value) {
let self = this.instance()
self.page(value)
return self
}
static limit(value) {
let self = this.instance()
self.limit(value)
return self
}
static custom(...args) {
let self = this.instance()
self.custom(...args)
return self
}
static params(payload) {
let self = this.instance()
self.params(payload)
return self
}
static first() {
let self = this.instance()
return self.first()
}
static $first() {
let self = this.instance()
return self.$first()
}
static find(id) {
let self = this.instance()
return self.find(id)
}
static $find(id) {
let self = this.instance()
return self.$find(id)
}
static get() {
let self = this.instance()
return self.get()
}
static all() {
let self = this.instance()
return self.all()
}
static $get() {
let self = this.instance()
return self.$get()
}
static $all() {
let self = this.instance()
return self.$all()
}
}