mirror of
https://github.com/rubickCenter/rubick
synced 2025-12-17 16:24:16 +08:00
优化可读性
This commit is contained in:
@@ -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') {
|
||||||
|
|||||||
Reference in New Issue
Block a user