mirror of
https://github.com/amitwh/markdown-converter.git
synced 2026-08-02 18:10:18 +05:30
fix: list-directory returns flat array, drop defensive fallback
The list-directory handler returned { path, entries } while the
renderer typed result.data as FileEntry[]; the file-store had to fall
back to raw.entries via Array.isArray. Extract the entries builder into
src/main/files/list-directory.js so it can be unit-tested, return a
plain array, and skip entries that can't be stat'd (broken symlinks,
permission errors) instead of throwing.
Also tighten jest config so dist/*.snap electron-builder artifacts are
not matched as test suites.
This commit is contained in:
+2
-16
@@ -13,6 +13,7 @@ const WordTemplateExporter = require('./word-template');
|
||||
const PDFOperations = require('./PDFOperations');
|
||||
const { validatePath, resolveWritablePath, isPathAccessible } = require('./utils/paths');
|
||||
const fileOps = require('./files');
|
||||
const { listDirectoryEntries } = require('./files/list-directory');
|
||||
const menu = require('./menu');
|
||||
const { createMainWindow } = require('./window');
|
||||
const MonospaceFontConfig = require('./MonospaceFontConfig');
|
||||
@@ -3522,22 +3523,7 @@ ipcMain.handle('list-directory', async (event, dirPath) => {
|
||||
return null;
|
||||
}
|
||||
|
||||
const entries = fs
|
||||
.readdirSync(validation.resolved, { withFileTypes: true })
|
||||
.filter((e) => !e.name.startsWith('.'))
|
||||
.sort((a, b) => {
|
||||
if (a.isDirectory() && !b.isDirectory()) return -1;
|
||||
if (!a.isDirectory() && b.isDirectory()) return 1;
|
||||
return a.name.localeCompare(b.name);
|
||||
})
|
||||
.map((e) => ({
|
||||
name: e.name,
|
||||
isDirectory: e.isDirectory(),
|
||||
size: e.isDirectory() ? 0 : fs.statSync(path.join(validation.resolved, e.name)).size,
|
||||
modified: fs.statSync(path.join(validation.resolved, e.name)).mtimeMs,
|
||||
path: path.join(validation.resolved, e.name),
|
||||
}));
|
||||
return { path: validation.resolved, entries };
|
||||
return listDirectoryEntries(validation.resolved);
|
||||
} catch (err) {
|
||||
console.error('list-directory error:', err);
|
||||
return null;
|
||||
|
||||
Reference in New Issue
Block a user