@hirarijs/loader-ts 1.0.1 → 1.0.3
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 +23 -13
- package/dist/index.js +23 -13
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -213379,11 +213379,17 @@ var import_esbuild = require("esbuild");
|
|
|
213379
213379
|
var import_loader = require("@hirarijs/loader");
|
|
213380
213380
|
var import_path = __toESM(require("path"), 1);
|
|
213381
213381
|
var import_typescript = __toESM(require_typescript(), 1);
|
|
213382
|
-
|
|
213383
|
-
|
|
213382
|
+
var cachedResolve = null;
|
|
213383
|
+
function createTsResolve(debug = false) {
|
|
213384
|
+
if (cachedResolve) return cachedResolve;
|
|
213385
|
+
const configPath = import_typescript.default.findConfigFile(process.cwd(), import_typescript.default.sys.fileExists, "tsconfig.json");
|
|
213384
213386
|
if (!configPath) return null;
|
|
213385
213387
|
const configFile = import_typescript.default.readConfigFile(configPath, import_typescript.default.sys.readFile);
|
|
213386
|
-
const config = import_typescript.default.parseJsonConfigFileContent(
|
|
213388
|
+
const config = import_typescript.default.parseJsonConfigFileContent(
|
|
213389
|
+
configFile.config,
|
|
213390
|
+
import_typescript.default.sys,
|
|
213391
|
+
import_path.default.dirname(configPath)
|
|
213392
|
+
);
|
|
213387
213393
|
const options = config.options;
|
|
213388
213394
|
const host = {
|
|
213389
213395
|
fileExists: import_typescript.default.sys.fileExists,
|
|
@@ -213393,19 +213399,20 @@ function createTsResolve(filename, debug = false) {
|
|
|
213393
213399
|
getCurrentDirectory: import_typescript.default.sys.getCurrentDirectory,
|
|
213394
213400
|
getDirectories: import_typescript.default.sys.getDirectories
|
|
213395
213401
|
};
|
|
213396
|
-
|
|
213402
|
+
cachedResolve = (specifier, importer) => {
|
|
213397
213403
|
const result = import_typescript.default.resolveModuleName(specifier, importer, options, host);
|
|
213398
213404
|
const resolved = result.resolvedModule?.resolvedFileName;
|
|
213399
|
-
if (resolved) {
|
|
213400
|
-
|
|
213401
|
-
console.log(`[loader-ts] resolved ${specifier} -> ${resolved}`);
|
|
213402
|
-
}
|
|
213403
|
-
return resolved;
|
|
213405
|
+
if (resolved && debug) {
|
|
213406
|
+
console.log(`[loader-ts] resolved ${specifier} -> ${resolved}`);
|
|
213404
213407
|
}
|
|
213405
|
-
return null;
|
|
213408
|
+
return resolved || null;
|
|
213406
213409
|
};
|
|
213410
|
+
if (debug) {
|
|
213411
|
+
console.log("[loader-ts] tsconfig:", configPath);
|
|
213412
|
+
}
|
|
213413
|
+
return cachedResolve;
|
|
213407
213414
|
}
|
|
213408
|
-
function rewriteImports(code, filename, resolve) {
|
|
213415
|
+
function rewriteImports(code, filename, resolve, debug = false) {
|
|
213409
213416
|
const importLike = /(import\s+[^'";]+?from\s+['"]([^'"]+)['"])|(import\s+['"]([^'"]+)['"])|(export\s+[^'";]+?from\s+['"]([^'"]+)['"])/g;
|
|
213410
213417
|
return code.replace(importLike, (full, _a, from1, _b, from2, _c, from3) => {
|
|
213411
213418
|
const spec = from1 || from2 || from3;
|
|
@@ -213414,6 +213421,9 @@ function rewriteImports(code, filename, resolve) {
|
|
|
213414
213421
|
}
|
|
213415
213422
|
const resolved = resolve(spec, filename);
|
|
213416
213423
|
if (!resolved) return full;
|
|
213424
|
+
if (debug) {
|
|
213425
|
+
console.log(`[loader-ts] rewrite ${spec} -> ${resolved}`);
|
|
213426
|
+
}
|
|
213417
213427
|
const relative = import_path.default.isAbsolute(resolved) ? import_path.default.relative(import_path.default.dirname(filename), resolved).replace(/\\/g, "/") : resolved;
|
|
213418
213428
|
const normalized = relative.startsWith(".") ? relative : "./" + relative;
|
|
213419
213429
|
return full.replace(spec, normalized);
|
|
@@ -213421,8 +213431,8 @@ function rewriteImports(code, filename, resolve) {
|
|
|
213421
213431
|
}
|
|
213422
213432
|
var extensions = [".ts", ".mts", ".cts"];
|
|
213423
213433
|
function runTransform(code, filename, ctx) {
|
|
213424
|
-
const pathResolver = createTsResolve(
|
|
213425
|
-
const rewrittenCode = pathResolver ? rewriteImports(code, filename, pathResolver) : code;
|
|
213434
|
+
const pathResolver = createTsResolve(ctx.loaderConfig.debug);
|
|
213435
|
+
const rewrittenCode = pathResolver && !pathResolver(filename, filename) ? code : pathResolver ? rewriteImports(code, filename, pathResolver, ctx.loaderConfig.debug) : code;
|
|
213426
213436
|
const banner = ctx.format === "cjs" ? `const ${import_loader.IMPORT_META_URL_VARIABLE} = require('url').pathToFileURL(__filename).href;` : void 0;
|
|
213427
213437
|
const result = (0, import_esbuild.transformSync)(rewrittenCode, {
|
|
213428
213438
|
loader: "ts",
|
package/dist/index.js
CHANGED
|
@@ -213376,11 +213376,17 @@ import {
|
|
|
213376
213376
|
IMPORT_META_URL_VARIABLE
|
|
213377
213377
|
} from "@hirarijs/loader";
|
|
213378
213378
|
import path from "path";
|
|
213379
|
-
|
|
213380
|
-
|
|
213379
|
+
var cachedResolve = null;
|
|
213380
|
+
function createTsResolve(debug = false) {
|
|
213381
|
+
if (cachedResolve) return cachedResolve;
|
|
213382
|
+
const configPath = import_typescript.default.findConfigFile(process.cwd(), import_typescript.default.sys.fileExists, "tsconfig.json");
|
|
213381
213383
|
if (!configPath) return null;
|
|
213382
213384
|
const configFile = import_typescript.default.readConfigFile(configPath, import_typescript.default.sys.readFile);
|
|
213383
|
-
const config = import_typescript.default.parseJsonConfigFileContent(
|
|
213385
|
+
const config = import_typescript.default.parseJsonConfigFileContent(
|
|
213386
|
+
configFile.config,
|
|
213387
|
+
import_typescript.default.sys,
|
|
213388
|
+
path.dirname(configPath)
|
|
213389
|
+
);
|
|
213384
213390
|
const options = config.options;
|
|
213385
213391
|
const host = {
|
|
213386
213392
|
fileExists: import_typescript.default.sys.fileExists,
|
|
@@ -213390,19 +213396,20 @@ function createTsResolve(filename, debug = false) {
|
|
|
213390
213396
|
getCurrentDirectory: import_typescript.default.sys.getCurrentDirectory,
|
|
213391
213397
|
getDirectories: import_typescript.default.sys.getDirectories
|
|
213392
213398
|
};
|
|
213393
|
-
|
|
213399
|
+
cachedResolve = (specifier, importer) => {
|
|
213394
213400
|
const result = import_typescript.default.resolveModuleName(specifier, importer, options, host);
|
|
213395
213401
|
const resolved = result.resolvedModule?.resolvedFileName;
|
|
213396
|
-
if (resolved) {
|
|
213397
|
-
|
|
213398
|
-
console.log(`[loader-ts] resolved ${specifier} -> ${resolved}`);
|
|
213399
|
-
}
|
|
213400
|
-
return resolved;
|
|
213402
|
+
if (resolved && debug) {
|
|
213403
|
+
console.log(`[loader-ts] resolved ${specifier} -> ${resolved}`);
|
|
213401
213404
|
}
|
|
213402
|
-
return null;
|
|
213405
|
+
return resolved || null;
|
|
213403
213406
|
};
|
|
213407
|
+
if (debug) {
|
|
213408
|
+
console.log("[loader-ts] tsconfig:", configPath);
|
|
213409
|
+
}
|
|
213410
|
+
return cachedResolve;
|
|
213404
213411
|
}
|
|
213405
|
-
function rewriteImports(code, filename, resolve) {
|
|
213412
|
+
function rewriteImports(code, filename, resolve, debug = false) {
|
|
213406
213413
|
const importLike = /(import\s+[^'";]+?from\s+['"]([^'"]+)['"])|(import\s+['"]([^'"]+)['"])|(export\s+[^'";]+?from\s+['"]([^'"]+)['"])/g;
|
|
213407
213414
|
return code.replace(importLike, (full, _a, from1, _b, from2, _c, from3) => {
|
|
213408
213415
|
const spec = from1 || from2 || from3;
|
|
@@ -213411,6 +213418,9 @@ function rewriteImports(code, filename, resolve) {
|
|
|
213411
213418
|
}
|
|
213412
213419
|
const resolved = resolve(spec, filename);
|
|
213413
213420
|
if (!resolved) return full;
|
|
213421
|
+
if (debug) {
|
|
213422
|
+
console.log(`[loader-ts] rewrite ${spec} -> ${resolved}`);
|
|
213423
|
+
}
|
|
213414
213424
|
const relative = path.isAbsolute(resolved) ? path.relative(path.dirname(filename), resolved).replace(/\\/g, "/") : resolved;
|
|
213415
213425
|
const normalized = relative.startsWith(".") ? relative : "./" + relative;
|
|
213416
213426
|
return full.replace(spec, normalized);
|
|
@@ -213418,8 +213428,8 @@ function rewriteImports(code, filename, resolve) {
|
|
|
213418
213428
|
}
|
|
213419
213429
|
var extensions = [".ts", ".mts", ".cts"];
|
|
213420
213430
|
function runTransform(code, filename, ctx) {
|
|
213421
|
-
const pathResolver = createTsResolve(
|
|
213422
|
-
const rewrittenCode = pathResolver ? rewriteImports(code, filename, pathResolver) : code;
|
|
213431
|
+
const pathResolver = createTsResolve(ctx.loaderConfig.debug);
|
|
213432
|
+
const rewrittenCode = pathResolver && !pathResolver(filename, filename) ? code : pathResolver ? rewriteImports(code, filename, pathResolver, ctx.loaderConfig.debug) : code;
|
|
213423
213433
|
const banner = ctx.format === "cjs" ? `const ${IMPORT_META_URL_VARIABLE} = require('url').pathToFileURL(__filename).href;` : void 0;
|
|
213424
213434
|
const result = transformSync(rewrittenCode, {
|
|
213425
213435
|
loader: "ts",
|