Journify constructor
Journify(
- Configuration config,
- Store _store, {
- HTTPClient httpClient()?,
Implementation
Journify(Configuration config, this._store,
{HTTPClient Function(Journify)? httpClient})
: _state = StateManager(_store, System(true, false), config),
_timeline = Timeline() {
_state.init(error, config.storageJson!);
this.httpClient = httpClient == null ? HTTPClient(this) : httpClient(this);
state.ready.then((_) => _onStateReady());
if (config.autoAddJournifyDestination) {
final segmentDestination = JournifyDestination();
addPlugin(segmentDestination);
}
if (config.token != null) {
_platformPlugins.add(InjectToken(config.token!));
}
// Setup platform specific plugins
_platformPlugins.forEach(addPlugin);
// Start flush policies
final flushPolicies = state.configuration.state.flushPolicies ?? [];
_flushPolicyExecuter = FlushPolicyExecuter(flushPolicies, () => flush());
_flushPolicyExecuter.start();
}