@duplojs/server 0.1.0-beta.2 → 0.1.0-beta.4

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.
Files changed (198) hide show
  1. package/dist/_virtual/_rolldown/runtime.mjs +5 -1
  2. package/dist/command/argument.d.ts +2 -2
  3. package/dist/command/create.cjs +18 -10
  4. package/dist/command/create.d.ts +3 -3
  5. package/dist/command/create.mjs +18 -10
  6. package/dist/command/error.cjs +26 -2
  7. package/dist/command/error.d.ts +9 -1
  8. package/dist/command/error.mjs +25 -1
  9. package/dist/command/exec.d.ts +4 -3
  10. package/dist/command/help.cjs +11 -9
  11. package/dist/command/help.d.ts +1 -1
  12. package/dist/command/help.mjs +10 -8
  13. package/dist/command/index.cjs +4 -0
  14. package/dist/command/index.mjs +4 -2
  15. package/dist/command/options/base.cjs +21 -13
  16. package/dist/command/options/base.d.ts +6 -0
  17. package/dist/command/options/base.mjs +20 -14
  18. package/dist/command/options/defaults/array.d.ts +6 -4
  19. package/dist/command/options/defaults/boolean.cjs +21 -7
  20. package/dist/command/options/defaults/boolean.d.ts +6 -3
  21. package/dist/command/options/defaults/boolean.mjs +20 -8
  22. package/dist/command/options/defaults/simple.d.ts +6 -4
  23. package/dist/command/types/forbiddenInvalidIdentifier.d.ts +6 -0
  24. package/dist/command/types/index.d.ts +1 -0
  25. package/dist/common/environmentVariable/index.d.ts +1 -1
  26. package/dist/common/environmentVariable/overrideEnvironmentVariables.d.ts +1 -1
  27. package/dist/common/environmentVariable/parseEnvironmentFiles.d.ts +2 -1
  28. package/dist/common/index.cjs +3 -0
  29. package/dist/common/index.d.ts +1 -0
  30. package/dist/common/index.mjs +3 -1
  31. package/dist/common/meta/getCurrentDirectoryName.cjs +10 -0
  32. package/dist/common/meta/getCurrentDirectoryName.d.ts +7 -0
  33. package/dist/common/meta/getCurrentDirectoryName.mjs +7 -0
  34. package/dist/common/meta/index.d.ts +7 -0
  35. package/dist/dataStructure/common/codec/defaults/json.cjs +12 -1
  36. package/dist/dataStructure/common/codec/defaults/json.d.ts +2 -2
  37. package/dist/dataStructure/common/codec/defaults/json.mjs +12 -1
  38. package/dist/dataStructure/common/codec/defaults/string.cjs +12 -1
  39. package/dist/dataStructure/common/codec/defaults/string.d.ts +2 -2
  40. package/dist/dataStructure/common/codec/defaults/string.mjs +12 -1
  41. package/dist/dataStructure/common/error/defaultInterpreter.cjs +3 -1
  42. package/dist/dataStructure/common/error/defaultInterpreter.d.ts +7 -2
  43. package/dist/dataStructure/common/error/defaultInterpreter.mjs +3 -1
  44. package/dist/dataStructure/constraint/{exist.cjs → fileExist.cjs} +5 -5
  45. package/dist/dataStructure/constraint/fileExist.d.ts +10 -0
  46. package/dist/dataStructure/constraint/{exist.mjs → fileExist.mjs} +4 -4
  47. package/dist/dataStructure/constraint/folderExist.cjs +19 -0
  48. package/dist/dataStructure/constraint/folderExist.d.ts +10 -0
  49. package/dist/dataStructure/constraint/folderExist.mjs +15 -0
  50. package/dist/dataStructure/constraint/index.d.ts +2 -1
  51. package/dist/dataStructure/constraint/mimeType.cjs +1 -1
  52. package/dist/dataStructure/constraint/mimeType.mjs +1 -1
  53. package/dist/dataStructure/constraint/types/constraints.d.ts +4 -2
  54. package/dist/dataStructure/fundamentalType/folder.cjs +11 -0
  55. package/dist/dataStructure/fundamentalType/folder.d.ts +8 -0
  56. package/dist/dataStructure/fundamentalType/folder.mjs +8 -0
  57. package/dist/dataStructure/fundamentalType/index.d.ts +1 -0
  58. package/dist/dataStructure/fundamentalType/types/fundamentalTypes.d.ts +2 -0
  59. package/dist/dataStructure/helper/file.d.ts +1 -1
  60. package/dist/dataStructure/helper/fileExist.cjs +7 -0
  61. package/dist/dataStructure/helper/fileExist.d.ts +2 -0
  62. package/dist/dataStructure/helper/fileExist.mjs +7 -0
  63. package/dist/dataStructure/helper/folder.cjs +10 -0
  64. package/dist/dataStructure/helper/folder.d.ts +3 -0
  65. package/dist/dataStructure/helper/folder.mjs +8 -0
  66. package/dist/dataStructure/helper/folderExist.cjs +7 -0
  67. package/dist/dataStructure/helper/folderExist.d.ts +2 -0
  68. package/dist/dataStructure/helper/folderExist.mjs +7 -0
  69. package/dist/dataStructure/helper/index.d.ts +3 -1
  70. package/dist/dataStructure/index.cjs +29 -8
  71. package/dist/dataStructure/index.mjs +19 -6
  72. package/dist/dataStructure/type/folder.cjs +14 -0
  73. package/dist/dataStructure/type/folder.d.ts +11 -0
  74. package/dist/dataStructure/type/folder.mjs +11 -0
  75. package/dist/dataStructure/type/index.d.ts +1 -0
  76. package/dist/dataStructure/type/types/types.d.ts +2 -0
  77. package/dist/file/appendFile.cjs +46 -22
  78. package/dist/file/appendFile.d.ts +37 -5
  79. package/dist/file/appendFile.mjs +36 -23
  80. package/dist/file/appendTextFile.cjs +44 -20
  81. package/dist/file/appendTextFile.d.ts +37 -5
  82. package/dist/file/appendTextFile.mjs +34 -21
  83. package/dist/file/copy.cjs +36 -14
  84. package/dist/file/copy.d.ts +37 -5
  85. package/dist/file/copy.mjs +26 -15
  86. package/dist/file/createEntryInterface.cjs +6 -3
  87. package/dist/file/createEntryInterface.d.ts +1 -1
  88. package/dist/file/createEntryInterface.mjs +4 -2
  89. package/dist/file/ensureDirectory.cjs +37 -17
  90. package/dist/file/ensureDirectory.d.ts +30 -4
  91. package/dist/file/ensureDirectory.mjs +29 -18
  92. package/dist/file/ensureFile.cjs +41 -19
  93. package/dist/file/ensureFile.d.ts +33 -4
  94. package/dist/file/ensureFile.mjs +32 -20
  95. package/dist/file/exists.cjs +28 -14
  96. package/dist/file/exists.d.ts +21 -4
  97. package/dist/file/exists.mjs +23 -15
  98. package/dist/file/fileInterface.cjs +3 -1
  99. package/dist/file/fileInterface.d.ts +10 -9
  100. package/dist/file/fileInterface.mjs +3 -2
  101. package/dist/file/folderInterface.cjs +3 -1
  102. package/dist/file/folderInterface.d.ts +9 -8
  103. package/dist/file/folderInterface.mjs +3 -2
  104. package/dist/file/index.cjs +512 -0
  105. package/dist/file/index.d.ts +0 -1
  106. package/dist/file/index.mjs +291 -35
  107. package/dist/file/link.cjs +48 -22
  108. package/dist/file/link.d.ts +40 -5
  109. package/dist/file/link.mjs +37 -23
  110. package/dist/file/linkStat.cjs +29 -15
  111. package/dist/file/linkStat.d.ts +24 -4
  112. package/dist/file/linkStat.mjs +24 -16
  113. package/dist/file/makeDirectory.cjs +45 -21
  114. package/dist/file/makeDirectory.d.ts +35 -4
  115. package/dist/file/makeDirectory.mjs +35 -22
  116. package/dist/file/makeTemporaryDirectory.cjs +33 -15
  117. package/dist/file/makeTemporaryDirectory.d.ts +25 -2
  118. package/dist/file/makeTemporaryDirectory.mjs +26 -16
  119. package/dist/file/makeTemporaryFile.cjs +37 -20
  120. package/dist/file/makeTemporaryFile.d.ts +28 -2
  121. package/dist/file/makeTemporaryFile.mjs +30 -21
  122. package/dist/file/move.cjs +49 -23
  123. package/dist/file/move.d.ts +40 -5
  124. package/dist/file/move.mjs +38 -24
  125. package/dist/file/readDirectory.cjs +33 -9
  126. package/dist/file/readDirectory.d.ts +26 -5
  127. package/dist/file/readDirectory.mjs +25 -10
  128. package/dist/file/readFile.cjs +35 -17
  129. package/dist/file/readFile.d.ts +27 -4
  130. package/dist/file/readFile.mjs +28 -18
  131. package/dist/file/readJsonFile.cjs +35 -17
  132. package/dist/file/readJsonFile.d.ts +27 -5
  133. package/dist/file/readJsonFile.mjs +28 -18
  134. package/dist/file/readLink.cjs +31 -15
  135. package/dist/file/readLink.d.ts +24 -4
  136. package/dist/file/readLink.mjs +25 -16
  137. package/dist/file/readTextFile.cjs +35 -17
  138. package/dist/file/readTextFile.d.ts +27 -4
  139. package/dist/file/readTextFile.mjs +28 -18
  140. package/dist/file/realPath.cjs +27 -13
  141. package/dist/file/realPath.d.ts +21 -4
  142. package/dist/file/realPath.mjs +22 -14
  143. package/dist/file/relocate.cjs +52 -25
  144. package/dist/file/relocate.d.ts +40 -5
  145. package/dist/file/relocate.mjs +41 -26
  146. package/dist/file/remove.cjs +45 -23
  147. package/dist/file/remove.d.ts +32 -4
  148. package/dist/file/remove.mjs +36 -24
  149. package/dist/file/rename.cjs +52 -25
  150. package/dist/file/rename.d.ts +40 -5
  151. package/dist/file/rename.mjs +41 -26
  152. package/dist/file/setMode.cjs +29 -15
  153. package/dist/file/setMode.d.ts +24 -5
  154. package/dist/file/setMode.mjs +24 -16
  155. package/dist/file/setOwner.cjs +31 -15
  156. package/dist/file/setOwner.d.ts +25 -5
  157. package/dist/file/setOwner.mjs +25 -16
  158. package/dist/file/setTime.cjs +31 -15
  159. package/dist/file/setTime.d.ts +24 -5
  160. package/dist/file/setTime.mjs +25 -16
  161. package/dist/file/stat.cjs +29 -15
  162. package/dist/file/stat.d.ts +24 -4
  163. package/dist/file/stat.mjs +24 -16
  164. package/dist/file/symlink.cjs +42 -20
  165. package/dist/file/symlink.d.ts +34 -5
  166. package/dist/file/symlink.mjs +33 -21
  167. package/dist/file/truncate.cjs +43 -21
  168. package/dist/file/truncate.d.ts +36 -4
  169. package/dist/file/truncate.mjs +34 -22
  170. package/dist/file/unknownEntryInterface.cjs +5 -1
  171. package/dist/file/unknownEntryInterface.d.ts +8 -6
  172. package/dist/file/unknownEntryInterface.mjs +4 -2
  173. package/dist/file/walkDirectory.cjs +38 -15
  174. package/dist/file/walkDirectory.d.ts +25 -4
  175. package/dist/file/walkDirectory.mjs +32 -15
  176. package/dist/file/writeFile.cjs +45 -21
  177. package/dist/file/writeFile.d.ts +37 -5
  178. package/dist/file/writeFile.mjs +35 -22
  179. package/dist/file/writeJsonFile.cjs +48 -27
  180. package/dist/file/writeJsonFile.d.ts +37 -6
  181. package/dist/file/writeJsonFile.mjs +39 -28
  182. package/dist/file/writeTextFile.cjs +45 -21
  183. package/dist/file/writeTextFile.d.ts +37 -5
  184. package/dist/file/writeTextFile.mjs +35 -22
  185. package/dist/implementor.cjs +8 -5
  186. package/dist/implementor.d.ts +4 -4
  187. package/dist/implementor.mjs +8 -5
  188. package/dist/index.cjs +2 -0
  189. package/dist/index.mjs +2 -1
  190. package/dist/override.d.ts +8 -0
  191. package/package.json +4 -4
  192. package/dist/dataStructure/constraint/exist.d.ts +0 -10
  193. package/dist/dataStructure/helper/exist.cjs +0 -7
  194. package/dist/dataStructure/helper/exist.d.ts +0 -2
  195. package/dist/dataStructure/helper/exist.mjs +0 -7
  196. package/dist/file/types/fileSystemEither.d.ts +0 -2
  197. package/dist/file/types/index.d.ts +0 -1
  198. /package/{README → README.md} +0 -0
