UNPKG

studiocms

Version:

Astro Native CMS for AstroDB. Built from the ground up by the Astro community.

44 lines (43 loc) 2.33 kB
import { Effect } from '../../../effect.js'; import { SDKCoreError } from '../errors.js'; import type { FolderListItem, FolderNode, tsPageFolderSelect } from '../types/index.js'; import { AstroDB } from './db.js'; declare const SDKCore_FolderTree_base: Effect.Service.Class<SDKCore_FolderTree, "studiocms/sdk/SDKCore_FolderTree", { readonly effect: Effect.Effect<{ generateFolderTree: (folders: tsPageFolderSelect[]) => Effect.Effect<FolderNode[], SDKCoreError, never>; getFullPath: (tree: FolderNode[], path: string[]) => Effect.Effect<string[], SDKCoreError, never>; findNodeByPath: (tree: FolderNode[], path: string[]) => Effect.Effect<FolderNode | null, SDKCoreError, never>; findNodesAlongPath: (tree: FolderNode[], path: string[]) => Effect.Effect<FolderNode[], SDKCoreError, never>; findNodesAlongPathToId: (tree: FolderNode[], id: string) => Effect.Effect<FolderNode[], SDKCoreError, never>; findNodeById: (tree: FolderNode[], id: string) => Effect.Effect<FolderNode | null, SDKCoreError, never>; addPageToFolderTree: (tree: FolderNode[], folderId: string, newPage: FolderNode) => Effect.Effect<FolderNode[], SDKCoreError, never>; buildFolderTree: Effect.Effect<FolderNode[], import("@withstudiocms/effect/drizzle").LibSQLClientError | SDKCoreError, never>; getAvailableFolders: Effect.Effect<FolderListItem[], import("@withstudiocms/effect/drizzle").LibSQLClientError, never>; }, never, AstroDB>; readonly dependencies: readonly [import("effect/Layer").Layer<AstroDB, never, never>]; }>; /** * Service class for managing and manipulating folder trees in the StudioCMS SDK. * * Provides methods to: * - Build a folder tree structure from raw folder data. * - Find nodes and paths within the folder tree by name or ID. * - Add new pages to the folder tree. * - Retrieve folder structures and lists from the database. * * @remarks * All methods are effectful and return `Effect.Effect` instances for error handling and composability. * * @example * ```typescript * const folderTreeService = SDKCore_FolderTree; * const tree = yield* folderTreeService.buildFolderTree; * ``` * * @see FolderNode * @see SDKCoreError * @see Effect */ export declare class SDKCore_FolderTree extends SDKCore_FolderTree_base { } export {};