express-ext 0.3.7 → 0.3.9

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 CHANGED
@@ -3,6 +3,22 @@ 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 queryPage(req, filter) {
7
+ var field = req.query[resources_1.resources.page];
8
+ var v = field ? field.toString() : undefined;
9
+ if (!v || v.length === 0) {
10
+ filter[resources_1.resources.page] = 1;
11
+ return 1;
12
+ }
13
+ if (isNaN(v)) {
14
+ filter[resources_1.resources.page] = 1;
15
+ return 1;
16
+ }
17
+ var n = parseFloat(v);
18
+ filter[resources_1.resources.page] = n;
19
+ return n;
20
+ }
21
+ exports.queryPage = queryPage;
6
22
  function getOffset(limit, page) {
7
23
  var offset = limit * (page - 1);
8
24
  return offset < 0 ? 0 : offset;
@@ -229,7 +245,7 @@ function clone(obj) {
229
245
  return x;
230
246
  }
231
247
  exports.clone = clone;
232
- function cloneFilter(obj, page, limit) {
248
+ function cloneFilter(obj, limit, page) {
233
249
  var f = clone(obj);
234
250
  if (!obj.hasOwnProperty(resources_1.resources.page)) {
235
251
  obj[resources_1.resources.page] = page;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "express-ext",
3
- "version": "0.3.7",
3
+ "version": "0.3.9",
4
4
  "description": "express-ext",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./src/index.ts",
package/src/search.ts CHANGED
@@ -36,6 +36,21 @@ export interface SearchResult<T> {
36
36
  last?: boolean;
37
37
  }
38
38
 
39
+ export function queryPage<F extends Filter>(req: Request, filter?: F): number {
40
+ const field = req.query[resources.page];
41
+ const v = field ? field.toString() : undefined;
42
+ if (!v || v.length === 0) {
43
+ (filter as any)[resources.page] = 1;
44
+ return 1;
45
+ }
46
+ if (isNaN(v as any)) {
47
+ (filter as any)[resources.page] = 1;
48
+ return 1;
49
+ }
50
+ const n = parseFloat(v);
51
+ (filter as any)[resources.page] = n;
52
+ return n;
53
+ }
39
54
  export function getOffset(limit: number, page: number): number {
40
55
  const offset = limit * (page - 1);
41
56
  return offset < 0 ? 0 : offset;
@@ -250,7 +265,7 @@ export function clone(obj: any): any {
250
265
  }
251
266
  return x;
252
267
  }
253
- export function cloneFilter<F extends Filter>(obj: F, page: number, limit: number): F {
268
+ export function cloneFilter<F extends Filter>(obj: F, limit: number, page: number): F {
254
269
  const f = clone(obj);
255
270
  if (!obj.hasOwnProperty(resources.page)) {
256
271
  (obj as any)[resources.page] = page;