11import { EntityState , Update } from '@reduxjs/toolkit' ;
2+ import { fetchBaseQuery } from '@reduxjs/toolkit/dist/query' ;
23import { PatchCollection } from '@reduxjs/toolkit/dist/query/core/buildThunks' ;
34import {
45 ASSETS_CATEGORIES ,
56 BoardId ,
67 IMAGE_CATEGORIES ,
78 IMAGE_LIMIT ,
89} from 'features/gallery/store/types' ;
10+ import {
11+ ImageMetadataAndWorkflow ,
12+ zCoreMetadata ,
13+ } from 'features/nodes/types/types' ;
914import { getMetadataAndWorkflowFromImageBlob } from 'features/nodes/util/getMetadataAndWorkflowFromImageBlob' ;
1015import { keyBy } from 'lodash-es' ;
1116import { ApiFullTagDescription , LIST_TAG , api } from '..' ;
17+ import { $authToken , $projectId } from '../client' ;
1218import { components , paths } from '../schema' ;
1319import {
1420 DeleteBoardResult ,
@@ -27,9 +33,6 @@ import {
2733 imagesSelectors ,
2834} from '../util' ;
2935import { boardsApi } from './boards' ;
30- import { ImageMetadataAndWorkflow } from 'features/nodes/types/types' ;
31- import { fetchBaseQuery } from '@reduxjs/toolkit/dist/query' ;
32- import { $authToken , $projectId } from '../client' ;
3336
3437export const imagesApi = api . injectEndpoints ( {
3538 endpoints : ( build ) => ( {
@@ -158,18 +161,23 @@ export const imagesApi = api.injectEndpoints({
158161 let metadata = blobData . metadata ;
159162
160163 if ( args . shouldFetchMetadataFromApi ) {
161- const metadataResult = await fetchWithBaseQuery (
164+ const metadataResponse = await fetchWithBaseQuery (
162165 `images/i/${ args . image . image_name } /metadata`
163166 ) ;
164- if ( metadataResult . data ) {
165- metadata = ( metadataResult . data as UnsafeImageMetadata )
166- . metadata as UnsafeImageMetadata [ 'metadata' ] ;
167+ if ( metadataResponse . data ) {
168+ const metadataResult = zCoreMetadata . safeParse (
169+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
170+ ( metadataResponse . data as any ) ?. metadata
171+ ) ;
172+ if ( metadataResult . success ) {
173+ metadata = metadataResult . data ;
174+ }
167175 }
168176 }
169177
170178 return { data : { ...blobData , metadata } } ;
171179 } ,
172- providesTags : ( result , error , { image, shouldFetchMetadataFromApi } ) => [
180+ providesTags : ( result , error , { image } ) => [
173181 { type : 'ImageMetadataFromFile' , id : image . image_name } ,
174182 ] ,
175183 keepUnusedDataFor : 86400 , // 24 hours
0 commit comments