UNPKG

alinea

Version:

[![npm](https://img.shields.io/npm/v/alinea.svg)](https://npmjs.org/package/alinea) [![install size](https://packagephobia.com/badge?p=alinea)](https://packagephobia.com/result?p=alinea)

48 lines (46 loc) 1.42 kB
import { PLazy } from "../../chunks/chunk-IKINPSS5.js"; import "../../chunks/chunk-U5RRZUYZ.js"; // src/core/driver/DefaultDriver.server.tsx import { Database } from "alinea/backend"; import { createStore } from "alinea/backend/Store"; import { EntryResolver } from "alinea/backend/resolver/EntryResolver"; import { exportStore } from "alinea/cli/util/ExportStore"; import { base64 } from "alinea/core/util/Encoding"; import { CMS } from "../CMS.js"; import { Client } from "../Client.js"; import { Realm } from "../pages/Realm.js"; import { join } from "../util/Paths.js"; var DefaultDriver = class extends CMS { db = PLazy.from(this.createDb.bind(this)); exportStore(outDir, data) { return exportStore(data, join(outDir, "store.js")); } async readStore() { const { storeData } = await import("@alinea/generated/store.js"); return createStore(new Uint8Array(base64.parse(storeData))); } async resolver() { const devUrl = process.env.ALINEA_DEV_SERVER; if (devUrl) return new Client({ config: this.config, url: devUrl, resolveDefaults: { realm: Realm.Published } }); return new EntryResolver(await this.db, this.config.schema); } async createDb() { return new Database(this.config, await this.readStore()); } }; function createCMS(config) { return new DefaultDriver(config); } export { DefaultDriver, createCMS };