@@ -1,43 +1,58 @@
1
1
  import { implementFunction, nodeFileSystem } from "../implementor.mjs";
2
+ import * as DCommon from "@duplojs/lang/common";
2
3
  import * as DEither from "@duplojs/lang/either";
3
4
  import * as DPath from "@duplojs/lang/path";
4
5
  //#region scripts/file/relocate.ts
6
+ var RelocateErrorNotFound = class extends DCommon.DuploJSError.parentClass("file-system-relocate-not-found", Error) {};
7
+ var RelocateErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-relocate-permission-denied", Error) {};
8
+ var RelocateErrorAlreadyExists = class extends DCommon.DuploJSError.parentClass("file-system-relocate-already-exists", Error) {};
9
+ var RelocateErrorIsDirectory = class extends DCommon.DuploJSError.parentClass("file-system-relocate-is-directory", Error) {};
10
+ var RelocateErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-relocate-not-directory", Error) {};
11
+ var RelocateErrorDirectoryNotEmpty = class extends DCommon.DuploJSError.parentClass("file-system-relocate-directory-not-empty", Error) {};
12
+ var RelocateErrorReadOnly = class extends DCommon.DuploJSError.parentClass("file-system-relocate-read-only", Error) {};
13
+ var RelocateErrorInvalidArgument = class extends DCommon.DuploJSError.parentClass("file-system-relocate-invalid-argument", Error) {};
14
+ var RelocateErrorBusy = class extends DCommon.DuploJSError.parentClass("file-system-relocate-busy", Error) {};
15
+ var RelocateErrorCrossDevice = class extends DCommon.DuploJSError.parentClass("file-system-relocate-cross-device", Error) {};
16
+ var RelocateError = class extends DCommon.DuploJSError.parentClass("file-system-relocate-error", Error) {};
5
17
  function handleNodeRelocateError(error) {
6
- if (typeof error === "object" && error !== null && "code" in error) {
7
- if (error.code === "ENOENT") return DEither.left("file-system-relocate-not-found", error);
8
- else if (error.code === "EACCES" || error.code === "EPERM") return DEither.left("file-system-relocate-permission-denied", error);
9
- else if (error.code === "EEXIST") return DEither.left("file-system-relocate-already-exists", error);
10
- else if (error.code === "EISDIR") return DEither.left("file-system-relocate-is-directory", error);
11
- else if (error.code === "ENOTDIR") return DEither.left("file-system-relocate-not-directory", error);
12
- else if (error.code === "ENOTEMPTY") return DEither.left("file-system-relocate-directory-not-empty", error);
13
- else if (error.code === "EROFS") return DEither.left("file-system-relocate-read-only", error);
14
- else if (error.code === "EINVAL") return DEither.left("file-system-relocate-invalid-argument", error);
15
- else if (error.code === "EBUSY") return DEither.left("file-system-relocate-busy", error);
16
- else if (error.code === "EXDEV") return DEither.left("file-system-relocate-cross-device", error);
18
+ let relocateError = void 0;
19
+ if ("code" in error) {
20
+ if (error.code === "ENOENT") relocateError = new RelocateErrorNotFound(error);
21
+ else if (error.code === "EACCES" || error.code === "EPERM") relocateError = new RelocateErrorPermissionDenied(error);
22
+ else if (error.code === "EEXIST") relocateError = new RelocateErrorAlreadyExists(error);
23
+ else if (error.code === "EISDIR") relocateError = new RelocateErrorIsDirectory(error);
24
+ else if (error.code === "ENOTDIR") relocateError = new RelocateErrorNotDirectory(error);
25
+ else if (error.code === "ENOTEMPTY") relocateError = new RelocateErrorDirectoryNotEmpty(error);
26
+ else if (error.code === "EROFS") relocateError = new RelocateErrorReadOnly(error);
27
+ else if (error.code === "EINVAL") relocateError = new RelocateErrorInvalidArgument(error);
28
+ else if (error.code === "EBUSY") relocateError = new RelocateErrorBusy(error);
29
+ else if (error.code === "EXDEV") relocateError = new RelocateErrorCrossDevice(error);
17
30
  }
18
- return DEither.left("file-system-relocate-error", error);
31
+ if (relocateError === void 0) relocateError = new RelocateError(error);
32
+ return DEither.left("file-system-relocate-error", relocateError);
19
33
  }
20
34
  function handleDenoRelocateError(error) {
21
- if (error instanceof Deno.errors.NotFound) return DEither.left("file-system-relocate-not-found", error);
22
- if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return DEither.left("file-system-relocate-permission-denied", error);
23
- if (error instanceof Deno.errors.AlreadyExists) return DEither.left("file-system-relocate-already-exists", error);
24
- if (error instanceof Deno.errors.IsADirectory) return DEither.left("file-system-relocate-is-directory", error);
25
- if (error instanceof Deno.errors.NotADirectory) return DEither.left("file-system-relocate-not-directory", error);
26
- if (error instanceof Deno.errors.InvalidData) return DEither.left("file-system-relocate-invalid-argument", error);
27
- if (error instanceof Deno.errors.Busy) return DEither.left("file-system-relocate-busy", error);
28
- return DEither.left("file-system-relocate-error", error);
35
+ let relocateError = void 0;
36
+ if (error instanceof Deno.errors.NotFound) relocateError = new RelocateErrorNotFound(error);
37
+ else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) relocateError = new RelocateErrorPermissionDenied(error);
38
+ else if (error instanceof Deno.errors.AlreadyExists) relocateError = new RelocateErrorAlreadyExists(error);
39
+ else if (error instanceof Deno.errors.IsADirectory) relocateError = new RelocateErrorIsDirectory(error);
40
+ else if (error instanceof Deno.errors.NotADirectory) relocateError = new RelocateErrorNotDirectory(error);
41
+ else if (error instanceof Deno.errors.InvalidData) relocateError = new RelocateErrorInvalidArgument(error);
42
+ else if (error instanceof Deno.errors.Busy) relocateError = new RelocateErrorBusy(error);
43
+ if (relocateError === void 0) relocateError = new RelocateError(error);
44
+ return DEither.left("file-system-relocate-error", relocateError);
29
45
  }
