@segment/analytics-react-native
Version:
The hassle-free way to add Segment analytics to your React-Native app.
81 lines (77 loc) • 2.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.StubDestinationPlugin = exports.ManualResumeWaitingPlugin = exports.ExampleWaitingPlugin1 = exports.ExampleWaitingPlugin = void 0;
var _types = require("../types");
var _plugin = require("../plugin");
/**
* Example WaitingPlugin that automatically resumes after 1 second.
* Used for testing the waiting plugin mechanism.
*/
class ExampleWaitingPlugin extends _plugin.WaitingPlugin {
type = _types.PluginType.enrichment;
tracked = false;
configure(analytics) {
super.configure(analytics);
// Simulate async work (network, native module init, etc.)
setTimeout(() => {
this.resume();
}, 1000);
}
execute(event) {
super.execute(event);
this.tracked = true;
return event;
}
}
/**
* Example WaitingPlugin that resumes after 3 seconds when settings are updated.
* Mimics the Kotlin SDK's ExampleWaitingPlugin behavior.
*/
exports.ExampleWaitingPlugin = ExampleWaitingPlugin;
class ExampleWaitingPlugin1 extends _plugin.WaitingPlugin {
type = _types.PluginType.before;
tracked = false;
update(_settings, type) {
if (type === _types.UpdateType.initial) {
// Simulate async initialization that takes 3 seconds
setTimeout(() => {
this.resume();
}, 3000);
}
}
execute(event) {
this.tracked = true;
return event;
}
}
/**
* Example WaitingPlugin that requires manual resume() call.
* Used for testing manual control of event processing.
*/
exports.ExampleWaitingPlugin1 = ExampleWaitingPlugin1;
class ManualResumeWaitingPlugin extends _plugin.WaitingPlugin {
type = _types.PluginType.enrichment;
tracked = false;
configure(analytics) {
super.configure(analytics);
}
execute(event) {
this.tracked = true;
return event;
}
}
/**
* Stub destination plugin for testing.
* Always enabled and accepts all events.
*/
exports.ManualResumeWaitingPlugin = ManualResumeWaitingPlugin;
class StubDestinationPlugin extends _plugin.DestinationPlugin {
key = 'StubDestination';
isEnabled(_event) {
return true;
}
}
exports.StubDestinationPlugin = StubDestinationPlugin;
//# sourceMappingURL=exampleWaitingPlugin.js.map