Skip to content

Commit 5748cd0

Browse files
committed
fix: resolve paths
1 parent cc9fb97 commit 5748cd0

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

src/__tests__/index.test.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,8 @@ describe("event-handler-loader", () => {
120120
});
121121

122122
it("load event handlers with omitted options", async () => {
123-
await expect(loadEventHandlers(isOnceDir, eventEmitter, {})).resolves.toBeTruthy();
123+
await expect(loadEventHandlers(defaultDir, eventEmitter, {})).resolves.toBeTruthy();
124+
expect(eventEmitter.listenerCount("unhandledRejection")).toBe(1);
124125
});
125126

126127
it("load event handlers with specifically ommited preferredEventHandlerKeys", async () => {
@@ -146,8 +147,8 @@ describe("event-handler-loader", () => {
146147
await expect(loadEventHandlers(allDir, eventEmitter, { exportType: "all" })).resolves.toBeTruthy();
147148
});
148149

149-
it("handle not finding default and named exports with exportType all", async () => {
150-
await expect(loadEventHandlers(allInvalidDir, eventEmitter, { exportType: "all" })).rejects.toThrow();
150+
it("handle not finding any default and named exports with exportType all", async () => {
151+
await expect(loadEventHandlers(allInvalidDir, eventEmitter, { exportType: "all" })).resolves.toBeTruthy();
151152
});
152153

153154
it("handle invalid directories", async () => {

src/index.ts

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import * as nodeUrl from "node:url";
2+
import * as nodePath from "node:path";
23
import * as nodeFsPromises from "node:fs/promises";
34
import * as nodeUtilTypes from "node:util/types";
45
import { getModules } from "file-folder-loader";
@@ -175,9 +176,10 @@ async function loadEventHandlers(
175176
options?: LoadEventHandlersOptions,
176177
bindEventListenerOverride?: BindEventListenerOverride,
177178
) {
178-
const isValidDir = await isValidDirectory(dirPath);
179+
const absolutePath = nodePath.resolve(dirPath);
180+
const isValidDir = await isValidDirectory(absolutePath);
179181
if (!isValidDir) {
180-
throw new Error(`Invalid event handler directory path: '${dirPath}'. Must be an existent directory.`);
182+
throw new Error(`Invalid event handler directory path: '${absolutePath}'. Must be an existent accessible directory.`);
181183
}
182184
if (!hasAddListenerMethods(eventEmitterLike)) {
183185
throw new Error("Invalid eventEmitterLike instance. Must have EventEmitter methods.");
@@ -218,7 +220,7 @@ async function loadEventHandlers(
218220
if (typeof isRecursive !== "boolean") {
219221
throw new Error(`Invalid isRecursive: '${isRecursive}'. Must be a boolean.`);
220222
}
221-
const filePaths = await getModules(dirPath, { isRecursive: isRecursive, processMode: importMode });
223+
const filePaths = await getModules(absolutePath, { isRecursive: isRecursive, processMode: importMode });
222224
async function loadEventHandler(filePath: string) {
223225
const fileUrlHref = nodeUrl.pathToFileURL(filePath).href;
224226
/**

0 commit comments

Comments
 (0)