@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 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
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hirarijs/loader-ts",
3
- "version": "1.0.18",
3
+ "version": "1.0.20",
4
4
  "description": "TypeScript loader plugin for HirariJS loader",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",