@redproof/dependency-cruiser 0.0.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +56 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
package/README.md
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# @redproof/dependency-cruiser
|
|
2
|
+
|
|
3
|
+
Redproof adapter for dependency-cruiser. It turns your architecture rules into Redproof Rules, so you can prove each boundary really fails when it is crossed.
|
|
4
|
+
|
|
5
|
+
Part of [Redproof](https://github.com/schalermthai/redproof). Redproof does not
|
|
6
|
+
just run your guardrails. It proves they can fail.
|
|
7
|
+
|
|
8
|
+
## Install
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
npm install --save-dev @redproof/dependency-cruiser redproof dependency-cruiser
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Use
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
// gates/architecture.ts
|
|
18
|
+
import { dependencyCruiser } from '@redproof/dependency-cruiser';
|
|
19
|
+
import { defineGate, defineProofs, mutate, proof } from 'redproof';
|
|
20
|
+
|
|
21
|
+
const adapter = dependencyCruiser({
|
|
22
|
+
configFile: '.dependency-cruiser.cjs',
|
|
23
|
+
files: ['src'],
|
|
24
|
+
rules: {
|
|
25
|
+
domainNoInfrastructure: 'domain-no-infrastructure',
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
const gate = defineGate({ id: 'architecture', adapter });
|
|
30
|
+
|
|
31
|
+
export const proofs = defineProofs(gate, [
|
|
32
|
+
proof.red(
|
|
33
|
+
adapter.rules.domainNoInfrastructure,
|
|
34
|
+
'detects domain importing infrastructure',
|
|
35
|
+
mutate.appendText('src/domain/order.js', "\nimport '../infrastructure/db.js';\n"),
|
|
36
|
+
),
|
|
37
|
+
proof.green('accepts valid architecture'),
|
|
38
|
+
]);
|
|
39
|
+
|
|
40
|
+
export default gate;
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Then run:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
npx redproof check # do the rules hold right now?
|
|
47
|
+
npx redproof prove # can each rule actually fail?
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Documentation
|
|
51
|
+
|
|
52
|
+
See the [Redproof documentation](https://github.com/schalermthai/redproof#readme).
|
|
53
|
+
|
|
54
|
+
## License
|
|
55
|
+
|
|
56
|
+
Apache-2.0
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAKL,KAAK,OAAO,EACZ,KAAK,IAAI,EACV,MAAM,UAAU,CAAC;AAMlB,KAAK,0BAA0B,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAEnE,KAAK,4BAA4B,CAAC,CAAC,SAAS,0BAA0B,IAAI;IACxE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC;CACrE,CAAC;AAEF,MAAM,MAAM,+BAA+B,CAAC,CAAC,SAAS,0BAA0B,IAAI;IAClF,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAKL,KAAK,OAAO,EACZ,KAAK,IAAI,EACV,MAAM,UAAU,CAAC;AAMlB,KAAK,0BAA0B,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAEnE,KAAK,4BAA4B,CAAC,CAAC,SAAS,0BAA0B,IAAI;IACxE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC;CACrE,CAAC;AAEF,MAAM,MAAM,+BAA+B,CAAC,CAAC,SAAS,0BAA0B,IAAI;IAClF,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB,CAAC;AAgDF,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,CAAC,SAAS,0BAA0B,EAC1E,OAAO,EAAE,+BAA+B,CAAC,CAAC,CAAC,GAC1C,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAiH1C;AAED,YAAY,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,8 +4,7 @@ import extractDepcruiseOptions from 'dependency-cruiser/config-utl/extract-depcr
|
|
|
4
4
|
import { resolve } from 'node:path';
|
|
5
5
|
import { counting, defineAdapter, defineRules, result, } from 'redproof';
|
|
6
6
|
import { violationsToBreaches, } from "./model.js";
|
|
7
|
-
// dependency-cruiser returns
|
|
8
|
-
// and as an object for some other output types. Accept both.
|
|
7
|
+
// dependency-cruiser returns a JSON string for outputType 'json'.
|
|
9
8
|
function readCruiseOutput(output) {
|
|
10
9
|
if (typeof output === 'string') {
|
|
11
10
|
try {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,sBAAsB,MAAM,wDAAwD,CAAC;AAC5F,OAAO,uBAAuB,MAAM,yDAAyD,CAAC;AAC9F,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,QAAQ,EACR,aAAa,EACb,WAAW,EACX,MAAM,GAGP,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,oBAAoB,GAErB,MAAM,YAAY,CAAC;AA2BpB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@redproof/dependency-cruiser",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Redproof adapter for dependency-cruiser architecture rules.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"default": "./dist/index.js"
|
|
10
10
|
}
|
|
11
11
|
},
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
12
13
|
"files": [
|
|
13
14
|
"dist"
|
|
14
15
|
],
|
|
@@ -16,7 +17,7 @@
|
|
|
16
17
|
"node": ">=22.6"
|
|
17
18
|
},
|
|
18
19
|
"dependencies": {
|
|
19
|
-
"redproof": "0.
|
|
20
|
+
"redproof": "0.6.0"
|
|
20
21
|
},
|
|
21
22
|
"peerDependencies": {
|
|
22
23
|
"dependency-cruiser": ">=18"
|