watskeburt 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
package/README.md CHANGED
@@ -1,18 +1,16 @@
1
1
  # watskeburt
2
2
 
3
- get git changed files & their statusses since _any reference_
3
+ get git changed files & their statuses since _any reference_
4
4
 
5
5
  ## what's this do?
6
6
 
7
7
  A micro-lib to retrieve an array of file names that were changed (added,
8
8
  modified, renamed, deleted, ...) since the reference it got passed.
9
9
 
10
- - :warning: NOT yet published on npm
11
10
  - :warning: in the process of getting 'production ready'. It's automatically
12
- tested + it's using itself + interface is stable - but a bunch of static
13
- analysis still needs be added, as well as a commonjs version.
14
- - :warning: currently esm only - commonjs compiledown will follow as part of the
15
- previous point.
11
+ tested + it's using itself - but a bunch of static analysis and a bit of
12
+ automation still needs be added.
13
+ - Interface is stable-ish, but can can change until 1.0.0 is published
16
14
 
17
15
  ## sample return value
18
16
 
@@ -0,0 +1 @@
1
+ var a=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var R=(t,e)=>{for(var n in e)a(t,n,{get:e[n],enumerable:!0})},_=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of N(e))!C.call(t,r)&&r!==n&&a(t,r,{get:()=>e[r],enumerable:!(o=S(e,r))||o.enumerable});return t};var w=t=>_(a({},"__esModule",{value:!0}),t);var B={};R(B,{convert:()=>v});module.exports=w(B);var u=require("os"),x=new RegExp("^(?<changeType>[ACDMRTUXB])(?<similarity>[0-9]{3})?[ ]+(?<name>[^ ]+)[ ]*(?<newName>[^ ]+)?$"),E=new RegExp("^(?<stagedChangeType>[ ACDMRTUXB?!])(?<unStagedChangeType>[ ACDMRTUXB?!])[ ]+(?<name>[^ ]+)(( -> )(?<newName>[^ ]+))?$"),A={A:"added",C:"copied",D:"deleted",M:"modified",R:"renamed",T:"type changed",U:"unmerged",B:"pairing broken"," ":"unmodified","?":"untracked","!":"ignored"};function i(t){return A[t]||"unknown"}function U(t){let e=t.match(E),n={};if(e){let o=i(e.groups.stagedChangeType),r=i(e.groups.unStagedChangeType);n.changeType=o==="unmodified"?r:o,e.groups.newName?(n.name=e.groups.newName,n.oldName=e.groups.name):n.name=e.groups.name}return n}function D(t){let e=t.match(x),n={};return e&&(n.changeType=i(e.groups.changeType),e.groups.similarity&&(n.similarity=Number.parseInt(e.groups.similarity,10)),e.groups.newName?(n.name=e.groups.newName,n.oldName=e.groups.name):n.name=e.groups.name),n}function p(t){return t.split(u.EOL).filter(Boolean).map(U).filter(({changeType:e})=>Boolean(e))}function g(t){return t.split(u.EOL).filter(Boolean).map(D).filter(({changeType:e})=>Boolean(e))}var s=require("child_process");function l(t){return t instanceof Buffer?t.toString("utf8"):t}function d(t,e){let n=e("git",t,{cwd:process.cwd(),env:process.env});if(n.error)throw new Error(l(n.error));if(n.status===0)return l(n.stdout);throw new Error(n.output)}function T(t=s.spawnSync){return d(["status","--porcelain"],t)}function h(t,e=s.spawnSync){return d(["diff",t,"--name-status"],e)}var y=require("path");function f(t,e=[".js",".ts",".mjs",".cjs"],n=["modified","added","renamed","copied","untracked"]){return`^(${t.filter(r=>n.includes(r.changeType)).map(({name:r})=>r).filter(r=>e.includes((0,y.extname)(r))).join("|")})$`}function c(t){return JSON.stringify(t,null,2)}var L={regex:f,json:c,object:t=>t},O="object";function m(t,e){return L[e||O](t)}function v(t,e){let n=g(h(t)),o=e||{};return o.trackedOnly||(n=n.concat(p(T()).filter(({changeType:r})=>r==="untracked"))),m(n,o.outputType)}0&&(module.exports={convert});
package/package.json CHANGED
@@ -1,20 +1,23 @@
1
1
  {
2
2
  "name": "watskeburt",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "list files changed since a git reference",
5
5
  "bin": "src/cli.mjs",
6
- "main": "src/main.mjs",
6
+ "main": "dist/cjs-bundle.js",
7
7
  "module": "src/main.mjs",
8
8
  "exports": {
9
9
  ".": [
10
10
  {
11
- "import": "./src/main.mjs"
12
- }
11
+ "import": "./src/main.mjs",
12
+ "require": "./dist/cjs-bundle.js"
13
+ },
14
+ "./dist/cjs-bundle.js"
13
15
  ]
14
16
  },
