import { ANCHOR_PREFIX } from "#configuration/constants/document.constants"; import { LINE_INFIX } from "#configuration/constants/anatomy.constants"; import type { NodeTarget } from "#types/folder.types"; export const targetOf = function targetOf(href: string): NodeTarget | null { const cut = href.lastIndexOf(ANCHOR_PREFIX); if (cut === -1) { return null; } const fragment = href.slice(cut + ANCHOR_PREFIX.length); const mark = fragment.indexOf(LINE_INFIX); if (mark === -1) { return { id: fragment, line: null, text: null }; } const tail = fragment.slice(mark + LINE_INFIX.length); const line = Number(tail); return Number.isInteger(line) ? { id: fragment.slice(0, mark), line, text: null } : { id: fragment.slice(0, mark), line: null, text: tail }; };