Skip to content

Commit 7a02683

Browse files
committed
fix(LocalFileExtractor): log correct error message
Problem: no matter why readFile fails, the error is reported as 'file not found' Solution: print the thrown errors message
1 parent d39b439 commit 7a02683

File tree

2 files changed

+31
-27
lines changed

2 files changed

+31
-27
lines changed

libs/extensions/std/exec/src/local-file-extractor-executor.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ describe('Validation of LocalFileExtractorExecutor', () => {
104104
expect(R.isErr(result)).toEqual(true);
105105
if (R.isErr(result)) {
106106
expect(result.left.message).toEqual(
107-
`File './does-not-exist.csv' not found.`,
107+
`ENOENT: no such file or directory, open './does-not-exist.csv'`,
108108
);
109109
}
110110
});

libs/extensions/std/exec/src/local-file-extractor-executor.ts

Lines changed: 30 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -47,36 +47,40 @@ export class LocalFileExtractorExecutor extends AbstractBlockExecutor<
4747
});
4848
}
4949

50+
let rawData: Buffer | undefined = undefined;
5051
try {
51-
const rawData = await fs.readFile(filePath);
52-
53-
// Infer FileName and FileExtension from filePath
54-
const fileName = path.basename(filePath);
55-
const extName = path.extname(fileName);
56-
const fileExtension =
57-
inferFileExtensionFromFileExtensionString(extName) ??
58-
FileExtension.NONE;
59-
60-
// Infer Mimetype from FileExtension, if not inferrable, then default to application/octet-stream
61-
const mimeType: MimeType | undefined =
62-
inferMimeTypeFromFileExtensionString(fileExtension) ??
63-
MimeType.APPLICATION_OCTET_STREAM;
64-
65-
// Create file and return file
66-
const file = new BinaryFile(
67-
fileName,
68-
fileExtension,
69-
mimeType,
70-
rawData.buffer as ArrayBuffer,
71-
);
72-
73-
context.logger.logDebug(`Successfully extraced file ${filePath}`);
74-
return R.ok(file);
75-
} catch (error) {
52+
rawData = await fs.readFile(filePath);
53+
} catch (error: unknown) {
54+
const message =
55+
error instanceof Error
56+
? error.message
57+
: `Could not read file ${filePath}`;
7658
return R.err({
77-
message: `File '${filePath}' not found.`,
59+
message: message,
7860
diagnostic: { node: context.getCurrentNode(), property: 'filePath' },
7961
});
8062
}
63+
64+
// Infer FileName and FileExtension from filePath
65+
const fileName = path.basename(filePath);
66+
const extName = path.extname(fileName);
67+
const fileExtension =
68+
inferFileExtensionFromFileExtensionString(extName) ?? FileExtension.NONE;
69+
70+
// Infer Mimetype from FileExtension, if not inferrable, then default to application/octet-stream
71+
const mimeType: MimeType | undefined =
72+
inferMimeTypeFromFileExtensionString(fileExtension) ??
73+
MimeType.APPLICATION_OCTET_STREAM;
74+
75+
// Create file and return file
76+
const file = new BinaryFile(
77+
fileName,
78+
fileExtension,
79+
mimeType,
80+
rawData.buffer as ArrayBuffer,
81+
);
82+
83+
context.logger.logDebug(`Successfully extraced file ${filePath}`);
84+
return R.ok(file);
8185
}
8286
}

0 commit comments

Comments
 (0)