solid-start icon indicating copy to clipboard operation
solid-start copied to clipboard

[Bug?]: Solid Start parses every TypeScript file as TSX

Open AFatNiBBa opened this issue 4 months ago • 0 comments

Duplicates

  • [X] I have searched the existing issues

Latest version

  • [X] I have tested the latest version

Current behavior 😯

I have a TypeScript dependency (Not transpiled) that uses the alternative cast syntax (<any>{} instead of {} as any), which is allowed in ".ts" files but not in ".tsx". When I import that dependency it throws a syntax error because EVERY file is interpreted as TSX

Expected behavior 🤔

Normal ".ts" files should NOT behave as ".tsx"

Steps to reproduce 🕹

Steps:

  1. Create a new bare Solid Start project with TypeScript (npm init solid)
  2. Go inside the "src" directory and create a file named "a.ts" containing export default <any>{};
  3. Add this (↓) to "app.tsx"
import a from "./a";
console.log(a);

You'll get an error like this one image

Context 🔦

I tried specifying the extensions option in the config, but here it's being added instead of overriding the default one

import { defineConfig } from "@solidjs/start/config";

export default defineConfig({
    extensions: [ "jsx", "tsx" ]
});

I suggest changing that line into

const extensions = start.extensions || DEFAULT_EXTENSIONS;

Or even better, this one into

const DEFAULT_EXTENSIONS = ["jsx", "tsx"];

[!NOTE] This is just a partial suggestion, since I noticed that doing this has the side effect of breaking ".ts" API routes

Your environment 🌎

I don't know what command you are talking about, sorry (Luckily, I don't think it matters anyway)

System:
  OS: Windows 11
  CPU: (16) x64
Binaries:
  Node: v22.8.0
  npm: 10.8.2
npmPackages:
  @solidjs/[email protected]
  [email protected]
  [email protected]

AFatNiBBa avatar Oct 21 '24 14:10 AFatNiBBa