Browse Source

feat(platforms): Add Astro as a platform (frontend) (#58156)

Adds the `javascript-astro` platform in the frontend. Exception: Project
selection will come in a follow-up PR along with the Astro getting
started page

---------

Co-authored-by: ArthurKnaus <arthur.knaus@sentry.io>
Lukas Stracke 1 year ago
parent
commit
1a5de64d49

+ 6 - 0
fixtures/integration-docs/_platforms.json

@@ -134,6 +134,12 @@
           "id": "javascript-angularjs",
           "id": "javascript-angularjs",
           "name": "AngularJS"
           "name": "AngularJS"
         },
         },
+        {
+          "link": "https://docs.sentry.io/platforms/javascript/guides/astro/",
+          "type": "framework",
+          "id": "javascript-astro",
+          "name": "Astro"
+        },
         {
         {
           "link": "https://docs.getsentry.com/clients/javascript/integrations/backbone/",
           "link": "https://docs.getsentry.com/clients/javascript/integrations/backbone/",
           "type": "framework",
           "type": "framework",

+ 6 - 0
fixtures/integration-docs/javascript-astro.json

@@ -0,0 +1,6 @@
+{
+  "html": "<div class=\"section\" id=\"installation\"></div>\n",
+  "link": "https://docs.sentry.io/platforms/javascript/guides/astro/",
+  "id": "javascript-astro",
+  "name": "Astro"
+}

+ 1 - 0
static/app/components/events/interfaces/crashContent/exception/utils.tsx

@@ -35,4 +35,5 @@ export const sourceMapSdkDocsMap: Record<string, string> = {
   'sentry.javascript.svelte': 'svelte',
   'sentry.javascript.svelte': 'svelte',
   'sentry.javascript.sveltekit': 'sveltekit',
   'sentry.javascript.sveltekit': 'sveltekit',
   'sentry.javascript.react-native': 'react-native',
   'sentry.javascript.react-native': 'react-native',
+  'sentry.javascript.atro': 'astro',
 };
 };

+ 1 - 0
static/app/components/events/interfaces/spans/utils.tsx

@@ -668,6 +668,7 @@ export function isEventFromBrowserJavaScriptSDK(
     'sentry.javascript.remix',
     'sentry.javascript.remix',
     'sentry.javascript.svelte',
     'sentry.javascript.svelte',
     'sentry.javascript.sveltekit',
     'sentry.javascript.sveltekit',
+    'sentry.javascript.astro',
   ].includes(sdkName.toLowerCase());
   ].includes(sdkName.toLowerCase());
 }
 }
 
 

+ 1 - 0
static/app/components/onboarding/frameworkSuggestionModal.tsx

@@ -55,6 +55,7 @@ export const topJavascriptFrameworks = [
   'javascript-svelte',
   'javascript-svelte',
   'javascript-sveltekit',
   'javascript-sveltekit',
   'javascript-remix',
   'javascript-remix',
+  'javascript-astro',
 ];
 ];
 
 
 const topPythonFrameworks = [
 const topPythonFrameworks = [

+ 4 - 0
static/app/data/platformCategories.tsx

@@ -16,6 +16,7 @@ export const frontend: PlatformKey[] = [
   'javascript',
   'javascript',
   'javascript-angular',
   'javascript-angular',
   'javascript-angularjs',
   'javascript-angularjs',
+  'javascript-astro',
   'javascript-backbone',
   'javascript-backbone',
   'javascript-ember',
   'javascript-ember',
   'javascript-gatsby',
   'javascript-gatsby',
@@ -245,6 +246,7 @@ export const releaseHealth: PlatformKey[] = [
   'javascript-react',
   'javascript-react',
   'javascript-angular',
   'javascript-angular',
   'javascript-angularjs',
   'javascript-angularjs',
+  'javascript-astro',
   'javascript-backbone',
   'javascript-backbone',
   'javascript-ember',
   'javascript-ember',
   'javascript-gatsby',
   'javascript-gatsby',
@@ -296,6 +298,7 @@ export const replayPlatforms: readonly PlatformKey[] = [
   'electron',
   'electron',
   'javascript-angular',
   'javascript-angular',
   // 'javascript-angularjs', // Unsupported, angularjs requires the v6.x core SDK
   // 'javascript-angularjs', // Unsupported, angularjs requires the v6.x core SDK
+  'javascript-astro',
   'javascript-backbone',
   'javascript-backbone',
   'javascript-capacitor',
   'javascript-capacitor',
   'javascript-electron',
   'javascript-electron',
@@ -320,6 +323,7 @@ export const replayOnboardingPlatforms: readonly PlatformKey[] = [
   'capacitor',
   'capacitor',
   'electron',
   'electron',
   'javascript-angular',
   'javascript-angular',
+  'javascript-astro',
   // 'javascript-angularjs', // Unsupported, angularjs requires the v6.x core SDK
   // 'javascript-angularjs', // Unsupported, angularjs requires the v6.x core SDK
   // 'javascript-backbone', // No docs yet
   // 'javascript-backbone', // No docs yet
   'javascript-capacitor',
   'javascript-capacitor',

+ 8 - 0
static/app/data/platforms.tsx

@@ -263,6 +263,14 @@ const platforms: PlatformIntegration[] = [
     language: 'javascript',
     language: 'javascript',
     link: 'https://docs.sentry.io/platforms/javascript/guides/angular/',
     link: 'https://docs.sentry.io/platforms/javascript/guides/angular/',
   },
   },
+  // TODO: comment back in when we have a getting-started page for Astro
+  // {
+  //   id: 'javascript-astro',
+  //   name: 'Astro',
+  //   type: 'framework',
+  //   language: 'javascript',
+  //   link: 'https://docs.sentry.io/platforms/javascript/guides/astro/',
+  // },
   {
   {
     id: 'javascript-ember',
     id: 'javascript-ember',
     name: 'Ember',
     name: 'Ember',

+ 1 - 0
static/app/icons/icons.stories.tsx

@@ -72,6 +72,7 @@ const platformToIcon = {
   javascript: 'javascript',
   javascript: 'javascript',
   'javascript-angular': 'angularjs',
   'javascript-angular': 'angularjs',
   'javascript-angularjs': 'angularjs',
   'javascript-angularjs': 'angularjs',
+  'javascript-astro': 'astro',
   'javascript-backbone': 'backbone',
   'javascript-backbone': 'backbone',
   'javascript-browser': 'javascript',
   'javascript-browser': 'javascript',
   'javascript-capacitor': 'capacitor',
   'javascript-capacitor': 'capacitor',

+ 1 - 0
static/app/types/project.tsx

@@ -176,6 +176,7 @@ export type PlatformKey =
   | 'javascript'
   | 'javascript'
   | 'javascript-angular'
   | 'javascript-angular'
   | 'javascript-angularjs'
   | 'javascript-angularjs'
+  | 'javascript-astro'
   | 'javascript-backbone'
   | 'javascript-backbone'
   | 'javascript-browser'
   | 'javascript-browser'
   | 'javascript-capacitor'
   | 'javascript-capacitor'