Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for relative paths from extended tsconfig #265

Open
alSergey opened this issue Feb 24, 2024 · 0 comments
Open

Add support for relative paths from extended tsconfig #265

alSergey opened this issue Feb 24, 2024 · 0 comments

Comments

@alSergey
Copy link

Hello, thanks for the cool library. I'm using nuxt and have encountered an issue where when using the library I'm getting incorrect relative paths returned from tsconfig.

Example

FIle System

tsconfig.json

{
  "extends": "./.nuxt/tsconfig.json"
}

.nuxt/tsconfig.json

{
  "compilerOptions": {
    "paths": {
      "~": [
        ".."
      ],
      "assets": [
        "../assets"
      ],
      "#app": [
        "../node_modules/nuxt/dist/app"
      ],
      "#imports": [
        "./imports"
      ],
    }
  },
}

Expected

{
  "paths": {
    "~": [
      "."
    ],
    "assets": [
      "assets"
    ],
    "#app": [
      "node_modules/nuxt/dist/app"
    ],
    "#imports": [
      ".nuxt/imports"
    ],
  }
}

Result

{
  "paths": {
    "~": [
      ".."
    ],
    "assets": [
      "../assets"
    ],
    "#app": [
      "../node_modules/nuxt/dist/app"
    ],
    "#imports": [
      "./imports"
    ],
  }
}

Suggestion

When searching for paths in tsconfig.json, consider the path to the tsconfig file in which the paths were found and the baseUrl field.

Example code

const filesBasePath = path.join(configRelativeDir, baseUrl || '.') // configRelativeDir = '.nuxt'

const relativePaths = Object.entries(paths).reduce((obj, [key, values]) => ({
      ...obj,
      [key]: values?.map((item) => path.join(filesBasePath, item)),
}), {})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant