@hirarijs/loader-ts 1.0.18 → 1.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +20 -1
- package/dist/index.js +20 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -213378,6 +213378,7 @@ module.exports = __toCommonJS(index_exports);
|
|
|
213378
213378
|
var import_esbuild = require("esbuild");
|
|
213379
213379
|
var import_loader = require("@hirarijs/loader");
|
|
213380
213380
|
var import_path = __toESM(require("path"), 1);
|
|
213381
|
+
var import_url = require("url");
|
|
213381
213382
|
var import_typescript = __toESM(require_typescript(), 1);
|
|
213382
213383
|
var resolverCache = /* @__PURE__ */ new Map();
|
|
213383
213384
|
var nearestConfigCache = /* @__PURE__ */ new Map();
|
|
@@ -213430,6 +213431,9 @@ function createTsResolveForConfig(tsconfigPath, debug = false) {
|
|
|
213430
213431
|
const resolver = (specifier, importer) => {
|
|
213431
213432
|
const result = import_typescript.default.resolveModuleName(specifier, importer, options, host);
|
|
213432
213433
|
let resolved = result.resolvedModule?.resolvedFileName;
|
|
213434
|
+
if (result.resolvedModule?.isExternalLibraryImport || !result.resolvedModule) {
|
|
213435
|
+
return null;
|
|
213436
|
+
}
|
|
213433
213437
|
if (resolved && resolved.endsWith(".d.ts")) {
|
|
213434
213438
|
const candidates = [
|
|
213435
213439
|
resolved.replace(/\.d\.ts$/, ".ts"),
|
|
@@ -213472,6 +213476,11 @@ function createTsResolve(importer, debug = false) {
|
|
|
213472
213476
|
if (!tsconfigPath) return null;
|
|
213473
213477
|
return createTsResolveForConfig(tsconfigPath, debug);
|
|
213474
213478
|
}
|
|
213479
|
+
function hasTsconfigFor(importer) {
|
|
213480
|
+
const root = findRootTsconfig();
|
|
213481
|
+
if (root) return true;
|
|
213482
|
+
return Boolean(findNearestTsconfig(import_path.default.dirname(importer)));
|
|
213483
|
+
}
|
|
213475
213484
|
function rewriteImports(code, filename, resolve, debug = false) {
|
|
213476
213485
|
const importLike = /(import\s+[^'";]+?from\s+['"]([^'"]+)['"])|(import\s+['"]([^'"]+)['"])|(export\s+[^'";]+?from\s+['"]([^'"]+)['"])/g;
|
|
213477
213486
|
return code.replace(importLike, (full, _a, from1, _b, from2, _c, from3) => {
|
|
@@ -213533,7 +213542,17 @@ var plugin = {
|
|
|
213533
213542
|
extensions,
|
|
213534
213543
|
match: (filename) => {
|
|
213535
213544
|
const ext = import_path.default.extname(filename);
|
|
213536
|
-
return extensions.includes(ext);
|
|
213545
|
+
return extensions.includes(ext) && hasTsconfigFor(filename);
|
|
213546
|
+
},
|
|
213547
|
+
resolve: (specifier, importer, ctx) => {
|
|
213548
|
+
if (!importer) return null;
|
|
213549
|
+
if (specifier.startsWith("node:")) return null;
|
|
213550
|
+
const resolver = createTsResolve(importer, ctx.loaderConfig.debug);
|
|
213551
|
+
if (!resolver) return null;
|
|
213552
|
+
const resolved = resolver(specifier, importer);
|
|
213553
|
+
if (!resolved) return null;
|
|
213554
|
+
if (resolved.includes("node_modules")) return null;
|
|
213555
|
+
return { url: (0, import_url.pathToFileURL)(resolved).href, shortCircuit: true };
|
|
213537
213556
|
},
|
|
213538
213557
|
transform: runTransform
|
|
213539
213558
|
};
|
package/dist/index.js
CHANGED
|
@@ -213376,6 +213376,7 @@ import {
|
|
|
213376
213376
|
IMPORT_META_URL_VARIABLE
|
|
213377
213377
|
} from "@hirarijs/loader";
|
|
213378
213378
|
import path from "path";
|
|
213379
|
+
import { pathToFileURL } from "url";
|
|
213379
213380
|
var resolverCache = /* @__PURE__ */ new Map();
|
|
213380
213381
|
var nearestConfigCache = /* @__PURE__ */ new Map();
|
|
213381
213382
|
var rootConfigPath = null;
|
|
@@ -213427,6 +213428,9 @@ function createTsResolveForConfig(tsconfigPath, debug = false) {
|
|
|
213427
213428
|
const resolver = (specifier, importer) => {
|
|
213428
213429
|
const result = import_typescript.default.resolveModuleName(specifier, importer, options, host);
|
|
213429
213430
|
let resolved = result.resolvedModule?.resolvedFileName;
|
|
213431
|
+
if (result.resolvedModule?.isExternalLibraryImport || !result.resolvedModule) {
|
|
213432
|
+
return null;
|
|
213433
|
+
}
|
|
213430
213434
|
if (resolved && resolved.endsWith(".d.ts")) {
|
|
213431
213435
|
const candidates = [
|
|
213432
213436
|
resolved.replace(/\.d\.ts$/, ".ts"),
|
|
@@ -213469,6 +213473,11 @@ function createTsResolve(importer, debug = false) {
|
|
|
213469
213473
|
if (!tsconfigPath) return null;
|
|
213470
213474
|
return createTsResolveForConfig(tsconfigPath, debug);
|
|
213471
213475
|
}
|
|
213476
|
+
function hasTsconfigFor(importer) {
|
|
213477
|
+
const root = findRootTsconfig();
|
|
213478
|
+
if (root) return true;
|
|
213479
|
+
return Boolean(findNearestTsconfig(path.dirname(importer)));
|
|
213480
|
+
}
|
|
213472
213481
|
function rewriteImports(code, filename, resolve, debug = false) {
|
|
213473
213482
|
const importLike = /(import\s+[^'";]+?from\s+['"]([^'"]+)['"])|(import\s+['"]([^'"]+)['"])|(export\s+[^'";]+?from\s+['"]([^'"]+)['"])/g;
|
|
213474
213483
|
return code.replace(importLike, (full, _a, from1, _b, from2, _c, from3) => {
|
|
@@ -213530,7 +213539,17 @@ var plugin = {
|
|
|
213530
213539
|
extensions,
|
|
213531
213540
|
match: (filename) => {
|
|
213532
213541
|
const ext = path.extname(filename);
|
|
213533
|
-
return extensions.includes(ext);
|
|
213542
|
+
return extensions.includes(ext) && hasTsconfigFor(filename);
|
|
213543
|
+
},
|
|
213544
|
+
resolve: (specifier, importer, ctx) => {
|
|
213545
|
+
if (!importer) return null;
|
|
213546
|
+
if (specifier.startsWith("node:")) return null;
|
|
213547
|
+
const resolver = createTsResolve(importer, ctx.loaderConfig.debug);
|
|
213548
|
+
if (!resolver) return null;
|
|
213549
|
+
const resolved = resolver(specifier, importer);
|
|
213550
|
+
if (!resolved) return null;
|
|
213551
|
+
if (resolved.includes("node_modules")) return null;
|
|
213552
|
+
return { url: pathToFileURL(resolved).href, shortCircuit: true };
|
|
213534
213553
|
},
|
|
213535
213554
|
transform: runTransform
|
|
213536
213555
|
};
|