https://github.com/jpb06/extract-dependencies-from-sources
Extracts external dependencies used in a typescript codebase
https://github.com/jpb06/extract-dependencies-from-sources
code-analysis dependencies-collector effect-ts
Last synced: about 1 year ago
JSON representation
Extracts external dependencies used in a typescript codebase
- Host: GitHub
- URL: https://github.com/jpb06/extract-dependencies-from-sources
- Owner: jpb06
- License: mit
- Created: 2023-04-17T09:01:02.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2025-04-30T13:02:10.000Z (about 1 year ago)
- Last Synced: 2025-04-30T14:28:30.019Z (about 1 year ago)
- Topics: code-analysis, dependencies-collector, effect-ts
- Language: TypeScript
- Homepage:
- Size: 528 KB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# extract-dependencies-from-sources
[](https://github.dev/jpb06/extract-dependencies-from-sources)


[](https://sonarcloud.io/summary/new_code?id=jpb06_extract-dependencies-from-sources)
[](https://sonarcloud.io/dashboard?id=jpb06_extract-dependencies-from-sources)
[](https://sonarcloud.io/dashboard?id=jpb06_extract-dependencies-from-sources)
[](https://sonarcloud.io/dashboard?id=jpb06_extract-dependencies-from-sources)
[](https://sonarcloud.io/dashboard?id=jpb06_extract-dependencies-from-sources)
[](https://sonarcloud.io/summary/new_code?id=jpb06_extract-dependencies-from-sources)
[](https://sonarcloud.io/summary/new_code?id=jpb06_extract-dependencies-from-sources)
[](https://sonarcloud.io/dashboard?id=jpb06_extract-dependencies-from-sources)
[](https://sonarcloud.io/summary/new_code?id=jpb06_extract-dependencies-from-sources)
[](https://sonarcloud.io/summary/new_code?id=jpb06_extract-dependencies-from-sources)
[](https://sonarcloud.io/dashboard?id=jpb06_extract-dependencies-from-sources)

Inferring dependencies from the source code of a monorepo app
## ⚡ Quickstart
### 🔶 Install
```bash
yarn add -D extract-dependencies-from-sources
```
```bash
pnpm i -D extract-dependencies-from-sources
```
### 🔶 Usage
#### 🧿 cjs
```bash
extractDeps --packagejson ./package.json --path codebasePath
Options:
--help Show help [boolean]
--version Show version number [boolean]
--packagejson Root package.json path [required] [default: "./package.json"]
--path Codebase path [required]
--externaldeps Path to external dependencies file (optional)
Examples:
extractDeps --packagejson ./package.json --path ./apps/back --path
./libs/back
Inferring dependencies from the source code of a monorepo app
```
For example, running the following command will replace the `dependencies` property of the root `package.json` with the dependencies found in the codebases located in `apps/back` and `libs/back/database`.
```bash
yarn extractDeps --path apps/back --path libs/back/database
```
#### 🧿 esm
```bash
extractDepsEsm --packagejson ./package.json --path codebasePath
Options:
--help Show help [boolean]
--version Show version number [boolean]
--packagejson Root package.json path [required] [default: "./package.json"]
--path Codebase path [required]
--externaldeps Path to external dependencies file (optional)
Examples:
extractDeps --packagejson ./package.json --path ./apps/back --path
./libs/back
Inferring dependencies from the source code of a monorepo app
```
#### 🧿 node
You can also use the function directly in your code:
```ts
import { getCodebasesDependencies } from 'extract-dependencies-from-sources';
import { readJson } from 'fs-extra';
const data = await readJson('./package.json');
const deps = await getCodebasesDependencies(data.dependencies, [
'apps/front/auth',
'lib/front/components',
]);
```
### 🔶 Including external dependencies
You can also specify external dependencies to include in the output by providing a path to a yaml file containing a map of dependencies:
> external-deps.yml
```yaml
externaldeps:
- msw: ^1.1.0
- eslint: ~8.36.0
```
You can then use the `--externaldeps` option to include them:
```bash
yarn extractDeps --path apps/front --externaldeps ./external-deps.yml
```