Files
bigcapital/server/src/loaders/index.ts
Ahmed Bouhuolia a22c8395f3 feat: remove path alias.
feat: remove Webpack and depend on nodemon.
feat: refactoring expenses.
feat: optimize system users with caching.
feat: architecture tenant optimize.
2020-09-15 00:51:39 +02:00

37 lines
1.2 KiB
TypeScript

import Logger from 'loaders/logger';
import mongooseLoader from 'loaders/mongoose';
import jobsLoader from 'loaders/jobs';
import expressLoader from 'loaders/express';
import databaseLoader from 'loaders/database';
import dependencyInjectorLoader from 'loaders/dependencyInjector';
import objectionLoader from 'database/objection';
import i18nConfig from 'loaders/i18n';
// We have to import at least all the events once so they can be triggered
import 'loaders/events';
export default async ({ expressApp }) => {
const mongoConnection = await mongooseLoader();
Logger.info('[init] MongoDB loaded and connected!');
// Initialize the system database once app started.
const knex = databaseLoader();
// Initialize the objection.js from knex instance.
objectionLoader({ knex });
// It returns the agenda instance because it's needed in the subsequent loaders
const { agenda } = await dependencyInjectorLoader({
mongoConnection,
knex,
});
await jobsLoader({ agenda });
Logger.info('[init] Jobs loaded');
expressLoader({ app: expressApp });
Logger.info('[init] Express loaded');
i18nConfig();
Logger.info('[init] I18n node configured.');
};