mirror of
https://github.com/bulwarkmail/webmail.git
synced 2026-11-01 16:12:02 +00:00
23 lines
842 B
TypeScript
23 lines
842 B
TypeScript
import type { ImportSummary } from './boot';
|
|
|
|
/**
|
|
* Copy an existing single-instance install's local files into an
|
|
* uninitialised shared store (#1066). Every store brings its own steps (in
|
|
* lib/shared-store/import/<part>.ts); each step reads that store's local
|
|
* files exactly as local mode would and writes only what the store doesn't
|
|
* hold yet (put with ifVersion: null), so running it again changes nothing.
|
|
* It never changes or deletes a local file. Returns how many items it wrote.
|
|
*/
|
|
export interface ImportStep {
|
|
name: string;
|
|
run(): Promise<number>;
|
|
}
|
|
|
|
const STEPS: ImportStep[] = [];
|
|
|
|
export async function importLocalData(steps: ImportStep[] = STEPS): Promise<ImportSummary> {
|
|
const imported: Record<string, number> = {};
|
|
for (const step of steps) imported[step.name] = await step.run();
|
|
return { imported };
|
|
}
|