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/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.map((label) => {
98
- const json = label; ///
99
+ labels = labels.reduce((labels, label) => {
100
+ if (labels !== null) {
101
+ const json = label; ///
99
102
 
100
- label = Label.fromJSON(json, callback);
103
+ label = Label.fromJSON(json, callback); ///
101
104
 
102
- return label;
103
- });
105
+ if (label !== null) {
106
+ labels.push(label);
107
+ } else {
108
+ labels = null;
109
+ }
110
+ }
104
111
 
105
- premises = premises.map((premise) => {
106
- const json = premise; ///
112
+ return labels;
113
+ }, []);
107
114
 
108
- premise = Premise.fromJSON(json, callback);
115
+ premises = premises.reduce((premises, premise) => {
116
+ if (premises !== null) {
117
+ const json = premise; ///
109
118
 
110
- return premise;
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
- const rule = new Rule(labels, premises, conclusion);
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(releaseName, dependentNames, shortenedVersion, context, callback) {
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(releaseName, shortenedVersion, context, (error, releaseContext) => {
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(releaseName, dependentNames, releaseContext) {
88
- const dependentNamesIncludesReleaseName = dependentNames.includes(releaseName),
89
- cyclicDependencyExists = dependentNamesIncludesReleaseName; ///
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 = dependentNames.concat(firstDependentName),
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 name = dependency.getName(),
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(releaseName, dependentNames, shortenedVersion, context, (error) => {
130
+ createReleaseContext(dependency, dependentNames, context, (error) => {
128
131
  if (error) {
129
132
  callback(error);
130
133