hollaex-node-lib 1.2.0 → 2.13.0

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/package.json CHANGED
@@ -1,32 +1,43 @@
1
1
  {
2
2
  "name": "hollaex-node-lib",
3
- "version": "1.2.0",
3
+ "version": "2.13.0",
4
4
  "description": "hollaex api and websocket library for nodejs",
5
5
  "main": "index.js",
6
6
  "dependencies": {
7
- "moment": "2.24.0",
7
+ "file-type": "16.5.2",
8
+ "is-base64": "1.1.0",
8
9
  "lodash": "4.17.13",
10
+ "moment": "2.24.0",
9
11
  "request": "2.88.0",
10
12
  "request-promise": "4.2.2",
11
- "socket.io-client": "2.2.0"
13
+ "ws": "7.4.0",
14
+ "ws-heartbeat": "1.1.0"
12
15
  },
13
16
  "devDependencies": {
14
17
  "chai": "4.2.0",
15
18
  "dotenv": "6.2.0",
16
19
  "eslint": "5.13.0",
17
- "mocha": "5.2.0",
18
- "prettier": "1.16.4"
20
+ "husky": "4.3.8",
21
+ "lint-staged": "12.1.3",
22
+ "mocha": "5.2.0"
19
23
  },
20
24
  "scripts": {
21
25
  "start": "node index.js",
22
26
  "test": "mocha test/test.js --timeout 10000",
23
- "prettier": "prettier --config .prettierrc.json --ignore-path .prettierignore.json --write \"./**/*.{js,json,css,scss,md}\"",
24
- "eslint": "eslint --config .eslintrc.json ./"
27
+ "lint": "eslint --fix ."
28
+ },
29
+ "husky": {
30
+ "hooks": {
31
+ "pre-commit": "lint-staged"
32
+ }
33
+ },
34
+ "lint-staged": {
35
+ "*.js": "eslint --fix"
25
36
  },
26
37
  "repository": {
27
38
  "type": "git",
28
39
  "url": "https://github.com/bitholla/hollaex-node-lib"
29
40
  },
30
41
  "author": "bitHolla Inc",
31
- "license": "ISC"
42
+ "license": "MIT"
32
43
  }
package/utils.js CHANGED
@@ -1,14 +1,23 @@
1
1
  const rp = require('request-promise');
2
2
  const crypto = require('crypto');
3
3
  const moment = require('moment');
4
+ const { isDate } = require('lodash');
4
5
 
5
- const createRequest = (verb, url, headers, data) => {
6
- const body = JSON.stringify(data);
6
+ const createRequest = (verb, url, headers, opts = { data: null, formData: null }) => {
7
7
  const requestObj = {
8
8
  headers,
9
9
  url,
10
- body
10
+ json: true
11
11
  };
12
+
13
+ if (opts.data) {
14
+ requestObj.body = opts.data;
15
+ }
16
+
17
+ if (opts.formData) {
18
+ requestObj.formData = opts.formData;
19
+ }
20
+
12
21
  return rp[verb.toLowerCase()](requestObj);
13
22
  };
14
23
 
@@ -33,8 +42,44 @@ const generateHeaders = (headers, secret, verb, path, expiresAfter, data) => {
33
42
  return header;
34
43
  };
35
44
 
45
+ const checkKit = (kit) => {
46
+ if (!kit) {
47
+ throw new Error(
48
+ 'Missing Kit ID. ID of the exchange Kit should be initialized in HollaEx constructor'
49
+ );
50
+ }
51
+ return true;
52
+ };
53
+
54
+ const parameterError = (parameter, msg) => {
55
+ return new Error(`Parameter ${parameter} error: ${msg}`);
56
+ };
57
+
58
+ const isDatetime = (date, formats = [ moment.ISO_8601 ]) => {
59
+ return moment(date, formats, true).isValid();
60
+ };
61
+
62
+ const sanitizeDate = (date) => {
63
+ let result = date;
64
+ if (isDate(result)) {
65
+ result = moment(result).toISOString();
66
+ }
67
+
68
+ return result;
69
+ };
70
+
71
+ const isUrl = (url) => {
72
+ const pattern = /^(^|\s)((http(s)?:\/\/)?[\w-]+(\.[\w-]+)+\.?(:\d+)?(\/\S*)?)$/;
73
+ return pattern.test(url);
74
+ };
75
+
36
76
  module.exports = {
37
77
  createRequest,
38
78
  createSignature,
39
- generateHeaders
79
+ generateHeaders,
80
+ checkKit,
81
+ parameterError,
82
+ isDatetime,
83
+ sanitizeDate,
84
+ isUrl
40
85
  };
@@ -1 +0,0 @@
1
- {}
package/.prettierrc.json DELETED
@@ -1,8 +0,0 @@
1
- {
2
- "tabWidth": 2,
3
- "useTabs": true,
4
- "semi": true,
5
- "singleQuote": true,
6
- "bracketSpacing": true,
7
- "arrowParens": "always"
8
- }