UNPKG

@refinedev/core

Version:

refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.

31 lines (26 loc) 803 B
import type { IResourceItem } from "../../../contexts/resource/types"; import { getParentResource, removeLeadingTrailingSlashes, } from "../../helpers/router"; export const createResourceKey = ( resource: IResourceItem, resources: IResourceItem[], legacy = false, ) => { 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( (legacy ? r.route : undefined) ?? r.identifier ?? r.name, ), ) .join("/"); return `/${key.replace(/^\//, "")}`; };