30
46
  const relocateImplementation = implementFunction("relocate", {
31
47
  NODE: async (fromPath, newParentPath) => {
32
- const fs = await nodeFileSystem.value;
33
48
  const baseName = DPath.getBaseName(fromPath);
34
- if (!baseName) return DEither.left("file-system-relocate-invalid-argument", /* @__PURE__ */ new Error(`Invalid base name ${fromPath}`));
49
+ if (!baseName) return DEither.left("file-system-relocate-error", new RelocateErrorInvalidArgument(/* @__PURE__ */ new Error(`Invalid base name ${fromPath}`)));
35
50
  const newPath = DPath.resolveRelative([newParentPath, baseName]);
36
- return fs.rename(fromPath, newPath).then(() => DEither.right("file-system-relocate", newPath)).catch(handleNodeRelocateError);
51
+ return nodeFileSystem.value.rename(fromPath, newPath).then(() => DEither.right("file-system-relocate", newPath)).catch(handleNodeRelocateError);
37
52
  },
38
- DENO: (fromPath, newParentPath) => {
53
+ DENO: async (fromPath, newParentPath) => {
39
54
  const baseName = DPath.getBaseName(fromPath);
40
- if (!baseName) return Promise.resolve(DEither.left("file-system-relocate-invalid-argument", /* @__PURE__ */ new Error(`Invalid base name ${fromPath}`)));
55
+ if (!baseName) return Promise.resolve(DEither.left("file-system-relocate-error", new RelocateErrorInvalidArgument(/* @__PURE__ */ new Error(`Invalid base name ${fromPath}`))));
41
56
  const newPath = DPath.resolveRelative([newParentPath, baseName]);
42
57
  return Deno.rename(fromPath, newPath).then(() => DEither.right("file-system-relocate", newPath)).catch(handleDenoRelocateError);
43
58
  }
@@ -50,4 +65,4 @@ function relocate(...args) {
50
65
  return relocateImplementation(...args);
51
66
  }
52
67
  //#endregion
53
- export { relocate };
68
+ export { RelocateError, RelocateErrorAlreadyExists, RelocateErrorBusy, RelocateErrorCrossDevice, RelocateErrorDirectoryNotEmpty, RelocateErrorInvalidArgument, RelocateErrorIsDirectory, RelocateErrorNotDirectory, RelocateErrorNotFound, RelocateErrorPermissionDenied, RelocateErrorReadOnly, relocate };
@@ -1,38 +1,60 @@
1
1
  const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
2
2
  const require_implementor = require("../implementor.cjs");
3
+ let _duplojs_lang_common = require("@duplojs/lang/common");
4
+ _duplojs_lang_common = require_runtime.__toESM(_duplojs_lang_common, 1);
3
5
  let _duplojs_lang_either = require("@duplojs/lang/either");
4
6
  _duplojs_lang_either = require_runtime.__toESM(_duplojs_lang_either, 1);
5
7
  //#region scripts/file/remove.ts
8
+ var RemoveErrorNotFound = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-remove-not-found", Error) {};
9
+ var RemoveErrorPermissionDenied = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-remove-permission-denied", Error) {};
10
+ var RemoveErrorIsDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-remove-is-directory", Error) {};
11
+ var RemoveErrorNotDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-remove-not-directory", Error) {};
12
+ var RemoveErrorDirectoryNotEmpty = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-remove-directory-not-empty", Error) {};
13
+ var RemoveErrorReadOnly = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-remove-read-only", Error) {};
14
+ var RemoveErrorInvalidArgument = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-remove-invalid-argument", Error) {};
15
+ var RemoveErrorBusy = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-remove-busy", Error) {};
16
+ var RemoveError = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-remove-error", Error) {};
6
17
  function handleNodeRemoveError(error) {
7
- if (typeof error === "object" && error !== null && "code" in error) {
8
- if (error.code === "ENOENT") return _duplojs_lang_either.left("file-system-remove-not-found", error);
9
- else if (error.code === "EACCES" || error.code === "EPERM") return _duplojs_lang_either.left("file-system-remove-permission-denied", error);
10
- else if (error.code === "EISDIR") return _duplojs_lang_either.left("file-system-remove-is-directory", error);
11
- else if (error.code === "ENOTDIR") return _duplojs_lang_either.left("file-system-remove-not-directory", error);
12
- else if (error.code === "ENOTEMPTY") return _duplojs_lang_either.left("file-system-remove-directory-not-empty", error);
13
- else if (error.code === "EROFS") return _duplojs_lang_either.left("file-system-remove-read-only", error);
14
- else if (error.code === "EINVAL") return _duplojs_lang_either.left("file-system-remove-invalid-argument", error);
15
- else if (error.code === "EBUSY") return _duplojs_lang_either.left("file-system-remove-busy", error);
18
+ let removeError = void 0;
19
+ if ("code" in error) {
20
+ if (error.code === "ENOENT") removeError = new RemoveErrorNotFound(error);
21
+ else if (error.code === "EACCES" || error.code === "EPERM") removeError = new RemoveErrorPermissionDenied(error);
22
+ else if (error.code === "EISDIR") removeError = new RemoveErrorIsDirectory(error);
23
+ else if (error.code === "ENOTDIR") removeError = new RemoveErrorNotDirectory(error);
24
+ else if (error.code === "ENOTEMPTY") removeError = new RemoveErrorDirectoryNotEmpty(error);
25
+ else if (error.code === "EROFS") removeError = new RemoveErrorReadOnly(error);
26
+ else if (error.code === "EINVAL") removeError = new RemoveErrorInvalidArgument(error);
27
+ else if (error.code === "EBUSY") removeError = new RemoveErrorBusy(error);
16
28
  }
17
- return _duplojs_lang_either.left("file-system-remove-error", error);
29
+ if (removeError === void 0) removeError = new RemoveError(error);
30
+ return _duplojs_lang_either.left("file-system-remove-error", removeError);
18
31
  }
19
32
  function handleDenoRemoveError(error) {
20
- if (error instanceof Deno.errors.NotFound) return _duplojs_lang_either.left("file-system-remove-not-found", error);
21
- if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return _duplojs_lang_either.left("file-system-remove-permission-denied", error);
22
- if (error instanceof Deno.errors.IsADirectory) return _duplojs_lang_either.left("file-system-remove-is-directory", error);
23
- if (error instanceof Deno.errors.NotADirectory) return _duplojs_lang_either.left("file-system-remove-not-directory", error);
24
- if (error instanceof Deno.errors.InvalidData) return _duplojs_lang_either.left("file-system-remove-invalid-argument", error);
25
- if (error instanceof Deno.errors.Busy) return _duplojs_lang_either.left("file-system-remove-busy", error);
26
- return _duplojs_lang_either.left("file-system-remove-error", error);
33
+ let removeError = void 0;
34
+ if (error instanceof Deno.errors.NotFound) removeError = new RemoveErrorNotFound(error);
35
+ else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) removeError = new RemoveErrorPermissionDenied(error);
36
+ else if (error instanceof Deno.errors.IsADirectory) removeError = new RemoveErrorIsDirectory(error);
37
+ else if (error instanceof Deno.errors.NotADirectory) removeError = new RemoveErrorNotDirectory(error);
38
+ else if (error instanceof Deno.errors.InvalidData) removeError = new RemoveErrorInvalidArgument(error);
39
+ else if (error instanceof Deno.errors.Busy) removeError = new RemoveErrorBusy(error);
40
+ if (removeError === void 0) removeError = new RemoveError(error);
41
+ return _duplojs_lang_either.left("file-system-remove-error", removeError);
27
42
  }
28
43
  const remove = require_implementor.implementFunction("remove", {
29
- NODE: async (path, params) => {
30
- return (await require_implementor.nodeFileSystem.value).rm(path, {
31
- recursive: params?.recursive ?? false,
32
- force: true
33
- }).then(() => _duplojs_lang_either.right("file-system-remove")).catch(handleNodeRemoveError);
34
- },
44
+ NODE: async (path, params) => require_implementor.nodeFileSystem.value.rm(path, {
45
+ recursive: params?.recursive ?? false,
46
+ force: true
47
+ }).then(() => _duplojs_lang_either.right("file-system-remove")).catch(handleNodeRemoveError),
35
48
  DENO: (path, params) => Deno.remove(path, { recursive: params?.recursive }).then(() => _duplojs_lang_either.right("file-system-remove")).catch(handleDenoRemoveError)
36
49
  });
37
50
  //#endregion
51
+ exports.RemoveError = RemoveError;
52
+ exports.RemoveErrorBusy = RemoveErrorBusy;
53
+ exports.RemoveErrorDirectoryNotEmpty = RemoveErrorDirectoryNotEmpty;
54
+ exports.RemoveErrorInvalidArgument = RemoveErrorInvalidArgument;
55
+ exports.RemoveErrorIsDirectory = RemoveErrorIsDirectory;
56
+ exports.RemoveErrorNotDirectory = RemoveErrorNotDirectory;
57
+ exports.RemoveErrorNotFound = RemoveErrorNotFound;
58
+ exports.RemoveErrorPermissionDenied = RemoveErrorPermissionDenied;
59
+ exports.RemoveErrorReadOnly = RemoveErrorReadOnly;
38
60
  exports.remove = remove;
@@ -1,14 +1,42 @@
1
- import { FileSystemEither } from './types';
1
+ import * as DCommon from "@duplojs/lang/common";
2
2
  import * as DEither from "@duplojs/lang/either";
3
3
  import type * as DPath from "@duplojs/lang/path";
4
4
  interface RemoveDirectoryParams {
5
5
  recursive?: boolean;
6
6
  }
7
- export type RemoveResult = FileSystemEither<DEither.Right<"remove", void> | DEither.Left<"remove-not-found", unknown> | DEither.Left<"remove-permission-denied", unknown> | DEither.Left<"remove-is-directory", unknown> | DEither.Left<"remove-not-directory", unknown> | DEither.Left<"remove-directory-not-empty", unknown> | DEither.Left<"remove-read-only", unknown> | DEither.Left<"remove-invalid-argument", unknown> | DEither.Left<"remove-busy", unknown> | DEither.Left<"remove-error", unknown>>;
7
+ declare const RemoveErrorNotFound_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-remove-not-found", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-remove-not-found", unknown>>, unknown>;
8
+ export declare class RemoveErrorNotFound extends RemoveErrorNotFound_base {
9
+ }
10
+ declare const RemoveErrorPermissionDenied_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-remove-permission-denied", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-remove-permission-denied", unknown>>, unknown>;
11
+ export declare class RemoveErrorPermissionDenied extends RemoveErrorPermissionDenied_base {
12
+ }
13
+ declare const RemoveErrorIsDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-remove-is-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-remove-is-directory", unknown>>, unknown>;
14
+ export declare class RemoveErrorIsDirectory extends RemoveErrorIsDirectory_base {
15
+ }
16
+ declare const RemoveErrorNotDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-remove-not-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-remove-not-directory", unknown>>, unknown>;
17
+ export declare class RemoveErrorNotDirectory extends RemoveErrorNotDirectory_base {
18
+ }
19
+ declare const RemoveErrorDirectoryNotEmpty_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-remove-directory-not-empty", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-remove-directory-not-empty", unknown>>, unknown>;
20
+ export declare class RemoveErrorDirectoryNotEmpty extends RemoveErrorDirectoryNotEmpty_base {
21
+ }
22
+ declare const RemoveErrorReadOnly_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-remove-read-only", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-remove-read-only", unknown>>, unknown>;
23
+ export declare class RemoveErrorReadOnly extends RemoveErrorReadOnly_base {
24
+ }
25
+ declare const RemoveErrorInvalidArgument_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-remove-invalid-argument", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-remove-invalid-argument", unknown>>, unknown>;
26
+ export declare class RemoveErrorInvalidArgument extends RemoveErrorInvalidArgument_base {
27
+ }
28
+ declare const RemoveErrorBusy_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-remove-busy", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-remove-busy", unknown>>, unknown>;
29
+ export declare class RemoveErrorBusy extends RemoveErrorBusy_base {
30
+ }
31
+ declare const RemoveError_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-remove-error", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-remove-error", unknown>>, unknown>;
32
+ export declare class RemoveError extends RemoveError_base {
33
+ }
34
+ export type RemoveErrors = (RemoveErrorNotFound | RemoveErrorPermissionDenied | RemoveErrorIsDirectory | RemoveErrorNotDirectory | RemoveErrorDirectoryNotEmpty | RemoveErrorReadOnly | RemoveErrorInvalidArgument | RemoveErrorBusy | RemoveError);
35
+ export type RemoveResult = (DEither.Right<"file-system-remove", void> | DEither.Left<"file-system-remove-error", RemoveErrors>);
8
36
  declare module '../implementor' {
9
37
  interface ServerFunction {
10
- remove(path: string & DPath.Path, params?: RemoveDirectoryParams): Promise<RemoveResult>;
38
+ remove(path: DPath.AnyPath, params?: RemoveDirectoryParams): Promise<RemoveResult>;
11
39
  }
12
40
  }
13
- export declare const remove: (path: string & DPath.Path, params?: RemoveDirectoryParams) => Promise<RemoveResult>;
41
+ export declare const remove: (path: DPath.AnyPath, params?: RemoveDirectoryParams) => Promise<RemoveResult>;
14
42
  export {};
@@ -1,36 +1,48 @@
1
1
  import { implementFunction, nodeFileSystem } from "../implementor.mjs";
2
+ import * as DCommon from "@duplojs/lang/common";
2
3
  import * as DEither from "@duplojs/lang/either";
3
4
  //#region scripts/file/remove.ts
5
+ var RemoveErrorNotFound = class extends DCommon.DuploJSError.parentClass("file-system-remove-not-found", Error) {};
6
+ var RemoveErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-remove-permission-denied", Error) {};
7
+ var RemoveErrorIsDirectory = class extends DCommon.DuploJSError.parentClass("file-system-remove-is-directory", Error) {};
8
+ var RemoveErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-remove-not-directory", Error) {};
9
+ var RemoveErrorDirectoryNotEmpty = class extends DCommon.DuploJSError.parentClass("file-system-remove-directory-not-empty", Error) {};
10
+ var RemoveErrorReadOnly = class extends DCommon.DuploJSError.parentClass("file-system-remove-read-only", Error) {};
11
+ var RemoveErrorInvalidArgument = class extends DCommon.DuploJSError.parentClass("file-system-remove-invalid-argument", Error) {};
12
+ var RemoveErrorBusy = class extends DCommon.DuploJSError.parentClass("file-system-remove-busy", Error) {};
13
+ var RemoveError = class extends DCommon.DuploJSError.parentClass("file-system-remove-error", Error) {};
4
14
  function handleNodeRemoveError(error) {
5
- if (typeof error === "object" && error !== null && "code" in error) {
6
- if (error.code === "ENOENT") return DEither.left("file-system-remove-not-found", error);
7
- else if (error.code === "EACCES" || error.code === "EPERM") return DEither.left("file-system-remove-permission-denied", error);
8
- else if (error.code === "EISDIR") return DEither.left("file-system-remove-is-directory", error);
9
- else if (error.code === "ENOTDIR") return DEither.left("file-system-remove-not-directory", error);
10
- else if (error.code === "ENOTEMPTY") return DEither.left("file-system-remove-directory-not-empty", error);
11
- else if (error.code === "EROFS") return DEither.left("file-system-remove-read-only", error);
12
- else if (error.code === "EINVAL") return DEither.left("file-system-remove-invalid-argument", error);
13
- else if (error.code === "EBUSY") return DEither.left("file-system-remove-busy", error);
15
+ let removeError = void 0;
16
+ if ("code" in error) {
17
+ if (error.code === "ENOENT") removeError = new RemoveErrorNotFound(error);
18
+ else if (error.code === "EACCES" || error.code === "EPERM") removeError = new RemoveErrorPermissionDenied(error);
19
+ else if (error.code === "EISDIR") removeError = new RemoveErrorIsDirectory(error);
20
+ else if (error.code === "ENOTDIR") removeError = new RemoveErrorNotDirectory(error);
21
+ else if (error.code === "ENOTEMPTY") removeError = new RemoveErrorDirectoryNotEmpty(error);
22
+ else if (error.code === "EROFS") removeError = new RemoveErrorReadOnly(error);
23
+ else if (error.code === "EINVAL") removeError = new RemoveErrorInvalidArgument(error);
24
+ else if (error.code === "EBUSY") removeError = new RemoveErrorBusy(error);
14
25
  }
15
- return DEither.left("file-system-remove-error", error);
26
+ if (removeError === void 0) removeError = new RemoveError(error);
27
+ return DEither.left("file-system-remove-error", removeError);
16
28
  }
17
29
  function handleDenoRemoveError(error) {
18
- if (error instanceof Deno.errors.NotFound) return DEither.left("file-system-remove-not-found", error);
19
- if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return DEither.left("file-system-remove-permission-denied", error);
20
- if (error instanceof Deno.errors.IsADirectory) return DEither.left("file-system-remove-is-directory", error);
21
- if (error instanceof Deno.errors.NotADirectory) return DEither.left("file-system-remove-not-directory", error);
22
- if (error instanceof Deno.errors.InvalidData) return DEither.left("file-system-remove-invalid-argument", error);
23
- if (error instanceof Deno.errors.Busy) return DEither.left("file-system-remove-busy", error);
24
- return DEither.left("file-system-remove-error", error);
30
+ let removeError = void 0;
31
+ if (error instanceof Deno.errors.NotFound) removeError = new RemoveErrorNotFound(error);
32
+ else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) removeError = new RemoveErrorPermissionDenied(error);
33
+ else if (error instanceof Deno.errors.IsADirectory) removeError = new RemoveErrorIsDirectory(error);
34
+ else if (error instanceof Deno.errors.NotADirectory) removeError = new RemoveErrorNotDirectory(error);
35
+ else if (error instanceof Deno.errors.InvalidData) removeError = new RemoveErrorInvalidArgument(error);
36
+ else if (error instanceof Deno.errors.Busy) removeError = new RemoveErrorBusy(error);
37
+ if (removeError === void 0) removeError = new RemoveError(error);
38
+ return DEither.left("file-system-remove-error", removeError);
25
39
  }
26
40
  const remove = implementFunction("remove", {
27
- NODE: async (path, params) => {
28
- return (await nodeFileSystem.value).rm(path, {
29
- recursive: params?.recursive ?? false,
30
- force: true
31
- }).then(() => DEither.right("file-system-remove")).catch(handleNodeRemoveError);
32
- },
41
+ NODE: async (path, params) => nodeFileSystem.value.rm(path, {
42
+ recursive: params?.recursive ?? false,
43
+ force: true
44
+ }).then(() => DEither.right("file-system-remove")).catch(handleNodeRemoveError),
33
45
  DENO: (path, params) => Deno.remove(path, { recursive: params?.recursive }).then(() => DEither.right("file-system-remove")).catch(handleDenoRemoveError)
34
46
  });
35
47
  //#endregion
36
- export { remove };
48
+ export { RemoveError, RemoveErrorBusy, RemoveErrorDirectoryNotEmpty, RemoveErrorInvalidArgument, RemoveErrorIsDirectory, RemoveErrorNotDirectory, RemoveErrorNotFound, RemoveErrorPermissionDenied, RemoveErrorReadOnly, remove };
@@ -1,46 +1,62 @@
1
1
  const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
2
2
  const require_implementor = require("../implementor.cjs");
3
+ let _duplojs_lang_common = require("@duplojs/lang/common");
4
+ _duplojs_lang_common = require_runtime.__toESM(_duplojs_lang_common, 1);
3
5
  let _duplojs_lang_either = require("@duplojs/lang/either");
4
6
  _duplojs_lang_either = require_runtime.__toESM(_duplojs_lang_either, 1);
5
7
  let _duplojs_lang_path = require("@duplojs/lang/path");
6
8
  _duplojs_lang_path = require_runtime.__toESM(_duplojs_lang_path, 1);
7
9
  //#region scripts/file/rename.ts
10
+ var RenameErrorNotFound = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-rename-not-found", Error) {};
11
+ var RenameErrorPermissionDenied = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-rename-permission-denied", Error) {};
12
+ var RenameErrorAlreadyExists = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-rename-already-exists", Error) {};
13
+ var RenameErrorIsDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-rename-is-directory", Error) {};
14
+ var RenameErrorNotDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-rename-not-directory", Error) {};
15
+ var RenameErrorDirectoryNotEmpty = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-rename-directory-not-empty", Error) {};
16
+ var RenameErrorReadOnly = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-rename-read-only", Error) {};
17
+ var RenameErrorInvalidArgument = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-rename-invalid-argument", Error) {};
18
+ var RenameErrorBusy = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-rename-busy", Error) {};
19
+ var RenameErrorCrossDevice = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-rename-cross-device", Error) {};
20
+ var RenameError = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-rename-error", Error) {};
8
21
  function handleNodeRenameError(error) {
9
- if (typeof error === "object" && error !== null && "code" in error) {
10
- if (error.code === "ENOENT") return _duplojs_lang_either.left("file-system-rename-not-found", error);
11
- else if (error.code === "EACCES" || error.code === "EPERM") return _duplojs_lang_either.left("file-system-rename-permission-denied", error);
12
- else if (error.code === "EEXIST") return _duplojs_lang_either.left("file-system-rename-already-exists", error);
13
- else if (error.code === "EISDIR") return _duplojs_lang_either.left("file-system-rename-is-directory", error);
14
- else if (error.code === "ENOTDIR") return _duplojs_lang_either.left("file-system-rename-not-directory", error);
15
- else if (error.code === "ENOTEMPTY") return _duplojs_lang_either.left("file-system-rename-directory-not-empty", error);
16
- else if (error.code === "EROFS") return _duplojs_lang_either.left("file-system-rename-read-only", error);
17
- else if (error.code === "EINVAL") return _duplojs_lang_either.left("file-system-rename-invalid-argument", error);
18
- else if (error.code === "EBUSY") return _duplojs_lang_either.left("file-system-rename-busy", error);
19
- else if (error.code === "EXDEV") return _duplojs_lang_either.left("file-system-rename-cross-device", error);
22
+ let renameError = void 0;
23
+ if ("code" in error) {
24
+ if (error.code === "ENOENT") renameError = new RenameErrorNotFound(error);
25
+ else if (error.code === "EACCES" || error.code === "EPERM") renameError = new RenameErrorPermissionDenied(error);
26
+ else if (error.code === "EEXIST") renameError = new RenameErrorAlreadyExists(error);
27
+ else if (error.code === "EISDIR") renameError = new RenameErrorIsDirectory(error);
28
+ else if (error.code === "ENOTDIR") renameError = new RenameErrorNotDirectory(error);
29
+ else if (error.code === "ENOTEMPTY") renameError = new RenameErrorDirectoryNotEmpty(error);
30
+ else if (error.code === "EROFS") renameError = new RenameErrorReadOnly(error);
31
+ else if (error.code === "EINVAL") renameError = new RenameErrorInvalidArgument(error);
32
+ else if (error.code === "EBUSY") renameError = new RenameErrorBusy(error);
33
+ else if (error.code === "EXDEV") renameError = new RenameErrorCrossDevice(error);
20
34
  }
21
- return _duplojs_lang_either.left("file-system-rename-error", error);
35
+ if (renameError === void 0) renameError = new RenameError(error);
36
+ return _duplojs_lang_either.left("file-system-rename-error", renameError);
22
37
  }
23
38
  function handleDenoRenameError(error) {
24
- if (error instanceof Deno.errors.NotFound) return _duplojs_lang_either.left("file-system-rename-not-found", error);
25
- if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return _duplojs_lang_either.left("file-system-rename-permission-denied", error);
26
- if (error instanceof Deno.errors.AlreadyExists) return _duplojs_lang_either.left("file-system-rename-already-exists", error);
27
- if (error instanceof Deno.errors.IsADirectory) return _duplojs_lang_either.left("file-system-rename-is-directory", error);
28
- if (error instanceof Deno.errors.NotADirectory) return _duplojs_lang_either.left("file-system-rename-not-directory", error);
29
- if (error instanceof Deno.errors.InvalidData) return _duplojs_lang_either.left("file-system-rename-invalid-argument", error);
30
- if (error instanceof Deno.errors.Busy) return _duplojs_lang_either.left("file-system-rename-busy", error);
31
- return _duplojs_lang_either.left("file-system-rename-error", error);
39
+ let renameError = void 0;
40
+ if (error instanceof Deno.errors.NotFound) renameError = new RenameErrorNotFound(error);
41
+ else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) renameError = new RenameErrorPermissionDenied(error);
42
+ else if (error instanceof Deno.errors.AlreadyExists) renameError = new RenameErrorAlreadyExists(error);
43
+ else if (error instanceof Deno.errors.IsADirectory) renameError = new RenameErrorIsDirectory(error);
44
+ else if (error instanceof Deno.errors.NotADirectory) renameError = new RenameErrorNotDirectory(error);
45
+ else if (error instanceof Deno.errors.InvalidData) renameError = new RenameErrorInvalidArgument(error);
46
+ else if (error instanceof Deno.errors.Busy) renameError = new RenameErrorBusy(error);
47
+ if (renameError === void 0) renameError = new RenameError(error);
48
+ return _duplojs_lang_either.left("file-system-rename-error", renameError);
32
49
  }
33
50
  const renameImplementation = require_implementor.implementFunction("rename", {
34
51
  NODE: async (path, newName) => {
35
- const fs = await require_implementor.nodeFileSystem.value;
36
52
  const parentPath = _duplojs_lang_path.getParentFolderPath(path);
37
- if (!parentPath) return _duplojs_lang_either.left("file-system-rename-invalid-argument", /* @__PURE__ */ new Error(`Invalid parent path ${path}.`));
53
+ if (!parentPath) return _duplojs_lang_either.left("file-system-rename-error", new RenameErrorInvalidArgument(/* @__PURE__ */ new Error(`Invalid parent path ${path}.`)));
38
54
  const newPath = _duplojs_lang_path.resolveRelative([parentPath, newName]);
39
- return fs.rename(path, newPath).then(() => _duplojs_lang_either.right("file-system-rename", newPath)).catch(handleNodeRenameError);
55
+ return require_implementor.nodeFileSystem.value.rename(path, newPath).then(() => _duplojs_lang_either.right("file-system-rename", newPath)).catch(handleNodeRenameError);
40
56
  },
41
- DENO: (path, newName) => {
57
+ DENO: async (path, newName) => {
42
58
  const parentPath = _duplojs_lang_path.getParentFolderPath(path);
43
- if (!parentPath) return Promise.resolve(_duplojs_lang_either.left("file-system-rename-invalid-argument", /* @__PURE__ */ new Error(`Invalid parent path ${path}.`)));
59
+ if (!parentPath) return Promise.resolve(_duplojs_lang_either.left("file-system-rename-error", new RenameErrorInvalidArgument(/* @__PURE__ */ new Error(`Invalid parent path ${path}.`))));
44
60
  const newPath = _duplojs_lang_path.resolveRelative([parentPath, newName]);
45
61
  return Deno.rename(path, newPath).then(() => _duplojs_lang_either.right("file-system-rename", newPath)).catch(handleDenoRenameError);
46
62
  }
@@ -53,4 +69,15 @@ function rename(...args) {
53
69
  return renameImplementation(...args);
54
70
  }
55
71
  //#endregion
72
+ exports.RenameError = RenameError;
73
+ exports.RenameErrorAlreadyExists = RenameErrorAlreadyExists;
74
+ exports.RenameErrorBusy = RenameErrorBusy;
75
+ exports.RenameErrorCrossDevice = RenameErrorCrossDevice;
76
+ exports.RenameErrorDirectoryNotEmpty = RenameErrorDirectoryNotEmpty;
77
+ exports.RenameErrorInvalidArgument = RenameErrorInvalidArgument;
78
+ exports.RenameErrorIsDirectory = RenameErrorIsDirectory;
79
+ exports.RenameErrorNotDirectory = RenameErrorNotDirectory;
80
+ exports.RenameErrorNotFound = RenameErrorNotFound;
81
+ exports.RenameErrorPermissionDenied = RenameErrorPermissionDenied;
82
+ exports.RenameErrorReadOnly = RenameErrorReadOnly;
56
83
  exports.rename = rename;
@@ -1,11 +1,46 @@
1
- import { FileSystemEither } from './types';
2
1
  import * as DPath from "@duplojs/lang/path";
3
2
  import * as DEither from "@duplojs/lang/either";
4
- export type RenameResult = FileSystemEither<DEither.Right<"rename", string & DPath.Path> | DEither.Left<"rename-not-found", unknown> | DEither.Left<"rename-permission-denied", unknown> | DEither.Left<"rename-already-exists", unknown> | DEither.Left<"rename-is-directory", unknown> | DEither.Left<"rename-not-directory", unknown> | DEither.Left<"rename-directory-not-empty", unknown> | DEither.Left<"rename-read-only", unknown> | DEither.Left<"rename-invalid-argument", unknown> | DEither.Left<"rename-busy", unknown> | DEither.Left<"rename-cross-device", unknown> | DEither.Left<"rename-error", unknown>>;
3
+ import * as DCommon from "@duplojs/lang/common";
4
+ declare const RenameErrorNotFound_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-rename-not-found", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-rename-not-found", unknown>>, unknown>;
5
+ export declare class RenameErrorNotFound extends RenameErrorNotFound_base {
6
+ }
7
+ declare const RenameErrorPermissionDenied_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-rename-permission-denied", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-rename-permission-denied", unknown>>, unknown>;
8
+ export declare class RenameErrorPermissionDenied extends RenameErrorPermissionDenied_base {
9
+ }
10
+ declare const RenameErrorAlreadyExists_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-rename-already-exists", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-rename-already-exists", unknown>>, unknown>;
11
+ export declare class RenameErrorAlreadyExists extends RenameErrorAlreadyExists_base {
12
+ }
13
+ declare const RenameErrorIsDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-rename-is-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-rename-is-directory", unknown>>, unknown>;
14
+ export declare class RenameErrorIsDirectory extends RenameErrorIsDirectory_base {
15
+ }
16
+ declare const RenameErrorNotDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-rename-not-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-rename-not-directory", unknown>>, unknown>;
17
+ export declare class RenameErrorNotDirectory extends RenameErrorNotDirectory_base {
18
+ }
19
+ declare const RenameErrorDirectoryNotEmpty_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-rename-directory-not-empty", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-rename-directory-not-empty", unknown>>, unknown>;
20
+ export declare class RenameErrorDirectoryNotEmpty extends RenameErrorDirectoryNotEmpty_base {
21
+ }
22
+ declare const RenameErrorReadOnly_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-rename-read-only", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-rename-read-only", unknown>>, unknown>;
23
+ export declare class RenameErrorReadOnly extends RenameErrorReadOnly_base {
24
+ }
25
+ declare const RenameErrorInvalidArgument_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-rename-invalid-argument", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-rename-invalid-argument", unknown>>, unknown>;
26
+ export declare class RenameErrorInvalidArgument extends RenameErrorInvalidArgument_base {
27
+ }
28
+ declare const RenameErrorBusy_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-rename-busy", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-rename-busy", unknown>>, unknown>;
29
+ export declare class RenameErrorBusy extends RenameErrorBusy_base {
30
+ }
31
+ declare const RenameErrorCrossDevice_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-rename-cross-device", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-rename-cross-device", unknown>>, unknown>;
32
+ export declare class RenameErrorCrossDevice extends RenameErrorCrossDevice_base {
33
+ }
34
+ declare const RenameError_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-rename-error", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-rename-error", unknown>>, unknown>;
35
+ export declare class RenameError extends RenameError_base {
36
+ }
37
+ export type RenameErrors = (RenameErrorNotFound | RenameErrorPermissionDenied | RenameErrorAlreadyExists | RenameErrorIsDirectory | RenameErrorNotDirectory | RenameErrorDirectoryNotEmpty | RenameErrorReadOnly | RenameErrorInvalidArgument | RenameErrorBusy | RenameErrorCrossDevice | RenameError);
38
+ export type RenameResult = (DEither.Right<"file-system-rename", string & DPath.Path> | DEither.Left<"file-system-rename-error", RenameErrors>);
5
39
  declare module '../implementor' {
6
40
  interface ServerFunction {
7
- rename(path: string & DPath.Path, newName: string & DPath.Segment): Promise<RenameResult>;
41
+ rename(path: DPath.AnyPath, newName: string & DPath.Segment): Promise<RenameResult>;
8
42
  }
9
43
  }
10
- export declare function rename(newName: string & DPath.Segment): (path: string & DPath.Path) => Promise<RenameResult>;
11
- export declare function rename(path: string & DPath.Path, newName: string & DPath.Segment): Promise<RenameResult>;
44
+ export declare function rename(newName: string & DPath.Segment): (path: DPath.AnyPath) => Promise<RenameResult>;
45
+ export declare function rename(path: DPath.AnyPath, newName: string & DPath.Segment): Promise<RenameResult>;
46
+ export {};
@@ -1,43 +1,58 @@
1
1
  import { implementFunction, nodeFileSystem } from "../implementor.mjs";
2
+ import * as DCommon from "@duplojs/lang/common";
2
3
  import * as DEither from "@duplojs/lang/either";
3
4
  import * as DPath from "@duplojs/lang/path";
4
5
  //#region scripts/file/rename.ts
6
+ var RenameErrorNotFound = class extends DCommon.DuploJSError.parentClass("file-system-rename-not-found", Error) {};
7
+ var RenameErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-rename-permission-denied", Error) {};
8
+ var RenameErrorAlreadyExists = class extends DCommon.DuploJSError.parentClass("file-system-rename-already-exists", Error) {};
9
+ var RenameErrorIsDirectory = class extends DCommon.DuploJSError.parentClass("file-system-rename-is-directory", Error) {};
10
+ var RenameErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-rename-not-directory", Error) {};
11
+ var RenameErrorDirectoryNotEmpty = class extends DCommon.DuploJSError.parentClass("file-system-rename-directory-not-empty", Error) {};
12
+ var RenameErrorReadOnly = class extends DCommon.DuploJSError.parentClass("file-system-rename-read-only", Error) {};
13
+ var RenameErrorInvalidArgument = class extends DCommon.DuploJSError.parentClass("file-system-rename-invalid-argument", Error) {};
14
+ var RenameErrorBusy = class extends DCommon.DuploJSError.parentClass("file-system-rename-busy", Error) {};
15
+ var RenameErrorCrossDevice = class extends DCommon.DuploJSError.parentClass("file-system-rename-cross-device", Error) {};
16
+ var RenameError = class extends DCommon.DuploJSError.parentClass("file-system-rename-error", Error) {};
5
17
  function handleNodeRenameError(error) {
6
- if (typeof error === "object" && error !== null && "code" in error) {
7
- if (error.code === "ENOENT") return DEither.left("file-system-rename-not-found", error);
8
- else if (error.code === "EACCES" || error.code === "EPERM") return DEither.left("file-system-rename-permission-denied", error);
9
- else if (error.code === "EEXIST") return DEither.left("file-system-rename-already-exists", error);
10
- else if (error.code === "EISDIR") return DEither.left("file-system-rename-is-directory", error);
11
- else if (error.code === "ENOTDIR") return DEither.left("file-system-rename-not-directory", error);
12
- else if (error.code === "ENOTEMPTY") return DEither.left("file-system-rename-directory-not-empty", error);
13
- else if (error.code === "EROFS") return DEither.left("file-system-rename-read-only", error);
14
- else if (error.code === "EINVAL") return DEither.left("file-system-rename-invalid-argument", error);
15
- else if (error.code === "EBUSY") return DEither.left("file-system-rename-busy", error);
16
- else if (error.code === "EXDEV") return DEither.left("file-system-rename-cross-device", error);
18
+ let renameError = void 0;
19
+ if ("code" in error) {
20
+ if (error.code === "ENOENT") renameError = new RenameErrorNotFound(error);
21
+ else if (error.code === "EACCES" || error.code === "EPERM") renameError = new RenameErrorPermissionDenied(error);
22
+ else if (error.code === "EEXIST") renameError = new RenameErrorAlreadyExists(error);
23
+ else if (error.code === "EISDIR") renameError = new RenameErrorIsDirectory(error);
24
+ else if (error.code === "ENOTDIR") renameError = new RenameErrorNotDirectory(error);
25
+ else if (error.code === "ENOTEMPTY") renameError = new RenameErrorDirectoryNotEmpty(error);
26
+ else if (error.code === "EROFS") renameError = new RenameErrorReadOnly(error);
27
+ else if (error.code === "EINVAL") renameError = new RenameErrorInvalidArgument(error);
28
+ else if (error.code === "EBUSY") renameError = new RenameErrorBusy(error);
29
+ else if (error.code === "EXDEV") renameError = new RenameErrorCrossDevice(error);
17
30
  }
18
- return DEither.left("file-system-rename-error", error);
31
+ if (renameError === void 0) renameError = new RenameError(error);
32
+ return DEither.left("file-system-rename-error", renameError);
19
33
  }
20
34
  function handleDenoRenameError(error) {
21
- if (error instanceof Deno.errors.NotFound) return DEither.left("file-system-rename-not-found", error);
22
- if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return DEither.left("file-system-rename-permission-denied", error);
23
- if (error instanceof Deno.errors.AlreadyExists) return DEither.left("file-system-rename-already-exists", error);
24
- if (error instanceof Deno.errors.IsADirectory) return DEither.left("file-system-rename-is-directory", error);
25
- if (error instanceof Deno.errors.NotADirectory) return DEither.left("file-system-rename-not-directory", error);
26
- if (error instanceof Deno.errors.InvalidData) return DEither.left("file-system-rename-invalid-argument", error);
27
- if (error instanceof Deno.errors.Busy) return DEither.left("file-system-rename-busy", error);
28
- return DEither.left("file-system-rename-error", error);
35
+ let renameError = void 0;
36
+ if (error instanceof Deno.errors.NotFound) renameError = new RenameErrorNotFound(error);
37
+ else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) renameError = new RenameErrorPermissionDenied(error);
38
+ else if (error instanceof Deno.errors.AlreadyExists) renameError = new RenameErrorAlreadyExists(error);
39
+ else if (error instanceof Deno.errors.IsADirectory) renameError = new RenameErrorIsDirectory(error);
40
+ else if (error instanceof Deno.errors.NotADirectory) renameError = new RenameErrorNotDirectory(error);
41
+ else if (error instanceof Deno.errors.InvalidData) renameError = new RenameErrorInvalidArgument(error);
42
+ else if (error instanceof Deno.errors.Busy) renameError = new RenameErrorBusy(error);
43
+ if (renameError === void 0) renameError = new RenameError(error);
44
+ return DEither.left("file-system-rename-error", renameError);
29
45
  }
30
46
  const renameImplementation = implementFunction("rename", {
31
47
  NODE: async (path, newName) => {
32
- const fs = await nodeFileSystem.value;
33
48
  const parentPath = DPath.getParentFolderPath(path);
34
- if (!parentPath) return DEither.left("file-system-rename-invalid-argument", /* @__PURE__ */ new Error(`Invalid parent path ${path}.`));
49
+ if (!parentPath) return DEither.left("file-system-rename-error", new RenameErrorInvalidArgument(/* @__PURE__ */ new Error(`Invalid parent path ${path}.`)));
35
50
  const newPath = DPath.resolveRelative([parentPath, newName]);
36
- return fs.rename(path, newPath).then(() => DEither.right("file-system-rename", newPath)).catch(handleNodeRenameError);
51
+ return nodeFileSystem.value.rename(path, newPath).then(() => DEither.right("file-system-rename", newPath)).catch(handleNodeRenameError);
37
52
  },
38
- DENO: (path, newName) => {
53
+ DENO: async (path, newName) => {
39
54
  const parentPath = DPath.getParentFolderPath(path);
40
- if (!parentPath) return Promise.resolve(DEither.left("file-system-rename-invalid-argument", /* @__PURE__ */ new Error(`Invalid parent path ${path}.`)));
55
+ if (!parentPath) return Promise.resolve(DEither.left("file-system-rename-error", new RenameErrorInvalidArgument(/* @__PURE__ */ new Error(`Invalid parent path ${path}.`))));
41
56
  const newPath = DPath.resolveRelative([parentPath, newName]);
42
57
  return Deno.rename(path, newPath).then(() => DEither.right("file-system-rename", newPath)).catch(handleDenoRenameError);
43
58
  }
@@ -50,4 +65,4 @@ function rename(...args) {
50
65
  return renameImplementation(...args);
51
66
  }
52
67
  //#endregion
53
- export { rename };
68
+ export { RenameError, RenameErrorAlreadyExists, RenameErrorBusy, RenameErrorCrossDevice, RenameErrorDirectoryNotEmpty, RenameErrorInvalidArgument, RenameErrorIsDirectory, RenameErrorNotDirectory, RenameErrorNotFound, RenameErrorPermissionDenied, RenameErrorReadOnly, rename };