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 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 files = entries.getFiles(), readmeFile = (0, _files.readmeFileFromFiles)(files), metaJSONFile = (0, _files.metaJSONFileFromFiles)(files);
102
- if (readmeFile !== null && metaJSONFile !== null) {
103
- var metaJSONNode = (0, _metaJSON.metaJSONNodeFromMetaJSONFile)(metaJSONFile);
104
- if (metaJSONNode !== null) {
105
- release = new Release(name, entries);
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWxlYXNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRW50cmllcyBmcm9tIFwiLi9lbnRyaWVzXCI7XG5pbXBvcnQgZW50cmllc01peGlucyBmcm9tIFwiLi9taXhpbnMvZW50cmllc1wiO1xuXG5pbXBvcnQgeyBET1VCTEVfU1BBQ0UgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IG1ldGFKU09OTm9kZUZyb21NZXRhSlNPTkZpbGUgfSBmcm9tIFwiLi91dGlsaXRpZXMvbWV0YUpTT05cIjtcbmltcG9ydCB7IHJlYWRtZUZpbGVGcm9tRmlsZXMsIG1ldGFKU09ORmlsZUZyb21GaWxlcyB9IGZyb20gXCIuL3V0aWxpdGllcy9maWxlc1wiO1xuXG5jbGFzcyBSZWxlYXNlIHtcbiAgY29uc3RydWN0b3IobmFtZSwgZW50cmllcykge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5lbnRyaWVzID0gZW50cmllcztcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldEVudHJpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZW50cmllcztcbiAgfVxuXG4gIHVwZGF0ZVZlcnNpb24odmVyc2lvbikge1xuICAgIGxldCByZXBvc2l0b3J5ID0gdGhpcy5nZXRSZXBvc2l0b3J5KCksXG4gICAgICAgIGRlcGVuZGVuY2llcyA9IHRoaXMuZ2V0RGVwZW5kZW5jaWVzKCk7XG5cbiAgICBjb25zdCB2ZXJzaW9uU3RyaW5nID0gdmVyc2lvbi50b1N0cmluZygpLFxuICAgICAgICAgIHJlcG9zaXRvcnlKU09OID0gcmVwb3NpdG9yeSwgIC8vL1xuICAgICAgICAgIGRlcGVuZGVuY2llc0pTT04gPSBkZXBlbmRlbmNpZXMudG9KU09OKCk7XG5cbiAgICB2ZXJzaW9uID0gdmVyc2lvblN0cmluZzsgIC8vL1xuICAgIHJlcG9zaXRvcnkgPSByZXBvc2l0b3J5SlNPTjsgIC8vL1xuICAgIGRlcGVuZGVuY2llcyA9IGRlcGVuZGVuY2llc0pTT047ICAvLy9cblxuICAgIGNvbnN0IG1ldGFKU09ORmlsZSA9IHRoaXMuZ2V0TWV0YUpTT05GaWxlKCksXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIHZlcnNpb24sXG4gICAgICAgICAgICByZXBvc2l0b3J5LFxuICAgICAgICAgICAgZGVwZW5kZW5jaWVzXG4gICAgICAgICAgfSxcbiAgICAgICAgICBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgRE9VQkxFX1NQQUNFKSxcbiAgICAgICAgICBmaWxlID0gbWV0YUpTT05GaWxlLCAgLy8vXG4gICAgICAgICAgY29udGVudCA9IGpzb25TdHJpbmc7IC8vL1xuXG4gICAgZmlsZS5zZXRDb250ZW50KGNvbnRlbnQpO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGVudHJpZXNKU09OID0gdGhpcy5lbnRyaWVzLnRvSlNPTigpLFxuICAgICAgICAgIG5hbWUgPSB0aGlzLm5hbWUsXG4gICAgICAgICAgZW50cmllcyA9IGVudHJpZXNKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBlbnRyaWVzXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24pIHtcbiAgICBsZXQgeyBlbnRyaWVzIH0gPSBqc29uO1xuXG4gICAgY29uc3QgeyBuYW1lIH0gPSBqc29uLFxuICAgICAgICAgIGVudHJpZXNKU09OID0gZW50cmllczsgIC8vL1xuXG4gICAganNvbiA9IGVudHJpZXNKU09OOyAvLy9cblxuICAgIGVudHJpZXMgPSBFbnRyaWVzLmZyb21KU09OKGpzb24pOyAvLy9cblxuICAgIGNvbnN0IHJlbGVhc2UgPSBuZXcgUmVsZWFzZShuYW1lLCBlbnRyaWVzKTtcblxuICAgIHJldHVybiByZWxlYXNlO1xuICB9XG5cbiAgc3RhdGljIGZyb21OYW1lQW5kRW50cmllcyhuYW1lLCBlbnRyaWVzKSB7XG4gICAgbGV0IHJlbGVhc2UgPSBudWxsO1xuXG4gICAgY29uc3QgZmlsZXMgPSBlbnRyaWVzLmdldEZpbGVzKCksXG4gICAgICAgICAgcmVhZG1lRmlsZSA9IHJlYWRtZUZpbGVGcm9tRmlsZXMoZmlsZXMpLFxuICAgICAgICAgIG1ldGFKU09ORmlsZSA9IG1ldGFKU09ORmlsZUZyb21GaWxlcyhmaWxlcyk7XG5cbiAgICBpZiAoKHJlYWRtZUZpbGUgIT09IG51bGwpICYmIChtZXRhSlNPTkZpbGUgIT09IG51bGwpKSB7XG4gICAgICBjb25zdCBtZXRhSlNPTk5vZGUgPSBtZXRhSlNPTk5vZGVGcm9tTWV0YUpTT05GaWxlKG1ldGFKU09ORmlsZSk7XG5cbiAgICAgIGlmIChtZXRhSlNPTk5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgcmVsZWFzZSA9IG5ldyBSZWxlYXNlKG5hbWUsIGVudHJpZXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZWxlYXNlO1xuICB9XG59XG5cbk9iamVjdC5hc3NpZ24oUmVsZWFzZS5wcm90b3R5cGUsIGVudHJpZXNNaXhpbnMpO1xuXG5leHBvcnQgZGVmYXVsdCBSZWxlYXNlO1xuIl0sIm5hbWVzIjpbIlJlbGVhc2UiLCJuYW1lIiwiZW50cmllcyIsImdldE5hbWUiLCJnZXRFbnRyaWVzIiwidXBkYXRlVmVyc2lvbiIsInZlcnNpb24iLCJyZXBvc2l0b3J5IiwiZ2V0UmVwb3NpdG9yeSIsImRlcGVuZGVuY2llcyIsImdldERlcGVuZGVuY2llcyIsInZlcnNpb25TdHJpbmciLCJ0b1N0cmluZyIsInJlcG9zaXRvcnlKU09OIiwiZGVwZW5kZW5jaWVzSlNPTiIsInRvSlNPTiIsIm1ldGFKU09ORmlsZSIsImdldE1ldGFKU09ORmlsZSIsImpzb24iLCJqc29uU3RyaW5nIiwiSlNPTiIsInN0cmluZ2lmeSIsIkRPVUJMRV9TUEFDRSIsImZpbGUiLCJjb250ZW50Iiwic2V0Q29udGVudCIsImVudHJpZXNKU09OIiwiZnJvbUpTT04iLCJFbnRyaWVzIiwicmVsZWFzZSIsImZyb21OYW1lQW5kRW50cmllcyIsImZpbGVzIiwiZ2V0RmlsZXMiLCJyZWFkbWVGaWxlIiwicmVhZG1lRmlsZUZyb21GaWxlcyIsIm1ldGFKU09ORmlsZUZyb21GaWxlcyIsIm1ldGFKU09OTm9kZSIsIm1ldGFKU09OTm9kZUZyb21NZXRhSlNPTkZpbGUiLCJPYmplY3QiLCJhc3NpZ24iLCJwcm90b3R5cGUiLCJlbnRyaWVzTWl4aW5zIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFnR0E7OztlQUFBOzs7NERBOUZvQjs2REFDTTt5QkFFRzt3QkFDZ0I7cUJBQ2M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFM0QsSUFBQSxBQUFNQSx3QkFxRkgsQUFyRkg7YUFBTUEsUUFDUUMsSUFBSSxFQUFFQyxPQUFPOzhCQURyQkY7UUFFRixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLE9BQU8sR0FBR0E7O2lCQUhiRjs7WUFNSkcsS0FBQUE7bUJBQUFBLFNBQUFBLFVBQVU7Z0JBQ1IsT0FBTyxJQUFJLENBQUNGLElBQUk7WUFDbEI7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUEsYUFBYTtnQkFDWCxPQUFPLElBQUksQ0FBQ0YsT0FBTztZQUNyQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSxjQUFjQyxPQUFPLEVBQUU7Z0JBQ3JCLElBQUlDLGFBQWEsSUFBSSxDQUFDQyxhQUFhLElBQy9CQyxlQUFlLElBQUksQ0FBQ0MsZUFBZTtnQkFFdkMsSUFBTUMsZ0JBQWdCTCxRQUFRTSxRQUFRLElBQ2hDQyxpQkFBaUJOLFlBQ2pCTyxtQkFBbUJMLGFBQWFNLE1BQU07Z0JBRTVDVCxVQUFVSyxlQUFnQixHQUFHO2dCQUM3QkosYUFBYU0sZ0JBQWlCLEdBQUc7Z0JBQ2pDSixlQUFlSyxrQkFBbUIsR0FBRztnQkFFckMsSUFBTUUsZUFBZSxJQUFJLENBQUNDLGVBQWUsSUFDbkNDLE9BQU87b0JBQ0xaLFNBQUFBO29CQUNBQyxZQUFBQTtvQkFDQUUsY0FBQUE7Z0JBQ0YsR0FDQVUsYUFBYUMsS0FBS0MsU0FBUyxDQUFDSCxNQUFNLElBQUksRUFBRUksdUJBQVksR0FDcERDLE9BQU9QLGNBQ1BRLFVBQVVMLFlBQVksR0FBRztnQkFFL0JJLEtBQUtFLFVBQVUsQ0FBQ0Q7WUFDbEI7OztZQUVBVCxLQUFBQTttQkFBQUEsU0FBQUEsU0FBUztnQkFDUCxJQUFNVyxjQUFjLElBQUksQ0FBQ3hCLE9BQU8sQ0FBQ2EsTUFBTSxJQUNqQ2QsT0FBTyxJQUFJLENBQUNBLElBQUksRUFDaEJDLFVBQVV3QixhQUNWUixPQUFPO29CQUNMakIsTUFBQUE7b0JBQ0FDLFNBQUFBO2dCQUNGO2dCQUVOLE9BQU9nQjtZQUNUOzs7O1lBRU9TLEtBQUFBO21CQUFQLFNBQU9BLFNBQVNULElBQUksRUFBRTtnQkFDcEIsSUFBSSxBQUFFaEIsVUFBWWdCLEtBQVpoQjtnQkFFTixJQUFNLEFBQUVELE9BQVNpQixLQUFUakIsTUFDRnlCLGNBQWN4QixTQUFVLEdBQUc7Z0JBRWpDZ0IsT0FBT1EsYUFBYSxHQUFHO2dCQUV2QnhCLFVBQVUwQixnQkFBTyxDQUFDRCxRQUFRLENBQUNULE9BQU8sR0FBRztnQkFFckMsSUFBTVcsVUFBVSxJQTdEZDdCLFFBNkQwQkMsTUFBTUM7Z0JBRWxDLE9BQU8yQjtZQUNUOzs7WUFFT0MsS0FBQUE7bUJBQVAsU0FBT0EsbUJBQW1CN0IsSUFBSSxFQUFFQyxPQUFPLEVBQUU7Z0JBQ3ZDLElBQUkyQixVQUFVLElBQUk7Z0JBRWxCLElBQU1FLFFBQVE3QixRQUFROEIsUUFBUSxJQUN4QkMsYUFBYUMsSUFBQUEsMEJBQW1CLEVBQUNILFFBQ2pDZixlQUFlbUIsSUFBQUEsNEJBQXFCLEVBQUNKO2dCQUUzQyxJQUFJLEFBQUNFLGVBQWUsSUFBSSxJQUFNakIsaUJBQWlCLElBQUksRUFBRztvQkFDcEQsSUFBTW9CLGVBQWVDLElBQUFBLHNDQUE0QixFQUFDckI7b0JBRWxELElBQUlvQixpQkFBaUIsSUFBSSxFQUFFO3dCQUN6QlAsVUFBVSxJQTdFWjdCLFFBNkV3QkMsTUFBTUM7b0JBQzlCLENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCxPQUFPMkI7WUFDVDs7O1dBbEZJN0I7O0FBcUZOc0MsT0FBT0MsTUFBTSxDQUFDdkMsUUFBUXdDLFNBQVMsRUFBRUMsaUJBQWE7SUFFOUMsV0FBZXpDIn0=
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWxlYXNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRmlsZSBmcm9tIFwiLi9maWxlXCI7XG5pbXBvcnQgRW50cmllcyBmcm9tIFwiLi9lbnRyaWVzXCI7XG5pbXBvcnQgZW50cmllc01peGlucyBmcm9tIFwiLi9taXhpbnMvZW50cmllc1wiO1xuXG5pbXBvcnQgeyBET1VCTEVfU1BBQ0UgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IG1ldGFKU09OTm9kZUZyb21NZXRhSlNPTkZpbGUgfSBmcm9tIFwiLi91dGlsaXRpZXMvbWV0YUpTT05cIjtcbmltcG9ydCB7IHJlYWRtZUZpbGVGcm9tRmlsZXMsIG1ldGFKU09ORmlsZUZyb21GaWxlcyB9IGZyb20gXCIuL3V0aWxpdGllcy9maWxlc1wiO1xuXG5jbGFzcyBSZWxlYXNlIHtcbiAgY29uc3RydWN0b3IobmFtZSwgZW50cmllcykge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5lbnRyaWVzID0gZW50cmllcztcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldEVudHJpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZW50cmllcztcbiAgfVxuXG4gIHVwZGF0ZVZlcnNpb24odmVyc2lvbikge1xuICAgIGxldCByZXBvc2l0b3J5ID0gdGhpcy5nZXRSZXBvc2l0b3J5KCksXG4gICAgICAgIGRlcGVuZGVuY2llcyA9IHRoaXMuZ2V0RGVwZW5kZW5jaWVzKCk7XG5cbiAgICBjb25zdCB2ZXJzaW9uU3RyaW5nID0gdmVyc2lvbi50b1N0cmluZygpLFxuICAgICAgICAgIHJlcG9zaXRvcnlKU09OID0gcmVwb3NpdG9yeSwgIC8vL1xuICAgICAgICAgIGRlcGVuZGVuY2llc0pTT04gPSBkZXBlbmRlbmNpZXMudG9KU09OKCk7XG5cbiAgICB2ZXJzaW9uID0gdmVyc2lvblN0cmluZzsgIC8vL1xuICAgIHJlcG9zaXRvcnkgPSByZXBvc2l0b3J5SlNPTjsgIC8vL1xuICAgIGRlcGVuZGVuY2llcyA9IGRlcGVuZGVuY2llc0pTT047ICAvLy9cblxuICAgIGNvbnN0IG1ldGFKU09ORmlsZSA9IHRoaXMuZ2V0TWV0YUpTT05GaWxlKCksXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIHZlcnNpb24sXG4gICAgICAgICAgICByZXBvc2l0b3J5LFxuICAgICAgICAgICAgZGVwZW5kZW5jaWVzXG4gICAgICAgICAgfSxcbiAgICAgICAgICBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgRE9VQkxFX1NQQUNFKSxcbiAgICAgICAgICBmaWxlID0gbWV0YUpTT05GaWxlLCAgLy8vXG4gICAgICAgICAgY29udGVudCA9IGpzb25TdHJpbmc7IC8vL1xuXG4gICAgZmlsZS5zZXRDb250ZW50KGNvbnRlbnQpO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGVudHJpZXNKU09OID0gdGhpcy5lbnRyaWVzLnRvSlNPTigpLFxuICAgICAgICAgIG5hbWUgPSB0aGlzLm5hbWUsXG4gICAgICAgICAgZW50cmllcyA9IGVudHJpZXNKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBlbnRyaWVzXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24pIHtcbiAgICBsZXQgeyBlbnRyaWVzIH0gPSBqc29uO1xuXG4gICAgY29uc3QgeyBuYW1lIH0gPSBqc29uLFxuICAgICAgICAgIGVudHJpZXNKU09OID0gZW50cmllczsgIC8vL1xuXG4gICAganNvbiA9IGVudHJpZXNKU09OOyAvLy9cblxuICAgIGVudHJpZXMgPSBFbnRyaWVzLmZyb21KU09OKGpzb24pOyAvLy9cblxuICAgIGNvbnN0IHJlbGVhc2UgPSBuZXcgUmVsZWFzZShuYW1lLCBlbnRyaWVzKTtcblxuICAgIHJldHVybiByZWxlYXNlO1xuICB9XG5cbiAgc3RhdGljIGZyb21OYW1lQW5kRW50cmllcyhuYW1lLCBlbnRyaWVzKSB7XG4gICAgbGV0IHJlbGVhc2UgPSBudWxsO1xuXG4gICAgY29uc3QgZmlsZXNSZWxlYXNhYmxlID0gYXJlRW50cmllc1JlbGVhc2FibGUoZW50cmllcyk7XG5cbiAgICBpZiAoZmlsZXNSZWxlYXNhYmxlKSB7XG4gICAgICByZWxlYXNlID0gbmV3IFJlbGVhc2UobmFtZSwgZW50cmllcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlbGVhc2U7XG4gIH1cblxuICBzdGF0aWMgZnJvbVByb2plY3QocHJvamVjdCkge1xuICAgIGxldCByZWxlYXNlID0gbnVsbCxcbiAgICAgICAgZW50cmllcyA9IHByb2plY3QuZ2V0RW50cmllcygpO1xuXG4gICAgY29uc3QgZW50cmllc1JlbGVhc2FibGUgPSBhcmVFbnRyaWVzUmVsZWFzYWJsZShlbnRyaWVzKTtcblxuICAgIGlmIChlbnRyaWVzUmVsZWFzYWJsZSgpKSB7XG4gICAgICBjb25zdCBuYW1lID0gcHJvamVjdC5nZXROYW1lKCksXG4gICAgICAgICAgICByZWxlYXNlZEVudHJpZXMgPSByZWxlYXNlRW50cmllcyhlbnRyaWVzKTtcblxuICAgICAgZW50cmllcyA9IHJlbGVhc2VkRW50cmllczsgIC8vL1xuXG4gICAgICByZWxlYXNlID0gbmV3IFJlbGVhc2UobmFtZSwgZW50cmllcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlbGVhc2U7XG4gIH1cbn1cblxuT2JqZWN0LmFzc2lnbihSZWxlYXNlLnByb3RvdHlwZSwgZW50cmllc01peGlucyk7XG5cbmV4cG9ydCBkZWZhdWx0IFJlbGVhc2U7XG5cbmZ1bmN0aW9uIHJlbGVhc2VFbnRyaWVzKGVudHJpZXMpIHtcbiAgY29uc3QgcmVsZWFzZWRFbnRyaWVzID0gRW50cmllcy5mcm9tTm90aGluZygpLCAgLy8vXG4gICAgICAgIGZpbGVzID0gZW50cmllcy5nZXRGaWxlcygpO1xuXG4gIGZpbGVzLmZvckVhY2hGaWxlKChmaWxlKSA9PiB7XG4gICAgY29uc3QgcGF0aCA9IGZpbGUuZ2V0UGF0aCgpLFxuICAgICAgICAgIGNvbnRlbnQgPSBmaWxlLmdldENvbnRlbnQoKSxcbiAgICAgICAgICByZWxlYXNlZCA9IHRydWU7XG5cbiAgICBmaWxlID0gRmlsZS5mcm9tUGF0aENvbnRlbnRBbmRSZWxlYXNlZChwYXRoLCBjb250ZW50LCByZWxlYXNlZCk7ICAvLy9cblxuICAgIHJlbGVhc2VkRW50cmllcy5hZGRGaWxlKGZpbGUpO1xuICB9KTtcblxuICByZXR1cm4gcmVsZWFzZWRFbnRyaWVzO1xufVxuXG5mdW5jdGlvbiBhcmVFbnRyaWVzUmVsZWFzYWJsZShlbnRyaWVzKSB7XG4gIGxldCBlbnRyaWVzUmVsZWFzYWJsZSA9IGZhbHNlO1xuXG4gIGNvbnN0IGZpbGVzID0gZW50cmllcy5nZXRGaWxlcygpLFxuICAgICAgICByZWFkbWVGaWxlID0gcmVhZG1lRmlsZUZyb21GaWxlcyhmaWxlcyksXG4gICAgICAgIG1ldGFKU09ORmlsZSA9IG1ldGFKU09ORmlsZUZyb21GaWxlcyhmaWxlcyk7XG5cbiAgaWYgKChyZWFkbWVGaWxlICE9PSBudWxsKSAmJiAobWV0YUpTT05GaWxlICE9PSBudWxsKSkge1xuICAgIGNvbnN0IG1ldGFKU09OTm9kZSA9IG1ldGFKU09OTm9kZUZyb21NZXRhSlNPTkZpbGUobWV0YUpTT05GaWxlKTtcblxuICAgIGlmIChtZXRhSlNPTk5vZGUgIT09IG51bGwpIHtcbiAgICAgIGVudHJpZXNSZWxlYXNhYmxlID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZW50cmllc1JlbGVhc2FibGU7XG59XG4iXSwibmFtZXMiOlsiUmVsZWFzZSIsIm5hbWUiLCJlbnRyaWVzIiwiZ2V0TmFtZSIsImdldEVudHJpZXMiLCJ1cGRhdGVWZXJzaW9uIiwidmVyc2lvbiIsInJlcG9zaXRvcnkiLCJnZXRSZXBvc2l0b3J5IiwiZGVwZW5kZW5jaWVzIiwiZ2V0RGVwZW5kZW5jaWVzIiwidmVyc2lvblN0cmluZyIsInRvU3RyaW5nIiwicmVwb3NpdG9yeUpTT04iLCJkZXBlbmRlbmNpZXNKU09OIiwidG9KU09OIiwibWV0YUpTT05GaWxlIiwiZ2V0TWV0YUpTT05GaWxlIiwianNvbiIsImpzb25TdHJpbmciLCJKU09OIiwic3RyaW5naWZ5IiwiRE9VQkxFX1NQQUNFIiwiZmlsZSIsImNvbnRlbnQiLCJzZXRDb250ZW50IiwiZW50cmllc0pTT04iLCJmcm9tSlNPTiIsIkVudHJpZXMiLCJyZWxlYXNlIiwiZnJvbU5hbWVBbmRFbnRyaWVzIiwiZmlsZXNSZWxlYXNhYmxlIiwiYXJlRW50cmllc1JlbGVhc2FibGUiLCJmcm9tUHJvamVjdCIsInByb2plY3QiLCJlbnRyaWVzUmVsZWFzYWJsZSIsInJlbGVhc2VkRW50cmllcyIsInJlbGVhc2VFbnRyaWVzIiwiT2JqZWN0IiwiYXNzaWduIiwicHJvdG90eXBlIiwiZW50cmllc01peGlucyIsImZyb21Ob3RoaW5nIiwiZmlsZXMiLCJnZXRGaWxlcyIsImZvckVhY2hGaWxlIiwicGF0aCIsImdldFBhdGgiLCJnZXRDb250ZW50IiwicmVsZWFzZWQiLCJGaWxlIiwiZnJvbVBhdGhDb250ZW50QW5kUmVsZWFzZWQiLCJhZGRGaWxlIiwicmVhZG1lRmlsZSIsInJlYWRtZUZpbGVGcm9tRmlsZXMiLCJtZXRhSlNPTkZpbGVGcm9tRmlsZXMiLCJtZXRhSlNPTk5vZGUiLCJtZXRhSlNPTk5vZGVGcm9tTWV0YUpTT05GaWxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkE2R0E7OztlQUFBOzs7eURBM0dpQjs0REFDRzs2REFDTTt5QkFFRzt3QkFDZ0I7cUJBQ2M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFM0QsSUFBQSxBQUFNQSx3QkFpR0gsQUFqR0g7YUFBTUEsUUFDUUMsSUFBSSxFQUFFQyxPQUFPOzhCQURyQkY7UUFFRixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLE9BQU8s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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-file-system",
3
3
  "author": "James Smith",
4
- "version": "5.0.120",
4
+ "version": "5.0.121",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-file-system",
7
7
  "description": "Occam's file system functionality.",
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 files = entries.getFiles(),
80
- readmeFile = readmeFileFromFiles(files),
81
- metaJSONFile = metaJSONFileFromFiles(files);
80
+ const filesReleasable = areEntriesReleasable(entries);
82
81
 
83
- if ((readmeFile !== null) && (metaJSONFile !== null)) {
84
- const metaJSONNode = metaJSONNodeFromMetaJSONFile(metaJSONFile);
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
- if (metaJSONNode !== null) {
87
- release = new Release(name, entries);
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
+ }