UNPKG

obsidian-dev-utils

Version:

This is the collection of useful functions that you can use for your Obsidian plugin development

83 lines (82 loc) 2.37 kB
/** * @packageDocumentation * * Contains utility functions for handling references in Obsidian. */ import type { FrontmatterLinkCache, Reference } from 'obsidian'; import type { FileChange } from './FileChange.cjs'; /** * A reference within a file node in a canvas. */ export interface CanvasFileNodeReference extends CanvasReference { /** * A type of reference. */ type: 'file'; } /** * A reference within a canvas. */ export interface CanvasReference extends FrontmatterLinkCache { /** * Whether the reference is a canvas reference. */ isCanvas: true; /** * An index of the node in the canvas. */ nodeIndex: number; /** * A type of reference. */ type: 'file' | 'text'; } /** * A reference within a text node in a canvas. */ export interface CanvasTextNodeReference extends CanvasReference { /** * An original reference. */ originalReference: Reference; /** * A type of reference. */ type: 'text'; } /** * Checks if a reference is a canvas file node reference. * * @param reference - The reference to check. * @returns Whether the reference is a canvas file node reference. */ export declare function isCanvasFileNodeReference(reference: Reference): reference is CanvasFileNodeReference; /** * Checks if a reference is a canvas reference. * * @param reference - The reference to check. * @returns Whether the reference is a canvas reference. */ export declare function isCanvasReference(reference: Reference): reference is CanvasReference; /** * Checks if a reference is a canvas text node reference. * * @param reference - The reference to check. * @returns Whether the reference is a canvas text node reference. */ export declare function isCanvasTextNodeReference(reference: Reference): reference is CanvasTextNodeReference; /** * Converts a reference to a file change. * * @param reference - The reference to convert. * @param newContent - The new content for the reference. * @returns The file change. */ export declare function referenceToFileChange(reference: Reference, newContent: string): FileChange; /** * Sorts references by their type and position. * * @param references - The references to sort. * @returns The sorted references. */ export declare function sortReferences(references: Reference[]): Reference[];