Latest Threat Research:SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains.Details
Socket
Book a DemoInstallSign in
Socket

module-root-sync

Package Overview
Dependencies
Maintainers
1
Versions
34
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

module-root-sync

Finds the directory that the modules resides in

latest
Source
npmnpm
Version
2.0.2
Version published
Maintainers
1
Created
Source

module-root-sync

Finds the directory that the module resides in.

import moduleRoot from 'module-root-sync';

const root = moduleRoot(import.meta.filename);

Options

interface RootOptions {
  name?: string;              // Custom marker filename (default: 'package.json')
  includeSynthetic?: boolean; // Include synthetic package.json files (default: false)
}

Synthetic package.json Detection

By default, moduleRoot skips "synthetic" package.json files that only exist to specify the module system (e.g., { "type": "module" }). These are commonly found in dist/esm or dist/cjs directories.

A package.json is considered synthetic if it has no name field.

// Default: skips synthetic package.json, finds real one
const root = moduleRoot(import.meta.filename);

// Include synthetic package.json files
const root = moduleRoot(import.meta.filename, { includeSynthetic: true });

// Custom marker file (synthetic detection only applies to package.json)
const root = moduleRoot(import.meta.filename, { name: 'tsconfig.json' });

Migration from v1.x

The keyExists option has been removed. If you were using keyExists: 'name' to skip synthetic packages, this is now the default behavior.

// v1.x
const root = moduleRoot(dir, { keyExists: 'name' });

// v2.x (same behavior, now default)
const root = moduleRoot(dir);

Documentation

API Docs

Keywords

package

FAQs

Package last updated on 12 Dec 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts