/* oxlint-disable no-console, lingui/no-unlocalized-strings */ import { graphqlRequest, writeGeneratedFile } from './utils.js'; const FIND_ALL_VIEWS_QUERY = ` query FindAllViews { getViews { id name objectMetadataId type key icon position isCompact openRecordIn kanbanAggregateOperation kanbanAggregateOperationFieldMetadataId mainGroupByFieldMetadataId shouldHideEmptyGroups anyFieldFilterValue calendarFieldMetadataId calendarLayout visibility createdByUserWorkspaceId viewFields { id fieldMetadataId viewId isVisible position size aggregateOperation createdAt updatedAt deletedAt } viewFieldGroups { id name position isVisible viewId createdAt updatedAt deletedAt viewFields { id fieldMetadataId viewId isVisible position size aggregateOperation createdAt updatedAt deletedAt } } viewFilters { id fieldMetadataId operand value viewFilterGroupId positionInViewFilterGroup subFieldName viewId createdAt updatedAt deletedAt } viewFilterGroups { id parentViewFilterGroupId logicalOperator positionInViewFilterGroup viewId } viewSorts { id fieldMetadataId direction viewId } viewGroups { id isVisible fieldValue position viewId createdAt updatedAt deletedAt } } } `; export const generateViews = async (token: string) => { console.log('Fetching views from /metadata ...'); const data = (await graphqlRequest( '/metadata', FIND_ALL_VIEWS_QUERY, token, )) as { getViews: Record[]; }; console.log(` Got ${data.getViews.length} views.`); writeGeneratedFile( 'metadata/views/mock-views-data.ts', 'mockedViews', 'ViewWithRelations[]', "import { type ViewWithRelations } from '@/views/types/ViewWithRelations';", data.getViews, ); };