alinea
Version:
[](https://npmjs.org/package/alinea) [](https://packagephobia.com/result?p=alinea)
48 lines (46 loc) • 1.42 kB
JavaScript
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
};