mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-19 02:56:23 +08:00
feat(core): import progress & perf (#15197)
#### PR Dependency Tree * **PR #15197** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added a new import pipeline with “plan then commit” batch handling for Markdown, Notion HTML, Obsidian, and Bear backups. * Enabled native import sessions with progress, cancellation, and batch-by-batch committing (including assets, folders, icons, and tags). * Added web preflight limits for ZIP and multi-file imports. * **Bug Fixes** * Improved import error/warning reporting and continued processing when some items fail. * Strengthened snapshot-based file/directory picking to preserve paths. * **Chores** * Updated project packaging/configuration for the new import workflow. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
export type NativeImportFormat =
|
||||
| 'markdownZip'
|
||||
| 'notionZip'
|
||||
| 'obsidian'
|
||||
| 'bearZip';
|
||||
|
||||
export type NativeImportBrowserSource =
|
||||
| { kind: 'file'; file: File }
|
||||
| { kind: 'directory'; files: File[] };
|
||||
|
||||
export type CreateImportSessionFromSourceOptions = {
|
||||
format: NativeImportFormat;
|
||||
source: NativeImportBrowserSource;
|
||||
batchLimits?: {
|
||||
maxDocs?: number;
|
||||
maxBlobs?: number;
|
||||
maxBlobBytes?: number;
|
||||
};
|
||||
};
|
||||
|
||||
export type NativeImportSessionHandlers = {
|
||||
createImportSession(
|
||||
options: CreateImportSessionFromSourceOptions
|
||||
): Promise<string> | string;
|
||||
nextImportBatch(sessionId: string): Promise<string | null> | string | null;
|
||||
cancelImportSession(sessionId: string): Promise<void> | void;
|
||||
disposeImportSession(sessionId: string): Promise<void> | void;
|
||||
};
|
||||
Reference in New Issue
Block a user