Fix: Further converting ES6 to CJS - Making exports named instead of default (#26)

* adding to git ignore

* making imports named not default to not break all my tests

* adjusted setup for memberhelper test

---------

Co-authored-by: Aster Fialla <asterfialla@gmail.com>
This commit is contained in:
2026-02-28 15:28:27 -05:00
committed by GitHub
parent 39a7115803
commit d14e89e8b2
11 changed files with 50 additions and 43 deletions

2
.gitignore vendored
View File

@@ -6,3 +6,5 @@ coverage
log.txt log.txt
.env .env
oya.png oya.png
variables.env
.env.production

View File

@@ -1,10 +1,10 @@
const {Client, Events, Message} = require('@fluxerjs/core'); const {Client, Events, Message} = require('@fluxerjs/core');
const messageHelper = require("./helpers/messageHelper.js"); const {messageHelper} = require("./helpers/messageHelper.js");
const enums = require("./enums.js"); const {enums} = require("./enums.js");
const commands = require("./commands.js"); const {commands} = require("./commands.js");
const webhookHelper = require("./helpers/webhookHelper.js"); const {webhookHelper} = require("./helpers/webhookHelper.js");
const env = require('dotenv'); const env = require('dotenv');
const utils = require("./helpers/utils.js"); const {utils} = require("./helpers/utils.js");
env.config(); env.config();
@@ -15,7 +15,9 @@ if (!token) {
process.exit(1); process.exit(1);
} }
const client = new Client({ intents: 0 }); client = new Client({ intents: 0 });
module.exports.client = client;
client.on(Events.MessageCreate, async (message) => { client.on(Events.MessageCreate, async (message) => {
await handleMessageCreate(message); await handleMessageCreate(message);
@@ -28,7 +30,7 @@ client.on(Events.MessageCreate, async (message) => {
* @param {Message} message - The message object * @param {Message} message - The message object
* *
**/ **/
exports.handleMessageCreate = async function(message) { module.exports.handleMessageCreate = async function(message) {
try { try {
// Ignore bots // Ignore bots
if (message.author.bot) return; if (message.author.bot) return;
@@ -81,7 +83,7 @@ function printGuilds() {
const debouncePrintGuilds = utils.debounce(printGuilds, 2000); const debouncePrintGuilds = utils.debounce(printGuilds, 2000);
// export const debounceLogin = utils.debounce(client.login, 60000); // export const debounceLogin = utils.debounce(client.login, 60000);
exports.login = async function() { module.exports.login = async function() {
try { try {
await client.login(token); await client.login(token);
// await db.check_connection(); // await db.check_connection();

View File

@@ -1,8 +1,8 @@
const messageHelper = require("./helpers/messageHelper.js"); const {messageHelper} = require("./helpers/messageHelper.js");
const enums = require("./enums.js"); const {enums} = require("./enums.js");
const memberHelper = require("./helpers/memberHelper.js"); const {memberHelper} = require("./helpers/memberHelper.js");
const {EmbedBuilder} = require("@fluxerjs/core"); const {EmbedBuilder} = require("@fluxerjs/core");
const importHelper = require("./helpers/importHelper.js"); const {importHelper} = require("./helpers/importHelper.js");
const commands = { const commands = {
commandsMap: new Map(), commandsMap: new Map(),
@@ -119,4 +119,4 @@ commands.importCommand = async function (message, args) {
} }
module.exports = commands; module.exports.commands = commands;

View File

@@ -83,4 +83,4 @@ async function syncModels() {
} }
} }
module.exports = database; module.exports.database = database;

View File

@@ -50,4 +50,4 @@ enums.misc = {
} }
module.exports = enums; module.exports.enums = enums;

View File

@@ -1,5 +1,5 @@
const enums = require("../enums.js"); const {enums} = require("../enums.js");
const memberHelper = require("./memberHelper.js"); const {memberHelper} = require("./memberHelper.js");
const importHelper = {}; const importHelper = {};
@@ -55,4 +55,4 @@ importHelper.pluralKitImport = async function (authorId, attachmentUrl= null) {
return aggregatedText; return aggregatedText;
} }
module.exports = importHelper; exports.importHelper = importHelper;

View File

@@ -1,8 +1,8 @@
const database = require('../database.js'); const {database} = require('../database.js');
const enums = require("../enums.js"); const {enums} = require("../enums.js");
const {Op} = require("sequelize"); const {Op} = require("sequelize");
const {EmbedBuilder} = require("@fluxerjs/core"); const {EmbedBuilder} = require("@fluxerjs/core");
const utils = require("./utils.js"); const {utils} = require("./utils.js");
const memberHelper = {}; const memberHelper = {};
@@ -365,20 +365,21 @@ memberHelper.addFullMember = async function (authorId, memberName, displayName =
} }
} }
let isValidPropic; let isValidPropic, expirationWarning;
if (propic && propic.length > 0) { if (propic && propic.length > 0) {
try { try {
isValidPropic = await utils.checkImageFormatValidity(propic); isValidPropic = await utils.checkImageFormatValidity(propic);
expirationWarning = utils.setExpirationWarning(propic, attachmentExpiration);
if (expirationWarning) {
errors.push(expirationWarning);
}
} }
catch(e) { catch(e) {
errors.push(`Tried to set profile picture to \"${propic}\". ${e.message}. ${enums.err.SET_TO_NULL}`); errors.push(`Tried to set profile picture to \"${propic}\". ${e.message}. ${enums.err.SET_TO_NULL}`);
isValidPropic = false; isValidPropic = false;
} }
} }
const expirationWarning = utils.setExpirationWarning(propic, attachmentExpiration);
if (expirationWarning) {
errors.push(expirationWarning);
}
const member = await database.members.create({ const member = await database.members.create({
name: memberName, userid: authorId, displayname: isValidDisplayName ? displayName : null, proxy: isValidProxy ? proxy : null, propic: isValidPropic ? propic : null name: memberName, userid: authorId, displayname: isValidDisplayName ? displayName : null, proxy: isValidProxy ? proxy : null, propic: isValidPropic ? propic : null
}); });
@@ -516,4 +517,4 @@ memberHelper.getMemberCommandInfo = function() {
} }
module.exports = memberHelper; module.exports.memberHelper = memberHelper;

View File

@@ -1,8 +1,8 @@
const memberHelper = require('./memberHelper.js'); const {memberHelper} = require('./memberHelper.js');
const messageHelper = {}; const msgh = {};
messageHelper.prefix = "pf;" msgh.prefix = "pf;"
/** /**
* Parses and slices up message arguments, retaining quoted strings. * Parses and slices up message arguments, retaining quoted strings.
@@ -11,8 +11,8 @@ messageHelper.prefix = "pf;"
* @param {string} commandName - The command name. * @param {string} commandName - The command name.
* @returns {string[]} An array of arguments. * @returns {string[]} An array of arguments.
*/ */
messageHelper.parseCommandArgs = function(content, commandName) { msgh.parseCommandArgs = function(content, commandName) {
const message = content.slice(messageHelper.prefix.length + commandName.length).trim(); const message = content.slice(msgh.prefix.length + commandName.length).trim();
return message.match(/\\?.|^$/g).reduce((accumulator, chara) => { return message.match(/\\?.|^$/g).reduce((accumulator, chara) => {
if (chara === '\"' || chara === '\'') { if (chara === '\"' || chara === '\'') {
@@ -38,7 +38,7 @@ messageHelper.parseCommandArgs = function(content, commandName) {
* @param {string | null} [attachmentUrl] - The url for an attachment to the message, if any exists. * @param {string | null} [attachmentUrl] - The url for an attachment to the message, if any exists.
* @returns {Promise<{model, string, bool}>} The proxy message object. * @returns {Promise<{model, string, bool}>} The proxy message object.
*/ */
messageHelper.parseProxyTags = async function (authorId, content, attachmentUrl = null){ msgh.parseProxyTags = async function (authorId, content, attachmentUrl = null){
const members = await memberHelper.getMembersByAuthor(authorId); const members = await memberHelper.getMembersByAuthor(authorId);
// If an author has no members, no sense in searching for proxy // If an author has no members, no sense in searching for proxy
if (members.length === 0) { if (members.length === 0) {
@@ -70,7 +70,7 @@ messageHelper.parseProxyTags = async function (authorId, content, attachmentUrl
* @returns {{text: string, file: Buffer<ArrayBuffer> | undefined}} The text and buffer object * @returns {{text: string, file: Buffer<ArrayBuffer> | undefined}} The text and buffer object
* *
*/ */
messageHelper.returnBufferFromText = function (text) { msgh.returnBufferFromText = function (text) {
if (text.length > 2000) { if (text.length > 2000) {
const truncated = text.substring(0, 2000); const truncated = text.substring(0, 2000);
const restOfText = text.substring(2000); const restOfText = text.substring(2000);
@@ -80,4 +80,4 @@ messageHelper.returnBufferFromText = function (text) {
return {text: text, file: undefined} return {text: text, file: undefined}
} }
module.exports = messageHelper; module.exports.messageHelper = msgh;

View File

@@ -1,4 +1,4 @@
const enums = require('../enums'); const {enums} = require('../enums');
const utils = {}; const utils = {};
@@ -54,4 +54,4 @@ utils.setExpirationWarning = function (imgUrl = null, expirationString = null) {
return null; return null;
} }
module.exports = utils; module.exports.utils = utils;

View File

@@ -93,4 +93,4 @@ webhookHelper.getWebhook = async function(client, channel) {
return channelWebhooks.find((webhook) => webhook.name === name); return channelWebhooks.find((webhook) => webhook.name === name);
} }
module.exports = webhookHelper; module.exports.webhookHelper = webhookHelper;

View File

@@ -590,6 +590,7 @@ describe('MemberHelper', () => {
proxy: null, proxy: null,
propic: null propic: null
} }
utils.setExpirationWarning = jest.fn().mockReturnValue();
database.members.create = jest.fn().mockResolvedValue(expectedMemberArgs); database.members.create = jest.fn().mockResolvedValue(expectedMemberArgs);
const expectedReturn = {member: expectedMemberArgs, errors: []} const expectedReturn = {member: expectedMemberArgs, errors: []}
// Act // Act
@@ -628,12 +629,12 @@ describe('MemberHelper', () => {
test('calls setExpirationWarning if attachmentExpiration exists', async () => { test('calls setExpirationWarning if attachmentExpiration exists', async () => {
// Arrange // Arrange
utils.checkImageFormatValidity = jest.fn().mockResolvedValue(true); utils.checkImageFormatValidity = jest.fn().mockResolvedValue(true);
jest.spyOn(memberHelper, 'setExpirationWarning').mockReturnValue(`${enums.misc.ATTACHMENT_EXPIRATION_WARNING}`); utils.setExpirationWarning = jest.fn().mockReturnValue(`${enums.misc.ATTACHMENT_EXPIRATION_WARNING}`);
// Act // Act
await memberHelper.addFullMember(authorId, mockMember.name, null, null, mockMember.propic, attachmentExpiration) await memberHelper.addFullMember(authorId, mockMember.name, null, null, mockMember.propic, attachmentExpiration)
// Assert // Assert
expect(memberHelper.setExpirationWarning).toHaveBeenCalledTimes(1); expect(utils.setExpirationWarning).toHaveBeenCalledTimes(1);
expect(memberHelper.setExpirationWarning).toHaveBeenCalledWith(mockMember.propic, attachmentExpiration); expect(utils.setExpirationWarning).toHaveBeenCalledWith(mockMember.propic, attachmentExpiration);
}) })
test('if all values are valid, call database.members.create', async () => { test('if all values are valid, call database.members.create', async () => {
@@ -648,6 +649,7 @@ describe('MemberHelper', () => {
} }
database.members.create = jest.fn().mockResolvedValue(expectedMemberArgs); database.members.create = jest.fn().mockResolvedValue(expectedMemberArgs);
utils.checkImageFormatValidity = jest.fn().mockResolvedValue(true); utils.checkImageFormatValidity = jest.fn().mockResolvedValue(true);
utils.setExpirationWarning = jest.fn().mockReturnValue();
const expectedReturn = {member: expectedMemberArgs, errors: []} const expectedReturn = {member: expectedMemberArgs, errors: []}
// Act // Act
const res = await memberHelper.addFullMember(authorId, mockMember.name, mockMember.displayname, mockMember.proxy, mockMember.propic); const res = await memberHelper.addFullMember(authorId, mockMember.name, mockMember.displayname, mockMember.proxy, mockMember.propic);
@@ -662,7 +664,7 @@ describe('MemberHelper', () => {
describe('updateMemberField', () => { describe('updateMemberField', () => {
const {database} = require('../../src/database.js'); const {database} = require('../../src/database.js');
beforeEach(() => { beforeEach(() => {
jest.spyOn(memberHelper, "setExpirationWarning").mockReturnValue(' warning'); utils.setExpirationWarning = jest.fn().mockReturnValue(`warning`);
database.members = { database.members = {
update: jest.fn().mockResolvedValue([1]) update: jest.fn().mockResolvedValue([1])
}; };