Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/miguelcastillo/pulling-deps
Pull CJS, AMD, and ESM (static and dynamic) dependencies
https://github.com/miguelcastillo/pulling-deps
Last synced: 9 days ago
JSON representation
Pull CJS, AMD, and ESM (static and dynamic) dependencies
- Host: GitHub
- URL: https://github.com/miguelcastillo/pulling-deps
- Owner: MiguelCastillo
- License: mit
- Created: 2015-01-27T02:23:28.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2020-05-23T12:04:33.000Z (over 4 years ago)
- Last Synced: 2024-10-19T19:35:13.115Z (18 days ago)
- Language: JavaScript
- Homepage:
- Size: 2.74 MB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# pulling-deps
[![Greenkeeper badge](https://badges.greenkeeper.io/MiguelCastillo/pulling-deps.svg)](https://greenkeeper.io/)
[![Build Status](https://travis-ci.org/MiguelCastillo/pulling-deps.svg)](https://travis-ci.org/MiguelCastillo/pulling-deps)> Pull CJS require, AMD define, as well as ESM dynamic and static imports.
pulling-deps accomplishes this by building and traversing an AST leveraging [acorn](http://marijnhaverbeke.nl/acorn/).
# usage
## install
### npm
```
npm install pulling-deps
```## cli
To run the cli command directly in your console, you will need to install pulling-deps globally. Alternatively, you can create npm scripts in your package json, or use npx. Running npm scripts or npx are the preferred methods for using the CLI.
### `pull-deps` which will extract the dependencies in the files you specify
```
$ pull-deps src/*.js
``````
$ echo "import('./src/index.js')" | pull-deps
```### `pull-vendor` which will extract only node module dependencies
```
$ pull-vendor src/*.js
``````
$ echo "import('./src/index.js')" | pull-vendor
```### `pull-tree` which will generate a flat map of all the dependencies
```
$ pull-tree src/*.js
``````
$ echo "import('./src/index.js')" | pull-tree
```## api
### pullDeps.fromSource
is a method that takes in a JavaScript string source as the first parameter, and an optional object as the second paramter. The second parameter is an object that is pass straight to [acorn](http://marijnhaverbeke.nl/acorn/).```javascript
const pullDeps = require('pullig-deps');// This gets us an object that has a property `dependencies`, which is an array
// of all the dependencies found.
const result = pullDeps.fromSource(`
import a from "esmdep";
const b = require("cjsdep");
import("dynamicESM");
`);// Print to console the dependencies, which will have `esmdep`, `cjsdep`, and `dynamicESM`.
console.log(result.dependencies);
```### pullDeps.fromAST
is a method that takes in as its only parameter an AST as created by acorn.```javascript
const acorn = require('acorn-dynamic-import/lib/inject').default(require('acorn'));
const pullDeps = require('pulling-deps');// Walk the AST to get all the dependencies out
const result = pullDeps.fromAST(acorn(`
import a from "esmdep";
const b = require("cjsdep");
import("dynamicESM");
`));// Print to console the dependencies, which will have `esmdep`, `cjsdep`, and `dynamicESM`.
console.log(result.dependencies);
```## build
```
grunt build
```## test
```
grunt test
```# License
MIT