Socket
Socket
Sign inDemoInstall

vite-tsconfig-paths

Package Overview
Dependencies
Maintainers
1
Versions
69
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vite-tsconfig-paths - npm Package Compare versions

Comparing version 4.0.0-alpha.5 to 4.0.0-alpha.6

107

dist/index.js

@@ -32,25 +32,12 @@ "use strict";

module.exports = __toCommonJS(src_exports);
// src/path.ts
var os = __toESM(require("os"));
var path = __toESM(require("path"));
var import_vite = require("vite");
var import_path = require("path");
var isWindows = os.platform() == "win32";
var resolve = isWindows ? (...paths) => (0, import_vite.normalizePath)(path.win32.resolve(...paths)) : path.posix.resolve;
var isAbsolute = isWindows ? path.win32.isAbsolute : path.posix.isAbsolute;
var join = path.posix.join;
var relative = path.posix.relative;
var basename = path.posix.basename;
// src/index.ts
var import_vite2 = require("vite");
var import_debug = __toESM(require("debug"));
var fs = __toESM(require("fs"));
var import_globrex = __toESM(require("globrex"));
var import_path3 = require("path");
var tsconfck = __toESM(require("tsconfck"));
var import_util = require("util");
var import_debug = __toESM(require("debug"));
var fs = __toESM(require("fs"));
var import_vite2 = require("vite");
// src/mappings.ts
var import_path2 = require("path");
var import_path = require("path");
function resolvePathMappings(paths, base) {

@@ -66,3 +53,3 @@ const sortedPatterns = Object.keys(paths).sort(

pattern: new RegExp("^" + pattern + "$"),
paths: relativePaths.map((relativePath) => (0, import_path2.resolve)(base, relativePath))
paths: relativePaths.map((relativePath) => (0, import_path.resolve)(base, relativePath))
});

@@ -80,7 +67,19 @@ }

// src/path.ts
var os = __toESM(require("os"));
var path = __toESM(require("path"));
var import_vite = require("vite");
var import_path2 = require("path");
var isWindows = os.platform() == "win32";
var resolve2 = isWindows ? (...paths) => (0, import_vite.normalizePath)(path.win32.resolve(...paths)) : path.posix.resolve;
var isAbsolute = isWindows ? path.win32.isAbsolute : path.posix.isAbsolute;
var join = path.posix.join;
var relative = path.posix.relative;
var basename = path.posix.basename;
// src/index.ts
var import_path4 = require("path");
var debug = (0, import_debug.default)("vite-tsconfig-paths");
var noMatch = [void 0, false];
var src_default = (opts = {}) => {
let resolvers;
let resolversByDir;
return {

@@ -90,8 +89,20 @@ name: "vite-tsconfig-paths",

async configResolved(config) {
const configRoot = opts.root || config.root;
const workspaceRoot = opts.root || (0, import_vite2.searchForWorkspaceRoot)(config.root);
debug("roots:", { configRoot, workspaceRoot });
let projectRoot = config.root;
let workspaceRoot;
let { root } = opts;
if (root) {
root = (0, import_path3.resolve)(projectRoot, root);
} else {
workspaceRoot = (0, import_vite2.searchForWorkspaceRoot)(projectRoot);
}
debug("options.root ==", root);
debug("project root ==", projectRoot);
debug("workspace root ==", workspaceRoot);
if (root) {
projectRoot = root;
workspaceRoot = root;
}
const projects = await resolveProjectPaths(
opts.projects,
configRoot,
projectRoot,
workspaceRoot

@@ -123,3 +134,3 @@ );

);
resolvers = [];
resolversByDir = {};
parsedProjects.forEach((project) => {

@@ -133,2 +144,4 @@ if (project.referenced) {

if (resolver) {
const projectDir = (0, import_path2.dirname)(project.tsconfigFile);
const resolvers = resolversByDir[projectDir] || (resolversByDir[projectDir] = []);
resolvers.push(resolver);

@@ -145,8 +158,24 @@ }

};
for (const resolve4 of resolvers) {
const resolved = await resolve4(viteResolve, id, importer);
if (resolved) {
return resolved;
let prevProjectDir;
let projectDir = (0, import_path2.dirname)(importer);
loop:
while (projectDir && projectDir != prevProjectDir) {
const resolvers = resolversByDir[projectDir];
if (resolvers)
for (const resolve4 of resolvers) {
const [resolved, matched] = await resolve4(
viteResolve,
id,
importer
);
if (resolved) {
return resolved;
}
if (matched) {
break loop;
}
}
prevProjectDir = projectDir;
projectDir = (0, import_path2.dirname)(prevProjectDir);
}
}
}

@@ -158,3 +187,3 @@ }

const configPath = project.tsconfigFile;
const configDir = (0, import_path.dirname)(configPath);
const configDir = (0, import_path2.dirname)(configPath);
const config = project.tsconfig;

@@ -173,3 +202,3 @@ const options = config.compilerOptions;

paths,
(_a = options.baseUrl) != null ? _a : (0, import_path.dirname)(configPath)
(_a = options.baseUrl) != null ? _a : (0, import_path2.dirname)(configPath)
);

@@ -219,3 +248,3 @@ const resolveWithPaths = async (viteResolve, id, importer) => {

if (id.includes("\0")) {
return;
return noMatch;
}

@@ -225,7 +254,7 @@ importer = (0, import_vite2.normalizePath)(importer);

if (!importerExtRE.test(importerFile)) {
return;
return noMatch;
}
const relativeImporterFile = relative(configDir, importerFile);
if (!isIncludedRelative(relativeImporterFile)) {
return;
return noMatch;
}

@@ -249,3 +278,3 @@ const suffix = (_a2 = /\?.+$/.exec(id)) == null ? void 0 : _a2[0];

}
return path2 && suffix ? path2 + suffix : path2;
return [path2 && suffix ? path2 + suffix : path2, true];
};

@@ -299,3 +328,3 @@ }

}
function resolveProjectPaths(projects, configRoot, workspaceRoot) {
function resolveProjectPaths(projects, projectRoot, workspaceRoot) {
if (projects) {

@@ -306,3 +335,3 @@ return projects.map((file) => {

}
return (0, import_path4.resolve)(configRoot, file);
return (0, import_path3.resolve)(projectRoot, file);
});

@@ -309,0 +338,0 @@ }

{
"name": "vite-tsconfig-paths",
"version": "4.0.0-alpha.5",
"version": "4.0.0-alpha.6",
"description": "Vite resolver for TypeScript compilerOptions.paths",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

@@ -1,15 +0,17 @@

import { basename, dirname, isAbsolute, join, relative } from './path'
import { searchForWorkspaceRoot, normalizePath, Plugin } from 'vite'
import type { CompilerOptions } from 'typescript'
import _debug from 'debug'
import * as fs from 'fs'
import globRex from 'globrex'
import { resolve } from 'path'
import * as tsconfck from 'tsconfck'
import type { CompilerOptions } from 'typescript'
import { inspect } from 'util'
import { normalizePath, Plugin, searchForWorkspaceRoot } from 'vite'
import { resolvePathMappings } from './mappings'
import { basename, dirname, isAbsolute, join, relative } from './path'
import { PluginOptions } from './types'
import _debug from 'debug'
import * as fs from 'fs'
import { resolvePathMappings } from './mappings'
import { resolve } from 'path'
const debug = _debug('vite-tsconfig-paths')
const noMatch = [undefined, false] as [undefined, false]
type ViteResolve = (id: string, importer: string) => Promise<string | undefined>

@@ -21,3 +23,3 @@

importer: string
) => Promise<string | undefined>
) => Promise<[resolved: string | undefined, matched: boolean]>

