{tct( 'In this quick guide you’ll use [strong:npm], [strong:yarn] or [strong:pnpm] to set up:', { strong: , } )}
,
}
),
configurations: getInstallConfig(),
},
],
configure: (params: Params) => [
{
type: StepType.CONFIGURE,
description: t(
"Initialize Sentry as early as possible in your application's lifecycle."
),
configurations: [
{
description: tct(
'For the client, initialize the Sentry SDK in your [code:src/entry-client.tsx] file',
{code:
}
),
code: [
{
label: 'TypeScript',
// value and language are in JS to get consistent syntax highlighting
// we aren't using any Typescript specific code in these snippets but
// want a typescript ending.
value: 'javascript',
language: 'javascript',
code: getSdkClientSetupSnippet(params),
},
],
},
{
description: tct(
'For the server, create an instrument file [code:instrument.server.mjs], initialize the Sentry SDK and deploy it alongside your application. For example by placing it in the [code:public] folder.',
{code:
}
),
code: [
{
label: 'JavaScript',
value: 'javascript',
language: 'javascript',
code: getSdkServerSetupSnippet(params),
},
],
additionalInfo: tct(
'Note: Placing [code:instrument.server.mjs] inside the [code:public] folder makes it accessible to the outside world. Consider blocking requests to this file or finding a more appropriate location which your backend can access.',
{code:
}
),
},
...(params.isPerformanceSelected
? [
{
description: tct(
'Complete the setup by adding the Sentry [solidStartMiddlewareLink: middleware] to your [code:src/middleware.ts] file',
{
code:
,
solidStartMiddlewareLink: (
,
}),
code: [
{
label: 'TypeScript',
value: 'javascript',
language: 'javascript',
code: getSdkMiddlewareLinkSetup(),
},
],
},
{
description: tct(
"If you're using [solidRouterLink:Solid Router], wrap your [code:Router] with [code:withSentryRouterRouting]. This creates a higher order component, which will enable Sentry to collect navigation spans.",
{
code:
,
solidRouterLink: (
,
}
),
code: [
{
label: 'JSON',
value: 'json',
language: 'json',
code: getSdkRun(),
},
],
},
],
},
{
title: t('Upload Source Maps'),
description: tct(
'To upload source maps to Sentry, follow the [link:instructions in our documentation].',
{
link: (
,
}
),
configurations: getInstallConfig(),
},
],
configure: (params: Params) => [
{
type: StepType.CONFIGURE,
description: getReplayConfigureDescription({
link: 'https://docs.sentry.io/platforms/javascript/guides/solid/session-replay/',
}),
configurations: [
{
code: [
{
label: 'JavaScript',
value: 'javascript',
language: 'javascript',
code: getSdkClientSetupSnippet(params),
},
],
additionalInfo:
,
}
),
configurations: getInstallConfig(),
},
],
configure: (params: Params) => [
{
type: StepType.CONFIGURE,
description: getFeedbackConfigureDescription({
linkConfig:
'https://docs.sentry.io/platforms/javascript/guides/solid/user-feedback/configuration/',
linkButton:
'https://docs.sentry.io/platforms/javascript/guides/solid/user-feedback/configuration/#bring-your-own-button',
}),
configurations: [
{
code: [
{
label: 'JavaScript',
value: 'javascript',
language: 'javascript',
code: getSdkClientSetupSnippet(params),
},
],
},
],
additionalInfo: crashReportCallout({
link: 'https://docs.sentry.io/platforms/javascript/guides/solid/user-feedback/#crash-report-modal',
}),
},
],
verify: () => [],
nextSteps: () => [],
};
const crashReportOnboarding: OnboardingConfig = {
introduction: () => getCrashReportModalIntroduction(),
install: (params: Params) => getCrashReportJavaScriptInstallStep(params),
configure: () => [
{
type: StepType.CONFIGURE,
description: getCrashReportModalConfigDescription({
link: 'https://docs.sentry.io/platforms/javascript/guides/solid/user-feedback/configuration/#crash-report-modal',
}),
additionalInfo: widgetCallout({
link: 'https://docs.sentry.io/platforms/javascript/guides/solid/user-feedback/#user-feedback-widget',
}),
},
],
verify: () => [],
nextSteps: () => [],
};
const profilingOnboarding: OnboardingConfig = {
...onboarding,
introduction: params =>