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.
- package/lib/renameProjectEntry.js +69 -7
- package/package.json +1 -1
- package/src/renameProjectEntry.js +97 -4
|
@@ -2,18 +2,26 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
|
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
|
-
(
|
|
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+IHtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHRhcmdldEVudHJ5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aDsgIC8vL1xuICAgIH1cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlbmFtZURpcmVjdG9yeU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBjb25zdCBzb3VyY2VEaXJlY3RvcnlQYXRoID0gc291cmNlRW50cnlQYXRoLCAvLy9cbiAgICAgICAgdGFyZ2V0RGlyZWN0b3J5UGF0aCA9IHRhcmdldEVudHJ5UGF0aDsgLy9cblxuICBpZiAoc291cmNlRGlyZWN0b3J5UGF0aCA9PT0gdGFyZ2V0RGlyZWN0b3J5UGF0aCkge1xuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGFic29sdXRlU291cmNlRGlyZWN0b3J5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzb3VyY2VEaXJlY3RvcnlQYXRoKSxcbiAgICAgICAgc291cmNlRGlyZWN0b3J5RXhpc3RzID0gY2hlY2tFbnRyeUV4aXN0cyhhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGgpO1xuXG4gIGlmICghc291cmNlRGlyZWN0b3J5RXhpc3RzKSB7XG4gICAgc291cmNlRW50cnlQYXRoID0gbnVsbDtcblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCB0YXJnZXREaXJlY3RvcnlQYXRoKSxcbiAgICAgICAgdGFyZ2V0RGlyZWN0b3J5RXhpc3RzID0gY2hlY2tFbnRyeUV4aXN0cyhhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGgpO1xuXG4gIGlmICh0YXJnZXREaXJlY3RvcnlFeGlzdHMpIHtcbiAgICB0YXJnZXRFbnRyeVBhdGggPSBzb3VyY2VFbnRyeVBhdGg7ICAvLy9cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIHJlbmFtZShhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGgsIGFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCwgKGVycm9yKSA9PiB7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICB0YXJnZXRFbnRyeVBhdGggPSBzb3VyY2VFbnRyeVBhdGg7ICAvLy9cbiAgICB9XG5cbiAgICBjYWxsYmFjayhzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCk7XG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbInJlbmFtZVByb2plY3RFbnRyeSIsInJlbmFtZUVudHJ5T3BlcmF0aW9uIiwibGFzdCIsImFycmF5VXRpbGl0aWVzIiwiY29uY2F0ZW5hdGVQYXRocyIsInBhdGhVdGlsaXRpZXMiLCJjaGVja0VudHJ5RXhpc3RzIiwiZmlsZVN5c3RlbVV0aWxpdGllcyIsImlzRW50cnlEaXJlY3RvcnkiLCJwcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJqc29uIiwiY2FsbGJhY2siLCJwYXRoTWFwcyIsImxhc3RQYXRoTWFwIiwicGF0aE1hcCIsInNvdXJjZUVudHJ5UGF0aCIsInRhcmdldEVudHJ5UGF0aCIsImVudHJ5TWlzc2luZyIsImVudHJ5VW5tb3ZlZCIsInNvdXJjZUVudHJ5UGF0aHMiLCJ0YXJnZXRFbnRyeVBhdGhzIiwiZm9yRWFjaCIsInB1c2giLCJhYnNvbHV0ZVNvdXJjZUVudHJ5UGF0aCIsImVudHJ5RGlyZWN0b3J5IiwicmVuYW1lRGlyZWN0b3J5T3BlcmF0aW9uIiwicmVuYW1lRmlsZU9wZXJhdGlvbiIsInNvdXJjZUZpbGVQYXRoIiwidGFyZ2V0RmlsZVBhdGgiLCJhYnNvbHV0ZVNvdXJjZUZpbGVQYXRoIiwic291cmNlRmlsZUV4aXN0cyIsImFic29sdXRlVGFyZ2V0RmlsZVBhdGgiLCJ0YXJnZXRGaWxlRXhpc3RzIiwicmVuYW1lIiwiZXJyb3IiLCJzb3VyY2VEaXJlY3RvcnlQYXRoIiwidGFyZ2V0RGlyZWN0b3J5UGF0aCIsImFic29sdXRlU291cmNlRGlyZWN0b3J5UGF0aCIsInNvdXJjZURpcmVjdG9yeUV4aXN0cyIsImFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCIsInRhcmdldERpcmVjdG9yeUV4aXN0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBVUEsT0F5Q0M7ZUF6Q3VCQTs7SUEyQ1JDLG9CQUFvQjtlQUFwQkE7Ozt1QkFuRGU7eUJBQ0E7QUFHL0IsSUFBTSxBQUFFQyxPQUFTQyx5QkFBYyxDQUF2QkQsTUFDRixBQUFFRSxtQkFBcUJDLHdCQUFhLENBQWxDRCxrQkFDQUUsbUJBQXVDQyw4QkFBbUIsQ0FBMURELGtCQUFrQkUsbUJBQXFCRCw4QkFBbUIsQ0FBeENDO0FBRVgsU0FBU1IsbUJBQW1CUyxxQkFBcUIsRUFBRUMsSUFBSSxFQUFFQyxRQUFRLEVBQUU7SUFDaEYsSUFBTSxBQUFFQyxXQUFhRixLQUFiRSxVQUNGQyxjQUFjWCxLQUFLVSxXQUNuQkUsVUFBVUQsYUFDUkUsa0JBQXFDRCxRQUFyQ0MsaUJBQWlCQyxrQkFBb0JGLFFBQXBCRTtJQUV6QmYscUJBQXFCYyxpQkFBaUJDLGlCQUFpQlAsdUJBQXVCLFNBQUNNLGlCQUFpQkMsaUJBQW9CO1FBQ2xILElBQU1DLGVBQWdCRixvQkFBb0IsSUFBSSxFQUN4Q0csZUFBZ0JILG9CQUFvQkMsaUJBQ3BDRyxtQkFBbUIsRUFBRSxFQUNyQkMsbUJBQW1CLEVBQUU7UUFFM0JSLFNBQVNTLE9BQU8sQ0FBQyxTQUFDUCxTQUFZO1lBQzVCLElBQUlDLG1CQUNBQztZQUVKLElBQUksS0FBSyxFQUFFO1lBQ1QsR0FBRztZQUNMLE9BQU8sSUFBSUMsY0FBYztnQkFDdkJGLG9CQUFrQixJQUFJO2dCQUVuQkMsb0JBQW9CRixRQUFwQkU7WUFDTCxPQUFPLElBQUlFLGNBQWM7Z0JBQ3BCSCxvQkFBb0JELFFBQXBCQztnQkFFSEMsb0JBQWtCRCxtQkFBa0IsR0FBRztZQUN6QyxPQUFPOztzQkFDbUNELFNBQXJDQyx3QkFBQUEsaUJBQWlCQyx3QkFBQUE7WUFDdEIsQ0FBQztZQUVERyxpQkFBaUJHLElBQUksQ0FBQ1A7WUFDdEJLLGlCQUFpQkUsSUFBSSxDQUFDTjtRQUN4QjtRQUVBLElBQU1OLFNBQU87WUFDWFMsa0JBQUFBO1lBQ0FDLGtCQUFBQTtRQUNGO1FBRUFULFNBQVNEO0lBQ1g7QUFDRjtBQUVPLFNBQVNULHFCQUFxQmMsZUFBZSxFQUFFQyxlQUFlLEVBQUVQLHFCQUFxQixFQUFFRSxRQUFRLEVBQUU7SUFDdEcsSUFBTVksMEJBQTBCbkIsaUJBQWlCSyx1QkFBdUJNLGtCQUNsRVMsaUJBQWlCaEIsaUJBQWlCZTtJQUV4Q0MsaUJBQ0VDLHlCQUF5QlYsaUJBQWlCQyxpQkFBaUJQLHVCQUF1QkUsWUFDaEZlLG9CQUFvQlgsaUJBQWlCQyxpQkFBaUJQLHVCQUF1QkUsU0FBUztBQUM1RjtBQUVBLFNBQVNlLG9CQUFvQlgsZUFBZSxFQUFFQyxlQUFlLEVBQUVQLHFCQUFxQixFQUFFRSxRQUFRLEVBQUU7SUFDOUYsSUFBTWdCLGlCQUFpQlosaUJBQ2pCYSxpQkFBaUJaLGlCQUFrQixHQUFHO0lBRTVDLElBQUlXLG1CQUFtQkMsZ0JBQWdCO1FBQ3JDakIsU0FBU0ksaUJBQWlCQztRQUUxQjtJQUNGLENBQUM7SUFFRCxJQUFNYSx5QkFBeUJ6QixpQkFBaUJLLHVCQUF1QmtCLGlCQUNqRUcsbUJBQW1CeEIsaUJBQWlCdUI7SUFFMUMsSUFBSSxDQUFDQyxrQkFBa0I7UUFDckJmLGtCQUFrQixJQUFJO1FBRXRCSixTQUFTSSxpQkFBaUJDO1FBRTFCO0lBQ0YsQ0FBQztJQUVELElBQU1lLHlCQUF5QjNCLGlCQUFpQkssdUJBQXVCbUIsaUJBQ2pFSSxtQkFBbUIxQixpQkFBaUJ5QjtJQUUxQyxJQUFJQyxrQkFBa0I7UUFDcEJoQixrQkFBa0JELGlCQUFrQixHQUFHO1FBRXZDSixTQUFTSSxpQkFBaUJDO1FBRTFCO0lBQ0YsQ0FBQztJQUVEaUIsSUFBQUEsYUFBTSxFQUFDSix3QkFBd0JFLHdCQUF3QixTQUFDRyxPQUFVO1FBQ2hFLElBQUlBLE9BQU87WUFDVGxCLGtCQUFrQkQsaUJBQWtCLEdBQUc7UUFDekMsQ0FBQztRQUVESixTQUFTSSxpQkFBaUJDO0lBQzVCO0FBQ0Y7QUFFQSxTQUFTUyx5QkFBeUJWLGVBQWUsRUFBRUMsZUFBZSxFQUFFUCxxQkFBcUIsRUFBRUUsUUFBUSxFQUFFO0lBQ25HLElBQU13QixzQkFBc0JwQixpQkFDdEJxQixzQkFBc0JwQixpQkFBaUIsRUFBRTtJQUUvQyxJQUFJbUIsd0JBQXdCQyxxQkFBcUI7UUFDL0N6QixTQUFTSSxpQkFBaUJDO1FBRTFCO0lBQ0YsQ0FBQztJQUVELElBQU1xQiw4QkFBOEJqQyxpQkFBaUJLLHVCQUF1QjBCLHNCQUN0RUcsd0JBQXdCaEMsaUJBQWlCK0I7SUFFL0MsSUFBSSxDQUFDQyx1QkFBdUI7UUFDMUJ2QixrQkFBa0IsSUFBSTtRQUV0QkosU0FBU0ksaUJBQWlCQztRQUUxQjtJQUNGLENBQUM7SUFFRCxJQUFNdUIsOEJBQThCbkMsaUJBQWlCSyx1QkFBdUIyQixzQkFDdEVJLHdCQUF3QmxDLGlCQUFpQmlDO0lBRS9DLElBQUlDLHVCQUF1QjtRQUN6QnhCLGtCQUFrQkQsaUJBQWtCLEdBQUc7UUFFdkNKLFNBQVNJLGlCQUFpQkM7UUFFMUI7SUFDRixDQUFDO0lBRURpQixJQUFBQSxhQUFNLEVBQUNJLDZCQUE2QkUsNkJBQTZCLFNBQUNMLE9BQVU7UUFDMUUsSUFBSUEsT0FBTztZQUNUbEIsa0JBQWtCRCxpQkFBa0IsR0FBRztRQUN6QyxDQUFDO1FBRURKLFNBQVNJLGlCQUFpQkM7SUFDNUI7QUFDRiJ9
|
package/package.json
CHANGED
|
@@ -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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
|
|
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
|
+
}
|