@paroicms/cli
Version:
CLI of ParoiCMS
42 lines • 1.76 kB
JavaScript
import { createOrOpenMainConnection, createRegisteredSitesFromSingle, initializeMediaStorage, loadRegisteredSitesFromPacks, loadSiteSchema, populateRoutingDocuments, readAppConfSync, readCommonSchemaLibrary, } from "@paroicms/connector";
import { isAbsolute, join } from "node:path";
export async function generateDatabase(siteDir) {
const appConf = readAppConfSync(siteDir);
const logger = console;
const regSites = appConf.kind === "multisite"
? await loadRegisteredSitesFromPacks(appConf)
: await createRegisteredSitesFromSingle(appConf);
const commonSchemaLib = await readCommonSchemaLibrary();
for (let regSite of regSites.values()) {
if (siteDir) {
regSite = {
...regSite,
siteDir,
};
}
const dataDir = isAbsolute(regSite.dataDir)
? regSite.dataDir
: join(regSite.siteDir, regSite.dataDir);
const { siteSchema } = await loadSiteSchema({
logger,
regSite,
commonSchemaLib,
commonPluginConfiguration: {
googleRecaptchaSiteKey: appConf.googleRecaptcha?.siteKey,
},
pluginConfs: appConf.plugins ?? {},
trusted: regSite.trusted,
});
const { cn, isNewDatabase } = await createOrOpenMainConnection(dataDir, {
canCreate: true,
logger,
});
if (isNewDatabase) {
await populateRoutingDocuments(cn, siteSchema, logger);
}
const mediaStorage = await initializeMediaStorage({ logger, dataDir }, { canCreate: true });
await cn.destroy();
await mediaStorage.close();
}
}
//# sourceMappingURL=database-generator.js.map