unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
43 lines • 2.53 kB
JavaScript
import GroupStore from '../../db/group-store.js';
import { AccountStore } from '../../db/account-store.js';
import RoleStore from '../../db/role-store.js';
import EnvironmentStore from '../project-environments/environment-store.js';
import { AccessStore } from '../../db/access-store.js';
import { AccessService, GroupService } from '../../services/index.js';
import FakeGroupStore from '../../../test/fixtures/fake-group-store.js';
import FakeEventStore from '../../../test/fixtures/fake-event-store.js';
import { FakeAccountStore } from '../../../test/fixtures/fake-account-store.js';
import FakeRoleStore from '../../../test/fixtures/fake-role-store.js';
import FakeEnvironmentStore from '../project-environments/fake-environment-store.js';
import FakeAccessStore from '../../../test/fixtures/fake-access-store.js';
import { createEventsService, createFakeEventsService, } from '../events/createEventsService.js';
export const createAccessService = (db, config) => {
const { eventBus, getLogger } = config;
const groupStore = new GroupStore(db);
const accountStore = new AccountStore(db, getLogger);
const roleStore = new RoleStore(db, eventBus, getLogger);
const environmentStore = new EnvironmentStore(db, eventBus, config);
const accessStore = new AccessStore(db, eventBus, getLogger);
const eventService = createEventsService(db, config);
const groupService = new GroupService({ groupStore, accountStore }, { getLogger }, eventService);
return new AccessService({ accessStore, accountStore, roleStore, environmentStore }, { getLogger }, groupService, eventService);
};
export const createFakeAccessService = (config, { accessStoreConfig } = {}) => {
const { getLogger } = config;
const eventStore = new FakeEventStore();
const groupStore = new FakeGroupStore();
const accountStore = new FakeAccountStore();
const roleStore = new FakeRoleStore();
const environmentStore = new FakeEnvironmentStore();
const accessStore = new FakeAccessStore(roleStore, accessStoreConfig);
const eventService = createFakeEventsService(config, { eventStore });
const groupService = new GroupService({ groupStore, accountStore }, { getLogger }, eventService);
const accessService = new AccessService({ accessStore, accountStore, roleStore, environmentStore, groupStore }, { getLogger }, groupService, eventService);
return {
accessService,
eventStore,
accessStore,
roleStore,
};
};
//# sourceMappingURL=createAccessService.js.map