Skip to content

feat(monorepo): basic monorepo#693

Open
avivkeller wants to merge 3 commits intofeature/monorepofrom
feat/monorepo/step-1
Open

feat(monorepo): basic monorepo#693
avivkeller wants to merge 3 commits intofeature/monorepofrom
feat/monorepo/step-1

Conversation

@avivkeller
Copy link
Member

@avivkeller avivkeller commented Mar 21, 2026

Tip

This will merge into a feature branch, NOT the main branch

  • Step 1: Basic Monorepo
  • Step 2: Break out single generator with no dependencies (other than internal ones) and rewrite orchestrator to support it
  • Step 3: Break out remaining generators with no dependencies
  • Step 4: Break out remaining generators
  • Step 5: Rewrite typing system and documentation for mono-repo

@avivkeller avivkeller requested a review from a team as a code owner March 21, 2026 17:53
Copilot AI review requested due to automatic review settings March 21, 2026 17:53
@vercel
Copy link

vercel bot commented Mar 21, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
api-docs-tooling Ready Ready Preview Mar 21, 2026 8:37pm

Request Review

@codecov
Copy link

codecov bot commented Mar 21, 2026

Codecov Report

❌ Patch coverage is 0% with 7 lines in your changes missing coverage. Please review.
✅ Project coverage is 74.84%. Comparing base (04abf36) to head (1537707).

Files with missing lines Patch % Lines
eslint.config.mjs 0.00% 7 Missing ⚠️
Additional details and impacted files
@@                 Coverage Diff                  @@
##           feature/monorepo     #693      +/-   ##
====================================================
- Coverage             75.44%   74.84%   -0.60%     
====================================================
  Files                   148      149       +1     
  Lines                 13572    13683     +111     
  Branches               1023     1023              
====================================================
+ Hits                  10239    10241       +2     
- Misses                 3328     3437     +109     
  Partials                  5        5              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions
Copy link

github-actions bot commented Mar 21, 2026

orama-db Generator

File Base Head Diff
orama-db.json 8.05 MB 8.05 MB -1.00 B (-0.00%)

web Generator

File Base Head Diff
styles.css 137.01 KB 136.99 KB -15.00 B (-0.01%)

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a basic pnpm monorepo layout and migrates the existing doc-kit implementation into packages/core, including a generator pipeline, supporting utilities, and CI updates to run tests/lint across the workspace.

