sb-mig
Version:
CLI to rule the world. (and handle stuff related to Storyblok CMS)
90 lines (89 loc) • 4.25 kB
TypeScript
import type { PublishLanguagesOption } from "../stories/stories.types.js";
import type { RequestBaseConfig } from "../utils/request.js";
import { type MigrationComponentAliasesByMigration, type MigrationComponentOverridesByMigration } from "./migration-component-scope.js";
import { type PreparedMigrationValidator } from "./migration-validation.js";
export type MigrateFrom = "file" | "space";
export interface PreparedMigrationConfig {
migrationConfigName: string;
migrationConfigPath: string;
migrationConfigFileContent: Record<string, MapperDefinition>;
componentsToMigrate: string[];
validator: PreparedMigrationValidator | null;
}
export interface MigrationStepValidationReport {
validatorId: string;
validatorName: string;
issueCount: number;
sourcePath: string;
}
export interface MigrationStepReport {
migrationConfig: string;
touchedItems: number;
totalComponentReplacements: number;
replacementsByComponent: Record<string, number>;
maxDepth: number;
validation: MigrationStepValidationReport | null;
}
export interface MigrationPipelineResult {
changedItems: any[];
finalItems: any[];
stepReports: MigrationStepReport[];
totalItems: number;
}
interface MigrateItems {
itemType: "story" | "preset";
from: string;
to: string;
migrateFrom: MigrateFrom;
migrationConfig: string | string[];
componentsToMigrate?: string[];
migrationComponentAliases?: MigrationComponentAliasesByMigration;
migrationComponentOverrides?: MigrationComponentOverridesByMigration;
filters?: {
withSlug?: string[];
startsWith?: string;
};
dryRun?: boolean;
publish?: boolean;
publishLanguages?: PublishLanguagesOption;
fromFilePath?: string;
fileName?: string;
preparedMigrationConfigs?: PreparedMigrationConfig[];
}
export type MapperDefinition = (data: any) => any;
export declare const normalizeMigrationConfigNames: (migrationConfig: string | string[]) => string[];
export declare const prepareStoriesFromLocalFile: ({ from, fromFilePath, }: {
from?: string;
fromFilePath?: string;
}) => any;
export declare const prepareMigrationConfigs: ({ migrationConfig, componentsToMigrate, migrationComponentAliases, migrationComponentOverrides, }: {
migrationConfig: string | string[];
componentsToMigrate?: string[];
migrationComponentAliases?: MigrationComponentAliasesByMigration;
migrationComponentOverrides?: MigrationComponentOverridesByMigration;
}) => PreparedMigrationConfig[];
export declare const prepareMigrationConfig: ({ migrationConfig, }: {
migrationConfig: string;
}) => Record<string, MapperDefinition>;
export declare const runMigrationPipelineInMemory: ({ itemType, itemsToMigrate, preparedMigrationConfigs, }: {
itemType: "story" | "preset";
itemsToMigrate: any[];
preparedMigrationConfigs: PreparedMigrationConfig[];
}) => MigrationPipelineResult;
export declare const migrateAllComponentsDataInStories: ({ itemType, migrationConfig, migrateFrom, from, to, filters, dryRun, publish, publishLanguages, fromFilePath, fileName, migrationComponentAliases, migrationComponentOverrides, }: Omit<MigrateItems, "componentsToMigrate" | "preparedMigrationConfigs">, config: RequestBaseConfig) => Promise<void>;
export declare const doTheMigration: ({ itemType, from, itemsToMigrate, migrationConfig, migrationConfigs, to, dryRun, publish, publishLanguages, migrateFrom, fromFilePath, fileName, }: {
itemType?: "story" | "preset";
from: string;
itemsToMigrate: any[];
migrationConfig?: string | string[];
migrationConfigs?: PreparedMigrationConfig[];
to: string;
dryRun?: boolean;
publish?: boolean;
publishLanguages?: PublishLanguagesOption;
migrateFrom: MigrateFrom;
fromFilePath?: string;
fileName?: string;
}, config: RequestBaseConfig) => Promise<void>;
export declare const migrateProvidedComponentsDataInStories: ({ itemType, migrationConfig, migrateFrom, from, to, componentsToMigrate, filters, dryRun, publish, publishLanguages, fromFilePath, fileName, preparedMigrationConfigs, migrationComponentAliases, migrationComponentOverrides, }: MigrateItems, config: RequestBaseConfig) => Promise<void>;
export {};