watskeburt
Get changed files & their statuses since any git revision
what's this do?
A micro-lib to retrieve an array of file names that were changed since a
revision. Also sports a cli for use outside of JavaScript c.s.
- :warning: Interface is stable, but can can change until 1.0.0 is published :warning:
why?
I needed something simple and robust to support some upcoming features in
dependency-cruiser and to
run standalone to use in combination with dependency-cruiser.
There are a few specialized packages like this on npm, but it seems they've
fallen out of maintenance. More generic packages are still maintained,
but for just this simple usage they're a bit overkill.
:construction_worker: usage
:scroll: API
import { listSync, getSHASync } from "watskeburt";
console.log(getSHASync());
const lChangedFiles = listSync("main");
const lChangedFiles = listSync("v0.6.1", "v0.7.1");
const lChangedFiles = listSync("main", null, {
trackedOnly: false,
outputType: "object",
});
The array of changes this returns looks like this:
[
{
name: "doc/cli.md",
changeType: "modified",
},
{
name: "test/thing.spec.mjs",
changeType: "renamed",
oldName: "test/old-thing.spec.mjs",
},
{
name: "src/not-tracked-yet.mjs",
changeType: "untracked",
},
];
:shell: cli
For now there's also a simple command line interface
# list all JavaScript-ish files changed since main in a regular expression
$ npx watskeburt main
^(src/cli.mjs|src/formatters/regex.mjs|src/version.mjs)$
By default this returns a regex that contains all changed files that could be
source files in the JavaScript ecosystem (.js, .mjs, .ts, .tsx ...) that can
be used in e.g. the --focus
and --reaches
filters of dependency-cruiser.
The JSON output (which looks a lot like the array above) is unfiltered and
also contains other extensions.
Usage: cli [options] [revision]
lists files & their statuses since [revision].
-> When you don't pass a revision the revision defaults to the current one.
Options:
-V, --version output the version number
-T, --output-type <type> json,regex (default: "regex")
--tracked-only only take tracked files into account (default: false)
-h, --help display help for command
🇳🇱 what does 'watskeburt' mean?
watskeburt is a fast pronunciation of the Dutch "wat is er gebeurd?"
(what has happened?) or "wat er is gebeurd" (what has happened). It's
also the title of a song by the Dutch band "De Jeugd van Tegenwoordig"
(Youth these days...).