File

libs/sdk/src/lib/journey/config/migrations/small-print-config/small-print-config.ts

Extends

Omit

Index

Properties

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;
}

results matching ""

    No results matching ""