26 lines
801 B
TypeScript
26 lines
801 B
TypeScript
import { type PageLayoutWidget } from '@/page-layout/types/PageLayoutWidget';
|
|
import { assertIsDefinedOrThrow } from 'twenty-shared/utils';
|
|
import { type BarChartConfiguration } from '~/generated/graphql';
|
|
|
|
type AssertBarChartWidgetOrThrow = (
|
|
widget: PageLayoutWidget,
|
|
) => asserts widget is PageLayoutWidget & {
|
|
objectMetadataId: string;
|
|
configuration: BarChartConfiguration;
|
|
};
|
|
|
|
export const assertBarChartWidgetOrThrow: AssertBarChartWidgetOrThrow = (
|
|
widget: PageLayoutWidget,
|
|
) => {
|
|
assertIsDefinedOrThrow(
|
|
widget.objectMetadataId,
|
|
new Error('Widget objectMetadataId is required'),
|
|
);
|
|
|
|
if (widget.configuration?.__typename !== 'BarChartConfiguration') {
|
|
throw new Error(
|
|
`Expected BarChartConfiguration but got ${widget.configuration?.__typename}`,
|
|
);
|
|
}
|
|
};
|