@fontoxml/fontoxml-development-tools
Version:
Development tools for Fonto.
41 lines (34 loc) • 1.34 kB
JavaScript
import express from 'express';
import fs from 'fs-extra';
import path from 'path';
import { pathToFileURL } from 'url';
import configureFontoSessionMiddleware from './configureFontoSessionMiddleware.js';
import configureScopeMiddleware from './configureScopeMiddleware.js';
import connectorsCmsStandardCreateMiddleware from './connectors-cms-standard/createMiddleware.js';
import connectorsDistCreateMiddleware from './connectors-dist/createMiddleware.js';
import connectorsHealthCreateMiddleware from './connectors-health/createMiddleware.js';
/** @typedef {import('../src/getAppConfig.js').DevCmsConfig} DevCmsConfig */
/**
* @param {DevCmsConfig} config
*/
export default async function setupDevCms(config) {
const configureDevCmsPath = path.resolve(
config.root,
'dev-cms',
'configureDevCms.js'
);
let devCmsConfig = {};
if (fs.existsSync(configureDevCmsPath)) {
devCmsConfig = (
await import(pathToFileURL(configureDevCmsPath))
).default(express.Router(), config);
}
config.reviewAnnotationFilter = devCmsConfig.reviewAnnotationFilter || null;
return [
configureFontoSessionMiddleware(),
configureScopeMiddleware(config),
...connectorsHealthCreateMiddleware(),
...(config.dist ? connectorsDistCreateMiddleware(config) : []),
...connectorsCmsStandardCreateMiddleware(config, devCmsConfig.routes),
];
}