UNPKG

studiocms

Version:

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

192 lines (191 loc) 5.27 kB
import { Effect } from "../../effect.js"; import { AstroDB, SDKCore_Collectors, SDKCore_FolderTree, SDKCore_Generators, SDKCore_Parsers, SDKCore_Users } from "./effect/index.js"; import { SDKCore_AUTH } from "./modules/auth.js"; import { SDKCore_CLEAR } from "./modules/clear.js"; import { SDKCore_CONFIG } from "./modules/config.js"; import { SDKCore_DELETE } from "./modules/delete.js"; import { SDKCore_DiffTracking } from "./modules/diffTracking.js"; import { SDKCore_GET } from "./modules/get.js"; import { SDKCore_INIT } from "./modules/init.js"; import { SDKCore_MIDDLEWARES } from "./modules/middlewares.js"; import { SDKCore_NotificationSettings } from "./modules/notificationSettings.js"; import { SDKCore_PLUGINS } from "./modules/plugins.js"; import { SDKCore_POST } from "./modules/post.js"; import { SDKCore_ResetTokenBucket } from "./modules/resetTokenBucket.js"; import { SDKCore_REST_API } from "./modules/rest_api.js"; import { SDKCore_UPDATE } from "./modules/update.js"; import { CacheContext } from "./utils.js"; const pages = /* @__PURE__ */ new Map(); const siteConfig = /* @__PURE__ */ new Map(); const version = /* @__PURE__ */ new Map(); const folderTree = /* @__PURE__ */ new Map(); const pageFolderTree = /* @__PURE__ */ new Map(); const FolderList = /* @__PURE__ */ new Map(); const pluginData = /* @__PURE__ */ new Map(); class SDKCore extends Effect.Service()("studiocms/sdk/SDKCore", { dependencies: [ SDKCore_FolderTree.Default, SDKCore_Generators.Default, SDKCore_Parsers.Default, SDKCore_Users.Default, SDKCore_Collectors.Default, SDKCore_CLEAR.Default, SDKCore_DELETE.Default, SDKCore_UPDATE.Default, SDKCore_POST.Default, SDKCore_REST_API.Default, SDKCore_GET.Default, SDKCore_ResetTokenBucket.Default, SDKCore_DiffTracking.Default, SDKCore_NotificationSettings.Default, SDKCore_AUTH.Default, SDKCore_INIT.Default, AstroDB.Default, SDKCore_MIDDLEWARES.Default, SDKCore_PLUGINS.Default, SDKCore_CONFIG.Default ], effect: Effect.gen(function* () { const [ { getFullPath, findNodeByPath, findNodesAlongPath, findNodesAlongPathToId, findNodeById, addPageToFolderTree, buildFolderTree, getAvailableFolders }, { generateRandomIDNumber, generateRandomPassword, generateToken, testToken }, { parseIdNumberArray, parseIdStringArray }, { combineRanks, verifyRank, clearUserReferences }, { collectCategories, collectTags, collectPageData, collectUserData }, dbService, CLEAR, DELETE, UPDATE, POST, REST_API, GET, resetTokenBucket, diffTracking, notificationSettings, AUTH, INIT, MIDDLEWARES, PLUGINS, CONFIG ] = yield* Effect.all([ SDKCore_FolderTree, SDKCore_Generators, SDKCore_Parsers, SDKCore_Users, SDKCore_Collectors, AstroDB, SDKCore_CLEAR, SDKCore_DELETE, SDKCore_UPDATE, SDKCore_POST, SDKCore_REST_API, SDKCore_GET, SDKCore_ResetTokenBucket, SDKCore_DiffTracking, SDKCore_NotificationSettings, SDKCore_AUTH, SDKCore_INIT, SDKCore_MIDDLEWARES, SDKCore_PLUGINS, SDKCore_CONFIG ]); const { db } = dbService; return { db, dbService, getFullPath, findNodeByPath, findNodesAlongPath, findNodesAlongPathToId, findNodeById, addPageToFolderTree, generateRandomIDNumber, generateRandomPassword, generateToken, testToken, parseIdNumberArray, parseIdStringArray, combineRanks, verifyRank, buildFolderTree, getAvailableFolders, clearUserReferences, collectCategories, collectTags, collectPageData, collectUserData, resetTokenBucket, diffTracking, notificationSettings, CLEAR, DELETE, REST_API, POST, UPDATE, GET, AUTH, INIT, MIDDLEWARES, PLUGINS, CONFIG }; }) }) { /** * Provides the default dependencies to an Effect. * * This static property uses `Effect.provide` with the default configuration (`this.Default`), * allowing consumers to inject the standard dependencies required by the SDK core. * * @remarks * Typically used to wrap effects that require the default environment or services. * * @see {@link Effect.provide} * @see {@link Default} */ static Provide = Effect.provide(this.Default); /** * Provides a static cache context containing various site-related data. * * @remarks * The cache includes pages, folder lists, folder trees, page-folder trees, * site configuration, and version information. It is created using * `CacheContext.makeProvide` for efficient access throughout the SDK. * * @see CacheContext * @see pages * @see FolderList * @see folderTree * @see pageFolderTree * @see siteConfig * @see version */ static Cache = CacheContext.makeProvide({ pages, FolderList, folderTree, pageFolderTree, siteConfig, version, pluginData }); } export { SDKCore };