libmodulor
Version:
A TypeScript library to create platform-agnostic applications
78 lines (77 loc) • 3.42 kB
JavaScript
// NOTE : Expose this only at a higher level, otherwise, if exposed in utils/index.js, it will create circular dependencies
import { APP_NAME_PLACEHOLDER, PRODUCT_NAME_PLACEHOLDER, } from '../../convention.js';
import { ConsoleLogger } from '../../std/impl/ConsoleLogger.js';
import { FetchHTTPAPICallExecutor } from '../../std/impl/FetchHTTPAPICallExecutor.js';
import { NoopHTTPAPICallExecutorAgentBuilder } from '../../std/impl/NoopHTTPAPICallExecutorAgentBuilder.js';
import { NoopXMLManager } from '../../std/impl/NoopXMLManager.js';
import { SettingsServerClientManager } from '../../std/impl/SettingsServerClientManager.js';
import { SimpleFormDataBuilder } from '../../std/impl/SimpleFormDataBuilder.js';
import { SimpleHTTPAPICaller } from '../../std/impl/SimpleHTTPAPICaller.js';
import { SimpleMapI18nManager } from '../../std/impl/SimpleMapI18nManager.js';
import { StaticSettingsManager } from '../../std/impl/StaticSettingsManager.js';
import { StdDateClockManager } from '../../std/impl/StdDateClockManager.js';
import { STD_DEFAULT_LOGGER_SETTINGS, } from '../../std/index.js';
import { HTTPUCTransporter } from '../../uc/impl/HTTPUCTransporter.js';
import { InMemoryUCDataStore } from '../../uc/impl/InMemoryUCDataStore.js';
import { SimpleUCManager } from '../../uc/impl/SimpleUCManager.js';
import { StaticUCClientConfirmManager } from '../../uc/impl/StaticUCClientConfirmManager.js';
import { UC_DEFAULT_SETTINGS, } from '../../uc/index.js';
import { bindFactory } from './bindFactory.js';
export function bindCommon(container) {
// settings
container.bind('Settings').toConstantValue({
...STD_DEFAULT_LOGGER_SETTINGS,
...UC_DEFAULT_SETTINGS,
});
// product
container.bind('ProductManifest').toConstantValue({
appReg: [{ name: APP_NAME_PLACEHOLDER }],
name: PRODUCT_NAME_PLACEHOLDER,
});
// std
container.bind('ClockManager').to(StdDateClockManager);
container
.bind('FormDataBuilder')
.to(SimpleFormDataBuilder);
container.bind('HTTPAPICaller').to(SimpleHTTPAPICaller);
container
.bind('HTTPAPICallExecutor')
.to(FetchHTTPAPICallExecutor);
container
.bind('HTTPAPICallExecutorAgentBuilder')
.to(NoopHTTPAPICallExecutorAgentBuilder);
container
.bind('I18nManager')
.to(SimpleMapI18nManager)
.inSingletonScope();
container.bind('I18n').toConstantValue({ en: {} });
container.bind('Logger').to(ConsoleLogger);
container
.bind('SettingsManager')
.to(StaticSettingsManager)
.inSingletonScope();
container
.bind('ServerClientManager')
.to(SettingsServerClientManager);
container.bind('XMLManager').to(NoopXMLManager);
// uc
bindFactory(container, 'UCInit');
bindFactory(container, 'UCMain');
bindFactory(container, 'UCPolicy');
container
.bind('UCClientConfirmManager')
.to(StaticUCClientConfirmManager);
container
.bind('UCDataStore')
.to(InMemoryUCDataStore)
.inSingletonScope();
container.bind('UCManager').to(SimpleUCManager).inRequestScope();
container.bind('UCTransporter').to(HTTPUCTransporter);
}
export function updateSettings(container, settings) {
const current = container.get('Settings');
container.rebindSync('Settings').toConstantValue({
...current,
...settings,
});
}