sb-mig
Version:
CLI to rule the world. (and handle stuff related to Storyblok CMS)
68 lines (67 loc) • 2.19 kB
TypeScript
export type MigrationValidationIssue = {
componentPath: string;
component: string;
uid: string | null;
message: string;
};
export type ComponentRule = {
forbiddenFields?: string[];
requiredFields?: string[];
forbiddenTopLevelKeys?: string[];
requiredTopLevelKeys?: string[];
checkItemBasis?: boolean;
checkEmbedSizes?: boolean;
};
export type WrapperNormalizationRule = {
wrapperToBase: Record<string, string>;
};
export type RuleSetConfig = {
ruleSetName: string;
rules: Record<string, ComponentRule>;
noIssuesMessage: string;
wrapperNormalization?: WrapperNormalizationRule;
};
export type MigrationValidationDataFn = (args: {
data: unknown;
isDebug?: boolean;
}) => MigrationValidationReport | Promise<MigrationValidationReport>;
export type PreparedMigrationValidator = {
id: string;
name: string;
ruleSet?: RuleSetConfig;
validateData?: MigrationValidationDataFn;
sourcePath: string;
};
export type MigrationValidationReport = {
ok: boolean;
issueCount: number;
issues: MigrationValidationIssue[];
};
export declare class MigrationValidationFailedError extends Error {
migrationConfig: string;
validatorId: string;
validatorName: string;
issueCount: number;
issues: MigrationValidationIssue[];
constructor({ migrationConfig, validatorId, validatorName, issueCount, issues, }: {
migrationConfig: string;
validatorId: string;
validatorName: string;
issueCount: number;
issues: MigrationValidationIssue[];
});
}
export declare const discoverMigrationValidatorForMigrationFile: ({ migrationConfigName, migrationConfigPath, }: {
migrationConfigName: string;
migrationConfigPath: string;
}) => PreparedMigrationValidator | null;
export declare const validateRuleSetData: ({ data, ruleSet, isDebug, }: {
data: unknown;
ruleSet: RuleSetConfig;
isDebug?: boolean;
}) => MigrationValidationReport;
export declare const runPreparedMigrationValidator: ({ validator, data, isDebug, }: {
validator: PreparedMigrationValidator;
data: unknown;
isDebug?: boolean;
}) => MigrationValidationReport;