express-ext 0.5.3 → 0.5.4
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/lib/search.js +108 -0
- package/package.json +1 -1
- package/src/search.ts +107 -0
package/lib/search.js
CHANGED
|
@@ -3,6 +3,114 @@ Object.defineProperty(exports, "__esModule", { value: true })
|
|
|
3
3
|
var http_1 = require("./http")
|
|
4
4
|
var resources_1 = require("./resources")
|
|
5
5
|
var et = ""
|
|
6
|
+
function getPage(req, filter) {
|
|
7
|
+
if (filter) {
|
|
8
|
+
var v0 = filter[resources_1.resources.page]
|
|
9
|
+
if (v0 == undefined) {
|
|
10
|
+
var field_1 = req.query[resources_1.resources.page]
|
|
11
|
+
var v_1 = field_1 ? field_1.toString() : undefined
|
|
12
|
+
if (!v_1 || v_1.length === 0) {
|
|
13
|
+
filter[resources_1.resources.page] = 1
|
|
14
|
+
return 1
|
|
15
|
+
}
|
|
16
|
+
if (isNaN(v_1)) {
|
|
17
|
+
filter[resources_1.resources.page] = 1
|
|
18
|
+
return 1
|
|
19
|
+
} else {
|
|
20
|
+
var n_1 = parseFloat(v_1)
|
|
21
|
+
if (n_1 < 1) {
|
|
22
|
+
n_1 = 1
|
|
23
|
+
}
|
|
24
|
+
filter[resources_1.resources.page] = n_1
|
|
25
|
+
return n_1
|
|
26
|
+
}
|
|
27
|
+
} else if (typeof v0 === "number") {
|
|
28
|
+
if (v0 > 0) {
|
|
29
|
+
return v0
|
|
30
|
+
} else {
|
|
31
|
+
filter[resources_1.resources.page] = 1
|
|
32
|
+
return 1
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
var field = req.query[resources_1.resources.page]
|
|
37
|
+
var v = field ? field.toString() : undefined
|
|
38
|
+
if (!v || v.length === 0) {
|
|
39
|
+
if (filter) {
|
|
40
|
+
filter[resources_1.resources.page] = 1
|
|
41
|
+
}
|
|
42
|
+
return 1
|
|
43
|
+
}
|
|
44
|
+
if (isNaN(v)) {
|
|
45
|
+
if (filter) {
|
|
46
|
+
filter[resources_1.resources.page] = 1
|
|
47
|
+
}
|
|
48
|
+
return 1
|
|
49
|
+
}
|
|
50
|
+
var n = parseFloat(v)
|
|
51
|
+
if (n < 1) {
|
|
52
|
+
n = 1
|
|
53
|
+
}
|
|
54
|
+
if (filter) {
|
|
55
|
+
filter[resources_1.resources.page] = n
|
|
56
|
+
}
|
|
57
|
+
return n
|
|
58
|
+
}
|
|
59
|
+
exports.getPage = getPage
|
|
60
|
+
function getLimit(req, filter) {
|
|
61
|
+
if (filter) {
|
|
62
|
+
var v0 = filter[resources_1.resources.limit]
|
|
63
|
+
if (v0 == undefined) {
|
|
64
|
+
var field = req.query[resources_1.resources.limit]
|
|
65
|
+
var v_2 = field ? field.toString() : undefined
|
|
66
|
+
if (!v_2 || v_2.length === 0) {
|
|
67
|
+
filter[resources_1.resources.limit] = resources_1.resources.defaultLimit
|
|
68
|
+
return resources_1.resources.defaultLimit
|
|
69
|
+
}
|
|
70
|
+
if (isNaN(v_2)) {
|
|
71
|
+
filter[resources_1.resources.limit] = resources_1.resources.defaultLimit
|
|
72
|
+
return 1
|
|
73
|
+
} else {
|
|
74
|
+
var n_2 = parseFloat(v_2)
|
|
75
|
+
if (n_2 < 1) {
|
|
76
|
+
n_2 = resources_1.resources.defaultLimit
|
|
77
|
+
}
|
|
78
|
+
filter[resources_1.resources.limit] = n_2
|
|
79
|
+
return n_2
|
|
80
|
+
}
|
|
81
|
+
} else if (typeof v0 === "number") {
|
|
82
|
+
if (v0 > 0) {
|
|
83
|
+
return v0
|
|
84
|
+
} else {
|
|
85
|
+
filter[resources_1.resources.limit] = resources_1.resources.defaultLimit
|
|
86
|
+
return resources_1.resources.defaultLimit
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
var fieldxxx = req.query[resources_1.resources.limit]
|
|
91
|
+
var v = fieldxxx ? fieldxxx.toString() : undefined
|
|
92
|
+
if (!v || v.length === 0) {
|
|
93
|
+
if (filter) {
|
|
94
|
+
filter[resources_1.resources.limit] = resources_1.resources.defaultLimit
|
|
95
|
+
}
|
|
96
|
+
return resources_1.resources.defaultLimit
|
|
97
|
+
}
|
|
98
|
+
if (isNaN(v)) {
|
|
99
|
+
if (filter) {
|
|
100
|
+
filter[resources_1.resources.limit] = resources_1.resources.defaultLimit
|
|
101
|
+
}
|
|
102
|
+
return resources_1.resources.defaultLimit
|
|
103
|
+
}
|
|
104
|
+
var n = parseFloat(v)
|
|
105
|
+
if (n < 1) {
|
|
106
|
+
n = resources_1.resources.defaultLimit
|
|
107
|
+
}
|
|
108
|
+
if (filter) {
|
|
109
|
+
filter[resources_1.resources.limit] = n
|
|
110
|
+
}
|
|
111
|
+
return n
|
|
112
|
+
}
|
|
113
|
+
exports.getLimit = getLimit
|
|
6
114
|
function queryLimit(req) {
|
|
7
115
|
return http_1.queryNumber(req, resources_1.resources.limit, resources_1.resources.defaultLimit)
|
|
8
116
|
}
|
package/package.json
CHANGED
package/src/search.ts
CHANGED
|
@@ -36,6 +36,113 @@ export interface SearchResult<T> {
|
|
|
36
36
|
last?: boolean
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
+
export function getPage<F extends Filter>(req: Request, filter?: F): number {
|
|
40
|
+
if (filter) {
|
|
41
|
+
const v0 = (filter as any)[resources.page]
|
|
42
|
+
if (v0 == undefined) {
|
|
43
|
+
const field = req.query[resources.page]
|
|
44
|
+
const v = field ? field.toString() : undefined
|
|
45
|
+
if (!v || v.length === 0) {
|
|
46
|
+
;(filter as any)[resources.page] = 1
|
|
47
|
+
return 1
|
|
48
|
+
}
|
|
49
|
+
if (isNaN(v as any)) {
|
|
50
|
+
;(filter as any)[resources.page] = 1
|
|
51
|
+
return 1
|
|
52
|
+
} else {
|
|
53
|
+
let n = parseFloat(v)
|
|
54
|
+
if (n < 1) {
|
|
55
|
+
n = 1
|
|
56
|
+
}
|
|
57
|
+
;(filter as any)[resources.page] = n
|
|
58
|
+
return n
|
|
59
|
+
}
|
|
60
|
+
} else if (typeof v0 === "number") {
|
|
61
|
+
if (v0 > 0) {
|
|
62
|
+
return v0
|
|
63
|
+
} else {
|
|
64
|
+
;(filter as any)[resources.page] = 1
|
|
65
|
+
return 1
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
const field = req.query[resources.page]
|
|
70
|
+
const v = field ? field.toString() : undefined
|
|
71
|
+
if (!v || v.length === 0) {
|
|
72
|
+
if (filter) {
|
|
73
|
+
;(filter as any)[resources.page] = 1
|
|
74
|
+
}
|
|
75
|
+
return 1
|
|
76
|
+
}
|
|
77
|
+
if (isNaN(v as any)) {
|
|
78
|
+
if (filter) {
|
|
79
|
+
;(filter as any)[resources.page] = 1
|
|
80
|
+
}
|
|
81
|
+
return 1
|
|
82
|
+
}
|
|
83
|
+
let n = parseFloat(v)
|
|
84
|
+
if (n < 1) {
|
|
85
|
+
n = 1
|
|
86
|
+
}
|
|
87
|
+
if (filter) {
|
|
88
|
+
;(filter as any)[resources.page] = n
|
|
89
|
+
}
|
|
90
|
+
return n
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export function getLimit<F extends Filter>(req: Request, filter?: F): number {
|
|
94
|
+
if (filter) {
|
|
95
|
+
const v0 = (filter as any)[resources.limit]
|
|
96
|
+
if (v0 == undefined) {
|
|
97
|
+
const field = req.query[resources.limit]
|
|
98
|
+
const v = field ? field.toString() : undefined
|
|
99
|
+
if (!v || v.length === 0) {
|
|
100
|
+
;(filter as any)[resources.limit] = resources.defaultLimit
|
|
101
|
+
return resources.defaultLimit
|
|
102
|
+
}
|
|
103
|
+
if (isNaN(v as any)) {
|
|
104
|
+
;(filter as any)[resources.limit] = resources.defaultLimit
|
|
105
|
+
return 1
|
|
106
|
+
} else {
|
|
107
|
+
let n = parseFloat(v)
|
|
108
|
+
if (n < 1) {
|
|
109
|
+
n = resources.defaultLimit
|
|
110
|
+
}
|
|
111
|
+
;(filter as any)[resources.limit] = n
|
|
112
|
+
return n
|
|
113
|
+
}
|
|
114
|
+
} else if (typeof v0 === "number") {
|
|
115
|
+
if (v0 > 0) {
|
|
116
|
+
return v0
|
|
117
|
+
} else {
|
|
118
|
+
;(filter as any)[resources.limit] = resources.defaultLimit
|
|
119
|
+
return resources.defaultLimit
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
const fieldxxx = req.query[resources.limit]
|
|
124
|
+
const v = fieldxxx ? fieldxxx.toString() : undefined
|
|
125
|
+
if (!v || v.length === 0) {
|
|
126
|
+
if (filter) {
|
|
127
|
+
;(filter as any)[resources.limit] = resources.defaultLimit
|
|
128
|
+
}
|
|
129
|
+
return resources.defaultLimit
|
|
130
|
+
}
|
|
131
|
+
if (isNaN(v as any)) {
|
|
132
|
+
if (filter) {
|
|
133
|
+
;(filter as any)[resources.limit] = resources.defaultLimit
|
|
134
|
+
}
|
|
135
|
+
return resources.defaultLimit
|
|
136
|
+
}
|
|
137
|
+
let n = parseFloat(v)
|
|
138
|
+
if (n < 1) {
|
|
139
|
+
n = resources.defaultLimit
|
|
140
|
+
}
|
|
141
|
+
if (filter) {
|
|
142
|
+
;(filter as any)[resources.limit] = n
|
|
143
|
+
}
|
|
144
|
+
return n
|
|
145
|
+
}
|
|
39
146
|
export function queryLimit(req: Request): number {
|
|
40
147
|
return queryNumber(req, resources.limit, resources.defaultLimit)
|
|
41
148
|
}
|