libs/sdk/src/lib/journey/config/migrations/small-print-config/small-print-config.ts
Omit
Properties |
|
smallPrint (Optional) | |
Type |
string[]
|
import { PageJsonSchema, PagesJsonSchema } from '../../../../model';
import { copyComments } from '../shared/jsonc-comments';
import { cloneDeepWithJsonComments } from '../shared/utils';
export interface PageJsonSchemaBeforeSmallPrintMigration
extends Omit<PageJsonSchema, 'smallPrint'> {
smallPrint?: string[];
}
export function migrateSmallPrintConfigurationPagesJson(pagesConfiguration: PagesJsonSchema) {
if (!pagesConfiguration.pages) {
return pagesConfiguration;
}
const migratedPageConfigurations = pagesConfiguration.pages.map((pageConfig) =>
migratePageSmallPrintConfig(pageConfig as PageJsonSchemaBeforeSmallPrintMigration)
);
const migratedPagesConfiguration = cloneDeepWithJsonComments(pagesConfiguration);
migratedPagesConfiguration.pages = migratedPageConfigurations;
migratedPagesConfiguration.pages = copyComments(
migratedPagesConfiguration.pages,
pagesConfiguration.pages
);
return migratedPagesConfiguration as PagesJsonSchema;
}
export function migratePageSmallPrintConfig(
pageConfiguration: PageJsonSchemaBeforeSmallPrintMigration
) {
const smallPrint = pageConfiguration?.smallPrint;
if (smallPrint === undefined) {
return pageConfiguration as PageJsonSchema;
}
const pageConfigurationWithJsonComments = cloneDeepWithJsonComments(pageConfiguration);
let migratedPageConfiguration: PageJsonSchema = {
...pageConfigurationWithJsonComments,
smallPrint: {
items: pageConfigurationWithJsonComments.smallPrint as string[]
}
};
migratedPageConfiguration = copyComments(
migratedPageConfiguration,
pageConfigurationWithJsonComments
);
return migratedPageConfiguration;
}