@fynpo/base
v2.1.6
Published
zero setup monorepo manager for node.js
Maintainers
Readme
@fynpo/base
The package-graph and config layer under fynpo and fyn.
It answers the questions a monorepo tool keeps asking: which directories in this repo are packages, how do they depend on each other, what order can they be built in, and what does the repo's fynpo config say. Nothing here drives a command - it's the shared model that fynpo's commands and fyn's local-package resolution are both built on.
Install
npm install @fynpo/baseUsage
import { FynpoDepGraph, FynpoConfigManager, readFynpoPackages } from "@fynpo/base";
const graph = new FynpoDepGraph({ cwd: process.cwd() });
await graph.resolve();
// packages found, and how they relate
console.log(Object.keys(graph.packages.byName));What's in it
FynpoDepGraph
Reads the repo's packages and builds the dependency graph between them - direct and indirect, across dependencies, devDependencies, optionalDependencies and peerDependencies. Gives you topological ordering for running tasks in dependency order, and resolves a name@<semver> reference to the local name@version that satisfies it.
Its autoSearched flag records whether packages were discovered by walking the repository
rather than explicit scan patterns. Auto-search continues below package directories by default.
Nested packages remain in the local dependency graph, but carry managed: false unless their
path directly matches packages.include; fynpo skips those packages for lifecycle and release
commands while still maintaining their local dependency ranges during prepare.
Set packages.autoSearch.stopOnPackageJsonFound: true to restore package directories as
traversal boundaries. This affects discovery only; it has no effect when auto-search is disabled.
FynpoConfigManager
Loads and normalizes the repo's fynpo.json / fynpo.config.js.
readFynpoPackages(options) and makePkgDeps(packages, opts)
The lower-level pieces if you want the package list or the dep relations without the graph object.
PackageRef, pkgId, getDepSection, makeDepStep
Helpers for parsing and formatting package references and dependency sections.
caching
Exported as a namespace (import { caching } from "@fynpo/base") - input/output hashing used for fynpo's task caching: processInput, processOutput, processLifecycleInput, readHashDigest.
gitignore helpers and posixify
Small utilities shared by the tools.
License
Licensed under the Apache License, Version 2.0.
