@sentry/wizard
Version:
Sentry wizard helping you to configure your project
99 lines (95 loc) • 3.91 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.initSnippetColored = exports.pubspecSnippetColored = exports.initSnippet = exports.sentryProperties = exports.pubspecOptions = exports.sessionReplayOnErrorSampleRate = exports.sessionReplaySampleRate = exports.sentryImport = void 0;
const clack_1 = require("../utils/clack");
exports.sentryImport = `import 'package:sentry_flutter/sentry_flutter.dart';\n`;
exports.sessionReplaySampleRate = 0.1;
exports.sessionReplayOnErrorSampleRate = 1.0;
function pubspecOptions(project, org) {
return `sentry:
upload_debug_symbols: true
upload_source_maps: true
project: ${project}
org: ${org}
`;
}
exports.pubspecOptions = pubspecOptions;
function sentryProperties(authToken) {
return `auth_token=${authToken}`;
}
exports.sentryProperties = sentryProperties;
function initSnippet(dsn, selectedFeaturesMap, runApp) {
let snippet = `await SentryFlutter.init(
(options) {
options.dsn = '${dsn}';
// Adds request headers and IP for users, for more info visit:
// https://docs.sentry.io/platforms/dart/guides/flutter/data-management/data-collected/
options.sendDefaultPii = true;`;
if (selectedFeaturesMap.logs) {
snippet += `
options.enableLogs = true;`;
}
if (selectedFeaturesMap.tracing) {
snippet += `
// Set tracesSampleRate to 1.0 to capture 100% of transactions for tracing.
// We recommend adjusting this value in production.
options.tracesSampleRate = 1.0;`;
}
if (selectedFeaturesMap.profiling && selectedFeaturesMap.tracing) {
snippet += `
// The sampling rate for profiling is relative to tracesSampleRate
// Setting to 1.0 will profile 100% of sampled transactions:
options.profilesSampleRate = 1.0;`;
}
if (selectedFeaturesMap.replay) {
snippet += `
// Configure Session Replay
options.replay.sessionSampleRate = ${exports.sessionReplaySampleRate % 1 === 0
? `${exports.sessionReplaySampleRate}.0`
: exports.sessionReplaySampleRate};
options.replay.onErrorSampleRate = ${exports.sessionReplayOnErrorSampleRate % 1 === 0
? `${exports.sessionReplayOnErrorSampleRate}.0`
: exports.sessionReplayOnErrorSampleRate};`;
}
snippet += `
},
appRunner: () => runApp(SentryWidget(child: ${runApp})),
);
// TODO: Remove this line after sending the first sample event to sentry.
await Sentry.captureException(StateError('This is a sample exception.'));`;
return snippet;
}
exports.initSnippet = initSnippet;
function pubspecSnippetColored(sentryVersion, pluginVersion, project, org) {
const snippet = `dependencies:
sentry_flutter: ${sentryVersion}
dev_dependencies:
sentry_dart_plugin: ${pluginVersion}
${pubspecOptions(project, org)}`;
return (0, clack_1.makeCodeSnippet)(true, (_unchanged, plus, _minus) => {
return plus(snippet);
});
}
exports.pubspecSnippetColored = pubspecSnippetColored;
function initSnippetColored(dsn) {
const snippet = `import 'package:sentry_flutter/sentry_flutter.dart';
Future<void>main() async {
await SentryFlutter.init(
(options) {
options.dsn = '${dsn}';
// Adds request headers and IP for users, for more info visit:
// https://docs.sentry.io/platforms/dart/guides/flutter/data-management/data-collected/
options.sendDefaultPii = true;
// Set tracesSampleRate to 1.0 to capture 100% of transactions for tracing.
// We recommend adjusting this value in production.
options.tracesSampleRate = 1.0;
},
appRunner: () => runApp(SentryWidget(child: YourApp())),
)
}`;
return (0, clack_1.makeCodeSnippet)(true, (_unchanged, plus, _minus) => {
return plus(snippet);
});
}
exports.initSnippetColored = initSnippetColored;
//# sourceMappingURL=templates.js.map
;