watskeburt 4.0.0 → 4.0.2

Sign up to get free protection for your applications and to get access to all the features.
package/dist/cli.js CHANGED
@@ -14,60 +14,60 @@ Options:
14
14
  -V, --version output the version number
15
15
  -h, --help display help for command${EOL}`;
16
16
  export async function cli(
17
- pArguments = process.argv.slice(2),
18
- pOutStream = process.stdout,
19
- pErrorStream = process.stderr,
20
- pErrorExitCode = 1,
17
+ pArguments = process.argv.slice(2),
18
+ pOutStream = process.stdout,
19
+ pErrorStream = process.stderr,
20
+ pErrorExitCode = 1,
21
21
  ) {
22
- try {
23
- const lArguments = getArguments(pArguments);
24
- if (lArguments.values.help) {
25
- pOutStream.write(HELP_MESSAGE);
26
- return;
27
- }
28
- if (lArguments.values.version) {
29
- pOutStream.write(`${VERSION}${EOL}`);
30
- return;
31
- }
32
- if (!outputTypeIsValid(lArguments.values.outputType)) {
33
- pErrorStream.write(
34
- `error: option '-T, --outputType <type>' argument '${lArguments.values.outputType}' is invalid. Allowed choices are json, regex.${EOL}`,
35
- );
36
- process.exitCode = pErrorExitCode;
37
- return;
38
- }
39
- const lResult = await list({
40
- ...lArguments.values,
41
- oldRevision: lArguments.positionals[0],
42
- newRevision: lArguments.positionals[1],
43
- });
44
- pOutStream.write(`${lResult}${EOL}`);
45
- } catch (pError) {
46
- pErrorStream.write(`${EOL}ERROR: ${pError.message}${EOL}${EOL}`);
47
- process.exitCode = pErrorExitCode;
48
- }
22
+ try {
23
+ const lArguments = getArguments(pArguments);
24
+ if (lArguments.values.help) {
25
+ pOutStream.write(HELP_MESSAGE);
26
+ return;
27
+ }
28
+ if (lArguments.values.version) {
29
+ pOutStream.write(`${VERSION}${EOL}`);
30
+ return;
31
+ }
32
+ if (!outputTypeIsValid(lArguments.values.outputType)) {
33
+ pErrorStream.write(
34
+ `error: option '-T, --outputType <type>' argument '${lArguments.values.outputType}' is invalid. Allowed choices are json, regex.${EOL}`,
35
+ );
36
+ process.exitCode = pErrorExitCode;
37
+ return;
38
+ }
39
+ const lResult = await list({
40
+ ...lArguments.values,
41
+ oldRevision: lArguments.positionals[0],
42
+ newRevision: lArguments.positionals[1],
43
+ });
44
+ pOutStream.write(`${lResult}${EOL}`);
45
+ } catch (pError) {
46
+ pErrorStream.write(`${EOL}ERROR: ${pError.message}${EOL}${EOL}`);
47
+ process.exitCode = pErrorExitCode;
48
+ }
49
49
  }
50
50
  function getArguments(pArguments) {
51
- return parseArgs({
52
- args: pArguments,
53
- options: {
54
- outputType: {
55
- type: "string",
56
- short: "T",
57
- default: "regex",
58
- },
59
- trackedOnly: {
60
- type: "boolean",
61
- default: false,
62
- },
63
- help: { type: "boolean", short: "h", default: false },
64
- version: { type: "boolean", short: "V", default: false },
65
- },
66
- strict: true,
67
- allowPositionals: true,
68
- tokens: false,
69
- });
51
+ return parseArgs({
52
+ args: pArguments,
53
+ options: {
54
+ outputType: {
55
+ type: "string",
56
+ short: "T",
57
+ default: "regex",
58
+ },
59
+ trackedOnly: {
60
+ type: "boolean",
61
+ default: false,
62
+ },
63
+ help: { type: "boolean", short: "h", default: false },
64
+ version: { type: "boolean", short: "V", default: false },
65
+ },
66
+ strict: true,
67
+ allowPositionals: true,
68
+ tokens: false,
69
+ });
70
70
  }
71
71
  function outputTypeIsValid(pOutputType) {
72
- return ["json", "regex"].includes(pOutputType);
72
+ return ["json", "regex"].includes(pOutputType);
73
73
  }
@@ -1,9 +1,9 @@
1
1
  import formatAsRegex from "./regex.js";
2
2
  import formatAsJSON from "./json.js";
3
3
  const OUTPUT_TYPE_TO_FUNCTION = new Map([
4
- ["regex", formatAsRegex],
5
- ["json", formatAsJSON],
4
+ ["regex", formatAsRegex],
5
+ ["json", formatAsJSON],
6
6
  ]);
7
7
  export function format(pChanges, pOutputType) {
8
- return OUTPUT_TYPE_TO_FUNCTION.get(pOutputType)(pChanges);
8
+ return OUTPUT_TYPE_TO_FUNCTION.get(pOutputType)(pChanges);
9
9
  }
@@ -1,4 +1,4 @@
1
1
  const INDENT = 2;
2
2
  export default function formatAsJSON(pChanges) {
3
- return JSON.stringify(pChanges, null, INDENT);
3
+ return JSON.stringify(pChanges, null, INDENT);
4
4
  }
@@ -1,42 +1,42 @@
1
1
  import { extname } from "node:path";
2
2
  const DEFAULT_EXTENSIONS = new Set([
3
- ".cjs",
4
- ".cjsx",
5
- ".coffee",
6
- ".csx",
7
- ".cts",
8
- ".js",
9
- ".json",
10
- ".jsx",
11
- ".litcoffee",
12
- ".ls",
13
- ".mjs",
14
- ".mts",
15
- ".svelte",
16
- ".ts",
17
- ".tsx",
18
- ".vue",
19
- ".vuex",
3
+ ".cjs",
4
+ ".cjsx",
5
+ ".coffee",
6
+ ".csx",
7
+ ".cts",
8
+ ".js",
9
+ ".json",
10
+ ".jsx",
11
+ ".litcoffee",
12
+ ".ls",
13
+ ".mjs",
14
+ ".mts",
15
+ ".svelte",
16
+ ".ts",
17
+ ".tsx",
18
+ ".vue",
19
+ ".vuex",
20
20
  ]);
21
21
  const DEFAULT_CHANGE_TYPES = new Set([
22
- "modified",
23
- "added",
24
- "renamed",
25
- "copied",
26
- "untracked",
22
+ "modified",
23
+ "added",
24
+ "renamed",
25
+ "copied",
26
+ "untracked",
27
27
  ]);
28
28
  export default function formatAsRegex(
29
- pChanges,
30
- pExtensions = DEFAULT_EXTENSIONS,
31
- pChangeTypes = DEFAULT_CHANGE_TYPES,
29
+ pChanges,
30
+ pExtensions = DEFAULT_EXTENSIONS,
31
+ pChangeTypes = DEFAULT_CHANGE_TYPES,
32
32
  ) {
33
- const lChanges = pChanges
34
- .filter(
35
- (pChange) =>
36
- pChangeTypes.has(pChange.type) &&
37
- pExtensions.has(extname(pChange.name)),
38
- )
39
- .map(({ name }) => name.replace(/\\/g, "\\\\").replace(/\./g, "[.]"))
40
- .join("|");
41
- return `^(${lChanges})$`;
33
+ const lChanges = pChanges
34
+ .filter(
35
+ (pChange) =>
36
+ pChangeTypes.has(pChange.type) &&
37
+ pExtensions.has(extname(pChange.name)),
38
+ )
39
+ .map(({ name }) => name.replace(/\\/g, "\\\\").replace(/\./g, "[.]"))
40
+ .join("|");
41
+ return `^(${lChanges})$`;
42
42
  }
@@ -1,84 +1,84 @@
1
1
  import { spawn } from "node:child_process";
2
2
  export async function getStatusShort(pSpawnFunction = spawn) {
3
- const lErrorMap = new Map([
4
- [129, `'${process.cwd()}' does not seem to be a git repository`],
5
- ]);
6
- const lResult = await getGitResult(
7
- ["status", "--porcelain"],
8
- lErrorMap,
9
- pSpawnFunction,
10
- );
11
- return lResult;
3
+ const lErrorMap = new Map([
4
+ [129, `'${process.cwd()}' does not seem to be a git repository`],
5
+ ]);
6
+ const lResult = await getGitResult(
7
+ ["status", "--porcelain"],
8
+ lErrorMap,
9
+ pSpawnFunction,
10
+ );
11
+ return lResult;
12
12
  }
13
13
  export async function getDiffLines(
14
- pOldRevision,
15
- pNewRevision,
16
- pSpawnFunction = spawn,
14
+ pOldRevision,
15
+ pNewRevision,
16
+ pSpawnFunction = spawn,
17
17
  ) {
18
- const lErrorMap = new Map([
19
- [
20
- 128,
21
- `revision '${pOldRevision}' ${pNewRevision ? `(or '${pNewRevision}') ` : ""}unknown`,
22
- ],
23
- [129, `'${process.cwd()}' does not seem to be a git repository`],
24
- ]);
25
- const lResult = await getGitResult(
26
- pNewRevision
27
- ? ["diff", pOldRevision, pNewRevision, "--name-status"]
28
- : ["diff", pOldRevision, "--name-status"],
29
- lErrorMap,
30
- pSpawnFunction,
31
- );
32
- return lResult;
18
+ const lErrorMap = new Map([
19
+ [
20
+ 128,
21
+ `revision '${pOldRevision}' ${pNewRevision ? `(or '${pNewRevision}') ` : ""}unknown`,
22
+ ],
23
+ [129, `'${process.cwd()}' does not seem to be a git repository`],
24
+ ]);
25
+ const lResult = await getGitResult(
26
+ pNewRevision
27
+ ? ["diff", pOldRevision, pNewRevision, "--name-status"]
28
+ : ["diff", pOldRevision, "--name-status"],
29
+ lErrorMap,
30
+ pSpawnFunction,
31
+ );
32
+ return lResult;
33
33
  }
34
34
  export async function getSHA(pSpawnFunction = spawn) {
35
- const lSha1Length = 40;
36
- const lResult = await getGitResult(
37
- ["rev-parse", "HEAD"],
38
- new Map(),
39
- pSpawnFunction,
40
- );
41
- return lResult.slice(0, lSha1Length);
35
+ const lSha1Length = 40;
36
+ const lResult = await getGitResult(
37
+ ["rev-parse", "HEAD"],
38
+ new Map(),
39
+ pSpawnFunction,
40
+ );
41
+ return lResult.slice(0, lSha1Length);
42
42
  }
43
43
  function getGitResult(pArguments, pErrorMap, pSpawnFunction) {
44
- const lGit = pSpawnFunction("git", pArguments, {
45
- cwd: process.cwd(),
46
- env: process.env,
47
- });
48
- let lStdOutData = "";
49
- let lStdErrorData = "";
50
- return new Promise((pResolve, pReject) => {
51
- lGit.stdout?.on("data", (pData) => {
52
- lStdOutData = lStdOutData.concat(pData);
53
- });
54
- lGit.stderr?.on("data", (pData) => {
55
- lStdErrorData = lStdErrorData.concat(pData);
56
- });
57
- lGit.on("close", (pCode) => {
58
- if (pCode === 0) {
59
- pResolve(stringifyOutStream(lStdOutData));
60
- } else {
61
- pReject(
62
- new Error(
63
- pErrorMap.get(pCode ?? 0) ||
64
- `internal git error: ${pCode} (${stringifyOutStream(lStdErrorData)})`,
65
- ),
66
- );
67
- }
68
- });
69
- lGit.on("error", (pError) => {
70
- if (pError?.code === "ENOENT") {
71
- pReject(new Error("git executable not found"));
72
- } else {
73
- pReject(new Error(`internal spawn error: ${pError}`));
74
- }
75
- });
76
- });
44
+ const lGit = pSpawnFunction("git", pArguments, {
45
+ cwd: process.cwd(),
46
+ env: process.env,
47
+ });
48
+ let lStdOutData = "";
49
+ let lStdErrorData = "";
50
+ return new Promise((pResolve, pReject) => {
51
+ lGit.stdout?.on("data", (pData) => {
52
+ lStdOutData = lStdOutData.concat(pData);
53
+ });
54
+ lGit.stderr?.on("data", (pData) => {
55
+ lStdErrorData = lStdErrorData.concat(pData);
56
+ });
57
+ lGit.on("close", (pCode) => {
58
+ if (pCode === 0) {
59
+ pResolve(stringifyOutStream(lStdOutData));
60
+ } else {
61
+ pReject(
62
+ new Error(
63
+ pErrorMap.get(pCode ?? 0) ||
64
+ `internal git error: ${pCode} (${stringifyOutStream(lStdErrorData)})`,
65
+ ),
66
+ );
67
+ }
68
+ });
69
+ lGit.on("error", (pError) => {
70
+ if (pError?.code === "ENOENT") {
71
+ pReject(new Error("git executable not found"));
72
+ } else {
73
+ pReject(new Error(`internal spawn error: ${pError}`));
74
+ }
75
+ });
76
+ });
77
77
  }
78
78
  function stringifyOutStream(pBufferOrString) {
79
- if (pBufferOrString instanceof Buffer) {
80
- return pBufferOrString.toString("utf8");
81
- } else {
82
- return pBufferOrString;
83
- }
79
+ if (pBufferOrString instanceof Buffer) {
80
+ return pBufferOrString.toString("utf8");
81
+ } else {
82
+ return pBufferOrString;
83
+ }
84
84
  }
package/dist/main.js CHANGED
@@ -2,26 +2,26 @@ import { parseDiffLines } from "./parse-diff-lines.js";
2
2
  import { parseStatusLines } from "./parse-status-lines.js";
3
3
  import * as primitives from "./git-primitives.js";
4
4
  export async function list(pOptions) {
5
- const lOldRevision = pOptions?.oldRevision || (await primitives.getSHA());
6
- const lOptions = pOptions || {};
7
- const [lDiffLines, lStatusLines] = await Promise.all([
8
- primitives.getDiffLines(lOldRevision, pOptions?.newRevision),
9
- !lOptions.trackedOnly ? primitives.getStatusShort() : "",
10
- ]);
11
- let lChanges = parseDiffLines(lDiffLines);
12
- if (!lOptions.trackedOnly) {
13
- lChanges = lChanges.concat(
14
- parseStatusLines(lStatusLines).filter(
15
- ({ type: changeType }) => changeType === "untracked",
16
- ),
17
- );
18
- }
19
- if (!lOptions.outputType) {
20
- return lChanges;
21
- }
22
- const { format } = await import("./format/format.js");
23
- return format(lChanges, lOptions.outputType);
5
+ const lOldRevision = pOptions?.oldRevision || (await primitives.getSHA());
6
+ const lOptions = pOptions || {};
7
+ const [lDiffLines, lStatusLines] = await Promise.all([
8
+ primitives.getDiffLines(lOldRevision, pOptions?.newRevision),
9
+ !lOptions.trackedOnly ? primitives.getStatusShort() : "",
10
+ ]);
11
+ let lChanges = parseDiffLines(lDiffLines);
12
+ if (!lOptions.trackedOnly) {
13
+ lChanges = lChanges.concat(
14
+ parseStatusLines(lStatusLines).filter(
15
+ ({ type: changeType }) => changeType === "untracked",
16
+ ),
17
+ );
18
+ }
19
+ if (!lOptions.outputType) {
20
+ return lChanges;
21
+ }
22
+ const { format } = await import("./format/format.js");
23
+ return format(lChanges, lOptions.outputType);
24
24
  }
25
25
  export function getSHA() {
26
- return primitives.getSHA();
26
+ return primitives.getSHA();
27
27
  }
@@ -1,16 +1,16 @@
1
1
  const CHANGE_CHAR_2_CHANGE_TYPE = new Map([
2
- ["A", "added"],
3
- ["C", "copied"],
4
- ["D", "deleted"],
5
- ["M", "modified"],
6
- ["R", "renamed"],
7
- ["T", "type changed"],
8
- ["U", "unmerged"],
9
- ["B", "pairing broken"],
10
- [" ", "unmodified"],
11
- ["?", "untracked"],
12
- ["!", "ignored"],
2
+ ["A", "added"],
3
+ ["C", "copied"],
4
+ ["D", "deleted"],
5
+ ["M", "modified"],
6
+ ["R", "renamed"],
7
+ ["T", "type changed"],
8
+ ["U", "unmerged"],
9
+ ["B", "pairing broken"],
10
+ [" ", "unmodified"],
11
+ ["?", "untracked"],
12
+ ["!", "ignored"],
13
13
  ]);
14
14
  export function changeChar2ChangeType(pChar) {
15
- return CHANGE_CHAR_2_CHANGE_TYPE.get(pChar) ?? "unknown";
15
+ return CHANGE_CHAR_2_CHANGE_TYPE.get(pChar) ?? "unknown";
16
16
  }
@@ -1,27 +1,25 @@
1
1
  import { EOL } from "node:os";
2
2
  import { changeChar2ChangeType } from "./map-change-type.js";
3
3
  const DIFF_NAME_STATUS_LINE_PATTERN =
4
- /^(?<changeType>[ACDMRTUXB])(?<similarity>[0-9]{3})?[ \t]+(?<name>[^ \t]+)[ \t]*(?<newName>[^ \t]+)?$/;
4
+ /^(?<type>[ACDMRTUXB])(?<similarity>[0-9]{3})?[ \t]+(?<name>[^ \t]+)[ \t]*(?<newName>[^ \t]+)?$/;
5
5
  export function parseDiffLines(pString) {
6
- return pString
7
- .split(EOL)
8
- .filter(Boolean)
9
- .map(parseDiffLine)
10
- .filter(
11
- ({ name, type: changeType }) => Boolean(name) && Boolean(changeType),
12
- );
6
+ return pString
7
+ .split(EOL)
8
+ .filter(Boolean)
9
+ .map(parseDiffLine)
10
+ .filter(({ name, type }) => Boolean(name) && Boolean(type));
13
11
  }
14
12
  export function parseDiffLine(pString) {
15
- const lMatchResult = pString.match(DIFF_NAME_STATUS_LINE_PATTERN);
16
- const lReturnValue = {};
17
- if (lMatchResult?.groups) {
18
- lReturnValue.type = changeChar2ChangeType(lMatchResult.groups.changeType);
19
- if (lMatchResult.groups.newName) {
20
- lReturnValue.name = lMatchResult.groups.newName;
21
- lReturnValue.oldName = lMatchResult.groups.name;
22
- } else {
23
- lReturnValue.name = lMatchResult.groups.name;
24
- }
25
- }
26
- return lReturnValue;
13
+ const lMatchResult = pString.match(DIFF_NAME_STATUS_LINE_PATTERN);
14
+ const lReturnValue = {};
15
+ if (lMatchResult?.groups) {
16
+ lReturnValue.type = changeChar2ChangeType(lMatchResult.groups.type);
17
+ if (lMatchResult.groups.newName) {
18
+ lReturnValue.name = lMatchResult.groups.newName;
19
+ lReturnValue.oldName = lMatchResult.groups.name;
20
+ } else {
21
+ lReturnValue.name = lMatchResult.groups.name;
22
+ }
23
+ }
24
+ return lReturnValue;
27
25
  }
@@ -1,36 +1,30 @@
1
1
  import { EOL } from "node:os";
2
2
  import { changeChar2ChangeType } from "./map-change-type.js";
3
3
  const DIFF_SHORT_STATUS_LINE_PATTERN =
4
- /^(?<stagedChangeType>[ ACDMRTUXB?!])(?<unStagedChangeType>[ ACDMRTUXB?!])[ \t]+(?<name>[^ \t]+)(( -> )(?<newName>[^ \t]+))?$/;
4
+ /^(?<stagedType>[ ACDMRTUXB?!])(?<unStagedType>[ ACDMRTUXB?!])[ \t]+(?<name>[^ \t]+)(( -> )(?<newName>[^ \t]+))?$/;
5
5
  export function parseStatusLines(pString) {
6
- return pString
7
- .split(EOL)
8
- .filter(Boolean)
9
- .map(parseStatusLine)
10
- .filter(
11
- ({ name, type: changeType }) => Boolean(name) && Boolean(changeType),
12
- );
6
+ return pString
7
+ .split(EOL)
8
+ .filter(Boolean)
9
+ .map(parseStatusLine)
10
+ .filter(({ name, type }) => Boolean(name) && Boolean(type));
13
11
  }
14
12
  export function parseStatusLine(pString) {
15
- const lMatchResult = pString.match(DIFF_SHORT_STATUS_LINE_PATTERN);
16
- const lReturnValue = {};
17
- if (lMatchResult?.groups) {
18
- const lStagedChangeType = changeChar2ChangeType(
19
- lMatchResult.groups.stagedChangeType,
20
- );
21
- const lUnStagedChangeType = changeChar2ChangeType(
22
- lMatchResult.groups.unStagedChangeType,
23
- );
24
- lReturnValue.type =
25
- lStagedChangeType === "unmodified"
26
- ? lUnStagedChangeType
27
- : lStagedChangeType;
28
- if (lMatchResult.groups.newName) {
29
- lReturnValue.name = lMatchResult.groups.newName;
30
- lReturnValue.oldName = lMatchResult.groups.name;
31
- } else {
32
- lReturnValue.name = lMatchResult.groups.name;
33
- }
34
- }
35
- return lReturnValue;
13
+ const lMatchResult = pString.match(DIFF_SHORT_STATUS_LINE_PATTERN);
14
+ const lReturnValue = {};
15
+ if (lMatchResult?.groups) {
16
+ const lStagedType = changeChar2ChangeType(lMatchResult.groups.stagedType);
17
+ const lUnStagedType = changeChar2ChangeType(
18
+ lMatchResult.groups.unStagedType,
19
+ );
20
+ lReturnValue.type =
21
+ lStagedType === "unmodified" ? lUnStagedType : lStagedType;
22
+ if (lMatchResult.groups.newName) {
23
+ lReturnValue.name = lMatchResult.groups.newName;
24
+ lReturnValue.oldName = lMatchResult.groups.name;
25
+ } else {
26
+ lReturnValue.name = lMatchResult.groups.name;
27
+ }
28
+ }
29
+ return lReturnValue;
36
30
  }
package/dist/version.js CHANGED
@@ -1 +1 @@
1
- export const VERSION = "4.0.0";
1
+ export const VERSION = "4.0.2";
package/package.json CHANGED
@@ -1,53 +1,53 @@
1
1
  {
2
- "name": "watskeburt",
3
- "version": "4.0.0",
4
- "description": "List files changed since a git revision",
5
- "keywords": [
6
- "git",
7
- "diff"
8
- ],
9
- "homepage": "https://github.com/sverweij/watskeburt",
10
- "repository": {
11
- "type": "git",
12
- "url": "git+https://github.com/sverweij/watskeburt.git"
13
- },
14
- "bugs": {
15
- "url": "https://github.com/sverweij/watskeburt/issues"
16
- },
17
- "author": {
18
- "name": "Sander Verweij",
19
- "url": "https://sverweij.github.io"
20
- },
21
- "license": "MIT",
22
- "bin": {
23
- "watskeburt": "dist/run-cli.js"
24
- },
25
- "main": "dist/main.js",
26
- "module": "dist/main.js",
27
- "type": "module",
28
- "sideEffects": false,
29
- "exports": {
30
- ".": [
31
- {
32
- "types": "./types/watskeburt.d.ts",
33
- "import": "./dist/main.js"
34
- },
35
- "./dist/main.js"
36
- ]
37
- },
38
- "types": "types/watskeburt.d.ts",
39
- "files": [
40
- "dist",
41
- "!**/*.DS_Store",
42
- "types",
43
- "LICENSE",
44
- "package.json",
45
- "README.md"
46
- ],
47
- "engines": {
48
- "node": "^18||>=20"
49
- },
50
- "scripts": {
51
- "test": "echo for test, build and static analysis scripts: see the github repository"
52
- }
2
+ "name": "watskeburt",
3
+ "version": "4.0.2",
4
+ "description": "List files changed since a git revision",
5
+ "keywords": [
6
+ "git",
7
+ "diff"
8
+ ],
9
+ "homepage": "https://github.com/sverweij/watskeburt",
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "git+https://github.com/sverweij/watskeburt.git"
13
+ },
14
+ "bugs": {
15
+ "url": "https://github.com/sverweij/watskeburt/issues"
16
+ },
17
+ "author": {
18
+ "name": "Sander Verweij",
19
+ "url": "https://sverweij.github.io"
20
+ },
21
+ "license": "MIT",
22
+ "bin": {
23
+ "watskeburt": "dist/run-cli.js"
24
+ },
25
+ "main": "dist/main.js",
26
+ "module": "dist/main.js",
27
+ "type": "module",
28
+ "sideEffects": false,
29
+ "exports": {
30
+ ".": [
31
+ {
32
+ "types": "./types/watskeburt.d.ts",
33
+ "import": "./dist/main.js"
34
+ },
35
+ "./dist/main.js"
36
+ ]
37
+ },
38
+ "types": "types/watskeburt.d.ts",
39
+ "files": [
40
+ "dist",
41
+ "!**/*.DS_Store",
42
+ "types",
43
+ "LICENSE",
44
+ "package.json",
45
+ "README.md"
46
+ ],
47
+ "engines": {
48
+ "node": "^18||>=20"
49
+ },
50
+ "scripts": {
51
+ "test": "echo for test, build and static analysis scripts: see the github repository"
52
+ }
53
53
  }
@@ -1,65 +1,65 @@
1
1
  export type changeType =
2
- | "added"
3
- | "copied"
4
- | "deleted"
5
- | "modified"
6
- | "renamed"
7
- | "type changed"
8
- | "unmerged"
9
- | "pairing broken"
10
- | "unknown"
11
- | "unmodified"
12
- | "untracked"
13
- | "ignored";
2
+ | "added"
3
+ | "copied"
4
+ | "deleted"
5
+ | "modified"
6
+ | "renamed"
7
+ | "type changed"
8
+ | "unmerged"
9
+ | "pairing broken"
10
+ | "unknown"
11
+ | "unmodified"
12
+ | "untracked"
13
+ | "ignored";
14
14
 
15
15
  export interface IChange {
16
- /**
17
- * name of the file
18
- */
19
- name: string;
20
- /**
21
- * how the file was changed
22
- */
23
- type: changeType;
24
- /**
25
- * if the file was renamed: what the old file's name was
26
- */
27
- oldName?: string;
16
+ /**
17
+ * name of the file
18
+ */
19
+ name: string;
20
+ /**
21
+ * how the file was changed
22
+ */
23
+ type: changeType;
24
+ /**
25
+ * if the file was renamed: what the old file's name was
26
+ */
27
+ oldName?: string;
28
28
  }
29
29
 
30
30
  export type outputTypeType = "regex" | "json";
31
31
 
32
32
  export interface IBaseOptions {
33
- /**
34
- * The revision against which to compare. When not passed defaults to the
35
- * _current_ commit hash (if there's any)
36
- */
37
- oldRevision?: string;
38
- /**
39
- * Newer revision against which to compare. Leave out when you want to
40
- * compare against the working tree
41
- */
42
- newRevision?: string;
43
- /**
44
- * When true only takes already tracked files into account.
45
- * When false also takes untracked files into account (default)
46
- */
47
- trackedOnly?: boolean;
33
+ /**
34
+ * The revision against which to compare. When not passed defaults to the
35
+ * _current_ commit hash (if there's any)
36
+ */
37
+ oldRevision?: string;
38
+ /**
39
+ * Newer revision against which to compare. Leave out when you want to
40
+ * compare against the working tree
41
+ */
42
+ newRevision?: string;
43
+ /**
44
+ * When true only takes already tracked files into account.
45
+ * When false also takes untracked files into account (default)
46
+ */
47
+ trackedOnly?: boolean;
48
48
  }
49
49
 
50
50
  export interface IFormatOptions extends IBaseOptions {
51
- /**
52
- * The type of output to deliver.
53
- */
54
- outputType: "regex" | "json";
51
+ /**
52
+ * The type of output to deliver.
53
+ */
54
+ outputType: "regex" | "json";
55
55
  }
56
56
 
57
57
  export interface IInternalOptions extends IBaseOptions {
58
- /**
59
- * The type of output to deliver. undefined/ left out
60
- * the outputType defaults to a list of `IChange`s
61
- */
62
- outputType?: undefined;
58
+ /**
59
+ * The type of output to deliver. undefined/ left out
60
+ * the outputType defaults to a list of `IChange`s
61
+ */
62
+ outputType?: undefined;
63
63
  }
64
64
 
65
65
  export type IOptions = IFormatOptions | IInternalOptions;