import log from "electron-log/main"; import fs from "fs"; import path from "path"; const findFileCaseInsensitive = async ( extensionlessFilePath: string, extensions: string[], ): Promise => { const directory: string = path.dirname(extensionlessFilePath); try { const matchingFiles = fs.readdirSync(directory).filter((file: string) => { return ( extensions.some((ext) => file.toLowerCase().endsWith(ext.toLowerCase()), ) && path .basename(file, path.extname(file)) .toLowerCase() .startsWith(path.basename(extensionlessFilePath).toLowerCase()) ); }); const files: string[] = []; matchingFiles.forEach((file) => { const fullPath = path.join(directory, file); files.push(fullPath); }); // Return the first matching file if needed if (files.length > 0) { return files[0]; } } catch (error) { log.error(`Failed to read directory ${directory}:`, error); throw error; } return null; }; const getFilePathWithoutExtension = (filePath: string): string => { return path.join( path.dirname(filePath), path.basename(filePath, path.extname(filePath)), ); }; export { findFileCaseInsensitive };