express-ext 0.3.4 → 0.3.6

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/index.js CHANGED
@@ -385,6 +385,7 @@ function escapeHTML(obj) {
385
385
  }
386
386
  return obj;
387
387
  }
388
+ exports.escapeHTML = escapeHTML;
388
389
  function escapeArray(arrs) {
389
390
  if (!arrs) {
390
391
  return arrs;
package/lib/search.js CHANGED
@@ -22,6 +22,50 @@ function getPageTotal(pageSize, total) {
22
22
  }
23
23
  }
24
24
  exports.getPageTotal = getPageTotal;
25
+ function formatText() {
26
+ var args = [];
27
+ for (var _i = 0; _i < arguments.length; _i++) {
28
+ args[_i] = arguments[_i];
29
+ }
30
+ var formatted = args[0];
31
+ if (!formatted || formatted === '') {
32
+ return '';
33
+ }
34
+ if (args.length > 1 && Array.isArray(args[1])) {
35
+ var params = args[1];
36
+ for (var i = 0; i < params.length; i++) {
37
+ var regexp = new RegExp('\\{' + i + '\\}', 'gi');
38
+ formatted = formatted.replace(regexp, params[i]);
39
+ }
40
+ } else {
41
+ for (var i = 1; i < args.length; i++) {
42
+ var regexp = new RegExp('\\{' + (i - 1) + '\\}', 'gi');
43
+ formatted = formatted.replace(regexp, args[i]);
44
+ }
45
+ }
46
+ return formatted;
47
+ }
48
+ exports.formatText = formatText;
49
+ function buildMessage(resource, results, limit, page, total) {
50
+ if (!results || results.length === 0) {
51
+ return resource.msg_no_data_found;
52
+ } else {
53
+ if (!page) {
54
+ page = 1;
55
+ }
56
+ var fromIndex = (page - 1) * limit + 1;
57
+ var toIndex = fromIndex + results.length - 1;
58
+ var pageTotal = getPageTotal(limit, total);
59
+ if (pageTotal > 1) {
60
+ var msg2 = formatText(resource.msg_search_result_page_sequence, fromIndex, toIndex, total, page, pageTotal);
61
+ return msg2;
62
+ } else {
63
+ var msg3 = formatText(resource.msg_search_result_sequence, fromIndex, toIndex);
64
+ return msg3;
65
+ }
66
+ }
67
+ }
68
+ exports.buildMessage = buildMessage;
25
69
  function buildPages(pageSize, total) {
26
70
  var pageTotal = getPageTotal(pageSize, total);
27
71
  if (pageTotal <= 1) {
@@ -131,7 +175,8 @@ function renderSort(field, sort) {
131
175
  return et;
132
176
  }
133
177
  exports.renderSort = renderSort;
134
- function buildSortSearch(search, fields, sort) {
178
+ function buildSortSearch(search, fields, sortStr) {
179
+ var sort = buildSort(sortStr);
135
180
  search = removeSort(search);
136
181
  var sorts = {};
137
182
  var prefix = search.length > 0 ? '?' + search + '&' : '?';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "express-ext",
3
- "version": "0.3.4",
3
+ "version": "0.3.6",
4
4
  "description": "express-ext",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./src/index.ts",
package/src/index.ts CHANGED
@@ -348,7 +348,7 @@ function escapeHtml(input: string): string {
348
348
 
349
349
  const s = 'string';
350
350
  const o = 'object';
351
- function escapeHTML(obj: any): any {
351
+ export function escapeHTML(obj: any): any {
352
352
  if (!obj || typeof obj !== s) {
353
353
  return obj;
354
354
  }
package/src/search.ts CHANGED
@@ -2,7 +2,7 @@ import { Request, Response } from 'express';
2
2
  import { minimizeArray, query } from './http';
3
3
  import { ViewService } from './LoadController';
4
4
  import { Attribute, Attributes } from './metadata';
5
- import { resources } from './resources';
5
+ import { resources, StringMap } from './resources';
6
6
 
7
7
  const et = '';
8
8
 
@@ -54,6 +54,44 @@ export function getPageTotal(pageSize?: number, total?: number): number {
54
54
  return Math.floor(total / pageSize + 1);
55
55
  }
56
56
  }
57
+ export function formatText(...args: any[]): string {
58
+ let formatted = args[0];
59
+ if (!formatted || formatted === '') {
60
+ return '';
61
+ }
62
+ if (args.length > 1 && Array.isArray(args[1])) {
63
+ const params = args[1];
64
+ for (let i = 0; i < params.length; i++) {
65
+ const regexp = new RegExp('\\{' + i + '\\}', 'gi');
66
+ formatted = formatted.replace(regexp, params[i]);
67
+ }
68
+ } else {
69
+ for (let i = 1; i < args.length; i++) {
70
+ const regexp = new RegExp('\\{' + (i - 1) + '\\}', 'gi');
71
+ formatted = formatted.replace(regexp, args[i]);
72
+ }
73
+ }
74
+ return formatted;
75
+ }
76
+ export function buildMessage<T>(resource: StringMap, results: T[], limit: number, page: number | undefined, total?: number): string {
77
+ if (!results || results.length === 0) {
78
+ return resource.msg_no_data_found;
79
+ } else {
80
+ if (!page) {
81
+ page = 1;
82
+ }
83
+ const fromIndex = (page - 1) * limit + 1;
84
+ const toIndex = fromIndex + results.length - 1;
85
+ const pageTotal = getPageTotal(limit, total);
86
+ if (pageTotal > 1) {
87
+ const msg2 = formatText(resource.msg_search_result_page_sequence, fromIndex, toIndex, total, page, pageTotal);
88
+ return msg2;
89
+ } else {
90
+ const msg3 = formatText(resource.msg_search_result_sequence, fromIndex, toIndex);
91
+ return msg3;
92
+ }
93
+ }
94
+ }
57
95
  export function buildPages(pageSize?: number, total?: number): number[] {
58
96
  const pageTotal = getPageTotal(pageSize, total);
59
97
  if (pageTotal <= 1) {
@@ -162,7 +200,8 @@ export function renderSort(field: string, sort: Sort): string {
162
200
  }
163
201
  return et;
164
202
  }
165
- export function buildSortSearch(search: string, fields: string[], sort: Sort): SortMap {
203
+ export function buildSortSearch(search: string, fields: string[], sortStr?: string): SortMap {
204
+ const sort = buildSort(sortStr);
166
205
  search = removeSort(search);
167
206
  let sorts: SortMap = {};
168
207
  const prefix = search.length > 0 ? '?' + search + '&' : '?';