chore: add typescript definitions for custom types (#486)

This commit is contained in:
Andrew Mackrodt
2020-10-10 17:06:38 +01:00
committed by GitHub
parent 5c61333df0
commit 0cdf6657bf
8 changed files with 168 additions and 11 deletions
+1 -1
View File
@@ -158,7 +158,7 @@ const notifications = {
playSound: envOrString(process.env.PLAY_SOUND), playSound: envOrString(process.env.PLAY_SOUND),
pushbullet: envOrString(process.env.PUSHBULLET), pushbullet: envOrString(process.env.PUSHBULLET),
pushover: { pushover: {
priority: envOrString(process.env.PUSHOVER_PRIORITY), priority: envOrNumber(process.env.PUSHOVER_PRIORITY),
token: envOrString(process.env.PUSHOVER_TOKEN), token: envOrString(process.env.PUSHOVER_TOKEN),
username: envOrString(process.env.PUSHOVER_USER) username: envOrString(process.env.PUSHOVER_USER)
}, },
+1 -1
View File
@@ -11,7 +11,7 @@ import {tryLookupAndLoop} from './store';
puppeteer.use(stealthPlugin()); puppeteer.use(stealthPlugin());
if (config.browser.lowBandwidth) { if (config.browser.lowBandwidth) {
puppeteer.use(resourceBlock({ puppeteer.use(resourceBlock({
blockedTypes: new Set(['image', 'font']) blockedTypes: new Set(['image', 'font'] as const)
})); }));
} else { } else {
puppeteer.use(adBlocker); puppeteer.use(adBlocker);
+2 -2
View File
@@ -1,6 +1,6 @@
import {Link, Store} from '../store/model'; import {Link, Store} from '../store/model';
import {Print, logger} from '../logger'; import {Print, logger} from '../logger';
import Push from 'pushover-notifications'; import Push, {PushoverMessage} from 'pushover-notifications';
import {config} from '../config'; import {config} from '../config';
const pushover = config.notifications.pushover; const pushover = config.notifications.pushover;
@@ -13,7 +13,7 @@ export function sendPushoverNotification(link: Link, store: Store) {
if (pushover.token && pushover.username) { if (pushover.token && pushover.username) {
logger.debug('↗ sending pushover message'); logger.debug('↗ sending pushover message');
const message = { const message: PushoverMessage = {
message: link.cartUrl ? link.cartUrl : link.url, message: link.cartUrl ? link.cartUrl : link.url,
priority: pushover.priority, priority: pushover.priority,
title: Print.inStock(link, store) title: Print.inStock(link, store)
+3 -3
View File
@@ -1,9 +1,9 @@
import playerLib, {PlaySound} from 'play-sound';
import {config} from '../config'; import {config} from '../config';
import fs from 'fs'; import fs from 'fs';
import {logger} from '../logger'; import {logger} from '../logger';
import playerLib from 'play-sound';
let player: any; let player: PlaySound;
if (config.notifications.playSound) { if (config.notifications.playSound) {
player = playerLib(); player = playerLib();
@@ -11,7 +11,7 @@ if (config.notifications.playSound) {
if (player.player === null) { if (player.player === null) {
logger.warn('✖ couldn\'t find sound player'); logger.warn('✖ couldn\'t find sound player');
} else { } else {
const playerName: string = player.player; const playerName = player.player;
logger.info(`✔ sound player found: ${playerName}`); logger.info(`✔ sound player found: ${playerName}`);
} }
} }
+22 -1
View File
@@ -1 +1,22 @@
declare module 'play-sound'; declare module 'play-sound' {
export interface Options {
players?: string[];
player?: string;
}
export interface PlayOptions {
[key: string]: any;
}
export interface PlaySound {
player: string;
play: ((file: string, callback: (error: Error) => void) => PlayerProcess) & ((file: string, options: PlayOptions, callback: (error: Error) => void) => PlayerProcess);
}
export interface PlayerProcess {
kill: () => void;
}
export default function (options?: Options): PlaySound;
}
+25 -1
View File
@@ -1 +1,25 @@
declare module 'puppeteer-extra-plugin-block-resources'; declare module 'puppeteer-extra-plugin-block-resources' {
import {PuppeteerExtraPlugin} from 'puppeteer-extra';
export type ResourceType =
'document' |
'eventsource' |
'fetch' |
'font' |
'image' |
'manifest' |
'media' |
'other' |
'script' |
'stylesheet' |
'texttrack' |
'websocket' |
'xhr';
export interface Options {
availableTypes?: Set<ResourceType>;
blockedTypes?: Set<ResourceType>;
}
export default function (options?: Options): PuppeteerExtraPlugin;
}
+59 -1
View File
@@ -1 +1,59 @@
declare module '@hijef/pushbullet'; declare module '@hijef/pushbullet' {
export type DeviceParams = string | number | Record<string, any>;
export type PushBulletCallback = ((error: Error) => void) | ((error?: null, response: any) => void);
export interface ListOptions {
active?: boolean;
cursor?: string;
limit?: number;
}
export interface HistoryOptions extends ListOptions {
modified_after?: number;
}
export interface PushBulletStream {
connect: () => void;
close: () => void;
on: ((event: 'connect' | 'close' | 'nop', callback: () => void) => void) & ((event: 'error', callback: (error: any) => void) => void) & ((event: 'message', callback: (message: any) => void) => void) & ((event: 'tickle', callback: (tickle: any) => void) => void) & ((event: 'push', callback: (push: any) => void) => void);
}
export class PushBullet {
constructor(apiKey: string, options?: {fullResponses: boolean}): this;
me(callback: PushBulletCallback);
devices(options: ListOptions, callback: PushBulletCallback);
devices(callback: PushBulletCallback);
createDevice(options: Record<string, any>, callback: PushBulletCallback);
updateDevice(deviceIden: string, deviceOptions: Record<string, any>, callback: PushBulletCallback);
deleteDevice(deviceIden: string, callback: PushBulletCallback);
note(deviceParams: DeviceParams, title: string, body: string, callback: PushBulletCallback);
link(deviceParams: DeviceParams, name: string, url: string, body: string, callback: PushBulletCallback);
file(deviceParams: DeviceParams, filePath: string, message: string, callback: PushBulletCallback);
dismissPush(pushIden: DeviceParams, callback: PushBulletCallback);
deletePush(pushIden: DeviceParams, callback: PushBulletCallback);
deleteAllPushes(callback: PushBulletCallback);
history(options: HistoryOptions, callback: PushBulletCallback);
history(callback: PushBulletCallback);
subscriptions(options: ListOptions, callback: PushBulletCallback);
subscriptions(callback: PushBulletCallback);
subscribe(channelTag: string, callback: PushBulletCallback);
unsubscribe(subscriptionIden: string, callback: PushBulletCallback);
muteSubscription(subscriptionIden: string, callback: PushBulletCallback);
unmuteSubscription(subscriptionIden: string, callback: PushBulletCallback);
channelInfo(channelTag: string, callback: PushBulletCallback);
chats(options: ListOptions, callback: PushBulletCallback);
chats(callback: PushBulletCallback);
createChat(email: string, callback: PushBulletCallback);
deleteChat(chatIden: string, callback: PushBulletCallback);
muteChat(chatIden: string, callback: PushBulletCallback);
unmuteChat(chatIden: string, callback: PushBulletCallback);
sendSMS(options: Record<string, any>, callback: PushBulletCallback);
sendClipboard(options: Record<string, any>, callback: PushBulletCallback);
dismissEphemeral(options: Record<string, any>, callback: PushBulletCallback);
stream(): PushBulletStream;
enableEncryption(encryptionPassword: string, userIden: string): PushBulletStream;
}
export default PushBullet;
}
+55 -1
View File
@@ -1 +1,55 @@
declare module 'pushover-notifications'; declare module 'pushover-notifications' {
export type PushoverCallback = ((error: Error) => void) | ((error?: null, response: any) => void);
export type Sound =
'pushover' |
'bike' |
'bugle' |
'cashregister' |
'classical' |
'cosmic' |
'falling' |
'gamelan' |
'incoming' |
'intermission' |
'magic' |
'mechanical' |
'pianobar' |
'siren' |
'spacealarm' |
'tugboat' |
'alien' |
'climb' |
'persistent' |
'echo' |
'updown' |
'vibrate' |
'none';
export interface PushoverOptions {
token: string;
user: string;
httpOptions?: {proxy: string};
onerror?: (error: Error | string) => void;
update_sounds?: boolean;
}
export interface PushoverMessage {
message: string;
file?: string | {name: string; data: string};
device?: string;
title?: string;
url?: string;
url_title?: string;
priority?: number;
sound?: Sound;
timestamp?: number;
}
export class Pushover {
constructor(options: PushoverOptions);
send(message: PushoverMessage, callback: PushoverCallback);
}
export default Pushover;
}