resolve-dependencies
---
npm i resolve-dependencies
`resolve-dependencies` is the very originally named bundler for [nexe](https://github.com/nexe/nexe). It wasn't our intention to build a bundler but that is kind of what this is.
## Exports
### `default: resolveSync(options: Options, ...opts: Options[]): Promise`
- `Options`: _Object | string_ -- the entry to start from (if string)
- `entries`: _string[]_ -- a list of entrypoints to traverse, resolved against cwd
- `cwd`: _string_ -- the base directory that the resolution occurs from
- `loadContent`: _boolean_ -- indicates that the content should be included int he FileMap (this may be unreasonable for large dependency trees)
- `files`: _({ [key: string]: File | null })[]_ -- a cache of already resolved files
- `expand`: _'all' | 'none' | 'variable'_ -- how module contexts should be expanded to include extra files
All options are deeply merged, string options are added as `entries`
Result returns a Promise of a result object:
- `Result`: _Object_
- `entries`: _{ [key: entry]: File }_ - all the entries as provided to the `resolve` method and the tree of connected `files`
- `files`: _{ [key: absPath]: File }_ - all resolved files keyed by their absolute path
- `warnings`: _string[]_ - an array warnings generated while processing the `files`
A `File` has the following shape
- `File`: _Object_ -- An object representing a file
- `size`: _number_ -- file size of the link or file
- `absPath`: _string_ -- absolute path to the file
- `moduleRoot`: _string | undefined_ -- Directory containing a modules package.json
- `package`: _any | undefined_
- `deps`: _{ [key: request]: File | null }_ -- Dependencies identified in the file, keyed by request
- `belongsTo`: _File | undefined_ -- The main file of the owning module
- `realSize`: _number | undefined_ -- set to the realfile size if the absPath is a symlink
- `realPath`: _string | undefined_ -- set to the realpath if the absPath is a symlink
- `contents`: _string | null_
- `contextExpanded`: _boolean_
- `variableImports`: _boolean_
## Example:
```javascript
import resolveDependencies from 'resolve-dependencies'
const { entries, files } = resolveDependencies('./entry-file.js')
console.log(entries['./entry-file.js'])
// {
// absPath: "/path/to/entry-file.js",
// contents: "console.log('hello world')",
// realSize: 26,
// realPath: "/path/to/entry/lib/file.js"
// size: 12
// variableImports: false,
// deps: {
// "./dependency": {
// absPath: "/path/to/dependency.js"
// ...
// },
// path: null, //node builtin does not resolve
// mkdirp: {
// absPath: "/path/to/node_modules/mkdirp/index.js",
// modulePath: "/path/to/node_modules/mkdirp",
// package: {
// name: "mkdirp"
// ...
// }
// }
// }
// }
// `files` is a similar structure to entries, but
// is flat and keyed by the file's absolute path.
```