diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 1cfb3b6..3859fe3 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -10,7 +10,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-node@v2.1.4 with: - node-version: 14.15.0 + node-version: 14.15.4 - uses: actions/cache@v2 with: path: ~/.npm diff --git a/.node-version b/.node-version index c107424..c91434a 100644 --- a/.node-version +++ b/.node-version @@ -1 +1 @@ -14.15.0 +14.15.4 diff --git a/package.json b/package.json index a860de0..56317f6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "streetmerchant", - "description": "🔮 For all your Nvidia needs", + "description": "The world's easiest, most powerful stock checker", "main": "src/index.ts", "scripts": { "all": "npm run build && npm run lint", diff --git a/src/notification/desktop.ts b/src/notification/desktop.ts index 71d97df..e026740 100644 --- a/src/notification/desktop.ts +++ b/src/notification/desktop.ts @@ -4,7 +4,7 @@ import {config} from '../config'; import {join} from 'path'; import notifier from 'node-notifier'; -const desktop = config.notifications.desktop; +const {desktop} = config.notifications; export function sendDesktopNotification(link: Link, store: Store) { if (desktop) { diff --git a/src/notification/discord.ts b/src/notification/discord.ts index fa0fdaa..4bca496 100644 --- a/src/notification/discord.ts +++ b/src/notification/discord.ts @@ -3,8 +3,7 @@ import Discord from 'discord.js'; import {config} from '../config'; import {logger} from '../logger'; -const discord = config.notifications.discord; -const {notifyGroup, webhooks, notifyGroupSeries} = discord; +const {notifyGroup, webhooks, notifyGroupSeries} = config.notifications.discord; function getIdAndToken(webhook: string) { const match = /.*\/webhooks\/(\d+)\/(.+)/.exec(webhook); diff --git a/src/notification/email.ts b/src/notification/email.ts index 1e0644c..e31e650 100644 --- a/src/notification/email.ts +++ b/src/notification/email.ts @@ -4,7 +4,7 @@ import Mail from 'nodemailer/lib/mailer'; import {config} from '../config'; import nodemailer from 'nodemailer'; -const email = config.notifications.email; +const {email} = config.notifications; const transportOptions: any = {}; diff --git a/src/notification/mqtt.ts b/src/notification/mqtt.ts index 015022d..3a4d106 100644 --- a/src/notification/mqtt.ts +++ b/src/notification/mqtt.ts @@ -3,7 +3,7 @@ import MqttClient, {IClientOptions, IClientPublishOptions} from 'mqtt'; import {Print, logger} from '../logger'; import {config} from '../config'; -const mqtt = config.notifications.mqtt; +const {mqtt} = config.notifications; let client: MqttClient.Client; if (mqtt.broker) { diff --git a/src/notification/philips-hue.ts b/src/notification/philips-hue.ts index dc5291c..ec42e39 100644 --- a/src/notification/philips-hue.ts +++ b/src/notification/philips-hue.ts @@ -3,18 +3,19 @@ import {config} from '../config'; import {v3 as hueAPI} from 'node-hue-api'; import {logger} from '../logger'; -const hue = config.notifications.philips_hue; -const apiKey = hue.apiKey; -const bridgeIp = hue.bridgeIp; -const lightIds = hue.lightIds; -const lightColor = hue.lightColor; -const lightPattern = hue.lightPattern; -const LightState = hueAPI.lightStates.LightState; -const clientId = hue.clientId; -const clientSecret = hue.clientSecret; -const accessToken = hue.accessToken; -const refreshToken = hue.refreshToken; -const remoteApiUsername = hue.remoteApiUsername; +const {LightState} = hueAPI.lightStates; +const { + apiKey, + bridgeIp, + lightIds, + lightColor, + lightPattern, + clientId, + clientSecret, + accessToken, + refreshToken, + remoteApiUsername +} = config.notifications.philips_hue; // Default Light State const lightState = new LightState() @@ -81,7 +82,7 @@ const adjustLightsWithAPI = (hueBridge: Api) => { export function adjustPhilipsHueLights() { // Check if the required variables have been set - if (hue.apiKey && hue.bridgeIp) { + if (apiKey && bridgeIp) { logger.info('↗ adjusting Philips Hue lights over LAN'); (async () => { logger.debug( @@ -100,7 +101,7 @@ export function adjustPhilipsHueLights() { } ); })(); - } else if (hue.apiKey && hue.clientId && hue.clientSecret) { + } else if (apiKey && clientId && clientSecret) { logger.info('↗ adjusting Philips Hue lights over cloud'); (async () => { logger.debug( @@ -110,7 +111,7 @@ export function adjustPhilipsHueLights() { clientId, clientSecret ); - if (hue.accessToken && hue.refreshToken) { + if (accessToken && refreshToken) { remoteBootstrap .connectWithTokens( accessToken, diff --git a/src/notification/pushbullet.ts b/src/notification/pushbullet.ts index 9bdeb1c..b4713f6 100644 --- a/src/notification/pushbullet.ts +++ b/src/notification/pushbullet.ts @@ -3,7 +3,7 @@ import {Print, logger} from '../logger'; import PushBullet from '@jef/pushbullet'; import {config} from '../config'; -const pushbullet = config.notifications.pushbullet; +const {pushbullet} = config.notifications; export function sendPushbulletNotification(link: Link, store: Store) { if (pushbullet) { diff --git a/src/notification/pushover.ts b/src/notification/pushover.ts index 5823d4a..ac8b16e 100644 --- a/src/notification/pushover.ts +++ b/src/notification/pushover.ts @@ -3,7 +3,7 @@ import {Print, logger} from '../logger'; import Push, {PushoverMessage} from 'pushover-notifications'; import {config} from '../config'; -const pushover = config.notifications.pushover; +const {pushover} = config.notifications; export function sendPushoverNotification(link: Link, store: Store) { if (pushover.token && pushover.username) { diff --git a/src/notification/slack.ts b/src/notification/slack.ts index 1ed68ba..6c35f01 100644 --- a/src/notification/slack.ts +++ b/src/notification/slack.ts @@ -3,13 +3,11 @@ import {Print, logger} from '../logger'; import {WebClient} from '@slack/web-api'; import {config} from '../config'; -const slack = config.notifications.slack; -const channel = slack.channel.replace('#', ''); -const token = slack.token; +const {channel, token} = config.notifications.slack; const web = new WebClient(token); export function sendSlackMessage(link: Link, store: Store) { - if (slack.channel && slack.token) { + if (channel && token) { logger.debug('↗ sending slack message'); (async () => { @@ -17,7 +15,7 @@ export function sendSlackMessage(link: Link, store: Store) { try { const result = await web.chat.postMessage({ - channel, + channel: channel.replace('#', ''), text: `${Print.inStock(link, store)}\n${givenUrl}` }); diff --git a/src/notification/sms.ts b/src/notification/sms.ts index 8bec88a..cd0adb0 100644 --- a/src/notification/sms.ts +++ b/src/notification/sms.ts @@ -4,7 +4,7 @@ import Mail from 'nodemailer/lib/mailer'; import {config} from '../config'; import {transporter} from './email'; -const [email, phone] = [config.notifications.email, config.notifications.phone]; +const {email, phone} = config.notifications; if (phone.number.length > 0 && (!email.username || !email.password)) { logger.warn( diff --git a/src/notification/telegram.ts b/src/notification/telegram.ts index 7e4e66d..27a0ccb 100644 --- a/src/notification/telegram.ts +++ b/src/notification/telegram.ts @@ -3,7 +3,7 @@ import {Print, logger} from '../logger'; import {TelegramClient} from 'messaging-api-telegram'; import {config} from '../config'; -const telegram = config.notifications.telegram; +const {telegram} = config.notifications; const client = new TelegramClient({ accessToken: telegram.accessToken diff --git a/src/notification/twilio.ts b/src/notification/twilio.ts index c1243df..30e0fc8 100644 --- a/src/notification/twilio.ts +++ b/src/notification/twilio.ts @@ -3,7 +3,7 @@ import {Print, logger} from '../logger'; import {Twilio} from 'twilio'; import {config} from '../config'; -const twilio = config.notifications.twilio; +const {twilio} = config.notifications; let client: Twilio; if (twilio.accountSid && twilio.authToken) { diff --git a/src/notification/twitch.ts b/src/notification/twitch.ts index fd03cfc..b510057 100644 --- a/src/notification/twitch.ts +++ b/src/notification/twitch.ts @@ -5,7 +5,7 @@ import {existsSync, promises, readFileSync} from 'fs'; import {ChatClient} from 'twitch-chat-client'; import {config} from '../config'; -const twitch = config.notifications.twitch; +const {twitch} = config.notifications; const messages: string[] = []; let alreadySaying = false; diff --git a/src/notification/twitter.ts b/src/notification/twitter.ts index 93809aa..05f20d2 100644 --- a/src/notification/twitter.ts +++ b/src/notification/twitter.ts @@ -3,7 +3,7 @@ import {Print, logger} from '../logger'; import Twitter from 'twitter'; import {config} from '../config'; -const twitter = config.notifications.twitter; +const {twitter} = config.notifications; const client = new Twitter({ access_token_key: twitter.accessTokenKey, diff --git a/src/store/model/helpers/backoff.ts b/src/store/model/helpers/backoff.ts index 684caa7..5a7d732 100644 --- a/src/store/model/helpers/backoff.ts +++ b/src/store/model/helpers/backoff.ts @@ -21,7 +21,7 @@ export async function processBackoffDelay( * the page renders fine and its content is accessible. */ - let backoffStatusCodes = store.backoffStatusCodes; + let {backoffStatusCodes} = store; if (!backoffStatusCodes) { backoffStatusCodes = [403]; diff --git a/src/store/model/index.ts b/src/store/model/index.ts index 7166d99..b134a4f 100644 --- a/src/store/model/index.ts +++ b/src/store/model/index.ts @@ -366,15 +366,15 @@ export function updateStores() { updateStores(); export function getAllBrands() { - return Array.from(brands); + return [...brands]; } export function getAllSeries() { - return Array.from(series); + return [...series]; } export function getAllModels() { - return Array.from(models); + return [...models]; } export function getStores() { diff --git a/src/web/index.ts b/src/web/index.ts index 2e80e8b..c838717 100644 --- a/src/web/index.ts +++ b/src/web/index.ts @@ -120,7 +120,7 @@ function handleAPI( sendConfig(response); return; case 'stores': - sendJSON(response, Array.from(storeList.keys())); + sendJSON(response, [...storeList.keys()]); return; case 'brands': sendJSON(response, getAllBrands());