@certik/skynet 0.10.19 → 0.10.22
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/CHANGELOG.md +29 -0
- package/api.js +28 -16
- package/kafka.js +1 -1
- package/package.json +2 -1
- package/selector.js +4 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,34 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.10.22
|
|
4
|
+
|
|
5
|
+
- Fixed nomad API log elapse time
|
|
6
|
+
- Fixed missing abort controller for proxy lib
|
|
7
|
+
|
|
8
|
+
## 0.10.21
|
|
9
|
+
|
|
10
|
+
- Enabled more customizations for indexer selector support, check https://github.com/sindresorhus/meow for available config options, an example
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
selectors: {
|
|
14
|
+
"onlyProject": {
|
|
15
|
+
type: "string",
|
|
16
|
+
alias: "only-project",
|
|
17
|
+
default: null,
|
|
18
|
+
isRequired: false
|
|
19
|
+
},
|
|
20
|
+
|
|
21
|
+
"protocol": {
|
|
22
|
+
type: "string",
|
|
23
|
+
isRequired: true
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## 0.10.20
|
|
29
|
+
|
|
30
|
+
- Used shorter lock ttl for api and producer
|
|
31
|
+
|
|
3
32
|
## 0.10.19
|
|
4
33
|
|
|
5
34
|
- Added Heco chain support in const.js
|
package/api.js
CHANGED
|
@@ -5,10 +5,18 @@ const { isProduction } = require("./env");
|
|
|
5
5
|
const { useLock } = require("./distributed-lock");
|
|
6
6
|
const { inline } = require("./log");
|
|
7
7
|
|
|
8
|
-
async function
|
|
8
|
+
async function logStartMiddleware(req, res, next) {
|
|
9
9
|
const start = new Date();
|
|
10
|
+
|
|
11
|
+
res.set("x-requested-at", start.toISOString());
|
|
12
|
+
|
|
10
13
|
next();
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
async function logEndMiddleware(req, res, next) {
|
|
17
|
+
const start = new Date(res.get("x-requested-at"));
|
|
11
18
|
const end = new Date();
|
|
19
|
+
|
|
12
20
|
const logInfo = {
|
|
13
21
|
start,
|
|
14
22
|
end,
|
|
@@ -21,6 +29,8 @@ async function logMiddleware(req, res, next) {
|
|
|
21
29
|
logInfo.errorMessage = res.statusMessage;
|
|
22
30
|
}
|
|
23
31
|
inline.log(JSON.stringify(logInfo));
|
|
32
|
+
|
|
33
|
+
next();
|
|
24
34
|
}
|
|
25
35
|
|
|
26
36
|
const apiKeyMiddleware = (key) => {
|
|
@@ -83,7 +93,7 @@ ${getSelectorDesc(selector)}
|
|
|
83
93
|
|
|
84
94
|
const { verbose, ...selectorFlags } = cli.flags;
|
|
85
95
|
|
|
86
|
-
await useLock({ name: getJobName(name, selectorFlags), ttl:
|
|
96
|
+
await useLock({ name: getJobName(name, selectorFlags), ttl: 50, verbose });
|
|
87
97
|
|
|
88
98
|
// for health check
|
|
89
99
|
app.get("/", (req, res) => {
|
|
@@ -94,10 +104,6 @@ ${getSelectorDesc(selector)}
|
|
|
94
104
|
const method = route.method ? route.method.toLowerCase() : "get";
|
|
95
105
|
const middlewares = route.middlewares || [];
|
|
96
106
|
|
|
97
|
-
if (route.log !== false) {
|
|
98
|
-
middlewares.unshift(logMiddleware);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
107
|
if (route.protected) {
|
|
102
108
|
middlewares.unshift(apiKeyMiddleware(serve.apiKey));
|
|
103
109
|
}
|
|
@@ -107,21 +113,27 @@ ${getSelectorDesc(selector)}
|
|
|
107
113
|
inline.log(`registering ${method} ${route.path}`);
|
|
108
114
|
}
|
|
109
115
|
|
|
110
|
-
app[method](
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
116
|
+
app[method](
|
|
117
|
+
route.path,
|
|
118
|
+
logStartMiddleware,
|
|
119
|
+
...middlewares,
|
|
120
|
+
async (req, res) => {
|
|
121
|
+
try {
|
|
122
|
+
await route.handler({ req, res, ...selectorFlags });
|
|
123
|
+
} catch (routeErr) {
|
|
124
|
+
inline.log("caught route err", routeErr);
|
|
125
|
+
|
|
126
|
+
res.status(500).send(`internal server error: ${routeErr.message}`);
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
logEndMiddleware
|
|
130
|
+
);
|
|
119
131
|
}
|
|
120
132
|
}
|
|
121
133
|
|
|
122
134
|
app.listen(serve.port, () => {
|
|
123
135
|
if (isProduction()) {
|
|
124
|
-
inline.log(`${name} listening at https://api.certik-skynet.com
|
|
136
|
+
inline.log(`${name} listening at https://api.certik-skynet.com${serve.prefix}`);
|
|
125
137
|
} else {
|
|
126
138
|
inline.log(`${name} listening at http://localhost:${serve.port}`);
|
|
127
139
|
}
|
package/kafka.js
CHANGED
|
@@ -219,7 +219,7 @@ ${getSelectorDesc(selector)}
|
|
|
219
219
|
process.exit(0);
|
|
220
220
|
}
|
|
221
221
|
|
|
222
|
-
await useLock({ name: getJobName(name, selectorFlags), ttl:
|
|
222
|
+
await useLock({ name: getJobName(name, selectorFlags), ttl: 50, verbose });
|
|
223
223
|
|
|
224
224
|
if (!from) {
|
|
225
225
|
const prevId = await getProducerLatestId(name, selectorFlags);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@certik/skynet",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.22",
|
|
4
4
|
"description": "Skynet Shared JS library",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"author": "CertiK Engineering",
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@slack/web-api": "^6.4.0",
|
|
16
16
|
"ably": "^1.2.22",
|
|
17
|
+
"abort-controller": "^3.0.0",
|
|
17
18
|
"aws-sdk": "^2.1164.0",
|
|
18
19
|
"bottleneck": "^2.19.5",
|
|
19
20
|
"chalk": "^4.1.2",
|
package/selector.js
CHANGED
|
@@ -17,18 +17,16 @@ function getSelectorDesc(selector) {
|
|
|
17
17
|
.join("\n");
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
// check https://github.com/sindresorhus/meow for selector config options
|
|
20
21
|
function getSelectorFlags(selector) {
|
|
21
22
|
return Object.keys(selector).reduce((acc, name) => {
|
|
22
23
|
const flag = {
|
|
23
24
|
type: selector[name].type || "string",
|
|
24
|
-
|
|
25
|
+
...selector[name]
|
|
25
26
|
};
|
|
26
27
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
if (!selector[name].optional) {
|
|
28
|
+
// by default to be required
|
|
29
|
+
if (!selector[name].optional && selector[name].isRequired !== false) {
|
|
32
30
|
flag.isRequired = true;
|
|
33
31
|
}
|
|
34
32
|
|