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.

26 lines (21 loc) 722 B
import type { IResourceItem } from "../../../contexts/resource/types"; import { getParentResource, removeLeadingTrailingSlashes, } from "../../helpers/router"; export const createResourceKey = ( resource: IResourceItem, resources: IResourceItem[], ) => { const parents: IResourceItem[] = []; let currentParentResource = getParentResource(resource, resources); while (currentParentResource) { parents.push(currentParentResource); currentParentResource = getParentResource(currentParentResource, resources); } parents.reverse(); const key = [...parents, resource] .map((r) => removeLeadingTrailingSlashes(r.identifier ?? r.name)) .join("/"); return `/${key.replace(/^\//, "")}`; };