Changes:

  • Add pnpm workspace configuration and split the project into a packages/* monorepo with packages/core as the main package.
  • Introduce/port core runtime: generator orchestration, threading/streaming utilities, parsers, and multiple generators (web, sitemap, llms-txt, etc.) under packages/core/src.
  • Update GitHub Actions workflows and repo tooling (ESLint/Prettier/c8 ignores) for the new folder structure.

Reviewed changes

Copilot reviewed 11 out of 230 changed files in this pull request and generated no comments.

Show a summary per file
File Description
pnpm-workspace.yaml Defines pnpm workspace packages/*
package.json Converts root to private monorepo + pnpm -r scripts
eslint.config.mjs Updates paths/ignores for monorepo layout
.prettierignore Updates ignored paths to packages/core
.gitignore Adds pnpm-debug.log
.c8rc.json Updates coverage excludes to packages/core
.github/workflows/ci.yml Switches CI to pnpm setup-environment
.github/workflows/generate.yml Updates generator workflow to run packages/core CLI
.github/workflows/publish.yml Removes old publish workflow
packages/core/package.json Adds new core package manifest/scripts/deps
packages/core/shiki.config.mjs Adds shiki config for core generator
packages/core/bin/cli.mjs Adds core CLI entrypoint
packages/core/bin/utils.mjs Adds CLI error wrapper
packages/core/bin/commands/index.mjs Registers CLI commands
packages/core/bin/commands/generate.mjs Adds generate command + options
packages/core/src/generators.mjs Adds generator orchestration pipeline
packages/core/src/streaming.mjs Adds async-generator collection + caching
packages/core/src/threading/index.mjs Adds Piscina pool factory
packages/core/src/threading/parallel.mjs Adds parallel chunk scheduling/streaming
packages/core/src/threading/chunk-worker.mjs Adds Piscina worker entrypoint
packages/core/src/logger/constants.mjs Adds logger level constants
packages/core/src/logger/types.d.ts Adds logger transport types
packages/core/src/logger/index.mjs Adds logger factory + default logger
packages/core/src/logger/transports/index.mjs Exposes console/github transports
packages/core/src/logger/transports/console.mjs Console transport formatting
packages/core/src/logger/transports/github.mjs GitHub Actions transport integration
packages/core/src/logger/utils/colors.mjs Color formatting helpers
packages/core/src/logger/utils/time.mjs Timestamp formatting helper
packages/core/src/parsers/types.d.ts Adds parser shared types
packages/core/src/parsers/markdown.mjs Adds changelog/index markdown parsing
packages/core/src/parsers/json.mjs Adds JSON type-map parsing
packages/core/src/parsers/tests/markdown.test.mjs Tests markdown parser
packages/core/src/parsers/tests/json.test.mjs Tests JSON parser
packages/core/src/utils/array.mjs Adds enforceArray helper
packages/core/src/utils/misc.mjs Adds lazy + deepMerge helpers
packages/core/src/utils/file.mjs Adds writeFile helper (mkdir -p) + withExt
packages/core/src/utils/url.mjs Adds URL/file loading + import + relative
packages/core/src/utils/parser.mjs Adds URL/file loading helper (parser)
packages/core/src/utils/html-minifier.mjs Adds HTML minifier wrapper
packages/core/src/utils/unist.mjs Adds unist node->string utilities
packages/core/src/utils/remark.mjs Adds unified/remark/rehype/recma pipelines
packages/core/src/utils/queries/constants.mjs Adds query constants
packages/core/src/utils/queries/utils.mjs Adds typed-list detection helper
packages/core/src/utils/queries/index.mjs Adds query regex + UNIST predicates
packages/core/src/utils/tests/url.test.mjs Tests URL utilities
packages/core/src/utils/tests/parser.test.mjs Tests parser loadFromURL
packages/core/src/utils/tests/unist.test.mjs Tests unist utilities
packages/core/src/utils/configuration/types.d.ts Adds configuration type model
packages/core/src/utils/configuration/templates.mjs Adds URL template population
packages/core/src/utils/configuration/index.mjs Adds config loading/merging/coercion
packages/core/src/utils/configuration/tests/index.test.mjs Tests configuration module
packages/core/src/generators/index.mjs Registers all generators
packages/core/src/generators/tests/index.test.mjs Validates generator metadata
packages/core/src/generators/ast/constants.mjs Adds ast generator constants
packages/core/src/generators/ast/types.d.ts Adds ast generator types
packages/core/src/generators/ast/index.mjs Adds ast generator metadata
packages/core/src/generators/ast/README.md Documents ast generator
packages/core/src/generators/ast/generate.mjs Adds ast generator implementation
packages/core/src/generators/ast-js/types.d.ts Adds ast-js generator types
packages/core/src/generators/ast-js/index.mjs Adds ast-js generator metadata
packages/core/src/generators/ast-js/README.md Documents ast-js generator
packages/core/src/generators/ast-js/generate.mjs Adds ast-js generator implementation
packages/core/src/generators/metadata/types.d.ts Adds metadata generator types
packages/core/src/generators/metadata/index.mjs Adds metadata generator metadata
packages/core/src/generators/metadata/README.md Documents metadata generator
packages/core/src/generators/metadata/generate.mjs Adds metadata generator implementation
packages/core/src/generators/metadata/utils/yaml.mjs Adds YAML extraction/normalization
packages/core/src/generators/metadata/utils/slugger.mjs Adds Node-flavored slugger
packages/core/src/generators/metadata/utils/tests/yaml.test.mjs Tests YAML helpers
packages/core/src/generators/metadata/utils/tests/transformers.mjs Tests type-link transformer
packages/core/src/generators/metadata/utils/tests/slugger.test.mjs Tests slugger
packages/core/src/generators/jsx-ast/types.d.ts Adds jsx-ast generator types
packages/core/src/generators/jsx-ast/index.mjs Adds jsx-ast generator metadata
packages/core/src/generators/jsx-ast/README.md Documents jsx-ast generator
packages/core/src/generators/jsx-ast/generate.mjs Adds jsx-ast generator implementation
packages/core/src/generators/jsx-ast/utils/transformer.mjs Adds JSX element transformer
packages/core/src/generators/jsx-ast/utils/getSortedHeadNodes.mjs Adds head-node sorting
packages/core/src/generators/jsx-ast/utils/tests/buildContent.test.mjs Tests content transforms
packages/core/src/generators/web/types.d.ts Adds web generator types
packages/core/src/generators/web/index.mjs Adds web generator metadata
packages/core/src/generators/web/README.md Documents web generator
packages/core/src/generators/web/template.html Adds web HTML template
packages/core/src/generators/web/constants.mjs Adds web generator constants
packages/core/src/generators/web/generate.mjs Adds web generator implementation
packages/core/src/generators/web/utils/generate.mjs Adds program builder (client/server)
packages/core/src/generators/web/utils/data.mjs Adds static data extraction for client
packages/core/src/generators/web/utils/css.mjs Adds CSS loader plugin for rolldown
packages/core/src/generators/web/utils/chunks.mjs Adds chunked require runtime
packages/core/src/generators/web/ui/package.json Marks UI sideEffects false
packages/core/src/generators/web/ui/types.d.ts Declares UI globals
packages/core/src/generators/web/ui/index.css Adds web UI styles
packages/core/src/generators/web/ui/constants.mjs Exposes static data constant
packages/core/src/generators/web/ui/hooks/useTheme.mjs Adds theme hook
packages/core/src/generators/web/ui/hooks/useOrama.mjs Adds Orama hook
packages/core/src/generators/web/ui/components/NoOp.jsx Adds no-op component
packages/core/src/generators/web/ui/components/NavBar.jsx Adds NavBar wrapper
packages/core/src/generators/web/ui/components/CodeBox.jsx Adds CodeBox wrapper
packages/core/src/generators/web/ui/components/Layout/index.jsx Adds Layout wrapper
packages/core/src/generators/web/ui/components/SideBar/index.jsx Adds SideBar wrapper
packages/core/src/generators/web/ui/components/SideBar/index.module.css SideBar CSS module
packages/core/src/generators/web/ui/components/SearchBox/index.jsx Adds SearchBox component
packages/core/src/generators/web/ui/components/SearchBox/index.module.css SearchBox styles
packages/core/src/generators/web/ui/components/MetaBar/index.jsx Adds MetaBar wrapper
packages/core/src/generators/web/ui/components/MetaBar/index.module.css MetaBar styles
packages/core/src/generators/sitemap/types.d.ts Adds sitemap generator types
packages/core/src/generators/sitemap/index.mjs Adds sitemap generator metadata
packages/core/src/generators/sitemap/README.md Documents sitemap generator
packages/core/src/generators/sitemap/template.xml Adds sitemap template
packages/core/src/generators/sitemap/entry-template.xml Adds sitemap entry template
packages/core/src/generators/sitemap/utils/createPageSitemapEntry.mjs Builds sitemap entries
packages/core/src/generators/sitemap/generate.mjs Adds sitemap generator implementation
packages/core/src/generators/llms-txt/types.d.ts Adds llms-txt generator types
packages/core/src/generators/llms-txt/index.mjs Adds llms-txt generator metadata
packages/core/src/generators/llms-txt/README.md Documents llms-txt generator
packages/core/src/generators/llms-txt/template.txt Adds llms template
packages/core/src/generators/llms-txt/utils/buildApiDocLink.mjs Builds API doc links
packages/core/src/generators/llms-txt/utils/tests/buildApiDocLink.test.mjs Tests llms link builder
packages/core/src/generators/llms-txt/generate.mjs Adds llms-txt generator implementation
packages/core/src/generators/orama-db/types.d.ts Adds orama-db generator types
packages/core/src/generators/orama-db/index.mjs Adds orama-db generator metadata
packages/core/src/generators/orama-db/README.md Documents orama-db generator
packages/core/src/generators/orama-db/constants.mjs Orama schema constants
packages/core/src/generators/orama-db/utils/title.mjs Hierarchical title builder
packages/core/src/generators/orama-db/utils/tests/title.test.mjs Tests hierarchical titles
packages/core/src/generators/orama-db/generate.mjs Adds orama-db generator implementation
packages/core/src/generators/man-page/types.d.ts Adds man-page generator types
packages/core/src/generators/man-page/index.mjs Adds man-page generator metadata
packages/core/src/generators/man-page/README.md Documents man-page generator
packages/core/src/generators/man-page/template.1 Adds mdoc template
packages/core/src/generators/man-page/generate.mjs Adds man-page generator implementation
packages/core/src/generators/json-simple/types.d.ts Adds json-simple generator types
packages/core/src/generators/json-simple/index.mjs Adds json-simple generator metadata
packages/core/src/generators/json-simple/README.md Documents json-simple generator
packages/core/src/generators/json-simple/generate.mjs Adds json-simple generator implementation
packages/core/src/generators/legacy-json/constants.mjs Adds legacy-json constants
packages/core/src/generators/legacy-json/index.mjs Adds legacy-json generator metadata
packages/core/src/generators/legacy-json/README.md Documents legacy-json generator
packages/core/src/generators/legacy-json/generate.mjs Adds legacy-json generator implementation
packages/core/src/generators/legacy-json/utils/buildHierarchy.mjs Adds hierarchy builder
packages/core/src/generators/legacy-json/utils/tests/buildHierarchy.test.mjs Tests hierarchy builder
packages/core/src/generators/legacy-json/utils/tests/buildSection.test.mjs Tests section promotion
packages/core/src/generators/legacy-json-all/types.d.ts Adds legacy-json-all types
packages/core/src/generators/legacy-json-all/index.mjs Adds legacy-json-all metadata
packages/core/src/generators/legacy-json-all/README.md Documents legacy-json-all
packages/core/src/generators/legacy-json-all/generate.mjs Adds legacy-json-all implementation
packages/core/src/generators/legacy-html/types.d.ts Adds legacy-html generator types
packages/core/src/generators/legacy-html/index.mjs Adds legacy-html metadata
packages/core/src/generators/legacy-html/README.md Documents legacy-html generator
packages/core/src/generators/legacy-html/utils/tableOfContents.mjs Builds legacy HTML ToC
packages/core/src/generators/legacy-html/utils/buildDropdowns.mjs Builds legacy dropdowns
packages/core/src/generators/legacy-html/utils/buildExtraContent.mjs Builds extra legacy content
packages/core/src/generators/legacy-html/utils/replaceTemplateValues.mjs Fills legacy template values
packages/core/src/generators/legacy-html/assets/js-flavor-esm.svg Adds legacy asset
packages/core/src/generators/legacy-html/assets/js-flavor-cjs.svg Adds legacy asset
packages/core/src/generators/legacy-html-all/types.d.ts Adds legacy-html-all types
packages/core/src/generators/legacy-html-all/index.mjs Adds legacy-html-all metadata
packages/core/src/generators/legacy-html-all/README.md Documents legacy-html-all
packages/core/src/generators/legacy-html-all/generate.mjs Adds legacy-html-all implementation
packages/core/src/generators/api-links/types.d.ts Adds api-links generator types
packages/core/src/generators/api-links/index.mjs Adds api-links metadata
packages/core/src/generators/api-links/README.md Documents api-links generator
packages/core/src/generators/api-links/constants.mjs Adds api-links constants
packages/core/src/generators/api-links/utils/checkIndirectReferences.mjs Adds indirect reference mapping
packages/core/src/generators/api-links/generate.mjs Adds api-links implementation
packages/core/src/generators/api-links/tests/fixtures.test.mjs Adds api-links fixture tests
packages/core/src/generators/api-links/tests/fixtures.test.mjs.snapshot Adds snapshots
packages/core/src/generators/api-links/tests/fixtures/root.js Adds fixture
packages/core/src/generators/api-links/tests/fixtures/reverse.js Adds fixture
packages/core/src/generators/api-links/tests/fixtures/prototype.js Adds fixture
packages/core/src/generators/api-links/tests/fixtures/mod.js Adds fixture
packages/core/src/generators/api-links/tests/fixtures/exports.js Adds fixture
packages/core/src/generators/api-links/tests/fixtures/class.js Adds fixture
packages/core/src/generators/api-links/tests/fixtures/buffer.js Adds fixture
packages/core/src/generators/addon-verify/types.d.ts Adds addon-verify types
packages/core/src/generators/addon-verify/index.mjs Adds addon-verify metadata
packages/core/src/generators/addon-verify/README.md Documents addon-verify
packages/core/src/generators/addon-verify/constants.mjs Adds addon-verify constants
packages/core/src/generators/addon-verify/utils/section.mjs Adds section helpers
packages/core/src/generators/addon-verify/utils/generateFileList.mjs Adds file list generator
packages/core/src/generators/addon-verify/utils/tests/section.test.mjs Tests section helpers
packages/core/src/generators/addon-verify/utils/tests/generateFileList.test.mjs Tests file list generator
packages/core/src/generators/addon-verify/generate.mjs Adds addon-verify implementation
Comments suppressed due to low confidence (2)

.github/workflows/ci.yml:28

  • This workflow no longer checks out the repository before running node --run .... Unless nodejs/web-team/actions/setup-environment performs a checkout (unusual for a setup action), these steps will run without the codebase present and fail. Add an explicit actions/checkout step (typically before setup/install) for both quality and test jobs.
      - uses: nodejs/web-team/actions/setup-environment@9f3c83af227d721768d9dbb63009a47ed4f4282f
        with:
          pnpm: true
          use-version-file: true

      - name: Run linting
        run: node --run lint

      - name: Check formatting

.github/workflows/generate.yml:138

  • The generate job checks out nodejs/node into ./node, but it no longer checks out this repository (doc-kit) before running node packages/core/bin/cli.mjs .... That path won’t exist without an actions/checkout of the current repo. Add a checkout for this repo (and install deps if the setup action doesn’t) before checking out nodejs/node.
      - uses: nodejs/web-team/actions/setup-environment@9f3c83af227d721768d9dbb63009a47ed4f4282f
        with:
          pnpm: true
          use-version-file: true

      - name: Git Checkout
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
        with:
          persist-credentials: false
          repository: nodejs/node
          ref: ${{ needs.prepare.outputs.sha }}
          sparse-checkout: |
            doc/api
            lib
            .
          path: node

      - name: Generate ${{ matrix.target }}
        run: |
          node packages/core/bin/cli.mjs generate \
            -t ${{ matrix.target }} \
            -i "${{ matrix.input }}" \
            -o out \
            -c ./node/CHANGELOG.md \
            --index ./node/doc/api/index.md \
            --log-level debug


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 10 out of 227 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants