🍺 BREW Explorer

← all formulae

dtsroll

brew install dtsroll v1.8.2 MIT

CLI tool for bundling TypeScript declaration files

20
30-day installs · #6821
70
90-day · #6446
418
365-day · #5526
153
★ GitHub stars · updated 2mo ago

Runtime dependencies

GitHub topics

bundle declaration dts typescript

Links

Raw metadata
{
  "aliases": [],
  "alternatives": [],
  "build_dependencies": [],
  "categories": [],
  "caveats": null,
  "conflicts_with": [],
  "dependencies": [
    "node"
  ],
  "deprecated": 0,
  "deprecation_reason": null,
  "desc": "CLI tool for bundling TypeScript declaration files",
  "disable_reason": null,
  "disabled": 0,
  "enrichment_fetched_at": "2026-06-20T23:37:09+00:00",
  "first_seen": "2026-06-20T23:34:18+00:00",
  "full_name": "dtsroll",
  "github_default_branch": "develop",
  "github_last_commit_at": "2026-06-19T03:48:50Z",
  "github_readme_excerpt": "\u003ch2 align=\"center\"\u003e\n    \u003cimg width=\"180\" src=\"./.github/logo.webp\"\u003e\n    \u003cbr\u003e\n    dtsroll\n    \u003cbr\u003e\u003cbr\u003e\n\u003ca href=\"https://npm.im/dtsroll\"\u003e\u003cimg src=\"https://badgen.net/npm/v/dtsroll\"\u003e\u003c/a\u003e \u003ca href=\"https://npm.im/dtsroll\"\u003e\u003cimg src=\"https://badgen.net/npm/dm/dtsroll\"\u003e\u003c/a\u003e\n\u003c/h2\u003e\n\nAre you publishing a TypeScript project where consumers encounter type-checking errors like:\n\n```\nCannot find module \u0027some-package\u0027 or its corresponding type declarations.\n```\n\nWhen you compile with `tsc`, the emitted declaration files (`.d.ts` files) preserve imports exactly as written. So if your published types import from a `devDependency` or a private package (e.g. an internal monorepo package), those imports cannot be resolved by the consumer.\n\n```ts\n// dist/index.d.ts (generated by tsc)\nimport type { SomeType } from \u0027my-private-dependency\u0027 // \u274c consumers can\u0027t resolve this\n\nexport declare function myUtility(): SomeType\n```\n\nIf you can\u0027t move the dependency to `dependencies`, or you just want its types pulled directly into your published declarations, _dtsroll_ is for you.\n\n## What is dtsroll?\n\n_dtsroll_ is a TypeScript declaration (`.d.ts`) file bundler. It\u0027s zero-config and reads your `package.json` to determine how your types should be bundled.\n\n### What dtsroll does\n\n_dtsroll_ runs *after your build when `.d.ts` files have been emitted*, and works in-place to bundle them to their entry points.\n\nSince packages declared in `devDependencies` are not installed for the consumer, _dtsroll_ assumes any imports referencing them should be bundled, as they would otherwise be unresolvable.\n\nThe result is a single, clean `.d.ts` output that works for consumers without extra installs.\n\n```ts\n// dist/index.d.ts (after dtsroll)\ntype SomeType = {\n    value: string\n}\n\nexport declare function myUtility(): SomeType\n```\n\n### Features\n\n- **Zero config** \u2014 Automatically finds entry points from `package.json`.\n- **Fixes missing-type errors** \u2014 Inlines types from `devDependencies` so consumers don\u0027t need them i",
  "github_repo": "privatenumber/dtsroll",
  "github_stars": 153,
  "github_topics": [
    "bundle",
    "declaration",
    "dts",
    "typescript"
  ],
  "homepage": "https://github.com/privatenumber/dtsroll",
  "homepage_og_description": null,
  "homepage_og_image": null,
  "homepage_title": null,
  "installs_30d": 20,
  "installs_365d": 418,
  "installs_90d": 70,
  "keg_only": 0,
  "keg_only_reason": null,
  "last_seen": "2026-06-20T23:34:18+00:00",
  "license": "MIT",
  "llm_generated_at": null,
  "llm_model": null,
  "name": "dtsroll",
  "oldnames": [],
  "one_liner": null,
  "optional_dependencies": [],
  "rank_30d": 6821,
  "rank_365d": 5526,
  "rank_90d": 6446,
  "raw_hash": "93879a896a47a545",
  "recommended_dependencies": [],
  "revision": 0,
  "ruby_source_path": "Formula/d/dtsroll.rb",
  "tap": "homebrew/core",
  "test_dependencies": [],
  "uses_from_macos": [],
  "version_head": null,
  "version_stable": "1.8.2",
  "versioned_formulae": [],
  "why_use_this": null
}