All-in-one devtool to automatically analyze, search and visualize dependencies from JavaScript, TypeScript (JSX/TSX) and Node.js (ES6, CommonJS)
MIT License
Bot releases are visible (Hide)
#162 b13d3c9
Thanks @antoine-coulon! - Allow unused files to be tracked and reported. From the CLI, --showUnusedFiles
can be used to report unused files. From the API, a new collectUnusedFiles
method is accessible through the graph API:
import skott from "skott";
const instance = await skott();
const unusedFiles = instance.useGraph().collectUnusedFiles();
This version also includes a fix for a bug related to --trackBuiltinDependencies
and --trackThirdPartyDependencies
that were not propagated anymore (since 0.34.0) when being provided from the CLI.
#161 4d19c97
Thanks @antoine-coulon! - Add support for multiple ignore patterns:
skott --ignorePattern=X --ignorePattern=Y
ignorePatterns
property instead of a single ignorePattern
(breaking change).#163 efb106a
Thanks @antoine-coulon! - Upgrade to Effect v3
#159 8cb4f1c
Thanks @antoine-coulon! - Fix skott performance timing in the CLI
Published by github-actions[bot] 4 months ago
efb106a
Thanks @antoine-coulon! - Upgrade to Effect v3Published by github-actions[bot] 4 months ago
#157 0871131
Thanks @antoine-coulon! - Expose a new rendering module providing a programmatic access to terminal and web visualizations through skott's API.
This is equivalent to use the CLI such as skott --displayMode=webapp
but offers more flexibility for the runtime configuration which suffers from limitations when only using the CLI (some configurations are nearly impossible to represent using strings e.g. providing custom functions), this is why often authors tend to introduce runtime configuration files that CLIs can pick up automatically, thing that we want to avoid with skott, by unifying it's usage either coming from the API or CLI.
Using the rendering module
import { defaultConfig } from "skott";
import { Web, Terminal } from "skott/rendering";
await Web.renderWebApplication(
// skott runtime config
defaultConfig,
// application config
{
visualization: {
granularity: "module",
},
watch: true,
port: 1111,
onListen: (port) => console.log(`Listening on port ${port}`),
open: true,
onOpenError: () => console.log(`Error when opening the browser`),
},
);
await Terminal.renderTerminalApplication(defaultConfig, {
displayMode: "graph",
exitCodeOnCircularDependencies: 1,
showCircularDependencies: true,
showUnusedDependencies: true,
watch: true,
});
Published by github-actions[bot] 7 months ago
#145 2c00723
Thanks @antoine-coulon! - Add GitHub tarball fetcher to be able to pull public repositories as .zip
(used in skott's benchmark).
Switch to an Effect-based API.
Published by github-actions[bot] 7 months ago
9d43673
Thanks @antoine-coulon! - Remove @typescript-eslint/typescript-estree warning occurring when an incompatible version of TypeScript is found by ensuring fixed compatible versions from the manifest.Published by github-actions[bot] 7 months ago
#150 04fe22d
Thanks @antoine-coulon! - This patch fixes the eager evaluation of cwd
default value from the config preventing process.chdir
to work as expected when used before invoking skott's API.
process.chdir("/tmp/somewhere");
// skott is now being executed at the root of "/tmp/somewhere"
const instance = await skott();
Note: regarding the generated graph relationships, this is pretty much equivalent as doing skott({ cwd: "/tmp/somewhere" })
, even though
node paths will be relative and won't have the same values as the later still executes skott from the script location
and not from /tmp/somewhere
. In other words, using cwd
parameter will have node paths being relative to skott's script location, while using
process.chdir
will make skott execute the script from the provided directory.
You can find a real example of the difference between node paths using process.chdir
and cwd
: https://github.com/antoine-coulon/skott/issues/149#issuecomment-1989451725
by @mattkindy.
Published by antoine-coulon 8 months ago
groupBy
feature by @AlexandrHoroshih in https://github.com/antoine-coulon/skott/pull/146
Full Changelog: https://github.com/antoine-coulon/skott/compare/v0.32.0...0.33.0
Published by github-actions[bot] 9 months ago
4a3bd27
Thanks @pedrolamas! - Fixes high severity vulnerability in lodash.* dependency by replacing it with lodash-esPublished by github-actions[bot] 9 months ago
#131 777998c
Thanks @antoine-coulon! - Add watch mode through --watch
cli option that can be used with all display modes:
--displayMode=webapp
(default)Changes will fully re-render the graph with its new content. Changes are not atomic yet, meaning that even if only one file is changed, the graph is being re-rendered anyway. Note that this might be improved in the future.
--displayMode=file-tree
or --displayMode=graph
Changes will clear the terminal and output the new computed graph with other information depending on selected options (--showCircularDependencies
etc).
--displayMode=raw
Changes will clear the terminal and output the new information depending on selected options (--showCircularDependencies
, etc). As usual with raw
mode, the graph is not rendered.
Few breaking changes:
--showCircularDependencies
and --showUnusedDependencies
together with --displayMode=webapp
will throw error. This is because these options were thought to be used in the context of cli output which is not very useful when using the webapp
.Note that the web application has an option to show circular dependencies without the need for the --showCircularDependencies
to be provided. The same for --showUnusedDependencies
will be done in the next versions, for now showing unused dependencies is only supported using raw
, file-tree
or graph
display modes.
777998c
]:
Published by github-actions[bot] 10 months ago
8c76a8c
Thanks @antoine-coulon! - Get rid of OS specific path separator by only considering unix-like file pathsPublished by github-actions[bot] about 1 year ago
06674a0
Thanks @robertoyoc! - Resolve index.jsx
and index.tsx
when they are being imported from .
and ./
declarations.Published by antoine-coulon about 1 year ago
#118 9dcb23f
Thanks @antoine-coulon! - Bump most dependencies to their latest available version. Notably bumps TypeScript
to v5 and @typescript-eslint/typescript-estree
to v6. This version also lightens skott
node_modules size from ~144MB to ~94MB.
Updated dependencies [9dcb23f
]:
Published by github-actions[bot] about 1 year ago
2e80022
]:
Published by github-actions[bot] about 1 year ago
2e80022
Thanks @antoine-coulon! - Reduce package size by getting rid of unused prod deps as the project is shipped bundledPublished by github-actions[bot] about 1 year ago
1d4b302
Thanks @antoine-coulon! - Introduce new skott web application (v2), can be used starting from [email protected]skott --displayMode=webapp
is still the way to go.1d4b302
]:
Published by github-actions[bot] about 1 year ago
1d4b302
Thanks @antoine-coulon! - Introduce new skott web application (v2), can be used starting from [email protected]skott --displayMode=webapp
is still the way to go.Published by github-actions[bot] about 1 year ago
f41de8b
Thanks @antoine-coulon! - Use localhost instead of 127.0.0.1 to ensure a better cross platform compatibility when auto opening the web application. Thanks @HassanMojab for the hint!Published by github-actions[bot] about 1 year ago
ad5e4be
Thanks @antoine-coulon! - Use cmd.exe (natively installed on WSL) instead of wslview to auto open browser when using webapp display modePublished by github-actions[bot] about 1 year ago
5f1d31b
Thanks @antoine-coulon! - Allow web application to be automatically opened on WSL via wslview. Better error handling when the application can't be automatically opened.Published by github-actions[bot] about 1 year ago