diff --git a/package.json b/package.json index f5f9ce7de0..847e6524bd 100644 --- a/package.json +++ b/package.json @@ -113,6 +113,7 @@ "find-up": "4.1.0", "flatley": "^5.2.0", "fs-extra": "^10.1.0", + "get-tsconfig": "^4.4.0", "graphql": "^16.6.0", "graphql-playground-middleware-express": "^1.7.23", "graphql-query-complexity": "^0.12.0", diff --git a/src/bin/index.ts b/src/bin/index.ts index 1dc9018680..14c0eb9d69 100755 --- a/src/bin/index.ts +++ b/src/bin/index.ts @@ -1,23 +1,38 @@ /* eslint-disable @typescript-eslint/no-var-requires */ import minimist from 'minimist'; import swcRegister from '@swc/register'; +import { getTsconfig as getTSconfig } from 'get-tsconfig'; import { generateTypes } from './generateTypes'; import { generateGraphQLSchema } from './generateGraphQLSchema'; -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore - bad @swc/register types -swcRegister({ +const tsConfig = getTSconfig(); + +const swcOptions = { sourceMaps: 'inline', jsc: { parser: { syntax: 'typescript', tsx: true, }, + paths: undefined, + baseUrl: undefined, }, module: { type: 'commonjs', }, -}); +}; + +if (tsConfig?.config?.compilerOptions?.paths) { + swcOptions.jsc.paths = tsConfig?.config?.compilerOptions?.paths; + + if (tsConfig?.config?.compilerOptions?.baseUrl) { + swcOptions.jsc.baseUrl = tsConfig?.config?.compilerOptions?.baseUrl; + } +} + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore - bad @swc/register types +swcRegister(swcOptions); const { build } = require('./build'); diff --git a/yarn.lock b/yarn.lock index b500fa82b2..6590d88d94 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6186,6 +6186,11 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" +get-tsconfig@^4.4.0: + version "4.4.0" + resolved "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.4.0.tgz#64eee64596668a81b8fce18403f94f245ee0d4e5" + integrity sha512-0Gdjo/9+FzsYhXCEFueo2aY1z1tpXrxWZzP7k8ul9qt1U5o8rYJwTJYmaeHdrVosYIVYkOy2iwCJ9FdpocJhPQ== + get-uri@3: version "3.0.2" resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-3.0.2.tgz#f0ef1356faabc70e1f9404fa3b66b2ba9bfc725c"