@certik/skynet 0.10.5 → 0.10.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/.eslintrc.js CHANGED
@@ -1,13 +1,13 @@
1
1
  module.exports = {
2
2
  env: {
3
3
  node: true,
4
- browser: true,
4
+ browser: false,
5
5
  commonjs: true,
6
- es2021: true
6
+ es2021: true,
7
7
  },
8
- extends: "eslint:recommended",
8
+ extends: ["eslint:recommended", "plugin:import/recommended"],
9
9
  parserOptions: {
10
- ecmaVersion: 12
10
+ ecmaVersion: 12,
11
11
  },
12
- rules: {}
12
+ rules: {},
13
13
  };
package/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.10.6
4
+
5
+ - Fixed producer check function
6
+
3
7
  ## 0.10.5
4
8
 
5
9
  - BREAKING Changed the signature of `postGenieMessage` function in `opsgenie` to make it more customizable
package/app.js CHANGED
@@ -1,9 +1,15 @@
1
1
  const { EOL } = require("os");
2
2
  const fetch = require("node-fetch");
3
3
  const { SKYNET_API_PREFIX } = require("./const");
4
- const { createIndexerApp, createModeIndexerApp } = require("./indexer");
4
+ const {
5
+ createIndexerApp,
6
+ createModeIndexerApp,
7
+ getIndexerLatestId,
8
+ getIndexerValidatedId,
9
+ getIndexerState,
10
+ } = require("./indexer");
5
11
  const { createDeploy, createModeDeploy } = require("./deploy");
6
- const { createProducerApp, createConsumerApp } = require("./kafka");
12
+ const { createProducerApp, createConsumerApp, getProducerLatestId } = require("./kafka");
7
13
  const { startApiApp } = require("./api");
8
14
  const { createMonitor, ERROR_LEVEL } = require("./monitor");
9
15
  const { getBinaryName, detectBin, detectWorkingDirectory } = require("./cli");
@@ -326,7 +332,13 @@ function modeIndexer({ name, selector, state, build, validate, check, env = {},
326
332
  const { monitor } = createMonitor({
327
333
  binaryName: `${getBinaryName()} check`,
328
334
  name,
329
- type: "stateful",
335
+ getState: async (nam, selectorFlags) => {
336
+ const latestId = await getIndexerLatestId(nam, selectorFlags);
337
+ const validatedId = await getIndexerValidatedId(nam, selectorFlags);
338
+ const buildState = await getIndexerState(nam, selectorFlags);
339
+
340
+ return { latestId, validatedId, buildState };
341
+ },
330
342
  selector,
331
343
  mode: true,
332
344
  check: check.func,
@@ -428,7 +440,11 @@ function producer({ name, selector, produce, check, state, env = {}, region = "u
428
440
  const { monitor } = createMonitor({
429
441
  binaryName: `${getBinaryName()} check`,
430
442
  name,
431
- type: "stateful",
443
+ getState: async (nam, selectorFlags) => {
444
+ const latestId = await getProducerLatestId(nam, selectorFlags);
445
+
446
+ return { latestId };
447
+ },
432
448
  selector,
433
449
  check: check.func,
434
450
  maxRetry: check.maxRetry,
@@ -520,7 +536,6 @@ function consumer({ name, selector, consume, check, env = {}, region = "us-east-
520
536
  const { monitor } = createMonitor({
521
537
  binaryName: `${getBinaryName()} check`,
522
538
  name,
523
- type: "stateless",
524
539
  selector,
525
540
  check: check.func,
526
541
  maxRetry: check.maxRetry,
@@ -660,7 +675,6 @@ function api({ name, routes, serve, env = {}, region = "us-east-1" }) {
660
675
  const { monitor } = createMonitor({
661
676
  binaryName: `${getBinaryName()} check`,
662
677
  name,
663
- type: "stateless",
664
678
  selector,
665
679
  check: check.func,
666
680
  maxRetry: check.maxRetry,
package/kafka.js CHANGED
@@ -439,4 +439,5 @@ module.exports = {
439
439
  createConsumerApp,
440
440
  produceMessages,
441
441
  consumeMessages,
442
+ getProducerLatestId,
442
443
  };
package/monitor.js CHANGED
@@ -3,7 +3,6 @@ const fetch = require("node-fetch");
3
3
  const { getSelectorFlags, getSelectorDesc, toSelectorString } = require("./selector");
4
4
  const { getBinaryName } = require("./cli");
5
5
  const { exponentialRetry } = require("./availability");
6
- const { getIndexerLatestId, getIndexerValidatedId, getIndexerState } = require("./indexer");
7
6
  const { postGenieMessage } = require("./opsgenie");
8
7
  const { getJobName } = require("./deploy");
9
8
 
@@ -67,7 +66,7 @@ async function getMostRecentJobLaunch(name) {
67
66
  }
68
67
  }
69
68
 
70
- function createMonitor({ binaryName, name, type = "stateless", mode = false, selector = {}, check, maxRetry = 2 }) {
69
+ function createMonitor({ binaryName, name, getState = null, mode = false, selector = {}, check, maxRetry = 2 }) {
71
70
  function monitor() {
72
71
  if (!binaryName) {
73
72
  binaryName = getBinaryName();
@@ -109,18 +108,16 @@ ${
109
108
  const startTime = Date.now();
110
109
  console.log(`[MONITOR] starting check, ${toSelectorString(selectorFlags, ", ")}`);
111
110
 
112
- const state = {};
111
+ let checkState = {};
113
112
 
114
- if (type === "stateful") {
115
- state.latestId = await getIndexerLatestId(name, selectorFlags);
116
- state.validatedId = await getIndexerValidatedId(name, selectorFlags);
117
- state.buildState = await getIndexerState(name, selectorFlags);
113
+ if (getState) {
114
+ checkState = await getState(name, selectorFlags);
118
115
  }
119
116
 
120
117
  let result = await exponentialRetry(
121
118
  async () => {
122
119
  try {
123
- const errors = await check({ verbose, state, mode, ...selectorFlags });
120
+ const errors = await check({ verbose, state: checkState, mode, ...selectorFlags });
124
121
 
125
122
  if (!Array.isArray(errors)) {
126
123
  throw new Error(`check function must return array of error messages`);
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@certik/skynet",
3
- "version": "0.10.5",
3
+ "version": "0.10.6",
4
4
  "description": "Skynet Shared JS library",
5
5
  "main": "index.js",
6
6
  "author": "CertiK Engineering",
7
7
  "scripts": {
8
- "lint": "eslint . test",
8
+ "lint": "eslint *.js test",
9
9
  "test": "ava"
10
10
  },
11
11
  "engines": {
@@ -28,6 +28,7 @@
28
28
  "devDependencies": {
29
29
  "ava": "^3.13.0",
30
30
  "eslint": "^7.22.0",
31
+ "eslint-plugin-import": "^2.26.0",
31
32
  "sinon": "^11.1.2"
32
33
  },
33
34
  "license": "MIT"