UNPKG

sb-mig

Version:

CLI to rule the world. (and handle stuff related to Storyblok CMS)

90 lines (89 loc) 4.25 kB
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 {};