express-ext 0.5.3 → 0.5.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.
- package/lib/search.js +139 -0
- package/package.json +1 -1
- package/src/search.ts +139 -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_2 = req.query[resources_1.resources.limit]
|
|
65
|
+
var v_2 = field_2 ? field_2.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 field = req.query[resources_1.resources.limit]
|
|
91
|
+
var v = field ? field.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
|
}
|
|
@@ -329,6 +437,37 @@ function initializeConfig(conf) {
|
|
|
329
437
|
exports.initializeConfig = initializeConfig
|
|
330
438
|
function fromRequest(req, arr) {
|
|
331
439
|
var s = req.method === "GET" ? fromUrl(req, arr) : req.body
|
|
440
|
+
var page = s[resources_1.resources.page]
|
|
441
|
+
if (page) {
|
|
442
|
+
if (isNaN(page)) {
|
|
443
|
+
s[resources_1.resources.page] = 1
|
|
444
|
+
} else {
|
|
445
|
+
var n = parseFloat(page)
|
|
446
|
+
if (n < 1) {
|
|
447
|
+
n = 1
|
|
448
|
+
}
|
|
449
|
+
s[resources_1.resources.page] = n
|
|
450
|
+
}
|
|
451
|
+
} else {
|
|
452
|
+
s[resources_1.resources.page] = 1
|
|
453
|
+
}
|
|
454
|
+
var limit = s[resources_1.resources.limit]
|
|
455
|
+
if (limit) {
|
|
456
|
+
if (isNaN(page)) {
|
|
457
|
+
s[resources_1.resources.limit] = resources_1.resources.defaultLimit
|
|
458
|
+
} else {
|
|
459
|
+
var n = parseFloat(limit)
|
|
460
|
+
if (n < 1) {
|
|
461
|
+
n = resources_1.resources.defaultLimit
|
|
462
|
+
}
|
|
463
|
+
s[resources_1.resources.page] = n
|
|
464
|
+
}
|
|
465
|
+
} else {
|
|
466
|
+
s[resources_1.resources.limit] = resources_1.resources.defaultLimit
|
|
467
|
+
}
|
|
468
|
+
if (resources_1.resources.partial.length > 0) {
|
|
469
|
+
delete s[resources_1.resources.partial]
|
|
470
|
+
}
|
|
332
471
|
return s
|
|
333
472
|
}
|
|
334
473
|
exports.fromRequest = fromRequest
|
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 field = req.query[resources.limit]
|
|
124
|
+
const v = field ? field.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
|
}
|
|
@@ -343,6 +450,38 @@ export function initializeConfig(conf?: SearchConfig): SearchConfig | undefined
|
|
|
343
450
|
}
|
|
344
451
|
export function fromRequest<S>(req: Request, arr?: string[]): S {
|
|
345
452
|
const s: any = req.method === "GET" ? fromUrl(req, arr) : req.body
|
|
453
|
+
const page = s[resources.page]
|
|
454
|
+
if (page) {
|
|
455
|
+
if (isNaN(page as any)) {
|
|
456
|
+
s[resources.page] = 1
|
|
457
|
+
} else {
|
|
458
|
+
let n = parseFloat(page)
|
|
459
|
+
if (n < 1) {
|
|
460
|
+
n = 1
|
|
461
|
+
}
|
|
462
|
+
s[resources.page] = n
|
|
463
|
+
}
|
|
464
|
+
} else {
|
|
465
|
+
s[resources.page] = 1
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
const limit = s[resources.limit]
|
|
469
|
+
if (limit) {
|
|
470
|
+
if (isNaN(page as any)) {
|
|
471
|
+
s[resources.limit] = resources.defaultLimit
|
|
472
|
+
} else {
|
|
473
|
+
let n = parseFloat(limit)
|
|
474
|
+
if (n < 1) {
|
|
475
|
+
n = resources.defaultLimit
|
|
476
|
+
}
|
|
477
|
+
s[resources.page] = n
|
|
478
|
+
}
|
|
479
|
+
} else {
|
|
480
|
+
s[resources.limit] = resources.defaultLimit
|
|
481
|
+
}
|
|
482
|
+
if (resources.partial.length > 0) {
|
|
483
|
+
delete s[resources.partial]
|
|
484
|
+
}
|
|
346
485
|
return s
|
|
347
486
|
}
|
|
348
487
|
export function buildArray(arr?: string[], s0?: string, s1?: string, s2?: string): string[] {
|