mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-16 21:00:31 +00:00
feat: remove Webpack and depend on nodemon. feat: refactoring expenses. feat: optimize system users with caching. feat: architecture tenant optimize.
37 lines
1.2 KiB
TypeScript
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.');
|
|
};
|