From 623645090d8a8317e087296fed1acba61615e165 Mon Sep 17 00:00:00 2001 From: MrMasrozYTLIVE <61359286+MrMasrozYTLIVE@users.noreply.github.com> Date: Sun, 16 Jun 2024 12:19:18 +0300 Subject: [PATCH] Got rid of Export default's because they're bad bad --- src/Client.ts | 39 ++++++++--------------------------- src/LinkUpEvents.ts | 24 +++++++++++++++++++++ src/message/AudioMessage.ts | 8 +++---- src/message/FileMessage.ts | 10 ++++----- src/message/IconMessage.ts | 10 ++++----- src/message/Message.ts | 6 ++---- src/message/TextMessage.ts | 10 ++++----- src/util/TypedEventEmitter.ts | 2 +- 8 files changed, 51 insertions(+), 58 deletions(-) create mode 100644 src/LinkUpEvents.ts diff --git a/src/Client.ts b/src/Client.ts index 6603f50..b86b845 100644 --- a/src/Client.ts +++ b/src/Client.ts @@ -1,21 +1,22 @@ import path from 'path'; import Hyperswarm, { PeerDiscovery } from 'hyperswarm'; -import TextMessage from "./message/TextMessage"; -import FileMessage from "./message/FileMessage"; -import AudioMessage from "./message/AudioMessage"; -import Message from "./message/Message"; +import {TextMessage} from "./message/TextMessage"; +import {FileMessage} from "./message/FileMessage"; +import {AudioMessage} from "./message/AudioMessage"; +import {Message} from "./message/Message"; import Corestore from 'corestore'; import Hyperdrive from 'hyperdrive'; import fs from 'fs'; // @ts-ignore import ServeDrive from 'serve-drive'; -import IconMessage from "./message/IconMessage"; -import TypedEventEmitter from "./util/TypedEventEmitter"; +import {IconMessage} from "./message/IconMessage"; +import {TypedEventEmitter} from "./util/TypedEventEmitter"; +import {LinkUpEvents} from "./LinkUpEvents"; /** * This class is the core component of the bot system. It handles connections to the Hyperswarm network, manages message sending and receiving, and emits events for various actions. */ -class Client extends TypedEventEmitter { +export class Client extends TypedEventEmitter { public botName: string = ""; public servePort: number | null = 0; public storagePath: string | undefined; @@ -325,26 +326,4 @@ class Client extends TypedEventEmitter { await this.swarm?.destroy(); console.log(`Bot ${this.botName} disconnected.`); } -} - -export type LinkUpEvents = { - /** - * Triggered when a new message is received. - * - * @event Client#onMessage - * @property {TextMessage} TextMessage - Class with all of the information about received text message - * @example - * const bot = new Client("MyBot"); - * bot.on('onMessage', (message) => { - * console.log(`Message from ${message.peerName}: ${message.message}`); - * }); - */ - 'onMessage': [textMessage: TextMessage] - 'onFile': [fileMessage: FileMessage] - 'onAudio': [audioMessage: AudioMessage] - 'onIcon': [iconMessage: IconMessage] - 'onError': [error: any] - 'onBotJoinRoom': [currentTopic: string] -} - -export default Client; +} \ No newline at end of file diff --git a/src/LinkUpEvents.ts b/src/LinkUpEvents.ts new file mode 100644 index 0000000..975a10e --- /dev/null +++ b/src/LinkUpEvents.ts @@ -0,0 +1,24 @@ +import {TextMessage} from "./message/TextMessage"; +import {FileMessage} from "./message/FileMessage"; +import {AudioMessage} from "./message/AudioMessage"; +import {IconMessage} from "./message/IconMessage"; + +export type LinkUpEvents = { + /** + * Triggered when a new message is received. + * + * @event Client#onMessage + * @property {TextMessage} TextMessage - Class with all of the information about received text message + * @example + * const bot = new Client("MyBot"); + * bot.on('onMessage', (message) => { + * console.log(`Message from ${message.peerName}: ${message.message}`); + * }); + */ + 'onMessage': [textMessage: TextMessage] + 'onFile': [fileMessage: FileMessage] + 'onAudio': [audioMessage: AudioMessage] + 'onIcon': [iconMessage: IconMessage] + 'onError': [error: any] + 'onBotJoinRoom': [currentTopic: string] +} \ No newline at end of file diff --git a/src/message/AudioMessage.ts b/src/message/AudioMessage.ts index 662d83c..169a538 100644 --- a/src/message/AudioMessage.ts +++ b/src/message/AudioMessage.ts @@ -2,11 +2,11 @@ * @module Message */ -import Message from "./Message"; +import {Message} from "./Message"; import b4a from "b4a"; -import Client from "../Client"; +import {Client} from "../Client"; -class AudioMessage extends Message { +export class AudioMessage extends Message { audioUrl: string; audioType: string; audioData: string; @@ -59,5 +59,3 @@ class AudioMessage extends Message { return new AudioMessage(bot.botName, bot.botAvatar, bot.currentTopic, Date.now(), audioUrl, audioType, audioData); } } - -export default AudioMessage; diff --git a/src/message/FileMessage.ts b/src/message/FileMessage.ts index ed47c06..64f6cef 100644 --- a/src/message/FileMessage.ts +++ b/src/message/FileMessage.ts @@ -2,11 +2,11 @@ * @module Message */ -import Message from "./Message"; +import {Message} from "./Message"; import b4a from "b4a"; -import Client from "../Client"; +import {Client} from "../Client"; -class FileMessage extends Message { +export class FileMessage extends Message { fileName: string; fileUrl: string; fileType: string; @@ -63,6 +63,4 @@ class FileMessage extends Message { const fileData = b4a.toString(fileBuffer, 'base64'); // Convert file buffer to base64 return new FileMessage(bot.botName, bot.botAvatar, bot.currentTopic, Date.now(), fileName, fileUrl, fileType, fileData); } -} - -export default FileMessage; +} \ No newline at end of file diff --git a/src/message/IconMessage.ts b/src/message/IconMessage.ts index 9df1e66..b2f9ff5 100644 --- a/src/message/IconMessage.ts +++ b/src/message/IconMessage.ts @@ -2,11 +2,11 @@ * @module Message */ -import Message from "./Message"; +import {Message} from "./Message"; import b4a from "b4a"; -import Client from "../Client"; +import {Client} from "../Client"; -class IconMessage extends Message { +export class IconMessage extends Message { /** * @description Creates a new icon message. * @since 1.0 @@ -31,6 +31,4 @@ class IconMessage extends Message { static new(bot: Client, avatarBuffer: Buffer): IconMessage { return new IconMessage(bot.botName, b4a.toString(avatarBuffer, 'base64'), Date.now()); } -} - -export default IconMessage; +} \ No newline at end of file diff --git a/src/message/Message.ts b/src/message/Message.ts index a208cd2..930ed78 100644 --- a/src/message/Message.ts +++ b/src/message/Message.ts @@ -4,7 +4,7 @@ * @author MiTask * @module Message */ -class Message { +export class Message { type: string; peerName: string; peerAvatar: string; @@ -54,6 +54,4 @@ class Message { ...this.toJson() }); } -} - -export default Message; +} \ No newline at end of file diff --git a/src/message/TextMessage.ts b/src/message/TextMessage.ts index ad08aaa..6823a5a 100644 --- a/src/message/TextMessage.ts +++ b/src/message/TextMessage.ts @@ -2,10 +2,10 @@ * @module Message */ -import Message from "./Message"; -import Client from "../Client"; +import {Message} from "./Message"; +import {Client} from "../Client"; -class TextMessage extends Message { +export class TextMessage extends Message { message: string; /** * @description Creates a new text message. @@ -46,6 +46,4 @@ class TextMessage extends Message { static new(bot: Client, message: string): TextMessage { return new TextMessage(bot.botName, bot.botAvatar, bot.currentTopic, Date.now(), message); } -} - -export default TextMessage; +} \ No newline at end of file diff --git a/src/util/TypedEventEmitter.ts b/src/util/TypedEventEmitter.ts index 7a92f39..df0ecbf 100644 --- a/src/util/TypedEventEmitter.ts +++ b/src/util/TypedEventEmitter.ts @@ -4,7 +4,7 @@ import {EventEmitter} from "stream"; * This class is used for TypeSafe events. * @internal */ -export default class TypedEventEmitter> { +export class TypedEventEmitter> { private emitter = new EventEmitter() /**