occam-file-system 5.0.120 → 5.0.121
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/lib/release.js +38 -7
- package/package.json +1 -1
- package/src/release.js +56 -8
package/lib/release.js
CHANGED
|
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return _default;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
+
var _file = /*#__PURE__*/ _interopRequireDefault(require("./file"));
|
|
11
12
|
var _entries = /*#__PURE__*/ _interopRequireDefault(require("./entries"));
|
|
12
13
|
var _entries1 = /*#__PURE__*/ _interopRequireDefault(require("./mixins/entries"));
|
|
13
14
|
var _constants = require("./constants");
|
|
@@ -98,12 +99,22 @@ var Release = /*#__PURE__*/ function() {
|
|
|
98
99
|
key: "fromNameAndEntries",
|
|
99
100
|
value: function fromNameAndEntries(name, entries) {
|
|
100
101
|
var release = null;
|
|
101
|
-
var
|
|
102
|
-
if (
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
102
|
+
var filesReleasable = areEntriesReleasable(entries);
|
|
103
|
+
if (filesReleasable) {
|
|
104
|
+
release = new Release(name, entries);
|
|
105
|
+
}
|
|
106
|
+
return release;
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
key: "fromProject",
|
|
111
|
+
value: function fromProject(project) {
|
|
112
|
+
var release = null, entries = project.getEntries();
|
|
113
|
+
var entriesReleasable = areEntriesReleasable(entries);
|
|
114
|
+
if (entriesReleasable()) {
|
|
115
|
+
var name = project.getName(), releasedEntries = releaseEntries(entries);
|
|
116
|
+
entries = releasedEntries; ///
|
|
117
|
+
release = new Release(name, entries);
|
|
107
118
|
}
|
|
108
119
|
return release;
|
|
109
120
|
}
|
|
@@ -113,5 +124,25 @@ var Release = /*#__PURE__*/ function() {
|
|
|
113
124
|
}();
|
|
114
125
|
Object.assign(Release.prototype, _entries1.default);
|
|
115
126
|
var _default = Release;
|
|
127
|
+
function releaseEntries(entries) {
|
|
128
|
+
var releasedEntries = _entries.default.fromNothing(), files = entries.getFiles();
|
|
129
|
+
files.forEachFile(function(file) {
|
|
130
|
+
var path = file.getPath(), content = file.getContent(), released = true;
|
|
131
|
+
file = _file.default.fromPathContentAndReleased(path, content, released); ///
|
|
132
|
+
releasedEntries.addFile(file);
|
|
133
|
+
});
|
|
134
|
+
return releasedEntries;
|
|
135
|
+
}
|
|
136
|
+
function areEntriesReleasable(entries) {
|
|
137
|
+
var entriesReleasable = false;
|
|
138
|
+
var files = entries.getFiles(), readmeFile = (0, _files.readmeFileFromFiles)(files), metaJSONFile = (0, _files.metaJSONFileFromFiles)(files);
|
|
139
|
+
if (readmeFile !== null && metaJSONFile !== null) {
|
|
140
|
+
var metaJSONNode = (0, _metaJSON.metaJSONNodeFromMetaJSONFile)(metaJSONFile);
|
|
141
|
+
if (metaJSONNode !== null) {
|
|
142
|
+
entriesReleasable = true;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return entriesReleasable;
|
|
146
|
+
}
|
|
116
147
|
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWxlYXNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRmlsZSBmcm9tIFwiLi9maWxlXCI7XG5pbXBvcnQgRW50cmllcyBmcm9tIFwiLi9lbnRyaWVzXCI7XG5pbXBvcnQgZW50cmllc01peGlucyBmcm9tIFwiLi9taXhpbnMvZW50cmllc1wiO1xuXG5pbXBvcnQgeyBET1VCTEVfU1BBQ0UgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IG1ldGFKU09OTm9kZUZyb21NZXRhSlNPTkZpbGUgfSBmcm9tIFwiLi91dGlsaXRpZXMvbWV0YUpTT05cIjtcbmltcG9ydCB7IHJlYWRtZUZpbGVGcm9tRmlsZXMsIG1ldGFKU09ORmlsZUZyb21GaWxlcyB9IGZyb20gXCIuL3V0aWxpdGllcy9maWxlc1wiO1xuXG5jbGFzcyBSZWxlYXNlIHtcbiAgY29uc3RydWN0b3IobmFtZSwgZW50cmllcykge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5lbnRyaWVzID0gZW50cmllcztcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldEVudHJpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZW50cmllcztcbiAgfVxuXG4gIHVwZGF0ZVZlcnNpb24odmVyc2lvbikge1xuICAgIGxldCByZXBvc2l0b3J5ID0gdGhpcy5nZXRSZXBvc2l0b3J5KCksXG4gICAgICAgIGRlcGVuZGVuY2llcyA9IHRoaXMuZ2V0RGVwZW5kZW5jaWVzKCk7XG5cbiAgICBjb25zdCB2ZXJzaW9uU3RyaW5nID0gdmVyc2lvbi50b1N0cmluZygpLFxuICAgICAgICAgIHJlcG9zaXRvcnlKU09OID0gcmVwb3NpdG9yeSwgIC8vL1xuICAgICAgICAgIGRlcGVuZGVuY2llc0pTT04gPSBkZXBlbmRlbmNpZXMudG9KU09OKCk7XG5cbiAgICB2ZXJzaW9uID0gdmVyc2lvblN0cmluZzsgIC8vL1xuICAgIHJlcG9zaXRvcnkgPSByZXBvc2l0b3J5SlNPTjsgIC8vL1xuICAgIGRlcGVuZGVuY2llcyA9IGRlcGVuZGVuY2llc0pTT047ICAvLy9cblxuICAgIGNvbnN0IG1ldGFKU09ORmlsZSA9IHRoaXMuZ2V0TWV0YUpTT05GaWxlKCksXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIHZlcnNpb24sXG4gICAgICAgICAgICByZXBvc2l0b3J5LFxuICAgICAgICAgICAgZGVwZW5kZW5jaWVzXG4gICAgICAgICAgfSxcbiAgICAgICAgICBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgRE9VQkxFX1NQQUNFKSxcbiAgICAgICAgICBmaWxlID0gbWV0YUpTT05GaWxlLCAgLy8vXG4gICAgICAgICAgY29udGVudCA9IGpzb25TdHJpbmc7IC8vL1xuXG4gICAgZmlsZS5zZXRDb250ZW50KGNvbnRlbnQpO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGVudHJpZXNKU09OID0gdGhpcy5lbnRyaWVzLnRvSlNPTigpLFxuICAgICAgICAgIG5hbWUgPSB0aGlzLm5hbWUsXG4gICAgICAgICAgZW50cmllcyA9IGVudHJpZXNKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBlbnRyaWVzXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24pIHtcbiAgICBsZXQgeyBlbnRyaWVzIH0gPSBqc29uO1xuXG4gICAgY29uc3QgeyBuYW1lIH0gPSBqc29uLFxuICAgICAgICAgIGVudHJpZXNKU09OID0gZW50cmllczsgIC8vL1xuXG4gICAganNvbiA9IGVudHJpZXNKU09OOyAvLy9cblxuICAgIGVudHJpZXMgPSBFbnRyaWVzLmZyb21KU09OKGpzb24pOyAvLy9cblxuICAgIGNvbnN0IHJlbGVhc2UgPSBuZXcgUmVsZWFzZShuYW1lLCBlbnRyaWVzKTtcblxuICAgIHJldHVybiByZWxlYXNlO1xuICB9XG5cbiAgc3RhdGljIGZyb21OYW1lQW5kRW50cmllcyhuYW1lLCBlbnRyaWVzKSB7XG4gICAgbGV0IHJlbGVhc2UgPSBudWxsO1xuXG4gICAgY29uc3QgZmlsZXNSZWxlYXNhYmxlID0gYXJlRW50cmllc1JlbGVhc2FibGUoZW50cmllcyk7XG5cbiAgICBpZiAoZmlsZXNSZWxlYXNhYmxlKSB7XG4gICAgICByZWxlYXNlID0gbmV3IFJlbGVhc2UobmFtZSwgZW50cmllcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlbGVhc2U7XG4gIH1cblxuICBzdGF0aWMgZnJvbVByb2plY3QocHJvamVjdCkge1xuICAgIGxldCByZWxlYXNlID0gbnVsbCxcbiAgICAgICAgZW50cmllcyA9IHByb2plY3QuZ2V0RW50cmllcygpO1xuXG4gICAgY29uc3QgZW50cmllc1JlbGVhc2FibGUgPSBhcmVFbnRyaWVzUmVsZWFzYWJsZShlbnRyaWVzKTtcblxuICAgIGlmIChlbnRyaWVzUmVsZWFzYWJsZSgpKSB7XG4gICAgICBjb25zdCBuYW1lID0gcHJvamVjdC5nZXROYW1lKCksXG4gICAgICAgICAgICByZWxlYXNlZEVudHJpZXMgPSByZWxlYXNlRW50cmllcyhlbnRyaWVzKTtcblxuICAgICAgZW50cmllcyA9IHJlbGVhc2VkRW50cmllczsgIC8vL1xuXG4gICAgICByZWxlYXNlID0gbmV3IFJlbGVhc2UobmFtZSwgZW50cmllcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlbGVhc2U7XG4gIH1cbn1cblxuT2JqZWN0LmFzc2lnbihSZWxlYXNlLnByb3RvdHlwZSwgZW50cmllc01peGlucyk7XG5cbmV4cG9ydCBkZWZhdWx0IFJlbGVhc2U7XG5cbmZ1bmN0aW9uIHJlbGVhc2VFbnRyaWVzKGVudHJpZXMpIHtcbiAgY29uc3QgcmVsZWFzZWRFbnRyaWVzID0gRW50cmllcy5mcm9tTm90aGluZygpLCAgLy8vXG4gICAgICAgIGZpbGVzID0gZW50cmllcy5nZXRGaWxlcygpO1xuXG4gIGZpbGVzLmZvckVhY2hGaWxlKChmaWxlKSA9PiB7XG4gICAgY29uc3QgcGF0aCA9IGZpbGUuZ2V0UGF0aCgpLFxuICAgICAgICAgIGNvbnRlbnQgPSBmaWxlLmdldENvbnRlbnQoKSxcbiAgICAgICAgICByZWxlYXNlZCA9IHRydWU7XG5cbiAgICBmaWxlID0gRmlsZS5mcm9tUGF0aENvbnRlbnRBbmRSZWxlYXNlZChwYXRoLCBjb250ZW50LCByZWxlYXNlZCk7ICAvLy9cblxuICAgIHJlbGVhc2VkRW50cmllcy5hZGRGaWxlKGZpbGUpO1xuICB9KTtcblxuICByZXR1cm4gcmVsZWFzZWRFbnRyaWVzO1xufVxuXG5mdW5jdGlvbiBhcmVFbnRyaWVzUmVsZWFzYWJsZShlbnRyaWVzKSB7XG4gIGxldCBlbnRyaWVzUmVsZWFzYWJsZSA9IGZhbHNlO1xuXG4gIGNvbnN0IGZpbGVzID0gZW50cmllcy5nZXRGaWxlcygpLFxuICAgICAgICByZWFkbWVGaWxlID0gcmVhZG1lRmlsZUZyb21GaWxlcyhmaWxlcyksXG4gICAgICAgIG1ldGFKU09ORmlsZSA9IG1ldGFKU09ORmlsZUZyb21GaWxlcyhmaWxlcyk7XG5cbiAgaWYgKChyZWFkbWVGaWxlICE9PSBudWxsKSAmJiAobWV0YUpTT05GaWxlICE9PSBudWxsKSkge1xuICAgIGNvbnN0IG1ldGFKU09OTm9kZSA9IG1ldGFKU09OTm9kZUZyb21NZXRhSlNPTkZpbGUobWV0YUpTT05GaWxlKTtcblxuICAgIGlmIChtZXRhSlNPTk5vZGUgIT09IG51bGwpIHtcbiAgICAgIGVudHJpZXNSZWxlYXNhYmxlID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZW50cmllc1JlbGVhc2FibGU7XG59XG4iXSwibmFtZXMiOlsiUmVsZWFzZSIsIm5hbWUiLCJlbnRyaWVzIiwiZ2V0TmFtZSIsImdldEVudHJpZXMiLCJ1cGRhdGVWZXJzaW9uIiwidmVyc2lvbiIsInJlcG9zaXRvcnkiLCJnZXRSZXBvc2l0b3J5IiwiZGVwZW5kZW5jaWVzIiwiZ2V0RGVwZW5kZW5jaWVzIiwidmVyc2lvblN0cmluZyIsInRvU3RyaW5nIiwicmVwb3NpdG9yeUpTT04iLCJkZXBlbmRlbmNpZXNKU09OIiwidG9KU09OIiwibWV0YUpTT05GaWxlIiwiZ2V0TWV0YUpTT05GaWxlIiwianNvbiIsImpzb25TdHJpbmciLCJKU09OIiwic3RyaW5naWZ5IiwiRE9VQkxFX1NQQUNFIiwiZmlsZSIsImNvbnRlbnQiLCJzZXRDb250ZW50IiwiZW50cmllc0pTT04iLCJmcm9tSlNPTiIsIkVudHJpZXMiLCJyZWxlYXNlIiwiZnJvbU5hbWVBbmRFbnRyaWVzIiwiZmlsZXNSZWxlYXNhYmxlIiwiYXJlRW50cmllc1JlbGVhc2FibGUiLCJmcm9tUHJvamVjdCIsInByb2plY3QiLCJlbnRyaWVzUmVsZWFzYWJsZSIsInJlbGVhc2VkRW50cmllcyIsInJlbGVhc2VFbnRyaWVzIiwiT2JqZWN0IiwiYXNzaWduIiwicHJvdG90eXBlIiwiZW50cmllc01peGlucyIsImZyb21Ob3RoaW5nIiwiZmlsZXMiLCJnZXRGaWxlcyIsImZvckVhY2hGaWxlIiwicGF0aCIsImdldFBhdGgiLCJnZXRDb250ZW50IiwicmVsZWFzZWQiLCJGaWxlIiwiZnJvbVBhdGhDb250ZW50QW5kUmVsZWFzZWQiLCJhZGRGaWxlIiwicmVhZG1lRmlsZSIsInJlYWRtZUZpbGVGcm9tRmlsZXMiLCJtZXRhSlNPTkZpbGVGcm9tRmlsZXMiLCJtZXRhSlNPTk5vZGUiLCJtZXRhSlNPTk5vZGVGcm9tTWV0YUpTT05GaWxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkE2R0E7OztlQUFBOzs7eURBM0dpQjs0REFDRzs2REFDTTt5QkFFRzt3QkFDZ0I7cUJBQ2M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFM0QsSUFBQSxBQUFNQSx3QkFpR0gsQUFqR0g7YUFBTUEsUUFDUUMsSUFBSSxFQUFFQyxPQUFPOzhCQURyQkY7UUFFRixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLE9BQU8s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
|
package/package.json
CHANGED
package/src/release.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import File from "./file";
|
|
3
4
|
import Entries from "./entries";
|
|
4
5
|
import entriesMixins from "./mixins/entries";
|
|
5
6
|
|
|
@@ -76,16 +77,28 @@ class Release {
|
|
|
76
77
|
static fromNameAndEntries(name, entries) {
|
|
77
78
|
let release = null;
|
|
78
79
|
|
|
79
|
-
const
|
|
80
|
-
readmeFile = readmeFileFromFiles(files),
|
|
81
|
-
metaJSONFile = metaJSONFileFromFiles(files);
|
|
80
|
+
const filesReleasable = areEntriesReleasable(entries);
|
|
82
81
|
|
|
83
|
-
if (
|
|
84
|
-
|
|
82
|
+
if (filesReleasable) {
|
|
83
|
+
release = new Release(name, entries);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return release;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
static fromProject(project) {
|
|
90
|
+
let release = null,
|
|
91
|
+
entries = project.getEntries();
|
|
92
|
+
|
|
93
|
+
const entriesReleasable = areEntriesReleasable(entries);
|
|
85
94
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
95
|
+
if (entriesReleasable()) {
|
|
96
|
+
const name = project.getName(),
|
|
97
|
+
releasedEntries = releaseEntries(entries);
|
|
98
|
+
|
|
99
|
+
entries = releasedEntries; ///
|
|
100
|
+
|
|
101
|
+
release = new Release(name, entries);
|
|
89
102
|
}
|
|
90
103
|
|
|
91
104
|
return release;
|
|
@@ -95,3 +108,38 @@ class Release {
|
|
|
95
108
|
Object.assign(Release.prototype, entriesMixins);
|
|
96
109
|
|
|
97
110
|
export default Release;
|
|
111
|
+
|
|
112
|
+
function releaseEntries(entries) {
|
|
113
|
+
const releasedEntries = Entries.fromNothing(), ///
|
|
114
|
+
files = entries.getFiles();
|
|
115
|
+
|
|
116
|
+
files.forEachFile((file) => {
|
|
117
|
+
const path = file.getPath(),
|
|
118
|
+
content = file.getContent(),
|
|
119
|
+
released = true;
|
|
120
|
+
|
|
121
|
+
file = File.fromPathContentAndReleased(path, content, released); ///
|
|
122
|
+
|
|
123
|
+
releasedEntries.addFile(file);
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
return releasedEntries;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
function areEntriesReleasable(entries) {
|
|
130
|
+
let entriesReleasable = false;
|
|
131
|
+
|
|
132
|
+
const files = entries.getFiles(),
|
|
133
|
+
readmeFile = readmeFileFromFiles(files),
|
|
134
|
+
metaJSONFile = metaJSONFileFromFiles(files);
|
|
135
|
+
|
|
136
|
+
if ((readmeFile !== null) && (metaJSONFile !== null)) {
|
|
137
|
+
const metaJSONNode = metaJSONNodeFromMetaJSONFile(metaJSONFile);
|
|
138
|
+
|
|
139
|
+
if (metaJSONNode !== null) {
|
|
140
|
+
entriesReleasable = true;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
return entriesReleasable;
|
|
145
|
+
}
|