2016-11-04 09:03:13 +01:00
|
|
|
'use strict';
|
2016-11-04 09:35:53 +01:00
|
|
|
|
2021-03-11 22:51:58 +01:00
|
|
|
// eslint-disable-next-line
|
2021-04-22 10:07:10 +02:00
|
|
|
import EventEmitter from "events";
|
|
|
|
import { IUnleashConfig } from '../types/option';
|
|
|
|
import { IUnleashStores } from '../types/stores';
|
2021-03-11 22:51:58 +01:00
|
|
|
|
2021-04-27 09:16:44 +02:00
|
|
|
import { createDb } from './db-pool';
|
|
|
|
import EventStore from './event-store';
|
|
|
|
import FeatureToggleStore from './feature-toggle-store';
|
|
|
|
import FeatureTypeStore from './feature-type-store';
|
|
|
|
import StrategyStore from './strategy-store';
|
|
|
|
import ClientInstanceStore from './client-instance-store';
|
|
|
|
import ClientMetricsDb from './client-metrics-db';
|
|
|
|
import ClientMetricsStore from './client-metrics-store';
|
|
|
|
import ClientApplicationsStore from './client-applications-store';
|
|
|
|
import ContextFieldStore from './context-field-store';
|
|
|
|
import SettingStore from './setting-store';
|
|
|
|
import UserStore from './user-store';
|
|
|
|
import ProjectStore from './project-store';
|
|
|
|
import TagStore from './tag-store';
|
|
|
|
import TagTypeStore from './tag-type-store';
|
|
|
|
import AddonStore from './addon-store';
|
|
|
|
import { ApiTokenStore } from './api-token-store';
|
|
|
|
import SessionStore from './session-store';
|
|
|
|
import { AccessStore } from './access-store';
|
|
|
|
import { ResetTokenStore } from './reset-token-store';
|
2016-11-04 09:03:13 +01:00
|
|
|
|
2021-04-22 10:07:10 +02:00
|
|
|
export const createStores = (
|
|
|
|
config: IUnleashConfig,
|
|
|
|
eventBus: EventEmitter,
|
|
|
|
): IUnleashStores => {
|
2020-04-14 22:29:11 +02:00
|
|
|
const { getLogger } = config;
|
2019-10-02 23:14:53 +02:00
|
|
|
const db = createDb(config);
|
2019-04-30 21:14:23 +02:00
|
|
|
const eventStore = new EventStore(db, getLogger);
|
|
|
|
const clientMetricsDb = new ClientMetricsDb(db, getLogger);
|
2016-11-05 10:16:48 +01:00
|
|
|
|
|
|
|
return {
|
2016-11-05 14:08:47 +01:00
|
|
|
db,
|
2016-11-05 10:16:48 +01:00
|
|
|
eventStore,
|
2021-01-18 12:32:19 +01:00
|
|
|
featureToggleStore: new FeatureToggleStore(db, eventBus, getLogger),
|
2020-08-06 11:18:52 +02:00
|
|
|
featureTypeStore: new FeatureTypeStore(db, getLogger),
|
2021-01-18 12:32:19 +01:00
|
|
|
strategyStore: new StrategyStore(db, getLogger),
|
2021-04-27 09:16:44 +02:00
|
|
|
clientApplicationsStore: new ClientApplicationsStore(db, eventBus),
|
2019-08-04 11:10:51 +02:00
|
|
|
clientInstanceStore: new ClientInstanceStore(db, eventBus, getLogger),
|
|
|
|
clientMetricsStore: new ClientMetricsStore(
|
|
|
|
clientMetricsDb,
|
|
|
|
eventBus,
|
2020-04-14 22:29:11 +02:00
|
|
|
getLogger,
|
2019-08-04 11:10:51 +02:00
|
|
|
),
|
2021-04-22 10:07:10 +02:00
|
|
|
contextFieldStore: new ContextFieldStore(db, getLogger),
|
2020-04-13 22:38:46 +02:00
|
|
|
settingStore: new SettingStore(db, getLogger),
|
2020-05-12 23:05:26 +02:00
|
|
|
userStore: new UserStore(db, getLogger),
|
2020-09-28 21:54:44 +02:00
|
|
|
projectStore: new ProjectStore(db, getLogger),
|
2021-01-18 12:32:19 +01:00
|
|
|
tagStore: new TagStore(db, eventBus, getLogger),
|
|
|
|
tagTypeStore: new TagTypeStore(db, eventBus, getLogger),
|
2021-01-19 10:42:45 +01:00
|
|
|
addonStore: new AddonStore(db, eventBus, getLogger),
|
2021-03-11 22:51:58 +01:00
|
|
|
accessStore: new AccessStore(db, eventBus, getLogger),
|
2021-03-29 19:58:11 +02:00
|
|
|
apiTokenStore: new ApiTokenStore(db, eventBus, getLogger),
|
2021-04-16 15:29:23 +02:00
|
|
|
resetTokenStore: new ResetTokenStore(db, eventBus, getLogger),
|
2021-04-27 09:16:44 +02:00
|
|
|
sessionStore: new SessionStore(db, eventBus, getLogger),
|
2016-11-05 10:16:48 +01:00
|
|
|
};
|
|
|
|
};
|
2021-04-22 10:07:10 +02:00
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
createStores,
|
|
|
|
};
|