Security News
Highlights from the 2024 Rails Community Survey
A record 2,709 developers participated in the 2024 Ruby on Rails Community Survey, revealing key tools, practices, and trends shaping the Rails ecosystem.
watskeburt
Advanced tools
Get changed files & their statuses since any git revision
import { list, getSHA } from "watskeburt";
// print the SHA1 of the current HEAD
console.log(await getSHA());
// list all files that differ between 'main' and the current revision (including
// files not staged for commit and files not under revision control)
/** @type {import('watskeburt').IChange[]} */
const lChangedFiles = await list({ oldRevision: "main" });
// list all files that differ between 'v0.6.1' and 'v0.7.1' (by definition
// won't include files staged for commit and/ or not under revision control)
/** @type {import('watskeburt').IChange[]} */
const lChangedFiles = await list({
oldRevision: "v0.6.1",
newRevision: "v0.7.1",
});
// list all files that differ between 'main' and the current revision
// (excluding files not staged for commit)
/** @type {import('watskeburt').IChange[]|string} */
const lChangedFiles = await list({
oldRevision: "main",
trackedOnly: false, // when set to true leaves out files not under revision control
outputType: "json", // options: "object", "json" and "regex"
});
The array of changes this returns looks like this:
[
{
name: "doc/cli.md",
type: "modified",
},
{
name: "test/thing.spec.mjs",
type: "renamed",
oldName: "test/old-thing.spec.mjs",
},
{
name: "src/not-tracked-yet.mjs",
type: "untracked",
},
];
Works with node >=18.11
# 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)$
This emits a regex that contains all changed files that could be
source files in the JavaScript ecosystem (.js, .mjs, .ts, .tsx ...). It can
be used in e.g. dependency-cruiser's --focus
and --reaches
filters.
The JSON output (= the array above, serialized) also contains other extensions.
Usage: watskeburt [options] [old-revision] [new-revision]
lists files & their statuses since [old-revision] or between [old-revision] and [new-revision].
-> When you don't pass a revision old-revision defaults to the current one.
Options:
-T, --outputType <type> what format to emit (choices: "json", "regex", default: "regex")
--trackedOnly only take tracked files into account (default: false)
-V, --version output the version number
-h, --help display help for command
I needed something robust to support caching in dependency-cruiser and to run standalone to use in combination with dependency-cruiser.
A few specialized packages like this existed, but they had fallen out of maintenance. More generic packages still were maintained, but for my use case they were overkill.
Wazzup.
watskeburt is a fast pronunciation of the Dutch "wat is er gebeurd?" (what has happened?) or "wat er is gebeurd" (what has happened).
FAQs
List files changed since a git revision
The npm package watskeburt receives a total of 276,564 weekly downloads. As such, watskeburt popularity was classified as popular.
We found that watskeburt demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
A record 2,709 developers participated in the 2024 Ruby on Rails Community Survey, revealing key tools, practices, and trends shaping the Rails ecosystem.
Security News
In 2023, data breaches surged 78% from zero-day and supply chain attacks, but developers are still buried under alerts that are unable to prevent these threats.
Security News
Solo open source maintainers face burnout and security challenges, with 60% unpaid and 60% considering quitting.