From b5f1e4b5f64cbf0bad2eff888177ac9c1881ba3e Mon Sep 17 00:00:00 2001 From: Lubos Date: Thu, 12 Mar 2026 21:41:45 +0100 Subject: [PATCH] refactor: remove TypeScript from peer dependencies --- .changeset/common-results-kneel.md | 5 +++ .changeset/fruity-adults-invite.md | 5 +++ .changeset/rude-games-poke.md | 5 +++ packages/codegen-core/package.json | 3 -- packages/openapi-python/package.json | 3 -- packages/openapi-ts/package.json | 3 +- .../openapi-ts/src/config/output/config.ts | 29 +++++++++--- .../openapi-ts/src/config/output/types.ts | 4 +- packages/shared/package.json | 3 -- packages/shared/src/index.ts | 2 +- packages/shared/src/tsConfig.ts | 15 ------- packages/types/package.json | 3 -- pnpm-lock.yaml | 44 +++++++++---------- 13 files changed, 63 insertions(+), 61 deletions(-) create mode 100644 .changeset/common-results-kneel.md create mode 100644 .changeset/fruity-adults-invite.md create mode 100644 .changeset/rude-games-poke.md diff --git a/.changeset/common-results-kneel.md b/.changeset/common-results-kneel.md new file mode 100644 index 000000000..d77f7ea82 --- /dev/null +++ b/.changeset/common-results-kneel.md @@ -0,0 +1,5 @@ +--- +"@hey-api/codegen-core": patch +--- + +**internal**: remove TypeScript from peer dependencies diff --git a/.changeset/fruity-adults-invite.md b/.changeset/fruity-adults-invite.md new file mode 100644 index 000000000..fb55e28ce --- /dev/null +++ b/.changeset/fruity-adults-invite.md @@ -0,0 +1,5 @@ +--- +"@hey-api/shared": patch +--- + +**internal**: remove TypeScript from peer dependencies diff --git a/.changeset/rude-games-poke.md b/.changeset/rude-games-poke.md new file mode 100644 index 000000000..6eff4d838 --- /dev/null +++ b/.changeset/rude-games-poke.md @@ -0,0 +1,5 @@ +--- +"@hey-api/types": patch +--- + +**internal**: remove TypeScript from peer dependencies diff --git a/packages/codegen-core/package.json b/packages/codegen-core/package.json index a4dff6477..62b13cdb6 100644 --- a/packages/codegen-core/package.json +++ b/packages/codegen-core/package.json @@ -56,9 +56,6 @@ "eslint": "9.39.1", "typescript": "5.9.3" }, - "peerDependencies": { - "typescript": ">=5.5.3" - }, "engines": { "node": ">=20.19.0" } diff --git a/packages/openapi-python/package.json b/packages/openapi-python/package.json index e7c571e84..298d8e4a2 100644 --- a/packages/openapi-python/package.json +++ b/packages/openapi-python/package.json @@ -73,9 +73,6 @@ "typescript": "5.9.3", "yaml": "2.8.2" }, - "peerDependencies": { - "typescript": ">=5.5.3" - }, "engines": { "node": ">=20.19.0" } diff --git a/packages/openapi-ts/package.json b/packages/openapi-ts/package.json index 7bd2c622b..ae7f1f736 100644 --- a/packages/openapi-ts/package.json +++ b/packages/openapi-ts/package.json @@ -75,7 +75,8 @@ "@hey-api/types": "workspace:*", "ansi-colors": "4.1.3", "color-support": "1.1.3", - "commander": "14.0.3" + "commander": "14.0.3", + "get-tsconfig": "4.13.6" }, "devDependencies": { "@angular/common": "21.1.2", diff --git a/packages/openapi-ts/src/config/output/config.ts b/packages/openapi-ts/src/config/output/config.ts index 8990428f5..b4c6cdf39 100644 --- a/packages/openapi-ts/src/config/output/config.ts +++ b/packages/openapi-ts/src/config/output/config.ts @@ -3,9 +3,10 @@ import { fileURLToPath } from 'node:url'; import { log } from '@hey-api/codegen-core'; import type { PostProcessor, UserPostProcessor } from '@hey-api/shared'; -import { findTsConfigPath, loadTsConfig, resolveSource, valueToObject } from '@hey-api/shared'; +import { findTsConfigPath, resolveSource, valueToObject } from '@hey-api/shared'; import type { MaybeArray } from '@hey-api/types'; -import ts from 'typescript'; +import type { TsConfigJsonResolved } from 'get-tsconfig'; +import { parseTsconfig } from 'get-tsconfig'; import { postProcessors } from './postprocess'; import type { Output, UserOutput } from './types'; @@ -64,10 +65,14 @@ export function getOutput(userConfig: { output: MaybeArray output.tsConfig = loadTsConfig(findTsConfigPath(__dirname, output.tsConfigPath)); if ( output.importFileExtension === undefined && - (output.tsConfig?.options.moduleResolution === ts.ModuleResolutionKind.NodeNext || - output.tsConfig?.options.moduleResolution === ts.ModuleResolutionKind.Node16 || - output.tsConfig?.options.module === ts.ModuleKind.NodeNext || - output.tsConfig?.options.module === ts.ModuleKind.Node16) + (output.tsConfig?.compilerOptions?.moduleResolution === 'nodenext' || + output.tsConfig?.compilerOptions?.moduleResolution === 'NodeNext' || + output.tsConfig?.compilerOptions?.moduleResolution === 'node16' || + output.tsConfig?.compilerOptions?.moduleResolution === 'Node16' || + output.tsConfig?.compilerOptions?.module === 'nodenext' || + output.tsConfig?.compilerOptions?.module === 'NodeNext' || + output.tsConfig?.compilerOptions?.module === 'node16' || + output.tsConfig?.compilerOptions?.module === 'Node16') ) { output.importFileExtension = '.js'; } @@ -134,3 +139,15 @@ function normalizePostProcess(input: UserOutput['postProcess']): ReadonlyArray

=5.5.3" - }, "engines": { "node": ">=20.19.0" } diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts index b5cfbdeb4..539126559 100644 --- a/packages/shared/src/index.ts +++ b/packages/shared/src/index.ts @@ -117,7 +117,7 @@ export type { PluginContext, PluginNames, } from './plugins/types'; -export { findPackageJson, findTsConfigPath, loadPackageJson, loadTsConfig } from './tsConfig'; +export { findPackageJson, findTsConfigPath, loadPackageJson } from './tsConfig'; export type { Logs } from './types/logs'; export type { WatchValues } from './types/watch'; export { escapeComment } from './utils/escape'; diff --git a/packages/shared/src/tsConfig.ts b/packages/shared/src/tsConfig.ts index 8cfecd51e..33a4ee23d 100644 --- a/packages/shared/src/tsConfig.ts +++ b/packages/shared/src/tsConfig.ts @@ -2,7 +2,6 @@ import fs from 'node:fs'; import path from 'node:path'; import type { AnyString } from '@hey-api/types'; -import ts from 'typescript'; export function findPackageJson(initialDir: string): unknown | undefined { let dir = initialDir; @@ -96,17 +95,3 @@ export function findTsConfigPath(baseDir: string, tsConfigPath?: AnyString | nul return null; } - -export function loadTsConfig(configPath: string | null): ts.ParsedCommandLine | null { - if (!configPath) { - return null; - } - - const raw = ts.readConfigFile(configPath, ts.sys.readFile); - - if (raw.error) { - throw new Error(`Couldn't read tsconfig from path: ${configPath}`); - } - - return ts.parseJsonConfigFileContent(raw.config, ts.sys, path.dirname(configPath)); -} diff --git a/packages/types/package.json b/packages/types/package.json index f9b20985b..d0cc72a5a 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -30,8 +30,5 @@ }, "devDependencies": { "typescript": "5.9.3" - }, - "peerDependencies": { - "typescript": ">=5.5.3" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e3da2130b..7564b2220 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1356,6 +1356,9 @@ importers: commander: specifier: 14.0.3 version: 14.0.3 + get-tsconfig: + specifier: 4.13.6 + version: 4.13.6 devDependencies: '@angular/common': specifier: 21.1.2 @@ -10163,11 +10166,8 @@ packages: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} - get-tsconfig@4.10.1: - resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} - - get-tsconfig@4.13.0: - resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==} + get-tsconfig@4.13.6: + resolution: {integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==} giget@1.2.5: resolution: {integrity: sha512-r1ekGw/Bgpi3HLV3h1MRBIlSAdHoIMklpaQ3OQLFcRw9PwAj2rqigvIbg+dBUI51OxVI2jsEtDywDBjSiuf7Ug==} @@ -15563,7 +15563,7 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2101.2(chokidar@5.0.0) - '@angular-devkit/build-webpack': 0.2101.2(chokidar@5.0.0)(webpack-dev-server@5.2.2(tslib@2.8.1)(webpack@5.104.1(esbuild@0.27.2)))(webpack@5.104.1(esbuild@0.27.2)) + '@angular-devkit/build-webpack': 0.2101.2(chokidar@5.0.0)(webpack-dev-server@5.2.2(tslib@2.8.1)(webpack@5.104.1))(webpack@5.104.1(esbuild@0.27.2)) '@angular-devkit/core': 21.1.2(chokidar@5.0.0) '@angular/build': 21.1.2(a73756e6d925d6a2ce3b9f3b3e1fe266) '@angular/compiler-cli': 21.1.2(@angular/compiler@21.1.2)(typescript@5.9.3) @@ -15613,8 +15613,8 @@ snapshots: tslib: 2.8.1 typescript: 5.9.3 webpack: 5.104.1(esbuild@0.27.2) - webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.104.1(esbuild@0.27.2)) - webpack-dev-server: 5.2.2(tslib@2.8.1)(webpack@5.104.1(esbuild@0.27.2)) + webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.104.1) + webpack-dev-server: 5.2.2(tslib@2.8.1)(webpack@5.104.1) webpack-merge: 6.0.1 webpack-subresource-integrity: 5.1.0(webpack@5.104.1(esbuild@0.27.2)) optionalDependencies: @@ -15652,7 +15652,7 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2101.2(chokidar@5.0.0) - '@angular-devkit/build-webpack': 0.2101.2(chokidar@5.0.0)(webpack-dev-server@5.2.2(tslib@2.8.1)(webpack@5.104.1(esbuild@0.27.2)))(webpack@5.104.1(esbuild@0.27.2)) + '@angular-devkit/build-webpack': 0.2101.2(chokidar@5.0.0)(webpack-dev-server@5.2.2(tslib@2.8.1)(webpack@5.104.1))(webpack@5.104.1(esbuild@0.27.2)) '@angular-devkit/core': 21.1.2(chokidar@5.0.0) '@angular/build': 21.1.2(13c6cf4e4b76000cae827571b33755bd) '@angular/compiler-cli': 21.1.2(@angular/compiler@21.1.2)(typescript@5.9.3) @@ -15702,8 +15702,8 @@ snapshots: tslib: 2.8.1 typescript: 5.9.3 webpack: 5.104.1(esbuild@0.27.2) - webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.104.1(esbuild@0.27.2)) - webpack-dev-server: 5.2.2(tslib@2.8.1)(webpack@5.104.1(esbuild@0.27.2)) + webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.104.1) + webpack-dev-server: 5.2.2(tslib@2.8.1)(webpack@5.104.1) webpack-merge: 6.0.1 webpack-subresource-integrity: 5.1.0(webpack@5.104.1(esbuild@0.27.2)) optionalDependencies: @@ -15737,12 +15737,12 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-webpack@0.2101.2(chokidar@5.0.0)(webpack-dev-server@5.2.2(tslib@2.8.1)(webpack@5.104.1(esbuild@0.27.2)))(webpack@5.104.1(esbuild@0.27.2))': + '@angular-devkit/build-webpack@0.2101.2(chokidar@5.0.0)(webpack-dev-server@5.2.2(tslib@2.8.1)(webpack@5.104.1))(webpack@5.104.1(esbuild@0.27.2))': dependencies: '@angular-devkit/architect': 0.2101.2(chokidar@5.0.0) rxjs: 7.8.2 webpack: 5.104.1(esbuild@0.27.2) - webpack-dev-server: 5.2.2(tslib@2.8.1)(webpack@5.104.1(esbuild@0.27.2)) + webpack-dev-server: 5.2.2(tslib@2.8.1)(webpack@5.104.1) transitivePeerDependencies: - chokidar @@ -24855,7 +24855,7 @@ snapshots: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3 eslint: 9.17.0(jiti@2.6.1) - get-tsconfig: 4.10.1 + get-tsconfig: 4.13.6 is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.15 @@ -25742,11 +25742,7 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 - get-tsconfig@4.10.1: - dependencies: - resolve-pkg-maps: 1.0.0 - - get-tsconfig@4.13.0: + get-tsconfig@4.13.6: dependencies: resolve-pkg-maps: 1.0.0 @@ -29863,7 +29859,7 @@ snapshots: ast-kit: 2.2.0 birpc: 4.0.0 dts-resolver: 2.1.3 - get-tsconfig: 4.13.0 + get-tsconfig: 4.13.6 obug: 2.1.1 rolldown: 1.0.0-beta.57 optionalDependencies: @@ -31193,7 +31189,7 @@ snapshots: tsx@4.21.0: dependencies: esbuild: 0.27.2 - get-tsconfig: 4.13.0 + get-tsconfig: 4.13.6 optionalDependencies: fsevents: 2.3.3 @@ -32639,7 +32635,7 @@ snapshots: webidl-conversions@8.0.1: {} - webpack-dev-middleware@7.4.5(tslib@2.8.1)(webpack@5.104.1(esbuild@0.27.2)): + webpack-dev-middleware@7.4.5(tslib@2.8.1)(webpack@5.104.1): dependencies: colorette: 2.0.20 memfs: 4.56.10(tslib@2.8.1) @@ -32652,7 +32648,7 @@ snapshots: transitivePeerDependencies: - tslib - webpack-dev-server@5.2.2(tslib@2.8.1)(webpack@5.104.1(esbuild@0.27.2)): + webpack-dev-server@5.2.2(tslib@2.8.1)(webpack@5.104.1): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -32680,7 +32676,7 @@ snapshots: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.104.1(esbuild@0.27.2)) + webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.104.1) ws: 8.18.3 optionalDependencies: webpack: 5.104.1(esbuild@0.27.2) -- 2.51.2