UNPKG

dependency-cruiser

Version:

Validate and visualize dependencies. With your rules. JavaScript, TypeScript, CoffeeScript. ES6, CommonJS, AMD.

58 lines (54 loc) 1.2 kB
import { relative } from "node:path"; import { isFollowable } from "./module-classifiers.mjs"; import { resolve } from "./resolve.mjs"; import { isBuiltin } from "./is-built-in.mjs"; import pathToPosix from "#utl/path-to-posix.mjs"; function addResolutionAttributes( pBaseDirectory, pModuleName, pFileDirectory, pResolveOptions, ) { let lReturnValue = {}; if (isBuiltin(pModuleName, pResolveOptions)) { lReturnValue.coreModule = true; } else { try { lReturnValue.resolved = pathToPosix( relative( pBaseDirectory, resolve(pModuleName, pFileDirectory, pResolveOptions), ), ); lReturnValue.followable = isFollowable( lReturnValue.resolved, pResolveOptions, ); } catch (pError) { lReturnValue.couldNotResolve = true; } } return lReturnValue; } /* * resolves both CommonJS and ES6 */ export default function resolveCommonJS( pStrippedModuleName, pBaseDirectory, pFileDirectory, pResolveOptions, ) { return { resolved: pStrippedModuleName, coreModule: false, followable: false, couldNotResolve: false, ...addResolutionAttributes( pBaseDirectory, pStrippedModuleName, pFileDirectory, pResolveOptions, ), }; }