Files
directus/app/src/modules/define.ts
2020-07-29 11:24:52 -04:00

30 lines
692 B
TypeScript

import { i18n } from '@/lang/';
import { ModuleDefineParam, ModuleContext, ModuleConfig } from './types';
export function defineModule(config: ModuleDefineParam | ((context: ModuleContext) => ModuleConfig)): ModuleConfig {
let options: ModuleConfig;
if (typeof config === 'function') {
const context: ModuleContext = { i18n };
options = config(context);
} else {
options = config;
}
if (options.routes !== undefined) {
options.routes = options.routes.map((route) => {
if (route.path) {
route.path = `/${options.id}${route.path}`;
}
if (route.redirect) {
route.redirect = `/${options.id}${route.redirect}`;
}
return route;
});
}
return options;
}