import-holmes
v0.3.1
Published
A tool to inspect Javascript/Typescript projects imports
Downloads
6
Maintainers
Readme
Import Holmes is a tool to inspect Javascript/Typescript projects imports
Warning this tool isn't in a stable version, check issues page to check futures features and current problems
Getting Started
Installing
# recommended
npx import-holmes
# or
pnpm add -g import-holmes
# or
yarn global add import-holmes
# or
npm add --location=global import-holmes
Warning if your intention is to use the core functions in your project consider not using global install
Cli
import-holmes
# or
import-holmes inspect
| Options | Default | Meaning |
|---------|---------|---------|
| -m
, --module
| all dependencies
and devDependencies
| Filter inspection by module's name |
| -s
, --specifier
| undefined
| Filter inspection by specifier name |
| -g
, --glob
| **/*.{ts,tsx}
| Glob to select files to inspect |
Config File
For better configuring you can also set a config file named .holmesrc.json
following this pattern:
// .holmesrc.json
{
"$schema": "https://raw.githubusercontent.com/pmqueiroz/import-holmes/main/schema.json",
"module": "some-module", // you can pass string[] as well
"specifier": ["first", "second"], // you can pass a sting
"glob": "**/*.{ts,tsx}",
"globIgnore": ["node_modules/**", "**/*.{spec,test}.{ts,tsx}", "**/*.d.ts"],
"parseConfig": { // refer to https://swc.rs/docs/usage/core#parse
"syntax": "typescript",
"tsx": true
}
}
Core
This package also provides the core function under the cli.
inspectModule
inspects a typescript/javascript module searching for import declarations and returns results from imports
import { inspectModule } from 'import-holmes'
const someCode = `\
import A from 'b'
import { c } from 'd'
import { e as f } from 'g'
new A()
c()
const h = f
`
const inspect = inspectModule(someCode)
// outputs
[
{ specifier: 'A', moduleName: 'b', referenced: 1 },
{ specifier: 'c', moduleName: 'd', referenced: 1 },
{ specifier: 'e', moduleName: 'g', referenced: 1 }
]
There are some available options in inspect module
inspectModule('source code', {
filename?: string
modulesFilter?: string | string[]
specifiersFilter?: string | string[]
parseConfig?: ParserConfig // refer to https://swc.rs/docs/usage/core#parse
})
known Issues
Referenced column may not work well with some typings, such as type referenced in union type
Made with :heart: by Peam