Files
outline/server/queues/processors/MarkdownImportsProcessor.ts
Tom Moor 82d7041b6b chore: Refactor Markdown importer to use new import pipeline (#12361)
* chore: Refactor Markdown importer to use new import pipeline

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 14:10:15 -04:00

38 lines
1.3 KiB
TypeScript

import type { Transaction } from "sequelize";
import type { ImportTaskInput } from "@shared/schema";
import { ImportTaskPhase, IntegrationService } from "@shared/types";
import type { Import, ImportTask } from "@server/models";
import MarkdownAPIImportTask from "../tasks/MarkdownAPIImportTask";
import ImportsProcessor from "./ImportsProcessor";
export default class MarkdownImportsProcessor extends ImportsProcessor<IntegrationService.Markdown> {
protected canProcess(
importModel: Import<IntegrationService.Markdown>
): boolean {
return importModel.service === IntegrationService.Markdown;
}
protected getInitialPhase(): ImportTaskPhase {
return ImportTaskPhase.Bootstrap;
}
protected async buildTasksInput(
importModel: Import<IntegrationService.Markdown>,
_transaction: Transaction
): Promise<ImportTaskInput<IntegrationService.Markdown>> {
if (!importModel.scratch?.storageKey) {
throw new Error(
"Markdown import is missing scratch.storageKey for the bootstrap phase"
);
}
return [{ externalId: importModel.input[0].externalId }];
}
protected async scheduleTask(
importTask: ImportTask<IntegrationService.Markdown>
): Promise<void> {
await new MarkdownAPIImportTask().schedule({ importTaskId: importTask.id });
}
}