Skip to content

Commit bade705

Browse files
committed
refactoring code
1 parent c035787 commit bade705

File tree

9 files changed

+118
-60
lines changed

9 files changed

+118
-60
lines changed

dist/Defaults/index.d.ts

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
export declare enum CREDENTIALS {
2+
DIR_NAME = "wa_credentials",
3+
PREFIX = "_credentials"
4+
}
5+
export declare enum CALLBACK_KEY {
6+
ON_MESSAGE_RECEIVED = "on-message-received"
7+
}
8+
export declare abstract class Messages {
9+
static sessionAlreadyExist: (sessionId: string) => string;
10+
static sessionNotFound: (sessionId: string) => string;
11+
static paremetersRequired: (props: string[] | string) => string;
12+
}

dist/Defaults/index.js

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
"use strict";
2+
Object.defineProperty(exports, "__esModule", { value: true });
3+
exports.Messages = exports.CALLBACK_KEY = exports.CREDENTIALS = void 0;
4+
var CREDENTIALS;
5+
(function (CREDENTIALS) {
6+
CREDENTIALS["DIR_NAME"] = "wa_credentials";
7+
CREDENTIALS["PREFIX"] = "_credentials";
8+
})(CREDENTIALS = exports.CREDENTIALS || (exports.CREDENTIALS = {}));
9+
var CALLBACK_KEY;
10+
(function (CALLBACK_KEY) {
11+
CALLBACK_KEY["ON_MESSAGE_RECEIVED"] = "on-message-received";
12+
})(CALLBACK_KEY = exports.CALLBACK_KEY || (exports.CALLBACK_KEY = {}));
13+
class Messages {
14+
}
15+
exports.Messages = Messages;
16+
Messages.sessionAlreadyExist = (sessionId) => `Session ID :${sessionId} is already exist, Try another Session ID.`;
17+
Messages.sessionNotFound = (sessionId) => `Session with ID: ${sessionId} Not Exist!`;
18+
Messages.paremetersRequired = (props) => `Parameter ${typeof props == "string"
19+
? props
20+
: props instanceof Array
21+
? props.join(", ")
22+
: ""} is required`;

dist/messaging/index.js

