UNPKG

scrivito

Version:

Scrivito is a professional, yet easy to use SaaS Enterprise Content Management Service, built for digital agencies and medium to large businesses. It is completely maintenance-free, cost-effective, and has unprecedented performance and security.

36 lines (27 loc) 1.05 kB
import { ArgumentError, isValidInteger } from 'scrivito_sdk/common'; import { createStateContainer } from 'scrivito_sdk/state'; import { PreviewSize } from 'scrivito_sdk/ui_interface/app_adapter'; const state = createStateContainer<PreviewSize[]>(); /** @public */ export function configurePreviewSizes(previewSizes: PreviewSize[]): void { if (!previewSizes.length) { throw new ArgumentError( 'No sizes has been provided for "configurePreviewSizes"' ); } if (new Set(previewSizes.map((p) => p.width)).size !== previewSizes.length) { throw new ArgumentError('A "width" must be unique for sizes'); } if (!previewSizes.every(validatePreviewSizeWidth)) { throw new ArgumentError('A "width" must be a positive integer'); } state.set(previewSizes); } function validatePreviewSizeWidth(previewSize: PreviewSize) { const width = previewSize?.width; if (!width) return true; return isValidInteger(width) && width > 0; } export function getPreviewSizes(): PreviewSize[] | undefined { return state.get(); }