import type { Denormalize, Queryable, SchemaArgs, } from '@data-client/normalizr'; import { createMeta } from './createMeta.js'; import { SET } from '../../actionTypes.js'; import type { SetAction } from '../../types.js'; import ensurePojo from '../ensurePojo.js'; export function createSet( schema: S, { args, fetchedAt, value, }: { args: readonly [...SchemaArgs]; value: {} | ((previousValue: Denormalize) => {}); fetchedAt?: number; }, ): SetAction { return { type: SET, value, args: args.map(ensurePojo) as SchemaArgs, schema, meta: createMeta(60000, fetchedAt), }; }