文件
mynode/packages/lib/services/plugins/api/JoplinFs.ts
chen 301194963b
一些检查失败了
automerge / automerge (push) Has been cancelled
react-native-android-build-apk / AssembleRelease (push) Has been cancelled
Build macOS M1 / Main (push) Has been cancelled
Joplin Continuous Integration / Main (macos-15-intel) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-11-vs2026-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-2025) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04-arm) (push) Has been cancelled
Joplin UI tests / Main (ubuntu-22.04) (push) Has been cancelled
Joplin UI tests / Main (windows-2025) (push) Has been cancelled
Joplin UI tests / Mobile (push) Has been cancelled
Close stale issues / ProcessStaleIssues (push) Has been cancelled
feat: Initial clean release of CHM
2026-11-04 11:29:39 +08:00

43 行
1.1 KiB
TypeScript

/* eslint-disable multiline-comment-style */
import shim from '../../../shim';
export interface ArchiveEntry {
// Full path of the entry within the archive
entryName: string;
// Filename of the entry
name: string;
}
/**
* Provides file system utilities for plugins.
*
* <span class="platform-desktop">desktop</span>
*/
export default class JoplinFs {
/**
* Extracts an archive to the specified directory. Currently only ZIP files
* are supported.
*
* <span class="platform-desktop">desktop</span>
*
* @param sourcePath Path to the archive file to extract
* @param destinationPath Path to the directory where the contents should be extracted
* @returns List of entries extracted from the archive
*/
public async archiveExtract(sourcePath: string, destinationPath: string): Promise<ArchiveEntry[]> {
const entries = await shim.fsDriver().zipExtract({
source: sourcePath,
extractTo: destinationPath,
});
// Map to plain objects to ensure they can be serialized over IPC
return entries.map(e => ({
entryName: e.entryName,
name: e.name,
}));
}
}