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
text/typescript
/**
* @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[];