优化可读性

This commit is contained in:
lanxiuyun
2025-11-27 16:29:53 +08:00
parent 9005d070aa
commit 0bddb33fde

View File

@@ -29,6 +29,11 @@ import path from 'path';
import commonConst from '@/common/utils/commonConst'; import commonConst from '@/common/utils/commonConst';
import { copyFilesToWindowsClipboard } from './windowsClipboard'; import { copyFilesToWindowsClipboard } from './windowsClipboard';
/**
* sanitize input files 剪贴板文件合法性校验
* @param input
* @returns
*/
const sanitizeInputFiles = (input: unknown): string[] => { const sanitizeInputFiles = (input: unknown): string[] => {
const candidates = Array.isArray(input) const candidates = Array.isArray(input)
? input ? input
@@ -36,9 +41,7 @@ const sanitizeInputFiles = (input: unknown): string[] => {
? [input] ? [input]
: []; : [];
return candidates return candidates
.map((filePath) => .map((filePath) => (typeof filePath === 'string' ? filePath.trim() : ''))
typeof filePath === 'string' ? filePath.trim() : ''
)
.filter((filePath) => { .filter((filePath) => {
if (!filePath) return false; if (!filePath) return false;
try { try {
@@ -49,18 +52,6 @@ const sanitizeInputFiles = (input: unknown): string[] => {
}); });
}; };
const writeMacClipboardFiles = (files: string[]): boolean => {
try {
clipboard.writeBuffer(
'NSFilenamesPboardType',
Buffer.from(plist.build(files))
);
return true;
} catch {
return false;
}
};
const runnerInstance = runner(); const runnerInstance = runner();
const detachInstance = detach(); const detachInstance = detach();
@@ -264,12 +255,21 @@ class API extends DBInstance {
public copyFile({ data }) { public copyFile({ data }) {
const targetFiles = sanitizeInputFiles(data?.file); const targetFiles = sanitizeInputFiles(data?.file);
if (!targetFiles.length) { if (!targetFiles.length) {
return false; return false;
} }
if (process.platform === 'darwin') { if (process.platform === 'darwin') {
return writeMacClipboardFiles(targetFiles); try {
clipboard.writeBuffer(
'NSFilenamesPboardType',
Buffer.from(plist.build(targetFiles))
);
return true;
} catch {
return false;
}
} }
if (process.platform === 'win32') { if (process.platform === 'win32') {