Repository navigation
Expand file tree
/
Copy pathutils.js
More file actions
70 lines (62 loc) · 1.42 KB
/
Copy pathutils.js
File metadata and controls
70 lines (62 loc) · 1.42 KB
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
61
62
63
64
65
66
67
68
69
70
const dt = require('delta-time');
const axios = require('axios');
const poll = function(url, cb, settings){
settings = Object.assign({
interval : dt('30s'),
direct : true,
urlParams : {}
}, settings);
let inited = false;
let fetcher = async ()=>{
try {
let res = await axios.get(url, settings.urlParams);
if(cb instanceof Function){
cb(res.data, inited);
inited = true;
}
}catch(e){
console.error("SOME ERROR");
}
};
if(settings.direct){fetcher();}
setInterval(fetcher, settings.interval);
};
const isString = function(s){
return typeof s === 'string' || s instanceof String;
};
const isNumeric = function(n){
return !isNaN(parseFloat(n)) && isFinite(n);
};
const toFloat = function(amount){
if(isNumeric(amount)){
return parseFloat(amount);
}
if(isString(amount)){
return parseFloat(amount.replace(/[^0-9.]/g, ''));
}
return NaN;
};
const toInt = function(){
if(isNumeric(amount)){
return parseInt(amount, 10);
}
return NaN;
}
const arrayify = function(arr){
if(!Array.isArray(arr)){
if(arr === undefined){
arr = [];
}else{
arr = [arr];
}
}
return arr;
};
module.exports = {
arrayify,
poll,
isString,
isNumeric,
toFloat,
toInt
};