{"id":16698143,"url":"https://github.com/arlac77/npm-package-walker","last_synced_at":"2025-04-10T02:56:16.589Z","repository":{"id":25903968,"uuid":"106856821","full_name":"arlac77/npm-package-walker","owner":"arlac77","description":"Walks down the local npm package dependency tree and calls a visitor function for each package","archived":false,"fork":false,"pushed_at":"2025-03-31T14:23:11.000Z","size":2626,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-31T15:53:38.383Z","etag":null,"topics":["dependency-tree","npm"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"0bsd","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arlac77.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-10-13T17:59:04.000Z","updated_at":"2025-03-31T14:23:14.000Z","dependencies_parsed_at":"2023-09-21T22:39:24.423Z","dependency_job_id":"5804f850-2e9e-4266-adff-f3fef451e081","html_url":"https://github.com/arlac77/npm-package-walker","commit_stats":{"total_commits":917,"total_committers":6,"mean_commits":"152.83333333333334","dds":0.08178844056706647,"last_synced_commit":"83e47a849caa55643ff297bb2e45dc6e50485528"},"previous_names":[],"tags_count":45,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arlac77%2Fnpm-package-walker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arlac77%2Fnpm-package-walker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arlac77%2Fnpm-package-walker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arlac77%2Fnpm-package-walker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arlac77","download_url":"https://codeload.github.com/arlac77/npm-package-walker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248147681,"owners_count":21055543,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dependency-tree","npm"],"created_at":"2024-10-12T17:50:57.943Z","updated_at":"2025-04-10T02:56:16.566Z","avatar_url":"https://github.com/arlac77.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Maintainability](undefined)](undefined)\n\n# npm-package-walker\n\nWalks down the local npm package dependency tree and calls a visitor function\nfor each package.\n\n\u003c!-- skip-example --\u003e\n\n```js\nimport { packageWalker } from \"npm-package-walker\";\n\nasync function collectPackageNames() {\n  const names = new Set();\n\n  await packageWalker(\n    async (pkg, base, modulePath) =\u003e {\n      names.add(pkg.name);\n      return true;\n    },\n    process.cwd(),\n    [\"dependencies\"]\n  );\n\n  return names;\n}\n\ncollectPackageNames().then(names =\u003e console.log(names));\n```\n\n# API\n\n\u003c!-- Generated by documentation.js. Update this documentation by updating the source code. --\u003e\n\n### Table of Contents\n\n*   [defaultDependencyTypes](#defaultdependencytypes)\n*   [packageVisitor](#packagevisitor)\n    *   [Parameters](#parameters)\n*   [packageWalker](#packagewalker)\n    *   [Parameters](#parameters-1)\n\n## defaultDependencyTypes\n\nDependency types used by default\n\n*   dependencies\n*   devDependencies\n*   optionalDependencies\n*   peerDependencies\n\n## packageVisitor\n\nType: [Function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)\n\n### Parameters\n\n*   `package` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** package.json content\n*   `directory` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** package base dir\n*   `packagePath` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\u003c[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)\u003e** how deep in the dependency tree are we (starting with 0 for the root package)\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u003c[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)\u003e** true to continue traversing dependencies of this package\n\n## packageWalker\n\nWalks the local package dependency tree and calls a visitor function.\nThe visitor function recives the decoded package.json, its directory, and the nesting level starting with 0 for the base package.\nDescending the dependency tree continues until the visitor function returns false or no more dependencies\nare declared in a package.\n\n### Parameters\n\n*   `visitor` **[packageVisitor](#packagevisitor)** async to be called for each package\n*   `base` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** directory where to start crawling package.json (optional, default `process.cwd()`)\n*   `dependencyTypes` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\u003c[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)\u003e** dig into dependency dev and/or prod (optional, default `defaultDependencyTypes`)\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u003c[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)\u003e** when resolving to true further dig into the dependencies\n\n# install\n\nWith [npm](http://npmjs.org) do:\n\n```shell\nnpm install npm-package-walker\n```\n\n# license\n\nBSD-2-Clause\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farlac77%2Fnpm-package-walker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farlac77%2Fnpm-package-walker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farlac77%2Fnpm-package-walker/lists"}