+6-5
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ var __rest = (this && this.__rest) || function (s, e) {
2121
};
2222
Object.defineProperty(exports, "__esModule", { value: true });
2323
exports.readMessage = exports.sendTyping = exports.sendVideo = exports.sendImage = exports.sendTextMessage = void 0;
24+
const Defaults_1 = require("../Defaults");
2425
const Socket_1 = require("../Socket");
2526
const Utils_1 = require("../Utils");
2627
const create_delay_1 = require("../Utils/create-delay");
@@ -29,7 +30,7 @@ const sendTextMessage = (_a) => __awaiter(void 0, void 0, void 0, function* () {
2930
var { sessionId, to, text = "", isGroup = false } = _a, props = __rest(_a, ["sessionId", "to", "text", "isGroup"]);
3031
const session = (0, Socket_1.getSession)(sessionId);
3132
if (!session)
32-
throw new Error(`Session with ID: ${sessionId} Not Found!`);
33+
throw new Error(Defaults_1.Messages.sessionNotFound(sessionId));
3334
const oldPhone = to;
3435
to = (0, Utils_1.phoneToJid)({ to, isGroup, sessionId });
3536
const isRegistered = yield (0, is_exist_1.isExist)({
@@ -51,7 +52,7 @@ const sendImage = (_b) => __awaiter(void 0, void 0, void 0, function* () {
5152
var { sessionId, to, text = "", isGroup = false, media } = _b, props = __rest(_b, ["sessionId", "to", "text", "isGroup", "media"]);
5253
const session = (0, Socket_1.getSession)(sessionId);
5354
if (!session)
54-
throw new Error(`Session with ID: ${sessionId} Not Found!`);
55+
throw new Error(Defaults_1.Messages.sessionNotFound(sessionId));
5556
const oldPhone = to;
5657
to = (0, Utils_1.phoneToJid)({ to, isGroup, sessionId });
5758
const isRegistered = yield (0, is_exist_1.isExist)({
@@ -80,7 +81,7 @@ const sendVideo = (_c) => __awaiter(void 0, void 0, void 0, function* () {
8081
var { sessionId, to, text = "", isGroup = false, media } = _c, props = __rest(_c, ["sessionId", "to", "text", "isGroup", "media"]);
8182
const session = (0, Socket_1.getSession)(sessionId);
8283
if (!session)
83-
throw new Error(`Session with ID: ${sessionId} Not Found!`);
84+
throw new Error(Defaults_1.Messages.sessionNotFound(sessionId));
8485
const oldPhone = to;
8586
to = (0, Utils_1.phoneToJid)({ to, isGroup, sessionId });
8687
const isRegistered = yield (0, is_exist_1.isExist)({
@@ -120,7 +121,7 @@ const sendTyping = ({ sessionId, to, duration = 1000, isGroup = false, }) => __a
120121
to = (0, Utils_1.phoneToJid)({ to, isGroup, sessionId });
121122
const session = (0, Socket_1.getSession)(sessionId);
122123
if (!session)
123-
throw new Error(`Session with ID: ${sessionId} Not Found!`);
124+
throw new Error(Defaults_1.Messages.sessionNotFound(sessionId));
124125
const isRegistered = yield (0, is_exist_1.isExist)({
125126
sessionId,
126127
to,
@@ -147,7 +148,7 @@ exports.sendTyping = sendTyping;
147148
const readMessage = ({ sessionId, key }) => __awaiter(void 0, void 0, void 0, function* () {
148149
const session = (0, Socket_1.getSession)(sessionId);
149150
if (!session)
150-
throw new Error(`Session with ID: ${sessionId} Not Found!`);
151+
throw new Error(Defaults_1.Messages.sessionNotFound(sessionId));
151152
yield session.readMessages([key]);
152153
});
153154
exports.readMessage = readMessage;

dist/socket/index.d.ts

+15-14
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import { proto, WASocket } from "@adiwajshing/baileys";
2-
import { MessageReceived } from "../Types";
1+
/// <reference types="node" />
2+
import { WASocket } from "@adiwajshing/baileys";
3+
import type { MessageReceived } from "../Types";
34
export declare const startSession: (sessionId?: string) => Promise<{
45
getOrderDetails: (orderId: string, tokenBase64: string) => Promise<import("@adiwajshing/baileys").OrderDetails>;
56
getCatalog: (jid?: string | undefined, limit?: number | undefined) => Promise<{
@@ -19,17 +20,17 @@ export declare const startSession: (sessionId?: string) => Promise<{
1920
sendRetryRequest: (node: import("@adiwajshing/baileys").BinaryNode, forceIncludeKeys?: boolean | undefined) => Promise<void>;
2021
getPrivacyTokens: (jids: string[]) => Promise<import("@adiwajshing/baileys").BinaryNode>;
2122
assertSessions: (jids: string[], force: boolean) => Promise<boolean>;
22-
relayMessage: (jid: string, message: proto.IMessage, { messageId: msgId, participant, additionalAttributes, useUserDevicesCache, cachedGroupMetadata }: import("@adiwajshing/baileys").MessageRelayOptions) => Promise<string>;
23+
relayMessage: (jid: string, message: import("@adiwajshing/baileys").proto.IMessage, { messageId: msgId, participant, additionalAttributes, useUserDevicesCache, cachedGroupMetadata }: import("@adiwajshing/baileys").MessageRelayOptions) => Promise<string>;
2324
sendReceipt: (jid: string, participant: string | undefined, messageIds: string[], type: import("@adiwajshing/baileys").MessageReceiptType) => Promise<void>;
2425
sendReadReceipt: (jid: string, participant: string | undefined, messageIds: string[]) => Promise<void>;
25-
readMessages: (keys: proto.IMessageKey[]) => Promise<void>;
26+
readMessages: (keys: import("@adiwajshing/baileys").proto.IMessageKey[]) => Promise<void>;
2627
refreshMediaConn: (forceGet?: boolean | undefined) => Promise<import("@adiwajshing/baileys").MediaConnInfo>;
2728
waUploadToServer: import("@adiwajshing/baileys").WAMediaUploadFunction;
2829
fetchPrivacySettings: (force?: boolean | undefined) => Promise<{
2930
[_: string]: string;
3031
}>;
31-
updateMediaMessage: (message: proto.IWebMessageInfo) => Promise<proto.IWebMessageInfo>;
32-
sendMessage: (jid: string, content: import("@adiwajshing/baileys").AnyMessageContent, options?: import("@adiwajshing/baileys").MiscMessageGenerationOptions | undefined) => Promise<proto.WebMessageInfo | undefined>;
32+
updateMediaMessage: (message: import("@adiwajshing/baileys").proto.IWebMessageInfo) => Promise<import("@adiwajshing/baileys").proto.IWebMessageInfo>;
33+
sendMessage: (jid: string, content: import("@adiwajshing/baileys").AnyMessageContent, options?: import("@adiwajshing/baileys").MiscMessageGenerationOptions | undefined) => Promise<import("@adiwajshing/baileys").proto.WebMessageInfo | undefined>;
3334
groupMetadata: (jid: string) => Promise<import("@adiwajshing/baileys").GroupMetadata>;
3435
groupCreate: (subject: string, participants: string[]) => Promise<import("@adiwajshing/baileys").GroupMetadata>;
3536
groupLeave: (id: string) => Promise<void>;
@@ -42,7 +43,7 @@ export declare const startSession: (sessionId?: string) => Promise<{
4243
groupInviteCode: (jid: string) => Promise<string | undefined>;
4344
groupRevokeInvite: (jid: string) => Promise<string | undefined>;
4445
groupAcceptInvite: (code: string) => Promise<string | undefined>;
45-
groupAcceptInviteV4: (key: string | proto.IMessageKey, inviteMessage: proto.IGroupInviteMessage) => Promise<string>;
46+
groupAcceptInviteV4: (key: string | import("@adiwajshing/baileys").proto.IMessageKey, inviteMessage: import("@adiwajshing/baileys").proto.IGroupInviteMessage) => Promise<string>;
4647
groupGetInviteInfo: (code: string) => Promise<import("@adiwajshing/baileys").GroupMetadata>;
4748
groupToggleEphemeral: (jid: string, ephemeralExpiration: number) => Promise<void>;
4849
groupSettingUpdate: (jid: string, setting: "announcement" | "locked" | "not_announcement" | "unlocked") => Promise<void>;
@@ -52,7 +53,7 @@ export declare const startSession: (sessionId?: string) => Promise<{
5253
processingMutex: {
5354
mutex<T>(code: () => T | Promise<T>): Promise<T>;
5455
};
55-
upsertMessage: (msg: proto.IWebMessageInfo, type: import("@adiwajshing/baileys").MessageUpsertType) => Promise<void>;
56+
upsertMessage: (msg: import("@adiwajshing/baileys").proto.IWebMessageInfo, type: import("@adiwajshing/baileys").MessageUpsertType) => Promise<void>;
5657
appPatch: (patchCreate: import("@adiwajshing/baileys").WAPatchCreate) => Promise<void>;
5758
sendPresenceUpdate: (type: import("@adiwajshing/baileys").WAPresence, toJid?: string | undefined) => Promise<void>;
5859
presenceSubscribe: (toJid: string) => Promise<void>;
@@ -120,17 +121,17 @@ export declare const startWhatsapp: (sessionId?: string) => Promise<{
120121
sendRetryRequest: (node: import("@adiwajshing/baileys").BinaryNode, forceIncludeKeys?: boolean | undefined) => Promise<void>;
121122
getPrivacyTokens: (jids: string[]) => Promise<import("@adiwajshing/baileys").BinaryNode>;
122123
assertSessions: (jids: string[], force: boolean) => Promise<boolean>;
123-
relayMessage: (jid: string, message: proto.IMessage, { messageId: msgId, participant, additionalAttributes, useUserDevicesCache, cachedGroupMetadata }: import("@adiwajshing/baileys").MessageRelayOptions) => Promise<string>;
124+
relayMessage: (jid: string, message: import("@adiwajshing/baileys").proto.IMessage, { messageId: msgId, participant, additionalAttributes, useUserDevicesCache, cachedGroupMetadata }: import("@adiwajshing/baileys").MessageRelayOptions) => Promise<string>;
124125
sendReceipt: (jid: string, participant: string | undefined, messageIds: string[], type: import("@adiwajshing/baileys").MessageReceiptType) => Promise<void>;
125126
sendReadReceipt: (jid: string, participant: string | undefined, messageIds: string[]) => Promise<void>;
126-
readMessages: (keys: proto.IMessageKey[]) => Promise<void>;
127+
readMessages: (keys: import("@adiwajshing/baileys").proto.IMessageKey[]) => Promise<void>;
127128
refreshMediaConn: (forceGet?: boolean | undefined) => Promise<import("@adiwajshing/baileys").MediaConnInfo>;
128129
waUploadToServer: import("@adiwajshing/baileys").WAMediaUploadFunction;
129130
fetchPrivacySettings: (force?: boolean | undefined) => Promise<{
130131
[_: string]: string;
131132
}>;
132-
updateMediaMessage: (message: proto.IWebMessageInfo) => Promise<proto.IWebMessageInfo>;
133-
sendMessage: (jid: string, content: import("@adiwajshing/baileys").AnyMessageContent, options?: import("@adiwajshing/baileys").MiscMessageGenerationOptions | undefined) => Promise<proto.WebMessageInfo | undefined>;
133+
updateMediaMessage: (message: import("@adiwajshing/baileys").proto.IWebMessageInfo) => Promise<import("@adiwajshing/baileys").proto.IWebMessageInfo>;
134+
sendMessage: (jid: string, content: import("@adiwajshing/baileys").AnyMessageContent, options?: import("@adiwajshing/baileys").MiscMessageGenerationOptions | undefined) => Promise<import("@adiwajshing/baileys").proto.WebMessageInfo | undefined>;
134135
groupMetadata: (jid: string) => Promise<import("@adiwajshing/baileys").GroupMetadata>;
135136
groupCreate: (subject: string, participants: string[]) => Promise<import("@adiwajshing/baileys").GroupMetadata>;
136137
groupLeave: (id: string) => Promise<void>;
@@ -143,7 +144,7 @@ export declare const startWhatsapp: (sessionId?: string) => Promise<{
143144
groupInviteCode: (jid: string) => Promise<string | undefined>;
144145
groupRevokeInvite: (jid: string) => Promise<string | undefined>;
145146
groupAcceptInvite: (code: string) => Promise<string | undefined>;
146-
groupAcceptInviteV4: (key: string | proto.IMessageKey, inviteMessage: proto.IGroupInviteMessage) => Promise<string>;
147+
groupAcceptInviteV4: (key: string | import("@adiwajshing/baileys").proto.IMessageKey, inviteMessage: import("@adiwajshing/baileys").proto.IGroupInviteMessage) => Promise<string>;
147148
groupGetInviteInfo: (code: string) => Promise<import("@adiwajshing/baileys").GroupMetadata>;
148149
groupToggleEphemeral: (jid: string, ephemeralExpiration: number) => Promise<void>;
149150
groupSettingUpdate: (jid: string, setting: "announcement" | "locked" | "not_announcement" | "unlocked") => Promise<void>;
@@ -153,7 +154,7 @@ export declare const startWhatsapp: (sessionId?: string) => Promise<{
153154
processingMutex: {
154155
mutex<T>(code: () => T | Promise<T>): Promise<T>;
155156
};
156-
upsertMessage: (msg: proto.IWebMessageInfo, type: import("@adiwajshing/baileys").MessageUpsertType) => Promise<void>;
157+
upsertMessage: (msg: import("@adiwajshing/baileys").proto.IWebMessageInfo, type: import("@adiwajshing/baileys").MessageUpsertType) => Promise<void>;
157158
appPatch: (patchCreate: import("@adiwajshing/baileys").WAPatchCreate) => Promise<void>;
158159
sendPresenceUpdate: (type: import("@adiwajshing/baileys").WAPresence, toJid?: string | undefined) => Promise<void>;
159160
presenceSubscribe: (toJid: string) => Promise<void>;

dist/socket/index.js

+13-16
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,17 @@ const baileys_1 = __importStar(require("@adiwajshing/baileys"));
4040
const pino_1 = __importDefault(require("pino"));
4141
const path_1 = __importDefault(require("path"));
4242
const fs_1 = __importDefault(require("fs"));
43+
const Defaults_1 = require("../Defaults");
4344
const msgRetryCounterMap = {};
4445
const sessions = new Map();
4546
const callback = new Map();
4647
const startSession = (sessionId = "mysession") => __awaiter(void 0, void 0, void 0, function* () {
4748
if (checkIsAvailableCreds(sessionId))
48-
throw new Error(`Session ID :${sessionId} is already exist, Try another Session ID.`);
49-
const logger = (0, pino_1.default)({ level: "silent" });
49+
throw new Error(Defaults_1.Messages.sessionAlreadyExist(sessionId));
50+
const logger = (0, pino_1.default)({ level: "error" });
5051
const { version, isLatest } = yield (0, baileys_1.fetchLatestBaileysVersion)();
5152
const startSocket = () => __awaiter(void 0, void 0, void 0, function* () {
52-
const { state, saveCreds } = yield (0, baileys_1.useMultiFileAuthState)(path_1.default.resolve("wa_credentials", sessionId + "_credentials"));
53+
const { state, saveCreds } = yield (0, baileys_1.useMultiFileAuthState)(path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME, sessionId + Defaults_1.CREDENTIALS.PREFIX));
5354
const sock = (0, baileys_1.default)({
5455
version,
5556
printQRInTerminal: true,
@@ -80,13 +81,9 @@ const startSession = (sessionId = "mysession") => __awaiter(void 0, void 0, void
8081
if (events["creds.update"]) {
8182
yield saveCreds();
8283
}
83-
// if (params?.onReceiveMessage && events["messages.upsert"]) {
84-
// const msg = events["messages.upsert"].messages?.[0];
85-
// params?.onReceiveMessage(msg);
86-
// }
8784
if (events["messages.upsert"]) {
8885
const msg = (_a = events["messages.upsert"].messages) === null || _a === void 0 ? void 0 : _a[0];
89-
(_b = callback.get("onMessageReceive")) === null || _b === void 0 ? void 0 : _b(Object.assign({ sessionId }, msg));
86+
(_b = callback.get(Defaults_1.CALLBACK_KEY.ON_MESSAGE_RECEIVED)) === null || _b === void 0 ? void 0 : _b(Object.assign({ sessionId }, msg));
9087
}
9188
}));
9289
return sock;
@@ -102,7 +99,7 @@ const deleteSession = (sessionId) => {
10299
const session = (0, exports.getSession)(sessionId);
103100
session === null || session === void 0 ? void 0 : session.logout();
104101
sessions.delete(sessionId);
105-
const dir = path_1.default.resolve("wa_credentials", sessionId + "_credentials");
102+
const dir = path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME, sessionId + Defaults_1.CREDENTIALS.PREFIX);
106103
if (fs_1.default.existsSync(dir)) {
107104
fs_1.default.rmSync(dir, { force: true, recursive: true });
108105
}
@@ -113,28 +110,28 @@ exports.getAllSession = getAllSession;
113110
const getSession = (key) => sessions.get(key);
114111
exports.getSession = getSession;
115112
const loadSessions = () => __awaiter(void 0, void 0, void 0, function* () {
116-
if (!fs_1.default.existsSync(path_1.default.resolve("wa_credentials"))) {
117-
fs_1.default.mkdirSync(path_1.default.resolve("wa_credentials"));
113+
if (!fs_1.default.existsSync(path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME))) {
114+
fs_1.default.mkdirSync(path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME));
118115
}
119-
fs_1.default.readdir(path_1.default.resolve("wa_credentials"), (err, dirs) => __awaiter(void 0, void 0, void 0, function* () {
116+
fs_1.default.readdir(path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME), (err, dirs) => __awaiter(void 0, void 0, void 0, function* () {
120117
if (err) {
121118
throw err;
122119
}
123120
for (const dir of dirs) {
124-
(0, exports.startWhatsapp)(dir.split("_")[0]);
121+
(0, exports.startSession)(dir.split("_")[0]);
125122
}
126123
}));
127124
});
128125
const checkIsAvailableCreds = (sessionId) => {
129-
if (fs_1.default.existsSync(path_1.default.resolve("wa_credentials")) &&
130-
fs_1.default.existsSync(path_1.default.resolve("wa_credentials", sessionId + "_credentials")) &&
126+
if (fs_1.default.existsSync(path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME)) &&
127+
fs_1.default.existsSync(path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME, sessionId + Defaults_1.CREDENTIALS.PREFIX)) &&
131128
(0, exports.getSession)(sessionId)) {
132129
return true;
133130
}
134131
return false;
135132
};
136133
loadSessions();
137134
const onMessageReceived = (listener) => {
138-
callback.set("onMessageReceive", listener);
135+
callback.set(Defaults_1.CALLBACK_KEY.ON_MESSAGE_RECEIVED, listener);
139136
};
140137
exports.onMessageReceived = onMessageReceived;

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "wa-multi-session",
3-
"version": "1.3.1",
3+
"version": "1.3.2",
44
"description": "Multi Session Whatsapp Library",
55
"main": "dist/index.js",
66
"types": "dist/index.d.ts",

src/Defaults/index.ts

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
export enum CREDENTIALS {
2+
DIR_NAME = "wa_credentials",
3+
PREFIX = "_credentials",
4+
}
5+
6+
export enum CALLBACK_KEY {
7+
ON_MESSAGE_RECEIVED = "on-message-received",
8+
}
9+
10+
export abstract class Messages {
11+
static sessionAlreadyExist = (sessionId: string): string =>
12+
`Session ID :${sessionId} is already exist, Try another Session ID.`;
13+
14+
static sessionNotFound = (sessionId: string): string =>
15+
`Session with ID: ${sessionId} Not Exist!`;
16+
17+
static paremetersRequired = (props: string[] | string) =>
18+
`Parameter ${
19+
typeof props == "string"
20+
? props
21+
: props instanceof Array
22+
? props.join(", ")
23+
: ""
24+
} is required`;
25+
}

0 commit comments

Comments
 (0)