sb-mig
Version:
CLI to rule the world. (and handle stuff related to Storyblok CMS)
78 lines (77 loc) • 2.84 kB
TypeScript
import type { MigrateFrom, MigrationPipelineResult } from "./component-data-migration.js";
import type { MutationWriteResult, MutationWriteSummary } from "./write-summary.js";
import type { PublishLanguagesOption } from "../stories/stories.types.js";
import type { RequestBaseConfig } from "../utils/request.js";
type MigrationRunLogEvent = "update_success" | "update_failed" | "publish_success" | "publish_failed" | "publish_skipped" | "migration_write_summary";
export interface MigrationRunLogRecord {
timestamp: string;
event: MigrationRunLogEvent;
runId: string;
itemType: "story" | "preset";
source: {
migrateFrom: MigrateFrom;
from: string;
fromFilePath: string | null;
};
target: {
to: string;
};
writeMode: "publish" | "save";
publishLanguages?: {
requested?: PublishLanguagesOption;
resolved?: string[];
};
dryRun: boolean;
migrationConfigs: string[];
totalItems: number;
totalChangedItems: number;
writeSummary?: {
total: number;
successful: number;
failed: number;
failedItems: Array<{
id?: number | string;
name?: string;
slug?: string;
spaceId?: string;
status?: number | string;
response?: string | null;
stage?: "update" | "publish";
sourcePublishState?: string;
publishSkippedReason?: string;
}>;
};
item?: {
index: number;
id?: number | string;
name?: string;
slug?: string;
spaceId?: string;
};
status?: number | string | null;
response?: string | null;
stage?: "update" | "publish";
sourcePublishState?: string;
publishSkippedReason?: string;
error?: unknown;
}
interface SaveMigrationRunLogArgs {
artifactBaseName: string;
useDatestamp: boolean;
from: string;
to: string;
itemType: "story" | "preset";
dryRun?: boolean;
publish?: boolean;
publishLanguages?: PublishLanguagesOption;
resolvedPublishLanguages?: string[];
migrateFrom: MigrateFrom;
fromFilePath?: string;
pipelineResult: MigrationPipelineResult;
writeResults: PromiseSettledResult<MutationWriteResult>[];
writeSummary: MutationWriteSummary;
}
export declare const buildMigrationRunLogRecords: ({ from, to, itemType, dryRun, publish, publishLanguages, resolvedPublishLanguages, migrateFrom, fromFilePath, pipelineResult, writeResults, writeSummary, }: Omit<SaveMigrationRunLogArgs, "artifactBaseName" | "useDatestamp">) => MigrationRunLogRecord[];
export declare const recordsToJsonl: (records: MigrationRunLogRecord[]) => string;
export declare const saveMigrationRunLog: (args: SaveMigrationRunLogArgs, config: RequestBaseConfig) => Promise<void>;
export {};