Skip to content

Commit 3673f7d

Browse files
committed
fix(core): ensure modules have unique names (#120)
1 parent 07d70c2 commit 3673f7d

File tree

4 files changed

+22
-20
lines changed

4 files changed

+22
-20
lines changed

src/core/checkUniqueModuleNames.ts

Whitespace-only changes.

src/core/createEnvForModule.ts

+7-4
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,15 @@ const createEnvForModule = (constantName: string) =>
1717
return acc;
1818
}, {});
1919

20-
export const createAllModules = async (
21-
modules: Record<string, ModuleCreator>,
22-
): Promise<CreatedModule[]> => {
20+
export const createAllModules = async (modules: ModuleCreator[]): Promise<CreatedModule[]> => {
21+
const uniqueModuleNames = new Set(modules.map((module) => module.name));
22+
if (uniqueModuleNames.size !== modules.length) {
23+
throw new Error('Found duplicate module names');
24+
}
25+
2326
const createdModules: CreatedModule[] = [];
2427

25-
for (const { name, factory } of Object.values(modules)) {
28+
for (const { name, factory } of modules) {
2629
const moduleConstantName = constantCase(name);
2730
const env = createEnvForModule(moduleConstantName);
2831
const module = await factory({ env });

src/main.ts

+15-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,21 @@ import { createAllModules } from './core/createEnvForModule';
44
import { env } from './core/env';
55
import { getIntentsFromModules } from './core/getIntentsFromModules';
66
import { loadModules } from './core/loadModules';
7-
import { modules } from './modules/modules';
7+
import { coolLinksManagement } from './modules/coolLinksManagement/coolLinksManagement.module';
8+
import { fart } from './modules/fart/fart.module';
9+
import { fixEmbedTwitterVideo } from './modules/fixEmbedTwitterVideo/fixEmbedTwitterVideo.module';
10+
import { quoiFeur } from './modules/quoiFeur/quoiFeur.module';
11+
import { recurringMessage } from './modules/recurringMessage/recurringMessage.module';
12+
import { voiceOnDemand } from './modules/voiceOnDemand/voiceOnDemand.module';
13+
14+
const modules = [
15+
fart,
16+
voiceOnDemand,
17+
coolLinksManagement,
18+
quoiFeur,
19+
recurringMessage,
20+
fixEmbedTwitterVideo,
21+
];
822

923
const createdModules = await createAllModules(modules);
1024

src/modules/modules.ts

-15
This file was deleted.

0 commit comments

Comments
 (0)