resolveRepoRoot

expérimentaldepuis 0.1.0@legba-core/mcp-docs

resolveRepoRoot

Ce que ça fait

Retrouve la racine du monorepo legba-core en remontant les dossiers parents depuis startDir jusqu’à trouver pnpm-workspace.yaml.

Signature

function resolveRepoRoot(startDir: string): string

Paramètres

NomTypeRequisDéfautDescription
startDirstringouiDossier de départ, typiquement celui du fichier en cours d’exécution (import.meta.url)

Retour

Le chemin absolu de la racine du monorepo (le dossier contenant pnpm-workspace.yaml).

Erreurs

CodeQuandComment corriger
(exception générique)Aucun pnpm-workspace.yaml trouvé en remontant depuis startDirN’appeler cette fonction que depuis un fichier situé à l’intérieur du monorepo legba-core

Exemple minimal

import { resolveRepoRoot } from "@legba-core/mcp-docs";

const root = resolveRepoRoot(process.cwd());

Exemple complet

import { dirname } from "node:path";
import { fileURLToPath } from "node:url";
import { resolveRepoRoot } from "@legba-core/mcp-docs";

const here = dirname(fileURLToPath(import.meta.url));

try {
  const root = resolveRepoRoot(here);
  console.log(`Racine du monorepo : ${root}`);
} catch (error) {
  // Ce fichier tourne hors du monorepo legba-core (ex. copié ailleurs).
  console.error(error);
}

Pièges

  • Ne fonctionne que depuis l’intérieur du monorepo legba-core (ou d’un de ses builds) : appelée depuis un autre projet, elle lève toujours.
  • Remonte jusqu’à 12 niveaux de dossiers avant d’abandonner — largement suffisant pour packages/<paquet>/src ou dist, mais pas conçue pour un projet imbriqué plus profondément.
  • Rend la racine du monorepo, pas docs/ — utiliser resolveDocsRoot pour obtenir directement le dossier de documentation.

Voir aussi