This repository has been archived by the owner on Oct 1, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathutils.js
60 lines (58 loc) · 1.44 KB
/
utils.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
let util = require('util');
let moment = require('moment');
let url = require('url');
let querystring = require('querystring');
global.ErrorMessage = class ErrorMessage extends Error {
constructor(message, nextUrls, details) {
super(message);
this.nextUrls = nextUrls || {};
this.details = details;
}
};
module.exports = {
formatDate(ts, format) {
if (ts == null) {
return "Unknown";
}
let m = moment(ts * 1000);
m.locale('eu');
return m.format(format || 'L H:mm:ss');
},
formatTime(x) {
let sgn = x < 0 ? '-' : '';
x = Math.abs(x);
function toStringWithPad(x) {
x = parseInt(x);
if (x < 10) return '0' + x.toString();
else return x.toString();
}
return sgn + util.format('%s:%s:%s', toStringWithPad(x / 3600), toStringWithPad(x / 60 % 60), toStringWithPad(x % 60));
},
parseDate(s) {
return parseInt(+new Date(s) / 1000);
},
getCurrentDate(removeTime) {
let d = new Date;
if (removeTime) {
d.setHours(0);
d.setMinutes(0);
d.setSeconds(0);
d.setMilliseconds(0);
}
return parseInt(+d / 1000);
},
makeUrl(req_params, form) {
let res = '';
if (!req_params) res = '/';
else if (req_params.originalUrl) {
let u = url.parse(req_params.originalUrl);
res = u.pathname;
} else {
if (!Array.isArray(req_params)) req_params = [req_params];
for (let param of req_params) res += '/' + param;
}
let encoded = querystring.encode(form);
if (encoded) res += '?' + encoded;
return res;
}
};