一些检查失败了
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
43 行
1.1 KiB
TypeScript
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,
|
|
}));
|
|
}
|
|
|
|
}
|