aboutsummaryrefslogtreecommitdiffstats
path: root/src/config.ts
diff options
context:
space:
mode:
authorJan Tuomi <jan.tuomi@valuemotive.com>2021-04-18 18:07:54 +0300
committerJan Tuomi <jan.tuomi@valuemotive.com>2021-04-18 18:07:54 +0300
commitbaacc7676c688cd2728033e9051208d655255ee5 (patch)
tree5a3819b1c5f6ad616d82f84b3a62cca20d54c0f7 /src/config.ts
parent12f3de7a9ec911cf5945eee31c7680aa75c4f8af (diff)
Work on tg bot
Diffstat (limited to 'src/config.ts')
-rw-r--r--src/config.ts51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/config.ts b/src/config.ts
new file mode 100644
index 0000000..dc3889a
--- /dev/null
+++ b/src/config.ts
@@ -0,0 +1,51 @@
+import dotenv from "dotenv";
+
+if (!process.env.SKIP_DOTENV) {
+ dotenv.config();
+}
+
+class ConfigError extends Error {
+ constructor(message: string) {
+ super(message);
+ this.name = "ConfigError";
+ }
+}
+
+const tgWebhookUrl = process.env.TELEGRAM_WEBHOOK_URL || null;
+if (!tgWebhookUrl) {
+ throw new ConfigError("Missing env var TELEGRAM_WEBHOOK_URL");
+}
+
+const tgBotToken = process.env.TELEGRAM_BOT_TOKEN || null;
+if (!tgBotToken) {
+ throw new ConfigError("Missing env var TELEGRAM_BOT_TOKEN");
+}
+
+const tgUserIds = process.env.TELEGRAM_USER_IDS
+ ? process.env.TELEGRAM_USER_IDS?.split(",")
+ .map(Number.parseInt)
+ : null;
+if (!tgUserIds) {
+ throw new ConfigError("Missing env var TELEGRAM_USER_IDS");
+}
+
+const sheetsSpreadsheetId = process.env.SHEETS_SPREADSHEET_ID || null;
+if (!sheetsSpreadsheetId) {
+ throw new ConfigError("Missing env var SHEETS_SPREADSHEET_ID");
+}
+
+const sheetsRange = process.env.SHEETS_RANGE || null;
+if (!sheetsRange) {
+ throw new ConfigError("Missing env var SHEETS_RANGE");
+}
+
+const config = {
+ port: process.env.PORT ? Number(process.env.PORT) : 3000,
+ tgWebhookUrl,
+ tgBotToken,
+ tgUserIds,
+ sheetsSpreadsheetId,
+ sheetsRange,
+};
+
+export default config;