occam-verify-cli 0.0.386 → 0.0.388
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/bin/action/verify.js +7 -3
- package/bin/utilities/fileSystem.js +32 -28
- package/lib/axiom.js +32 -17
- package/lib/combinator.js +6 -2
- package/lib/conclusion.js +6 -2
- package/lib/constructor.js +7 -4
- package/lib/context/release/file.js +19 -7
- package/lib/label.js +6 -2
- package/lib/premise.js +6 -2
- package/lib/rule.js +29 -12
- package/lib/utilities/releaseContext.js +11 -9
- package/package.json +2 -2
- package/src/axiom.js +42 -23
- package/src/combinator.js +7 -2
- package/src/conclusion.js +7 -2
- package/src/constructor.js +7 -3
- package/src/context/release/file.js +18 -6
- package/src/label.js +7 -2
- package/src/premise.js +7 -2
- package/src/rule.js +31 -11
- package/src/utilities/releaseContext.js +14 -11
package/src/rule.js
CHANGED
|
@@ -92,29 +92,49 @@ export default class Rule {
|
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
static fromJSON(json, callback) {
|
|
95
|
+
let rule = null;
|
|
96
|
+
|
|
95
97
|
let { labels, premises, conclusion } = json;
|
|
96
98
|
|
|
97
|
-
labels = labels.
|
|
98
|
-
|
|
99
|
+
labels = labels.reduce((labels, label) => {
|
|
100
|
+
if (labels !== null) {
|
|
101
|
+
const json = label; ///
|
|
99
102
|
|
|
100
|
-
|
|
103
|
+
label = Label.fromJSON(json, callback); ///
|
|
101
104
|
|
|
102
|
-
|
|
103
|
-
|
|
105
|
+
if (label !== null) {
|
|
106
|
+
labels.push(label);
|
|
107
|
+
} else {
|
|
108
|
+
labels = null;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
104
111
|
|
|
105
|
-
|
|
106
|
-
|
|
112
|
+
return labels;
|
|
113
|
+
}, []);
|
|
107
114
|
|
|
108
|
-
|
|
115
|
+
premises = premises.reduce((premises, premise) => {
|
|
116
|
+
if (premises !== null) {
|
|
117
|
+
const json = premise; ///
|
|
109
118
|
|
|
110
|
-
|
|
111
|
-
|
|
119
|
+
premise = Premise.fromJSON(json, callback); ///
|
|
120
|
+
|
|
121
|
+
if (premise !== null) {
|
|
122
|
+
premises.push(premise);
|
|
123
|
+
} else {
|
|
124
|
+
premises = null;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return premises;
|
|
129
|
+
}, []);
|
|
112
130
|
|
|
113
131
|
json = conclusion; ///
|
|
114
132
|
|
|
115
133
|
conclusion = Conclusion.fromJSON(json, callback);
|
|
116
134
|
|
|
117
|
-
|
|
135
|
+
if ((labels !== null) && (premises !== null) && (conclusion !== null)) {
|
|
136
|
+
rule = new Rule(labels, premises, conclusion);
|
|
137
|
+
}
|
|
118
138
|
|
|
119
139
|
return rule;
|
|
120
140
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
export function createReleaseContext(
|
|
3
|
+
export function createReleaseContext(dependency, dependentNames, context, callback) {
|
|
4
4
|
const { releaseContextMap } = context,
|
|
5
|
+
name = dependency.getName(),
|
|
6
|
+
releaseName = name, ///
|
|
5
7
|
releaseContext = releaseContextMap[releaseName] || null;
|
|
6
8
|
|
|
7
9
|
if (releaseContext !== null) {
|
|
@@ -14,7 +16,7 @@ export function createReleaseContext(releaseName, dependentNames, shortenedVersi
|
|
|
14
16
|
|
|
15
17
|
const { releaseContextFromReleaseNameAndShortenedVersion } = context;
|
|
16
18
|
|
|
17
|
-
releaseContextFromReleaseNameAndShortenedVersion(
|
|
19
|
+
releaseContextFromReleaseNameAndShortenedVersion(dependency, context, (error, releaseContext) => {
|
|
18
20
|
if (error) {
|
|
19
21
|
callback(error);
|
|
20
22
|
|
|
@@ -84,13 +86,17 @@ function initialiseReleaseContext(releaseContext, releaseContextMap) {
|
|
|
84
86
|
releaseContext.initialise(dependencyReleaseContexts);
|
|
85
87
|
}
|
|
86
88
|
|
|
87
|
-
function checkCyclicDependencyExists(
|
|
88
|
-
const
|
|
89
|
-
|
|
89
|
+
function checkCyclicDependencyExists(dependency, dependentNames, releaseContext) {
|
|
90
|
+
const dependencyName = dependency.getName(),
|
|
91
|
+
dependentNamesIncludesDependencyName = dependentNames.includes(dependencyName),
|
|
92
|
+
cyclicDependencyExists = dependentNamesIncludesDependencyName; ///
|
|
90
93
|
|
|
91
94
|
if (cyclicDependencyExists) {
|
|
92
95
|
const firstDependentName = first(dependentNames),
|
|
93
|
-
dependencyNames =
|
|
96
|
+
dependencyNames = [ ///
|
|
97
|
+
...dependentNames,
|
|
98
|
+
firstDependentName
|
|
99
|
+
],
|
|
94
100
|
dependencyNamesString = dependencyNames.join(`' -> '`);
|
|
95
101
|
|
|
96
102
|
releaseContext.error(`There is a cyclic dependency: '${dependencyNamesString}'.`);
|
|
@@ -111,10 +117,7 @@ function createDependencyReleaseContexts(releaseContext, dependentNames, context
|
|
|
111
117
|
dependentNames = [ ...dependentNames, releaseName ]; ///
|
|
112
118
|
|
|
113
119
|
dependencies.asynchronousForEachDependency((dependency, next, done) => {
|
|
114
|
-
const
|
|
115
|
-
releaseName = name, //
|
|
116
|
-
shortenedVersion = dependency.getShortedVersion(),
|
|
117
|
-
cyclicDependencyExists = checkCyclicDependencyExists(releaseName, dependentNames, releaseContext);
|
|
120
|
+
const cyclicDependencyExists = checkCyclicDependencyExists(dependency, dependentNames, releaseContext);
|
|
118
121
|
|
|
119
122
|
if (cyclicDependencyExists) {
|
|
120
123
|
const error = null;
|
|
@@ -124,7 +127,7 @@ function createDependencyReleaseContexts(releaseContext, dependentNames, context
|
|
|
124
127
|
return;
|
|
125
128
|
}
|
|
126
129
|
|
|
127
|
-
createReleaseContext(
|
|
130
|
+
createReleaseContext(dependency, dependentNames, context, (error) => {
|
|
128
131
|
if (error) {
|
|
129
132
|
callback(error);
|
|
130
133
|
|