15
17
  "types": "types/watskeburt.d.ts",
16
18
  "files": [
17
19
  "src",
20
+ "dist",
18
21
  "!src/**/*.spec.mjs",
19
22
  "!**/*.DS_Store",
20
23
  "types",
@@ -23,17 +26,21 @@
23
26
  "README.md"
24
27
  ],
25
28
  "scripts": {
29
+ "build": "esbuild src/main.mjs --format=cjs --target=node12 --platform=node --bundle --global-name=wkbtcjs --minify --outfile=dist/cjs-bundle.js",
30
+ "clean": "rm -rf dist",
26
31
  "test": "mocha \"src/**/*.spec.mjs\"",
27
32
  "test:cover": "c8 --check-coverage --statements 100 --branches 100 --functions 100 --lines 100 --exclude \"**/*.spec.mjs\" --reporter text-summary --reporter html --reporter json-summary npm test",
28
33
  "depcruise": "depcruise src --config",
29
- "depcruise:graph": "depcruise src --include-only '^(src)' --config --output-type dot | dot -T svg | depcruise-wrap-stream-in-html > docs/dependency-graph.html",
34
+ "depcruise:graph": "depcruise src --include-only '^(src)' --config --output-type dot | dot -T svg | tee docs/dependency-graph.svg | depcruise-wrap-stream-in-html > docs/dependency-graph.html",
30
35
  "depcruise:graph:archi": "depcruise src --include-only '^(src)' --config --output-type archi | dot -T svg | depcruise-wrap-stream-in-html > docs/high-level-dependency-graph.html",
31
36
  "depcruise:graph:dev": "depcruise src --include-only '^(src)' --prefix vscode://file/$(pwd)/ --config --output-type dot | dot -T svg | depcruise-wrap-stream-in-html | browser",
32
37
  "depcruise:graph:diff:dev": "depcruise src --include-only '^(src)' --focus \"$(node src/cli.mjs main -T regex)\" --prefix vscode://file/$(pwd)/ --config --output-type dot | dot -T svg | depcruise-wrap-stream-in-html | browser",
33
38
  "depcruise:graph:diff:mermaid": "depcruise src --include-only '^(src)' --config --output-type mermaid --output-to - --focus \"$(node src/cli.mjs $SHA -T regex)\"",
34
39
  "depcruise:html": "depcruise src --progress --config --output-type err-html --output-to dependency-violation-report.html",
35
40
  "depcruise:text": "depcruise src --progress --config --output-type text",
36
- "depcruise:focus": "depcruise src --progress --config --output-type text --focus"
41
+ "depcruise:focus": "depcruise src --progress --config --output-type text --focus",
42
+ "scm:stage": "git add .",
43
+ "version": "run-s clean build depcruise:graph scm:stage"
37
44
  },
38
45
  "keywords": [
39
46
  "git",
@@ -44,7 +51,9 @@
44
51
  "devDependencies": {
45
52
  "c8": "^7.11.3",
46
53
  "dependency-cruiser": "^11.11.0",
47
- "mocha": "^10.0.0"
54
+ "esbuild": "^0.14.48",
55
+ "mocha": "^10.0.0",
56
+ "npm-run-all": "^4.1.5"
48
57
  },
49
58
  "dependencies": {
50
59
  "commander": "^9.3.0"
package/src/main.mjs CHANGED
@@ -20,13 +20,14 @@ import format from "./formatters/format.mjs";
20
20
  */
21
21
  export function convert(pOldThing, pOptions) {
22
22
  let lChanges = convertDiffLines(getDiffLines(pOldThing));
23
+ const lOptions = pOptions || {};
23
24
 
24
- if (!pOptions.trackedOnly) {
25
+ if (!lOptions.trackedOnly) {
25
26
  lChanges = lChanges.concat(
26
27
  convertStatusLines(getStatusShort()).filter(
27
28
  ({ changeType }) => changeType === "untracked"
28
29
  )
29
30
  );
30
31
  }
31
- return format(lChanges, pOptions.outputType);
32
+ return format(lChanges, lOptions.outputType);
32
33
  }