Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | import {assumePropertyIsSet, getEnv, getEnvInt} from "../lib/Common.js"; import console from "node:console"; export default class ApplicationProperties { constructor() { this.buildCommonEnvironment(); this.verifyProperties(); console.log(` ☑ properties ${this.nodeEnv}`); } buildCommonEnvironment() { this.nodeEnv = getEnv("NODE_ENV", 'development'); this.tz = getEnv("TZ", 'Europe/Paris'); this.port = getEnvInt("PORT", 5000); this.isProd = this.nodeEnv === 'production'; this.discordWebhookUrl = getEnv("BOT_DISCORD_WEBHOOK_URL", null); this.inactivityDelayMin = getEnv("BOT_INACTIVITY_DELAY_MIN", 3); this.log = { logtailToken: getEnv("LOG_LOGTAIL_TOKEN", null), logtailApiV1: "https://logs.betterstack.com/api/v1", logtailApiToken: getEnv("LOGTAIL_API_TOKEN", null), logtailSourceId: getEnv("LOGTAIL_SOURCE_ID", null) } this.bot = { // tokenSimulation drives bluesky write (post/ reply) simulation tokenSimulation: getEnv("BOT_TOKEN_SIMULATION", false), tokenAction: getEnv("BOT_TOKEN_ACTION", false), engineMinIntervalMs: getEnvInt("BOT_ENGINE_MIN_INTERVAL_MS", 59000), // plantnetSimulate drives plantnet API call simulation plantnetSimulate: (getEnv("BOT_PLANTNET_SIMULATE", "true") === "true") }; this.bluesky = { identifier: getEnv("BLUESKY_USERNAME"), password: getEnv("BLUESKY_PASSWORD"), service: getEnv("BLUESKY_SERVICE") } this.plantnet = { apiKey: getEnv("PLANTNET_API_PRIVATE_KEY") } } verifyProperties() { // logtail is not mandatory assumePropertyIsSet(this.bot, "bot"); assumePropertyIsSet(this.bot.tokenSimulation, "bot.tokenSimulation - env:BOT_TOKEN_SIMULATION"); assumePropertyIsSet(this.bot.engineMinIntervalMs, "bot.engineMinIntervalMs - env:BOT_ENGINE_MIN_INTERVAL_MS"); assumePropertyIsSet(this.bluesky, "bluesky"); assumePropertyIsSet(this.bluesky.identifier, "bluesky.identifier - env:BLUESKY_USERNAME"); assumePropertyIsSet(this.bluesky.password, "bluesky.password - env:BLUESKY_PASSWORD"); assumePropertyIsSet(this.bluesky.service, "bluesky.service - env:BLUESKY_SERVICE"); if (this.isProd) { assumePropertyIsSet(this.bot.tokenAction, "bot.tokenAction - env:BOT_TOKEN_ACTION"); assumePropertyIsSet(this.plantnet.apiKey, "plantnet.apiKey - env:PLANTNET_API_PRIVATE_KEY"); } } } |