- Registrar wants to add a migration to every registry item.
Specific example: Author of
Embeddable
api wants to migrate baseEmbeddableInput
. - Enhancer wants to add a migration to every registry item.
Specific example: Author of
EnhancedEmbeddableDrilldowns
wants to migrateEnhancedEmbeddableInput
. - Registrator wants to add a migration to it's specific registry item.
Example: Author of
Visualize
plugin wants to migrateVisualizeEmbeddableInput
Solve for:
Base state:
interface EmbeddableInput {
defaultTitle: string
}
Extended state:
interface VisualizeEmbeddableInput extends EmbeddableInput {
title: string
}
Embeddable plugin wishes to migrate defaultTitle
to title
. It shouldn't have to know about VisualizeEmbeddableInput
to do so safely (third party developers are out there that we can't collaborate with).