From fcc225e0aa9b20a5847a882be91678cebb0a91d7 Mon Sep 17 00:00:00 2001 From: Max Hauser Date: Tue, 23 Jul 2024 08:29:49 +0200 Subject: [PATCH] TypeScript dependency fix (#1646) * TS depdency fix - if no exact match for a module (e.g. subpath import) require the correct package from file system - closes #1645 * changelog --- README.md | 3 +++ lib/sandbox.js | 3 ++- lib/typescriptTools.js | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4182097de..a2cd4c9e3 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,9 @@ Executes Javascript, Typescript Scripts. +### **WORK IN PROGRESS** +* (foxriver76) fixed subpath imports with controller v6 (needs js-controller v6.0.9) + ### 8.7.1 (2024-07-22) * (foxriver76) load correct typings for TypeScript scripts with js-controller v6 (needs js-controller v6.0.9) diff --git a/lib/sandbox.js b/lib/sandbox.js index 910b9f0fa..711c1eb37 100644 --- a/lib/sandbox.js +++ b/lib/sandbox.js @@ -545,7 +545,8 @@ function sandBox(script, name, verbose, debug, context) { return mods[md]; } else { try { - mods[md] = require(md); + mods[md] = require(adapter.getAdapterScopedPackageIdentifier ? adapter.getAdapterScopedPackageIdentifier(md) : md); + return mods[md]; } catch (e) { adapter.setState(`scriptProblem.${name.substring('script.js.'.length)}`, { val: true, ack: true, c: 'require' }); diff --git a/lib/typescriptTools.js b/lib/typescriptTools.js index a37f9893f..6c2c680db 100644 --- a/lib/typescriptTools.js +++ b/lib/typescriptTools.js @@ -88,7 +88,7 @@ function resolveTypings(pkg, adapterScopedPackageName, wrapInDeclareModule) { const packageRoot = path.dirname(packageJsonPath); const normalizeImportPath = filename => path.normalize( - `node_modules/${pkgIncludesTypings ? '' : '@types/'}${pkg}/${path.relative(packageRoot, filename)}` + `node_modules/${pkgIncludesTypings ? adapterScopedPackageName : `@types/${pkg}`}/${path.relative(packageRoot, filename)}` ).replace(/\\/g, '/'); /** @type {Record} */