UNPKG

@refinedev/core

Version:

Refine is a React meta-framework for building enterprise-level, data-intensive applications rapidly with support for modern UI libraries and headless integrations.

38 lines (33 loc) 830 B
import type { IResourceItem } from "../../../contexts/resource/types"; /** * Remove all properties that are non-serializable from a resource object. */ export const sanitizeResource = ( resource?: Partial<IResourceItem> & Required<Pick<IResourceItem, "name">> & { children?: unknown }, ): | (Partial<IResourceItem> & Required<Pick<IResourceItem, "name">>) | undefined => { if (!resource) { return undefined; } const { icon, list, edit, create, show, clone, children, meta, options, ...restResource } = resource; const { icon: _metaIcon, ...restMeta } = meta ?? {}; const { icon: _optionsIcon, ...restOptions } = options ?? {}; return { ...restResource, ...(meta ? { meta: restMeta } : {}), ...(options ? { options: restOptions } : {}), }; };