Browse Source

+ joi

master
david 2 years ago
parent
commit
8f10c2c59e
  1. 42
      index.js
  2. 87
      package-lock.json
  3. 1
      package.json
  4. 6
      swarm/docker-compose.blenderbot.yml

42
index.js

@ -1,12 +1,54 @@
import { Client } from 'irc-framework';
import schedule from 'node-schedule';
import { Pushover } from '@hyperlink/pushover';
import Joi from 'joi';
import dotenv from 'dotenv';
dotenv.config();
const { APP_TOKEN, USER_TOKEN, HOST, PORT, NICK, CHANNEL, BAE, NOTICE_MSG } =
process.env;
const envVars = {
APP_TOKEN,
USER_TOKEN,
HOST,
PORT,
NICK,
CHANNEL,
BAE,
NOTICE_MSG,
};
const environmentVariableValidation = (data) => {
const schmea = Joi.object({
APP_TOKEN: Joi.string().required(),
USER_TOKEN: Joi.string().required(),
HOST: Joi.string().required(),
PORT: Joi.number().integer().required(),
NICK: Joi.string().required(),
CHANNEL: Joi.string().required(),
BAE: Joi.string().required(),
NOTICE_MSG: Joi.string().required(),
});
return schmea.validate(data);
};
const validationErrorCheck = (error) => {
try {
if (error) throw error?.details[0]?.message;
} catch (error) {
// logger({ type: 'error', msg: error });
console.error(error);
process.exit(0);
}
};
const { error } = environmentVariableValidation({
...envVars,
});
validationErrorCheck(error);
const CONFIG = {
CLIENT: {
host: HOST,

87
package-lock.json generated

@ -12,9 +12,23 @@
"@hyperlink/pushover": "^1.0.0",
"dotenv": "^10.0.0",
"irc-framework": "^4.12.1",
"joi": "^17.5.0",
"node-schedule": "^2.1.0"
}
},
"node_modules/@hapi/hoek": {
"version": "9.2.1",
"resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz",
"integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw=="
},
"node_modules/@hapi/topo": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
"integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
"dependencies": {
"@hapi/hoek": "^9.0.0"
}
},
"node_modules/@hyperlink/pushover": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@hyperlink/pushover/-/pushover-1.0.0.tgz",
@ -27,6 +41,24 @@
"node": ">=14.16"
}
},
"node_modules/@sideway/address": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz",
"integrity": "sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ==",
"dependencies": {
"@hapi/hoek": "^9.0.0"
}
},
"node_modules/@sideway/formula": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz",
"integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg=="
},
"node_modules/@sideway/pinpoint": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
"integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ=="
},
"node_modules/@sindresorhus/is": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz",
@ -784,6 +816,18 @@
"fast-text-encoding": "^1.0.0"
}
},
"node_modules/joi": {
"version": "17.5.0",
"resolved": "https://registry.npmjs.org/joi/-/joi-17.5.0.tgz",
"integrity": "sha512-R7hR50COp7StzLnDi4ywOXHrBrgNXuUUfJWIR5lPY5Bm/pOD3jZaTwpluUXVLRWcoWZxkrHBBJ5hLxgnlehbdw==",
"dependencies": {
"@hapi/hoek": "^9.0.0",
"@hapi/topo": "^5.0.0",
"@sideway/address": "^4.1.3",
"@sideway/formula": "^3.0.0",
"@sideway/pinpoint": "^2.0.0"
}
},
"node_modules/json-buffer": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
@ -1157,6 +1201,19 @@
}
},
"dependencies": {
"@hapi/hoek": {
"version": "9.2.1",
"resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz",
"integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw=="
},
"@hapi/topo": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
"integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
"requires": {
"@hapi/hoek": "^9.0.0"
}
},
"@hyperlink/pushover": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@hyperlink/pushover/-/pushover-1.0.0.tgz",
@ -1166,6 +1223,24 @@
"got": "^11.8.2"
}
},
"@sideway/address": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz",
"integrity": "sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ==",
"requires": {
"@hapi/hoek": "^9.0.0"
}
},
"@sideway/formula": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz",
"integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg=="
},
"@sideway/pinpoint": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
"integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ=="
},
"@sindresorhus/is": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz",
@ -1680,6 +1755,18 @@
"fast-text-encoding": "^1.0.0"
}
},
"joi": {
"version": "17.5.0",
"resolved": "https://registry.npmjs.org/joi/-/joi-17.5.0.tgz",
"integrity": "sha512-R7hR50COp7StzLnDi4ywOXHrBrgNXuUUfJWIR5lPY5Bm/pOD3jZaTwpluUXVLRWcoWZxkrHBBJ5hLxgnlehbdw==",
"requires": {
"@hapi/hoek": "^9.0.0",
"@hapi/topo": "^5.0.0",
"@sideway/address": "^4.1.3",
"@sideway/formula": "^3.0.0",
"@sideway/pinpoint": "^2.0.0"
}
},
"json-buffer": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",

1
package.json

@ -12,6 +12,7 @@
"@hyperlink/pushover": "^1.0.0",
"dotenv": "^10.0.0",
"irc-framework": "^4.12.1",
"joi": "^17.5.0",
"node-schedule": "^2.1.0"
},
"type": "module"

6
swarm/docker-compose.blenderbot.yml

@ -1,16 +1,10 @@
---
version: '3.8'
networks:
swarmnet-public:
external: true
services:
bot:
image: daveplsno/blenderbot:${imageTag? Variable not set}
hostname: blenderbot
networks:
- swarmnet-public
deploy:
restart_policy:
condition: on-failure

Loading…
Cancel
Save