occam-file-system 5.0.91 → 5.0.93

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.
@@ -2,34 +2,104 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ default: function() {
8
13
  return renameProjectEntry;
14
+ },
15
+ renameEntryOperation: function() {
16
+ return renameEntryOperation;
9
17
  }
10
18
  });
19
+ var _fsExtra = require("fs-extra");
11
20
  var _necessary = require("necessary");
12
- var _moveProjectEntries = require("./moveProjectEntries");
13
- var last = _necessary.arrayUtilities.last;
21
+ var last = _necessary.arrayUtilities.last, concatenatePaths = _necessary.pathUtilities.concatenatePaths, checkEntryExists = _necessary.fileSystemUtilities.checkEntryExists, isEntryDirectory = _necessary.fileSystemUtilities.isEntryDirectory;
14
22
  function renameProjectEntry(projectsDirectoryPath, json, callback) {
15
23
  var pathMaps = json.pathMaps, lastPathMap = last(pathMaps), pathMap = lastPathMap, sourceEntryPath = pathMap.sourceEntryPath, targetEntryPath = pathMap.targetEntryPath;
16
- (0, _moveProjectEntries.moveEntryOperation)(sourceEntryPath, targetEntryPath, projectsDirectoryPath, function(sourceEntryPath, targetEntryPath) {
17
- var sourceEntryPaths = pathMaps.map(function(pathMap) {
18
- if (sourceEntryPath !== null) {
19
- sourceEntryPath = pathMap.sourceEntryPath;
24
+ renameEntryOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, function(sourceEntryPath, targetEntryPath) {
25
+ var entryMissing = sourceEntryPath === null, entryUnmoved = sourceEntryPath === targetEntryPath, sourceEntryPaths = [], targetEntryPaths = [];
26
+ pathMaps.forEach(function(pathMap) {
27
+ var _$sourceEntryPath, _$targetEntryPath;
28
+ if (false) {
29
+ ///
30
+ } else if (entryMissing) {
31
+ _$sourceEntryPath = null;
32
+ _$targetEntryPath = pathMap.targetEntryPath;
33
+ } else if (entryUnmoved) {
34
+ _$sourceEntryPath = pathMap.sourceEntryPath;
35
+ _$targetEntryPath = _$sourceEntryPath; ///
36
+ } else {
37
+ var ref;
38
+ ref = pathMap, _$sourceEntryPath = ref.sourceEntryPath, _$targetEntryPath = ref.targetEntryPath, ref;
20
39
  }
21
- return sourceEntryPath;
22
- }), targetEntryPaths = pathMaps.map(function(pathMap) {
23
- if (targetEntryPath !== null) {
24
- targetEntryPath = pathMap.targetEntryPath;
25
- }
26
- return targetEntryPath;
27
- }), _$json = {
40
+ sourceEntryPaths.push(_$sourceEntryPath);
41
+ targetEntryPaths.push(_$targetEntryPath);
42
+ });
43
+ var _$json = {
28
44
  sourceEntryPaths: sourceEntryPaths,
29
45
  targetEntryPaths: targetEntryPaths
30
46
  };
31
47
  callback(_$json);
32
48
  });
33
49
  }
50
+ function renameEntryOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback) {
51
+ var absoluteSourceEntryPath = concatenatePaths(projectsDirectoryPath, sourceEntryPath), entryDirectory = isEntryDirectory(absoluteSourceEntryPath);
52
+ entryDirectory ? renameDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback) : renameFileOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback);
53
+ }
54
+ function renameFileOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback) {
55
+ var sourceFilePath = sourceEntryPath, targetFilePath = targetEntryPath; ///
56
+ if (sourceFilePath === targetFilePath) {
57
+ callback(sourceEntryPath, targetEntryPath);
58
+ return;
59
+ }
60
+ var absoluteSourceFilePath = concatenatePaths(projectsDirectoryPath, sourceFilePath), sourceFileExists = checkEntryExists(absoluteSourceFilePath);
61
+ if (!sourceFileExists) {
62
+ sourceEntryPath = null;
63
+ callback(sourceEntryPath, targetEntryPath);
64
+ return;
65
+ }
66
+ var absoluteTargetFilePath = concatenatePaths(projectsDirectoryPath, targetFilePath), targetFileExists = checkEntryExists(absoluteTargetFilePath);
67
+ if (targetFileExists) {
68
+ targetEntryPath = sourceEntryPath; ///
69
+ callback(sourceEntryPath, targetEntryPath);
70
+ return;
71
+ }
72
+ (0, _fsExtra.move)(absoluteSourceFilePath, absoluteTargetFilePath, function(error) {
73
+ if (error) {
74
+ targetEntryPath = sourceEntryPath; ///
75
+ }
76
+ callback(sourceEntryPath, targetEntryPath);
77
+ });
78
+ }
79
+ function renameDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback) {
80
+ var sourceDirectoryPath = sourceEntryPath, targetDirectoryPath = targetEntryPath; //
81
+ if (sourceDirectoryPath === targetDirectoryPath) {
82
+ callback(sourceEntryPath, targetEntryPath);
83
+ return;
84
+ }
85
+ var absoluteSourceDirectoryPath = concatenatePaths(projectsDirectoryPath, sourceDirectoryPath), sourceDirectoryExists = checkEntryExists(absoluteSourceDirectoryPath);
86
+ if (!sourceDirectoryExists) {
87
+ sourceEntryPath = null;
88
+ callback(sourceEntryPath, targetEntryPath);
89
+ return;
90
+ }
91
+ var absoluteTargetDirectoryPath = concatenatePaths(projectsDirectoryPath, targetDirectoryPath), targetDirectoryExists = checkEntryExists(absoluteTargetDirectoryPath);
92
+ if (targetDirectoryExists) {
93
+ targetEntryPath = sourceEntryPath; ///
94
+ callback(sourceEntryPath, targetEntryPath);
95
+ return;
96
+ }
97
+ (0, _fsExtra.move)(absoluteSourceDirectoryPath, absoluteTargetDirectoryPath, function(error) {
98
+ if (error) {
99
+ targetEntryPath = sourceEntryPath; ///
100
+ }
101
+ callback(sourceEntryPath, targetEntryPath);
102
+ });
103
+ }
34
104
 
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW5hbWVQcm9qZWN0RW50cnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgeyBtb3ZlRW50cnlPcGVyYXRpb24gfSBmcm9tIFwiLi9tb3ZlUHJvamVjdEVudHJpZXNcIjtcblxuY29uc3QgeyBsYXN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVuYW1lUHJvamVjdEVudHJ5KHByb2plY3RzRGlyZWN0b3J5UGF0aCwganNvbiwgY2FsbGJhY2spIHtcbiAgY29uc3QgeyBwYXRoTWFwcyB9ID0ganNvbixcbiAgICAgICAgbGFzdFBhdGhNYXAgPSBsYXN0KHBhdGhNYXBzKSxcbiAgICAgICAgcGF0aE1hcCA9IGxhc3RQYXRoTWFwLCAgLy8vXG4gICAgICAgIHsgc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGggfSA9IHBhdGhNYXA7XG5cbiAgbW92ZUVudHJ5T3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIChzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCkgPT4ge1xuICAgIGNvbnN0IHNvdXJjZUVudHJ5UGF0aHMgPSBwYXRoTWFwcy5tYXAoKHBhdGhNYXApID0+IHtcbiAgICAgICAgICAgIGlmIChzb3VyY2VFbnRyeVBhdGggIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgKHsgc291cmNlRW50cnlQYXRoIH0gPSBwYXRoTWFwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHNvdXJjZUVudHJ5UGF0aDtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0YXJnZXRFbnRyeVBhdGhzID0gcGF0aE1hcHMubWFwKChwYXRoTWFwKSA9PiB7XG4gICAgICAgICAgICBpZiAodGFyZ2V0RW50cnlQYXRoICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICh7IHRhcmdldEVudHJ5UGF0aCB9ID0gcGF0aE1hcCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0YXJnZXRFbnRyeVBhdGg7XG4gICAgICAgICAgfSksXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIHNvdXJjZUVudHJ5UGF0aHMsXG4gICAgICAgICAgICB0YXJnZXRFbnRyeVBhdGhzXG4gICAgICAgICAgfTtcblxuICAgIGNhbGxiYWNrKGpzb24pO1xuICB9KTtcbn1cbiJdLCJuYW1lcyI6WyJyZW5hbWVQcm9qZWN0RW50cnkiLCJsYXN0IiwiYXJyYXlVdGlsaXRpZXMiLCJwcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJqc29uIiwiY2FsbGJhY2siLCJwYXRoTWFwcyIsImxhc3RQYXRoTWFwIiwicGF0aE1hcCIsInNvdXJjZUVudHJ5UGF0aCIsInRhcmdldEVudHJ5UGF0aCIsIm1vdmVFbnRyeU9wZXJhdGlvbiIsInNvdXJjZUVudHJ5UGF0aHMiLCJtYXAiLCJ0YXJnZXRFbnRyeVBhdGhzIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFRQTs7O2VBQXdCQTs7O3lCQU5PO2tDQUVJO0FBRW5DLElBQU0sQUFBRUMsT0FBU0MseUJBQWMsQ0FBdkJEO0FBRU8sU0FBU0QsbUJBQW1CRyxxQkFBcUIsRUFBRUMsSUFBSSxFQUFFQyxRQUFRLEVBQUU7SUFDaEYsSUFBTSxBQUFFQyxXQUFhRixLQUFiRSxVQUNGQyxjQUFjTixLQUFLSyxXQUNuQkUsVUFBVUQsYUFDUkUsa0JBQXFDRCxRQUFyQ0MsaUJBQWlCQyxrQkFBb0JGLFFBQXBCRTtJQUV6QkMsSUFBQUEsc0NBQWtCLEVBQUNGLGlCQUFpQkMsaUJBQWlCUCx1QkFBdUIsU0FBQ00saUJBQWlCQyxpQkFBb0I7UUFDaEgsSUFBTUUsbUJBQW1CTixTQUFTTyxHQUFHLENBQUMsU0FBQ0wsU0FBWTtZQUMzQyxJQUFJQyxvQkFBb0IsSUFBSSxFQUFFO2dCQUN6QkEsa0JBQW9CRCxRQUFwQkM7WUFDTCxDQUFDO1lBRUQsT0FBT0E7UUFDVCxJQUNBSyxtQkFBbUJSLFNBQVNPLEdBQUcsQ0FBQyxTQUFDTCxTQUFZO1lBQzNDLElBQUlFLG9CQUFvQixJQUFJLEVBQUU7Z0JBQ3pCQSxrQkFBb0JGLFFBQXBCRTtZQUNMLENBQUM7WUFFRCxPQUFPQTtRQUNULElBQ0FOLFNBQU87WUFDTFEsa0JBQUFBO1lBQ0FFLGtCQUFBQTtRQUNGO1FBRU5ULFNBQVNEO0lBQ1g7QUFDRiJ9
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW5hbWVQcm9qZWN0RW50cnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG1vdmUgYXMgcmVuYW1lIH0gZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcbmltcG9ydCB7IHBhdGhVdGlsaXRpZXMsIGZpbGVTeXN0ZW1VdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmNvbnN0IHsgbGFzdCB9ID0gYXJyYXlVdGlsaXRpZXMsXG4gICAgICB7IGNvbmNhdGVuYXRlUGF0aHMgfSA9IHBhdGhVdGlsaXRpZXMsXG4gICAgICB7IGNoZWNrRW50cnlFeGlzdHMsIGlzRW50cnlEaXJlY3RvcnkgfSA9IGZpbGVTeXN0ZW1VdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlbmFtZVByb2plY3RFbnRyeShwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGpzb24sIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHsgcGF0aE1hcHMgfSA9IGpzb24sXG4gICAgICAgIGxhc3RQYXRoTWFwID0gbGFzdChwYXRoTWFwcyksXG4gICAgICAgIHBhdGhNYXAgPSBsYXN0UGF0aE1hcCwgIC8vL1xuICAgICAgICB7IHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoIH0gPSBwYXRoTWFwO1xuXG4gIHJlbmFtZUVudHJ5T3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIChzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCkgPT4ge1xuICAgIGNvbnN0IGVudHJ5TWlzc2luZyA9IChzb3VyY2VFbnRyeVBhdGggPT09IG51bGwpLFxuICAgICAgICAgIGVudHJ5VW5tb3ZlZCA9IChzb3VyY2VFbnRyeVBhdGggPT09IHRhcmdldEVudHJ5UGF0aCksXG4gICAgICAgICAgc291cmNlRW50cnlQYXRocyA9IFtdLFxuICAgICAgICAgIHRhcmdldEVudHJ5UGF0aHMgPSBbXTtcblxuICAgIHBhdGhNYXBzLmZvckVhY2goKHBhdGhNYXApID0+IHtcbiAgICAgIGxldCBzb3VyY2VFbnRyeVBhdGgsXG4gICAgICAgICAgdGFyZ2V0RW50cnlQYXRoO1xuXG4gICAgICBpZiAoZmFsc2UpIHtcbiAgICAgICAgLy8vXG4gICAgICB9IGVsc2UgaWYgKGVudHJ5TWlzc2luZykge1xuICAgICAgICBzb3VyY2VFbnRyeVBhdGggPSBudWxsO1xuXG4gICAgICAgICh7IHRhcmdldEVudHJ5UGF0aCB9ID0gcGF0aE1hcCk7XG4gICAgICB9IGVsc2UgaWYgKGVudHJ5VW5tb3ZlZCkge1xuICAgICAgICAoeyBzb3VyY2VFbnRyeVBhdGggfSA9IHBhdGhNYXApO1xuXG4gICAgICAgIHRhcmdldEVudHJ5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aDsgIC8vL1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgKHsgc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGggfSA9IHBhdGhNYXApO1xuICAgICAgfVxuXG4gICAgICBzb3VyY2VFbnRyeVBhdGhzLnB1c2goc291cmNlRW50cnlQYXRoKTtcbiAgICAgIHRhcmdldEVudHJ5UGF0aHMucHVzaCh0YXJnZXRFbnRyeVBhdGgpO1xuICAgIH0pO1xuXG4gICAgY29uc3QganNvbiA9IHtcbiAgICAgIHNvdXJjZUVudHJ5UGF0aHMsXG4gICAgICB0YXJnZXRFbnRyeVBhdGhzXG4gICAgfTtcblxuICAgIGNhbGxiYWNrKGpzb24pO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmFtZUVudHJ5T3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGFic29sdXRlU291cmNlRW50cnlQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHNvdXJjZUVudHJ5UGF0aCksXG4gICAgICAgIGVudHJ5RGlyZWN0b3J5ID0gaXNFbnRyeURpcmVjdG9yeShhYnNvbHV0ZVNvdXJjZUVudHJ5UGF0aCk7XG5cbiAgZW50cnlEaXJlY3RvcnkgP1xuICAgIHJlbmFtZURpcmVjdG9yeU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykgOlxuICAgICAgcmVuYW1lRmlsZU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjayk7XG59XG5cbmZ1bmN0aW9uIHJlbmFtZUZpbGVPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spIHtcbiAgY29uc3Qgc291cmNlRmlsZVBhdGggPSBzb3VyY2VFbnRyeVBhdGgsICAvLy9cbiAgICAgICAgdGFyZ2V0RmlsZVBhdGggPSB0YXJnZXRFbnRyeVBhdGg7ICAvLy9cblxuICBpZiAoc291cmNlRmlsZVBhdGggPT09IHRhcmdldEZpbGVQYXRoKSB7XG4gICAgY2FsbGJhY2soc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgYWJzb2x1dGVTb3VyY2VGaWxlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzb3VyY2VGaWxlUGF0aCksXG4gICAgICAgIHNvdXJjZUZpbGVFeGlzdHMgPSBjaGVja0VudHJ5RXhpc3RzKGFic29sdXRlU291cmNlRmlsZVBhdGgpO1xuXG4gIGlmICghc291cmNlRmlsZUV4aXN0cykge1xuICAgIHNvdXJjZUVudHJ5UGF0aCA9IG51bGw7XG5cbiAgICBjYWxsYmFjayhzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBhYnNvbHV0ZVRhcmdldEZpbGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRhcmdldEZpbGVQYXRoKSxcbiAgICAgICAgdGFyZ2V0RmlsZUV4aXN0cyA9IGNoZWNrRW50cnlFeGlzdHMoYWJzb2x1dGVUYXJnZXRGaWxlUGF0aCk7XG5cbiAgaWYgKHRhcmdldEZpbGVFeGlzdHMpIHtcbiAgICB0YXJnZXRFbnRyeVBhdGggPSBzb3VyY2VFbnRyeVBhdGg7ICAvLy9cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIHJlbmFtZShhYnNvbHV0ZVNvdXJjZUZpbGVQYXRoLCBhYnNvbHV0ZVRhcmdldEZpbGVQYXRoLCAoZXJyb3IpID0+IHtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHRhcmdldEVudHJ5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aDsgIC8vL1xuICAgIH1cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlbmFtZURpcmVjdG9yeU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBjb25zdCBzb3VyY2VEaXJlY3RvcnlQYXRoID0gc291cmNlRW50cnlQYXRoLCAvLy9cbiAgICAgICAgdGFyZ2V0RGlyZWN0b3J5UGF0aCA9IHRhcmdldEVudHJ5UGF0aDsgLy9cblxuICBpZiAoc291cmNlRGlyZWN0b3J5UGF0aCA9PT0gdGFyZ2V0RGlyZWN0b3J5UGF0aCkge1xuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGFic29sdXRlU291cmNlRGlyZWN0b3J5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzb3VyY2VEaXJlY3RvcnlQYXRoKSxcbiAgICAgICAgc291cmNlRGlyZWN0b3J5RXhpc3RzID0gY2hlY2tFbnRyeUV4aXN0cyhhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGgpO1xuXG4gIGlmICghc291cmNlRGlyZWN0b3J5RXhpc3RzKSB7XG4gICAgc291cmNlRW50cnlQYXRoID0gbnVsbDtcblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCB0YXJnZXREaXJlY3RvcnlQYXRoKSxcbiAgICAgICAgdGFyZ2V0RGlyZWN0b3J5RXhpc3RzID0gY2hlY2tFbnRyeUV4aXN0cyhhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGgpO1xuXG4gIGlmICh0YXJnZXREaXJlY3RvcnlFeGlzdHMpIHtcbiAgICB0YXJnZXRFbnRyeVBhdGggPSBzb3VyY2VFbnRyeVBhdGg7ICAvLy9cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIHJlbmFtZShhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGgsIGFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCwgKGVycm9yKSA9PiB7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICB0YXJnZXRFbnRyeVBhdGggPSBzb3VyY2VFbnRyeVBhdGg7ICAvLy9cbiAgICB9XG5cbiAgICBjYWxsYmFjayhzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCk7XG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbInJlbmFtZVByb2plY3RFbnRyeSIsInJlbmFtZUVudHJ5T3BlcmF0aW9uIiwibGFzdCIsImFycmF5VXRpbGl0aWVzIiwiY29uY2F0ZW5hdGVQYXRocyIsInBhdGhVdGlsaXRpZXMiLCJjaGVja0VudHJ5RXhpc3RzIiwiZmlsZVN5c3RlbVV0aWxpdGllcyIsImlzRW50cnlEaXJlY3RvcnkiLCJwcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJqc29uIiwiY2FsbGJhY2siLCJwYXRoTWFwcyIsImxhc3RQYXRoTWFwIiwicGF0aE1hcCIsInNvdXJjZUVudHJ5UGF0aCIsInRhcmdldEVudHJ5UGF0aCIsImVudHJ5TWlzc2luZyIsImVudHJ5VW5tb3ZlZCIsInNvdXJjZUVudHJ5UGF0aHMiLCJ0YXJnZXRFbnRyeVBhdGhzIiwiZm9yRWFjaCIsInB1c2giLCJhYnNvbHV0ZVNvdXJjZUVudHJ5UGF0aCIsImVudHJ5RGlyZWN0b3J5IiwicmVuYW1lRGlyZWN0b3J5T3BlcmF0aW9uIiwicmVuYW1lRmlsZU9wZXJhdGlvbiIsInNvdXJjZUZpbGVQYXRoIiwidGFyZ2V0RmlsZVBhdGgiLCJhYnNvbHV0ZVNvdXJjZUZpbGVQYXRoIiwic291cmNlRmlsZUV4aXN0cyIsImFic29sdXRlVGFyZ2V0RmlsZVBhdGgiLCJ0YXJnZXRGaWxlRXhpc3RzIiwicmVuYW1lIiwiZXJyb3IiLCJzb3VyY2VEaXJlY3RvcnlQYXRoIiwidGFyZ2V0RGlyZWN0b3J5UGF0aCIsImFic29sdXRlU291cmNlRGlyZWN0b3J5UGF0aCIsInNvdXJjZURpcmVjdG9yeUV4aXN0cyIsImFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCIsInRhcmdldERpcmVjdG9yeUV4aXN0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBVUEsT0F5Q0M7ZUF6Q3VCQTs7SUEyQ1JDLG9CQUFvQjtlQUFwQkE7Ozt1QkFuRGU7eUJBQ0E7QUFHL0IsSUFBTSxBQUFFQyxPQUFTQyx5QkFBYyxDQUF2QkQsTUFDRixBQUFFRSxtQkFBcUJDLHdCQUFhLENBQWxDRCxrQkFDQUUsbUJBQXVDQyw4QkFBbUIsQ0FBMURELGtCQUFrQkUsbUJBQXFCRCw4QkFBbUIsQ0FBeENDO0FBRVgsU0FBU1IsbUJBQW1CUyxxQkFBcUIsRUFBRUMsSUFBSSxFQUFFQyxRQUFRLEVBQUU7SUFDaEYsSUFBTSxBQUFFQyxXQUFhRixLQUFiRSxVQUNGQyxjQUFjWCxLQUFLVSxXQUNuQkUsVUFBVUQsYUFDUkUsa0JBQXFDRCxRQUFyQ0MsaUJBQWlCQyxrQkFBb0JGLFFBQXBCRTtJQUV6QmYscUJBQXFCYyxpQkFBaUJDLGlCQUFpQlAsdUJBQXVCLFNBQUNNLGlCQUFpQkMsaUJBQW9CO1FBQ2xILElBQU1DLGVBQWdCRixvQkFBb0IsSUFBSSxFQUN4Q0csZUFBZ0JILG9CQUFvQkMsaUJBQ3BDRyxtQkFBbUIsRUFBRSxFQUNyQkMsbUJBQW1CLEVBQUU7UUFFM0JSLFNBQVNTLE9BQU8sQ0FBQyxTQUFDUCxTQUFZO1lBQzVCLElBQUlDLG1CQUNBQztZQUVKLElBQUksS0FBSyxFQUFFO1lBQ1QsR0FBRztZQUNMLE9BQU8sSUFBSUMsY0FBYztnQkFDdkJGLG9CQUFrQixJQUFJO2dCQUVuQkMsb0JBQW9CRixRQUFwQkU7WUFDTCxPQUFPLElBQUlFLGNBQWM7Z0JBQ3BCSCxvQkFBb0JELFFBQXBCQztnQkFFSEMsb0JBQWtCRCxtQkFBa0IsR0FBRztZQUN6QyxPQUFPOztzQkFDbUNELFNBQXJDQyx3QkFBQUEsaUJBQWlCQyx3QkFBQUE7WUFDdEIsQ0FBQztZQUVERyxpQkFBaUJHLElBQUksQ0FBQ1A7WUFDdEJLLGlCQUFpQkUsSUFBSSxDQUFDTjtRQUN4QjtRQUVBLElBQU1OLFNBQU87WUFDWFMsa0JBQUFBO1lBQ0FDLGtCQUFBQTtRQUNGO1FBRUFULFNBQVNEO0lBQ1g7QUFDRjtBQUVPLFNBQVNULHFCQUFxQmMsZUFBZSxFQUFFQyxlQUFlLEVBQUVQLHFCQUFxQixFQUFFRSxRQUFRLEVBQUU7SUFDdEcsSUFBTVksMEJBQTBCbkIsaUJBQWlCSyx1QkFBdUJNLGtCQUNsRVMsaUJBQWlCaEIsaUJBQWlCZTtJQUV4Q0MsaUJBQ0VDLHlCQUF5QlYsaUJBQWlCQyxpQkFBaUJQLHVCQUF1QkUsWUFDaEZlLG9CQUFvQlgsaUJBQWlCQyxpQkFBaUJQLHVCQUF1QkUsU0FBUztBQUM1RjtBQUVBLFNBQVNlLG9CQUFvQlgsZUFBZSxFQUFFQyxlQUFlLEVBQUVQLHFCQUFxQixFQUFFRSxRQUFRLEVBQUU7SUFDOUYsSUFBTWdCLGlCQUFpQlosaUJBQ2pCYSxpQkFBaUJaLGlCQUFrQixHQUFHO0lBRTVDLElBQUlXLG1CQUFtQkMsZ0JBQWdCO1FBQ3JDakIsU0FBU0ksaUJBQWlCQztRQUUxQjtJQUNGLENBQUM7SUFFRCxJQUFNYSx5QkFBeUJ6QixpQkFBaUJLLHVCQUF1QmtCLGlCQUNqRUcsbUJBQW1CeEIsaUJBQWlCdUI7SUFFMUMsSUFBSSxDQUFDQyxrQkFBa0I7UUFDckJmLGtCQUFrQixJQUFJO1FBRXRCSixTQUFTSSxpQkFBaUJDO1FBRTFCO0lBQ0YsQ0FBQztJQUVELElBQU1lLHlCQUF5QjNCLGlCQUFpQkssdUJBQXVCbUIsaUJBQ2pFSSxtQkFBbUIxQixpQkFBaUJ5QjtJQUUxQyxJQUFJQyxrQkFBa0I7UUFDcEJoQixrQkFBa0JELGlCQUFrQixHQUFHO1FBRXZDSixTQUFTSSxpQkFBaUJDO1FBRTFCO0lBQ0YsQ0FBQztJQUVEaUIsSUFBQUEsYUFBTSxFQUFDSix3QkFBd0JFLHdCQUF3QixTQUFDRyxPQUFVO1FBQ2hFLElBQUlBLE9BQU87WUFDVGxCLGtCQUFrQkQsaUJBQWtCLEdBQUc7UUFDekMsQ0FBQztRQUVESixTQUFTSSxpQkFBaUJDO0lBQzVCO0FBQ0Y7QUFFQSxTQUFTUyx5QkFBeUJWLGVBQWUsRUFBRUMsZUFBZSxFQUFFUCxxQkFBcUIsRUFBRUUsUUFBUSxFQUFFO0lBQ25HLElBQU13QixzQkFBc0JwQixpQkFDdEJxQixzQkFBc0JwQixpQkFBaUIsRUFBRTtJQUUvQyxJQUFJbUIsd0JBQXdCQyxxQkFBcUI7UUFDL0N6QixTQUFTSSxpQkFBaUJDO1FBRTFCO0lBQ0YsQ0FBQztJQUVELElBQU1xQiw4QkFBOEJqQyxpQkFBaUJLLHVCQUF1QjBCLHNCQUN0RUcsd0JBQXdCaEMsaUJBQWlCK0I7SUFFL0MsSUFBSSxDQUFDQyx1QkFBdUI7UUFDMUJ2QixrQkFBa0IsSUFBSTtRQUV0QkosU0FBU0ksaUJBQWlCQztRQUUxQjtJQUNGLENBQUM7SUFFRCxJQUFNdUIsOEJBQThCbkMsaUJBQWlCSyx1QkFBdUIyQixzQkFDdEVJLHdCQUF3QmxDLGlCQUFpQmlDO0lBRS9DLElBQUlDLHVCQUF1QjtRQUN6QnhCLGtCQUFrQkQsaUJBQWtCLEdBQUc7UUFFdkNKLFNBQVNJLGlCQUFpQkM7UUFFMUI7SUFDRixDQUFDO0lBRURpQixJQUFBQSxhQUFNLEVBQUNJLDZCQUE2QkUsNkJBQTZCLFNBQUNMLE9BQVU7UUFDMUUsSUFBSUEsT0FBTztZQUNUbEIsa0JBQWtCRCxpQkFBa0IsR0FBRztRQUN6QyxDQUFDO1FBRURKLFNBQVNJLGlCQUFpQkM7SUFDNUI7QUFDRiJ9
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.91",
4
+ "version": "5.0.93",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-file-system",
7
7
  "description": "Occam's file system functionality.",
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
 
3
+ import { move as rename } from "fs-extra";
3
4
  import { arrayUtilities } from "necessary";
5
+ import { pathUtilities, fileSystemUtilities } from "necessary";
4
6
 
5
- import { moveEntryOperation } from "./moveProjectEntries";
6
-
7
- const { last } = arrayUtilities;
7
+ const { last } = arrayUtilities,
8
+ { concatenatePaths } = pathUtilities,
9
+ { checkEntryExists, isEntryDirectory } = fileSystemUtilities;
8
10
 
9
11
  export default function renameProjectEntry(projectsDirectoryPath, json, callback) {
10
12
  const { pathMaps } = json,
@@ -12,26 +14,130 @@ export default function renameProjectEntry(projectsDirectoryPath, json, callback
12
14
  pathMap = lastPathMap, ///
13
15
  { sourceEntryPath, targetEntryPath } = pathMap;
14
16
 
15
- moveEntryOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, (sourceEntryPath, targetEntryPath) => {
16
- const sourceEntryPaths = pathMaps.map((pathMap) => {
17
- if (sourceEntryPath !== null) {
18
- ({ sourceEntryPath } = pathMap);
19
- }
20
-
21
- return sourceEntryPath;
22
- }),
23
- targetEntryPaths = pathMaps.map((pathMap) => {
24
- if (targetEntryPath !== null) {
25
- ({ targetEntryPath } = pathMap);
26
- }
27
-
28
- return targetEntryPath;
29
- }),
30
- json = {
31
- sourceEntryPaths,
32
- targetEntryPaths
33
- };
17
+ renameEntryOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, (sourceEntryPath, targetEntryPath) => {
18
+ const entryMissing = (sourceEntryPath === null),
19
+ entryUnmoved = (sourceEntryPath === targetEntryPath),
20
+ sourceEntryPaths = [],
21
+ targetEntryPaths = [];
22
+
23
+ pathMaps.forEach((pathMap) => {
24
+ let sourceEntryPath,
25
+ targetEntryPath;
26
+
27
+ if (false) {
28
+ ///
29
+ } else if (entryMissing) {
30
+ sourceEntryPath = null;
31
+
32
+ ({ targetEntryPath } = pathMap);
33
+ } else if (entryUnmoved) {
34
+ ({ sourceEntryPath } = pathMap);
35
+
36
+ targetEntryPath = sourceEntryPath; ///
37
+ } else {
38
+ ({ sourceEntryPath, targetEntryPath } = pathMap);
39
+ }
40
+
41
+ sourceEntryPaths.push(sourceEntryPath);
42
+ targetEntryPaths.push(targetEntryPath);
43
+ });
44
+
45
+ const json = {
46
+ sourceEntryPaths,
47
+ targetEntryPaths
48
+ };
34
49
 
35
50
  callback(json);
36
51
  });
37
52
  }
53
+
54
+ export function renameEntryOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback) {
55
+ const absoluteSourceEntryPath = concatenatePaths(projectsDirectoryPath, sourceEntryPath),
56
+ entryDirectory = isEntryDirectory(absoluteSourceEntryPath);
57
+
58
+ entryDirectory ?
59
+ renameDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback) :
60
+ renameFileOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback);
61
+ }
62
+
63
+ function renameFileOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback) {
64
+ const sourceFilePath = sourceEntryPath, ///
65
+ targetFilePath = targetEntryPath; ///
66
+
67
+ if (sourceFilePath === targetFilePath) {
68
+ callback(sourceEntryPath, targetEntryPath);
69
+
70
+ return;
71
+ }
72
+
73
+ const absoluteSourceFilePath = concatenatePaths(projectsDirectoryPath, sourceFilePath),
74
+ sourceFileExists = checkEntryExists(absoluteSourceFilePath);
75
+
76
+ if (!sourceFileExists) {
77
+ sourceEntryPath = null;
78
+
79
+ callback(sourceEntryPath, targetEntryPath);
80
+
81
+ return;
82
+ }
83
+
84
+ const absoluteTargetFilePath = concatenatePaths(projectsDirectoryPath, targetFilePath),
85
+ targetFileExists = checkEntryExists(absoluteTargetFilePath);
86
+
87
+ if (targetFileExists) {
88
+ targetEntryPath = sourceEntryPath; ///
89
+
90
+ callback(sourceEntryPath, targetEntryPath);
91
+
92
+ return;
93
+ }
94
+
95
+ rename(absoluteSourceFilePath, absoluteTargetFilePath, (error) => {
96
+ if (error) {
97
+ targetEntryPath = sourceEntryPath; ///
98
+ }
99
+
100
+ callback(sourceEntryPath, targetEntryPath);
101
+ });
102
+ }
103
+
104
+ function renameDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback) {
105
+ const sourceDirectoryPath = sourceEntryPath, ///
106
+ targetDirectoryPath = targetEntryPath; //
107
+
108
+ if (sourceDirectoryPath === targetDirectoryPath) {
109
+ callback(sourceEntryPath, targetEntryPath);
110
+
111
+ return;
112
+ }
113
+
114
+ const absoluteSourceDirectoryPath = concatenatePaths(projectsDirectoryPath, sourceDirectoryPath),
115
+ sourceDirectoryExists = checkEntryExists(absoluteSourceDirectoryPath);
116
+
117
+ if (!sourceDirectoryExists) {
118
+ sourceEntryPath = null;
119
+
120
+ callback(sourceEntryPath, targetEntryPath);
121
+
122
+ return;
123
+ }
124
+
125
+ const absoluteTargetDirectoryPath = concatenatePaths(projectsDirectoryPath, targetDirectoryPath),
126
+ targetDirectoryExists = checkEntryExists(absoluteTargetDirectoryPath);
127
+
128
+ if (targetDirectoryExists) {
129
+ targetEntryPath = sourceEntryPath; ///
130
+
131
+ callback(sourceEntryPath, targetEntryPath);
132
+
133
+ return;
134
+ }
135
+
136
+ rename(absoluteSourceDirectoryPath, absoluteTargetDirectoryPath, (error) => {
137
+ if (error) {
138
+ targetEntryPath = sourceEntryPath; ///
139
+ }
140
+
141
+ callback(sourceEntryPath, targetEntryPath);
142
+ });
143
+ }