@@ -27,3 +29,3 @@ export type { PluginOptions }

export default (opts: PluginOptions = {}): Plugin => {
let resolvers: Resolver[]
let resolversByDir: Record<string, Resolver[]>

@@ -34,10 +36,25 @@ return {

async configResolved(config) {
const configRoot = opts.root || config.root
const workspaceRoot = opts.root || searchForWorkspaceRoot(config.root)
let projectRoot = config.root
let workspaceRoot!: string
debug('roots:', { configRoot, workspaceRoot })
let { root } = opts
if (root) {
root = resolve(projectRoot, root)
} else {
workspaceRoot = searchForWorkspaceRoot(projectRoot)
}
debug('options.root ==', root)
debug('project root ==', projectRoot)
debug('workspace root ==', workspaceRoot)
// The "root" option overrides both of these.
if (root) {
projectRoot = root
workspaceRoot = root
}
const projects = await resolveProjectPaths(
opts.projects,
configRoot,
projectRoot,
workspaceRoot

@@ -75,3 +92,3 @@ )

resolvers = []
resolversByDir = {}
parsedProjects.forEach((project) => {

@@ -87,2 +104,4 @@ // Don't create a resolver for projects with a references array.

if (resolver) {
const projectDir = dirname(project.tsconfigFile)
const resolvers = (resolversByDir[projectDir] ||= [])
resolvers.push(resolver)

@@ -98,7 +117,25 @@ }

for (const resolve of resolvers) {
const resolved = await resolve(viteResolve, id, importer)
if (resolved) {
return resolved
}
let prevProjectDir: string | undefined
let projectDir = dirname(importer)
// Find the nearest directory with a matching tsconfig file.
loop: while (projectDir && projectDir != prevProjectDir) {
const resolvers = resolversByDir[projectDir]
if (resolvers)
for (const resolve of resolvers) {
const [resolved, matched] = await resolve(
viteResolve,
id,
importer
)
if (resolved) {
return resolved
}
if (matched) {
// Once a matching resolver is found, stop looking.
break loop
}
}
prevProjectDir = projectDir
projectDir = dirname(prevProjectDir)
}

@@ -128,7 +165,13 @@ }

const resolveWithBaseUrl: Resolver | undefined = baseUrl
type InternalResolver = (
viteResolve: ViteResolve,
id: string,
importer: string
) => Promise<string | undefined>
const resolveWithBaseUrl: InternalResolver | undefined = baseUrl
? (viteResolve, id, importer) => viteResolve(join(baseUrl, id), importer)
: undefined
let resolveId: Resolver
let resolveId: InternalResolver
if (paths) {

@@ -139,3 +182,7 @@ const pathMappings = resolvePathMappings(

)
const resolveWithPaths: Resolver = async (viteResolve, id, importer) => {
const resolveWithPaths: InternalResolver = async (
viteResolve,
id,
importer
) => {
for (const mapping of pathMappings) {

@@ -198,3 +245,3 @@ const match = id.match(mapping.pattern)

if (id.includes('\0')) {
return
return noMatch
}

@@ -207,3 +254,3 @@

if (!importerExtRE.test(importerFile)) {
return
return noMatch
}

@@ -214,3 +261,3 @@

if (!isIncludedRelative(relativeImporterFile)) {
return
return noMatch
}

@@ -238,3 +285,3 @@

}
return path && suffix ? path + suffix : path
return [path && suffix ? path + suffix : path, true]
}

@@ -305,3 +352,3 @@ }

projects: string[] | undefined,
configRoot: string,
projectRoot: string,
workspaceRoot: string

@@ -314,3 +361,3 @@ ) {

}
return resolve(configRoot, file)
return resolve(projectRoot, file)
})

@@ -317,0 +364,0 @@ }

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc