occam-file-system 5.0.92 → 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,18 +2,26 @@
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) {
24
+ renameEntryOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, function(sourceEntryPath, targetEntryPath) {
17
25
  var entryMissing = sourceEntryPath === null, entryUnmoved = sourceEntryPath === targetEntryPath, sourceEntryPaths = [], targetEntryPaths = [];
18
26
  pathMaps.forEach(function(pathMap) {
19
27
  var _$sourceEntryPath, _$targetEntryPath;
@@ -39,5 +47,59 @@ function renameProjectEntry(projectsDirectoryPath, json, callback) {
39
47
  callback(_$json);
40
48
  });
41
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
+ }
42
104
 
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW5hbWVQcm9qZWN0RW50cnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgeyBtb3ZlRW50cnlPcGVyYXRpb24gfSBmcm9tIFwiLi9tb3ZlUHJvamVjdEVudHJpZXNcIjtcblxuY29uc3QgeyBsYXN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVuYW1lUHJvamVjdEVudHJ5KHByb2plY3RzRGlyZWN0b3J5UGF0aCwganNvbiwgY2FsbGJhY2spIHtcbiAgY29uc3QgeyBwYXRoTWFwcyB9ID0ganNvbixcbiAgICAgICAgbGFzdFBhdGhNYXAgPSBsYXN0KHBhdGhNYXBzKSxcbiAgICAgICAgcGF0aE1hcCA9IGxhc3RQYXRoTWFwLCAgLy8vXG4gICAgICAgIHsgc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGggfSA9IHBhdGhNYXA7XG5cbiAgbW92ZUVudHJ5T3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIChzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCkgPT4ge1xuICAgIGNvbnN0IGVudHJ5TWlzc2luZyA9IChzb3VyY2VFbnRyeVBhdGggPT09IG51bGwpLFxuICAgICAgICAgIGVudHJ5VW5tb3ZlZCA9IChzb3VyY2VFbnRyeVBhdGggPT09IHRhcmdldEVudHJ5UGF0aCksXG4gICAgICAgICAgc291cmNlRW50cnlQYXRocyA9IFtdLFxuICAgICAgICAgIHRhcmdldEVudHJ5UGF0aHMgPSBbXTtcblxuICAgIHBhdGhNYXBzLmZvckVhY2goKHBhdGhNYXApID0+IHtcbiAgICAgIGxldCBzb3VyY2VFbnRyeVBhdGgsXG4gICAgICAgICAgdGFyZ2V0RW50cnlQYXRoO1xuXG4gICAgICBpZiAoZmFsc2UpIHtcbiAgICAgICAgLy8vXG4gICAgICB9IGVsc2UgaWYgKGVudHJ5TWlzc2luZykge1xuICAgICAgICBzb3VyY2VFbnRyeVBhdGggPSBudWxsO1xuXG4gICAgICAgICh7IHRhcmdldEVudHJ5UGF0aCB9ID0gcGF0aE1hcCk7XG4gICAgICB9IGVsc2UgaWYgKGVudHJ5VW5tb3ZlZCkge1xuICAgICAgICAoeyBzb3VyY2VFbnRyeVBhdGggfSA9IHBhdGhNYXApO1xuXG4gICAgICAgIHRhcmdldEVudHJ5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aDsgIC8vL1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgKHsgc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGggfSA9IHBhdGhNYXApO1xuICAgICAgfVxuXG4gICAgICBzb3VyY2VFbnRyeVBhdGhzLnB1c2goc291cmNlRW50cnlQYXRoKTtcbiAgICAgIHRhcmdldEVudHJ5UGF0aHMucHVzaCh0YXJnZXRFbnRyeVBhdGgpO1xuICAgIH0pO1xuXG4gICAgY29uc3QganNvbiA9IHtcbiAgICAgIHNvdXJjZUVudHJ5UGF0aHMsXG4gICAgICB0YXJnZXRFbnRyeVBhdGhzXG4gICAgfTtcblxuICAgIGNhbGxiYWNrKGpzb24pO1xuICB9KTtcbn1cbiJdLCJuYW1lcyI6WyJyZW5hbWVQcm9qZWN0RW50cnkiLCJsYXN0IiwiYXJyYXlVdGlsaXRpZXMiLCJwcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJqc29uIiwiY2FsbGJhY2siLCJwYXRoTWFwcyIsImxhc3RQYXRoTWFwIiwicGF0aE1hcCIsInNvdXJjZUVudHJ5UGF0aCIsInRhcmdldEVudHJ5UGF0aCIsIm1vdmVFbnRyeU9wZXJhdGlvbiIsImVudHJ5TWlzc2luZyIsImVudHJ5VW5tb3ZlZCIsInNvdXJjZUVudHJ5UGF0aHMiLCJ0YXJnZXRFbnRyeVBhdGhzIiwiZm9yRWFjaCIsInB1c2giXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVFBOzs7ZUFBd0JBOzs7eUJBTk87a0NBRUk7QUFFbkMsSUFBTSxBQUFFQyxPQUFTQyx5QkFBYyxDQUF2QkQ7QUFFTyxTQUFTRCxtQkFBbUJHLHFCQUFxQixFQUFFQyxJQUFJLEVBQUVDLFFBQVEsRUFBRTtJQUNoRixJQUFNLEFBQUVDLFdBQWFGLEtBQWJFLFVBQ0ZDLGNBQWNOLEtBQUtLLFdBQ25CRSxVQUFVRCxhQUNSRSxrQkFBcUNELFFBQXJDQyxpQkFBaUJDLGtCQUFvQkYsUUFBcEJFO0lBRXpCQyxJQUFBQSxzQ0FBa0IsRUFBQ0YsaUJBQWlCQyxpQkFBaUJQLHVCQUF1QixTQUFDTSxpQkFBaUJDLGlCQUFvQjtRQUNoSCxJQUFNRSxlQUFnQkgsb0JBQW9CLElBQUksRUFDeENJLGVBQWdCSixvQkFBb0JDLGlCQUNwQ0ksbUJBQW1CLEVBQUUsRUFDckJDLG1CQUFtQixFQUFFO1FBRTNCVCxTQUFTVSxPQUFPLENBQUMsU0FBQ1IsU0FBWTtZQUM1QixJQUFJQyxtQkFDQUM7WUFFSixJQUFJLEtBQUssRUFBRTtZQUNULEdBQUc7WUFDTCxPQUFPLElBQUlFLGNBQWM7Z0JBQ3ZCSCxvQkFBa0IsSUFBSTtnQkFFbkJDLG9CQUFvQkYsUUFBcEJFO1lBQ0wsT0FBTyxJQUFJRyxjQUFjO2dCQUNwQkosb0JBQW9CRCxRQUFwQkM7Z0JBRUhDLG9CQUFrQkQsbUJBQWtCLEdBQUc7WUFDekMsT0FBTzs7c0JBQ21DRCxTQUFyQ0Msd0JBQUFBLGlCQUFpQkMsd0JBQUFBO1lBQ3RCLENBQUM7WUFFREksaUJBQWlCRyxJQUFJLENBQUNSO1lBQ3RCTSxpQkFBaUJFLElBQUksQ0FBQ1A7UUFDeEI7UUFFQSxJQUFNTixTQUFPO1lBQ1hVLGtCQUFBQTtZQUNBQyxrQkFBQUE7UUFDRjtRQUVBVixTQUFTRDtJQUNYO0FBQ0YifQ==
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW5hbWVQcm9qZWN0RW50cnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG1vdmUgYXMgcmVuYW1lIH0gZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcbmltcG9ydCB7IHBhdGhVdGlsaXRpZXMsIGZpbGVTeXN0ZW1VdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmNvbnN0IHsgbGFzdCB9ID0gYXJyYXlVdGlsaXRpZXMsXG4gICAgICB7IGNvbmNhdGVuYXRlUGF0aHMgfSA9IHBhdGhVdGlsaXRpZXMsXG4gICAgICB7IGNoZWNrRW50cnlFeGlzdHMsIGlzRW50cnlEaXJlY3RvcnkgfSA9IGZpbGVTeXN0ZW1VdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlbmFtZVByb2plY3RFbnRyeShwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGpzb24sIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHsgcGF0aE1hcHMgfSA9IGpzb24sXG4gICAgICAgIGxhc3RQYXRoTWFwID0gbGFzdChwYXRoTWFwcyksXG4gICAgICAgIHBhdGhNYXAgPSBsYXN0UGF0aE1hcCwgIC8vL1xuICAgICAgICB7IHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoIH0gPSBwYXRoTWFwO1xuXG4gIHJlbmFtZUVudHJ5T3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIChzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCkgPT4ge1xuICAgIGNvbnN0IGVudHJ5TWlzc2luZyA9IChzb3VyY2VFbnRyeVBhdGggPT09IG51bGwpLFxuICAgICAgICAgIGVudHJ5VW5tb3ZlZCA9IChzb3VyY2VFbnRyeVBhdGggPT09IHRhcmdldEVudHJ5UGF0aCksXG4gICAgICAgICAgc291cmNlRW50cnlQYXRocyA9IFtdLFxuICAgICAgICAgIHRhcmdldEVudHJ5UGF0aHMgPSBbXTtcblxuICAgIHBhdGhNYXBzLmZvckVhY2goKHBhdGhNYXApID0+IHtcbiAgICAgIGxldCBzb3VyY2VFbnRyeVBhdGgsXG4gICAgICAgICAgdGFyZ2V0RW50cnlQYXRoO1xuXG4gICAgICBpZiAoZmFsc2UpIHtcbiAgICAgICAgLy8vXG4gICAgICB9IGVsc2UgaWYgKGVudHJ5TWlzc2luZykge1xuICAgICAgICBzb3VyY2VFbnRyeVBhdGggPSBudWxsO1xuXG4gICAgICAgICh7IHRhcmdldEVudHJ5UGF0aCB9ID0gcGF0aE1hcCk7XG4gICAgICB9IGVsc2UgaWYgKGVudHJ5VW5tb3ZlZCkge1xuICAgICAgICAoeyBzb3VyY2VFbnRyeVBhdGggfSA9IHBhdGhNYXApO1xuXG4gICAgICAgIHRhcmdldEVudHJ5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aDsgIC8vL1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgKHsgc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGggfSA9IHBhdGhNYXApO1xuICAgICAgfVxuXG4gICAgICBzb3VyY2VFbnRyeVBhdGhzLnB1c2goc291cmNlRW50cnlQYXRoKTtcbiAgICAgIHRhcmdldEVudHJ5UGF0aHMucHVzaCh0YXJnZXRFbnRyeVBhdGgpO1xuICAgIH0pO1xuXG4gICAgY29uc3QganNvbiA9IHtcbiAgICAgIHNvdXJjZUVudHJ5UGF0aHMsXG4gICAgICB0YXJnZXRFbnRyeVBhdGhzXG4gICAgfTtcblxuICAgIGNhbGxiYWNrKGpzb24pO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmFtZUVudHJ5T3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGFic29sdXRlU291cmNlRW50cnlQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHNvdXJjZUVudHJ5UGF0aCksXG4gICAgICAgIGVudHJ5RGlyZWN0b3J5ID0gaXNFbnRyeURpcmVjdG9yeShhYnNvbHV0ZVNvdXJjZUVudHJ5UGF0aCk7XG5cbiAgZW50cnlEaXJlY3RvcnkgP1xuICAgIHJlbmFtZURpcmVjdG9yeU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykgOlxuICAgICAgcmVuYW1lRmlsZU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjayk7XG59XG5cbmZ1bmN0aW9uIHJlbmFtZUZpbGVPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spIHtcbiAgY29uc3Qgc291cmNlRmlsZVBhdGggPSBzb3VyY2VFbnRyeVBhdGgsICAvLy9cbiAgICAgICAgdGFyZ2V0RmlsZVBhdGggPSB0YXJnZXRFbnRyeVBhdGg7ICAvLy9cblxuICBpZiAoc291cmNlRmlsZVBhdGggPT09IHRhcmdldEZpbGVQYXRoKSB7XG4gICAgY2FsbGJhY2soc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgYWJzb2x1dGVTb3VyY2VGaWxlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzb3VyY2VGaWxlUGF0aCksXG4gICAgICAgIHNvdXJjZUZpbGVFeGlzdHMgPSBjaGVja0VudHJ5RXhpc3RzKGFic29sdXRlU291cmNlRmlsZVBhdGgpO1xuXG4gIGlmICghc291cmNlRmlsZUV4aXN0cykge1xuICAgIHNvdXJjZUVudHJ5UGF0aCA9IG51bGw7XG5cbiAgICBjYWxsYmFjayhzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBhYnNvbHV0ZVRhcmdldEZpbGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRhcmdldEZpbGVQYXRoKSxcbiAgICAgICAgdGFyZ2V0RmlsZUV4aXN0cyA9IGNoZWNrRW50cnlFeGlzdHMoYWJzb2x1dGVUYXJnZXRGaWxlUGF0aCk7XG5cbiAgaWYgKHRhcmdldEZpbGVFeGlzdHMpIHtcbiAgICB0YXJnZXRFbnRyeVBhdGggPSBzb3VyY2VFbnRyeVBhdGg7ICAvLy9cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIHJlbmFtZShhYnNvbHV0ZVNvdXJjZUZpbGVQYXRoLCBhYnNvbHV0ZVRhcmdldEZpbGVQYXRoLCAoZXJyb3IpID0+IHtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHRhcmdldEVudHJ5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aDsgIC8vL1xuICAgIH1cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlbmFtZURpcmVjdG9yeU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBjb25zdCBzb3VyY2VEaXJlY3RvcnlQYXRoID0gc291cmNlRW50cnlQYXRoLCAvLy9cbiAgICAgICAgdGFyZ2V0RGlyZWN0b3J5UGF0aCA9IHRhcmdldEVudHJ5UGF0aDsgLy9cblxuICBpZiAoc291cmNlRGlyZWN0b3J5UGF0aCA9PT0gdGFyZ2V0RGlyZWN0b3J5UGF0aCkge1xuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGFic29sdXRlU291cmNlRGlyZWN0b3J5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzb3VyY2VEaXJlY3RvcnlQYXRoKSxcbiAgICAgICAgc291cmNlRGlyZWN0b3J5RXhpc3RzID0gY2hlY2tFbnRyeUV4aXN0cyhhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGgpO1xuXG4gIGlmICghc291cmNlRGlyZWN0b3J5RXhpc3RzKSB7XG4gICAgc291cmNlRW50cnlQYXRoID0gbnVsbDtcblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCB0YXJnZXREaXJlY3RvcnlQYXRoKSxcbiAgICAgICAgdGFyZ2V0RGlyZWN0b3J5RXhpc3RzID0gY2hlY2tFbnRyeUV4aXN0cyhhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGgpO1xuXG4gIGlmICh0YXJnZXREaXJlY3RvcnlFeGlzdHMpIHtcbiAgICB0YXJnZXRFbnRyeVBhdGggPSBzb3VyY2VFbnRyeVBhdGg7ICAvLy9cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIHJlbmFtZShhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGgsIGFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCwgKGVycm9yKSA9PiB7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICB0YXJnZXRFbnRyeVBhdGggPSBzb3VyY2VFbnRyeVBhdGg7ICAvLy9cbiAgICB9XG5cbiAgICBjYWxsYmFjayhzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCk7XG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbInJlbmFtZVByb2plY3RFbnRyeSIsInJlbmFtZUVudHJ5T3BlcmF0aW9uIiwibGFzdCIsImFycmF5VXRpbGl0aWVzIiwiY29uY2F0ZW5hdGVQYXRocyIsInBhdGhVdGlsaXRpZXMiLCJjaGVja0VudHJ5RXhpc3RzIiwiZmlsZVN5c3RlbVV0aWxpdGllcyIsImlzRW50cnlEaXJlY3RvcnkiLCJwcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJqc29uIiwiY2FsbGJhY2siLCJwYXRoTWFwcyIsImxhc3RQYXRoTWFwIiwicGF0aE1hcCIsInNvdXJjZUVudHJ5UGF0aCIsInRhcmdldEVudHJ5UGF0aCIsImVudHJ5TWlzc2luZyIsImVudHJ5VW5tb3ZlZCIsInNvdXJjZUVudHJ5UGF0aHMiLCJ0YXJnZXRFbnRyeVBhdGhzIiwiZm9yRWFjaCIsInB1c2giLCJhYnNvbHV0ZVNvdXJjZUVudHJ5UGF0aCIsImVudHJ5RGlyZWN0b3J5IiwicmVuYW1lRGlyZWN0b3J5T3BlcmF0aW9uIiwicmVuYW1lRmlsZU9wZXJhdGlvbiIsInNvdXJjZUZpbGVQYXRoIiwidGFyZ2V0RmlsZVBhdGgiLCJhYnNvbHV0ZVNvdXJjZUZpbGVQYXRoIiwic291cmNlRmlsZUV4aXN0cyIsImFic29sdXRlVGFyZ2V0RmlsZVBhdGgiLCJ0YXJnZXRGaWxlRXhpc3RzIiwicmVuYW1lIiwiZXJyb3IiLCJzb3VyY2VEaXJlY3RvcnlQYXRoIiwidGFyZ2V0RGlyZWN0b3J5UGF0aCIsImFic29sdXRlU291cmNlRGlyZWN0b3J5UGF0aCIsInNvdXJjZURpcmVjdG9yeUV4aXN0cyIsImFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCIsInRhcmdldERpcmVjdG9yeUV4aXN0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBVUEsT0F5Q0M7ZUF6Q3VCQTs7SUEyQ1JDLG9CQUFvQjtlQUFwQkE7Ozt1QkFuRGU7eUJBQ0E7QUFHL0IsSUFBTSxBQUFFQyxPQUFTQyx5QkFBYyxDQUF2QkQsTUFDRixBQUFFRSxtQkFBcUJDLHdCQUFhLENBQWxDRCxrQkFDQUUsbUJBQXVDQyw4QkFBbUIsQ0FBMURELGtCQUFrQkUsbUJBQXFCRCw4QkFB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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.92",
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,7 +14,7 @@ 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) => {
17
+ renameEntryOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, (sourceEntryPath, targetEntryPath) => {
16
18
  const entryMissing = (sourceEntryPath === null),
17
19
  entryUnmoved = (sourceEntryPath === targetEntryPath),
18
20
  sourceEntryPaths = [],
@@ -48,3 +50,94 @@ export default function renameProjectEntry(projectsDirectoryPath, json, callback
48
50
  callback(json);
49
51
  });
50
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
+ }