@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,33 +1,46 @@
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/appendFile.ts
5
+ var AppendFileErrorNotFound = class extends DCommon.DuploJSError.parentClass("file-system-append-file-not-found", Error) {};
6
+ var AppendFileErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-append-file-permission-denied", Error) {};
7
+ var AppendFileErrorIsDirectory = class extends DCommon.DuploJSError.parentClass("file-system-append-file-is-directory", Error) {};
8
+ var AppendFileErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-append-file-not-directory", Error) {};
9
+ var AppendFileErrorNoSpace = class extends DCommon.DuploJSError.parentClass("file-system-append-file-no-space", Error) {};
10
+ var AppendFileErrorReadOnly = class extends DCommon.DuploJSError.parentClass("file-system-append-file-read-only", Error) {};
11
+ var AppendFileErrorInvalidArgument = class extends DCommon.DuploJSError.parentClass("file-system-append-file-invalid-argument", Error) {};
12
+ var AppendFileErrorTooManyOpenFiles = class extends DCommon.DuploJSError.parentClass("file-system-append-file-too-many-open-files", Error) {};
13
+ var AppendFileErrorBusy = class extends DCommon.DuploJSError.parentClass("file-system-append-file-busy", Error) {};
14
+ var AppendFileError = class extends DCommon.DuploJSError.parentClass("file-system-append-file-error", Error) {};
4
15
  function handleNodeAppendFileError(error) {
5
- if (typeof error === "object" && error !== null && "code" in error) {
6
- if (error.code === "ENOENT") return DEither.left("file-system-append-file-not-found", error);
7
- else if (error.code === "EACCES" || error.code === "EPERM") return DEither.left("file-system-append-file-permission-denied", error);
8
- else if (error.code === "EISDIR") return DEither.left("file-system-append-file-is-directory", error);
9
- else if (error.code === "ENOTDIR") return DEither.left("file-system-append-file-not-directory", error);
10
- else if (error.code === "ENOSPC") return DEither.left("file-system-append-file-no-space", error);
11
- else if (error.code === "EROFS") return DEither.left("file-system-append-file-read-only", error);
12
- else if (error.code === "EINVAL") return DEither.left("file-system-append-file-invalid-argument", error);
13
- else if (error.code === "EMFILE" || error.code === "ENFILE") return DEither.left("file-system-append-file-too-many-open-files", error);
14
- else if (error.code === "EBUSY") return DEither.left("file-system-append-file-busy", error);
15
- }
16
- return DEither.left("file-system-append-file-error", error);
16
+ let appendFileError = void 0;
17
+ if ("code" in error) {
18
+ if (error.code === "ENOENT") appendFileError = new AppendFileErrorNotFound(error);
19
+ else if (error.code === "EACCES" || error.code === "EPERM") appendFileError = new AppendFileErrorPermissionDenied(error);
20
+ else if (error.code === "EISDIR") appendFileError = new AppendFileErrorIsDirectory(error);
21
+ else if (error.code === "ENOTDIR") appendFileError = new AppendFileErrorNotDirectory(error);
22
+ else if (error.code === "ENOSPC") appendFileError = new AppendFileErrorNoSpace(error);
23
+ else if (error.code === "EROFS") appendFileError = new AppendFileErrorReadOnly(error);
24
+ else if (error.code === "EINVAL") appendFileError = new AppendFileErrorInvalidArgument(error);
25
+ else if (error.code === "EMFILE" || error.code === "ENFILE") appendFileError = new AppendFileErrorTooManyOpenFiles(error);
26
+ else if (error.code === "EBUSY") appendFileError = new AppendFileErrorBusy(error);
27
+ else appendFileError = new AppendFileError(error);
28
+ } else appendFileError = new AppendFileError(error);
29
+ return DEither.left("file-system-append-file-error", appendFileError);
17
30
  }
18
31
  function handleDenoAppendFileError(error) {
19
- if (error instanceof Deno.errors.NotFound) return DEither.left("file-system-append-file-not-found", error);
20
- if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return DEither.left("file-system-append-file-permission-denied", error);
21
- if (error instanceof Deno.errors.IsADirectory) return DEither.left("file-system-append-file-is-directory", error);
22
- if (error instanceof Deno.errors.NotADirectory) return DEither.left("file-system-append-file-not-directory", error);
23
- if (error instanceof Deno.errors.InvalidData) return DEither.left("file-system-append-file-invalid-argument", error);
24
- if (error instanceof Deno.errors.Busy) return DEither.left("file-system-append-file-busy", error);
25
- return DEither.left("file-system-append-file-error", error);
32
+ let appendFileError = void 0;
33
+ if (error instanceof Deno.errors.NotFound) appendFileError = new AppendFileErrorNotFound(error);
34
+ else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) appendFileError = new AppendFileErrorPermissionDenied(error);
35
+ else if (error instanceof Deno.errors.IsADirectory) appendFileError = new AppendFileErrorIsDirectory(error);
36
+ else if (error instanceof Deno.errors.NotADirectory) appendFileError = new AppendFileErrorNotDirectory(error);
37
+ else if (error instanceof Deno.errors.InvalidData) appendFileError = new AppendFileErrorInvalidArgument(error);
38
+ else if (error instanceof Deno.errors.Busy) appendFileError = new AppendFileErrorBusy(error);
39
+ else appendFileError = new AppendFileError(error);
40
+ return DEither.left("file-system-append-file-error", appendFileError);
26
41
  }
27
42
  const appendFileImplementation = implementFunction("appendFile", {
28
- NODE: async (path, data) => {
29
- return (await nodeFileSystem.value).appendFile(path, data).then(() => DEither.right("file-system-append-file")).catch(handleNodeAppendFileError);
30
- },
43
+ NODE: async (path, data) => nodeFileSystem.value.appendFile(path, data).then(() => DEither.right("file-system-append-file")).catch(handleNodeAppendFileError),
31
44
  DENO: (path, data) => Deno.writeFile(path, data, { append: true }).then(() => DEither.right("file-system-append-file")).catch(handleDenoAppendFileError)
32
45
  });
33
46
  function appendFile(...args) {
@@ -38,4 +51,4 @@ function appendFile(...args) {
38
51
  return appendFileImplementation(...args);
39
52
  }
40
53
  //#endregion
41
- export { appendFile };
54
+ export { AppendFileError, AppendFileErrorBusy, AppendFileErrorInvalidArgument, AppendFileErrorIsDirectory, AppendFileErrorNoSpace, AppendFileErrorNotDirectory, AppendFileErrorNotFound, AppendFileErrorPermissionDenied, AppendFileErrorReadOnly, AppendFileErrorTooManyOpenFiles, appendFile };
@@ -1,35 +1,49 @@
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/appendTextFile.ts
8
+ var AppendTextFileErrorNotFound = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-append-text-file-not-found", Error) {};
9
+ var AppendTextFileErrorPermissionDenied = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-append-text-file-permission-denied", Error) {};
10
+ var AppendTextFileErrorIsDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-append-text-file-is-directory", Error) {};
11
+ var AppendTextFileErrorNotDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-append-text-file-not-directory", Error) {};
12
+ var AppendTextFileErrorNoSpace = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-append-text-file-no-space", Error) {};
13
+ var AppendTextFileErrorReadOnly = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-append-text-file-read-only", Error) {};
14
+ var AppendTextFileErrorInvalidArgument = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-append-text-file-invalid-argument", Error) {};
15
+ var AppendTextFileErrorTooManyOpenFiles = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-append-text-file-too-many-open-files", Error) {};
16
+ var AppendTextFileErrorBusy = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-append-text-file-busy", Error) {};
17
+ var AppendTextFileError = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-append-text-file-error", Error) {};
6
18
  function handleNodeAppendTextFileError(error) {
19
+ let appendTextFileError = void 0;
7
20
  if (typeof error === "object" && error !== null && "code" in error) {
8
- if (error.code === "ENOENT") return _duplojs_lang_either.left("file-system-append-text-file-not-found", error);
9
- else if (error.code === "EACCES" || error.code === "EPERM") return _duplojs_lang_either.left("file-system-append-text-file-permission-denied", error);
10
- else if (error.code === "EISDIR") return _duplojs_lang_either.left("file-system-append-text-file-is-directory", error);
11
- else if (error.code === "ENOTDIR") return _duplojs_lang_either.left("file-system-append-text-file-not-directory", error);
12
- else if (error.code === "ENOSPC") return _duplojs_lang_either.left("file-system-append-text-file-no-space", error);
13
- else if (error.code === "EROFS") return _duplojs_lang_either.left("file-system-append-text-file-read-only", error);
14
- else if (error.code === "EINVAL") return _duplojs_lang_either.left("file-system-append-text-file-invalid-argument", error);
15
- else if (error.code === "EMFILE" || error.code === "ENFILE") return _duplojs_lang_either.left("file-system-append-text-file-too-many-open-files", error);
16
- else if (error.code === "EBUSY") return _duplojs_lang_either.left("file-system-append-text-file-busy", error);
21
+ if (error.code === "ENOENT") appendTextFileError = new AppendTextFileErrorNotFound(error);
22
+ else if (error.code === "EACCES" || error.code === "EPERM") appendTextFileError = new AppendTextFileErrorPermissionDenied(error);
23
+ else if (error.code === "EISDIR") appendTextFileError = new AppendTextFileErrorIsDirectory(error);
24
+ else if (error.code === "ENOTDIR") appendTextFileError = new AppendTextFileErrorNotDirectory(error);
25
+ else if (error.code === "ENOSPC") appendTextFileError = new AppendTextFileErrorNoSpace(error);
26
+ else if (error.code === "EROFS") appendTextFileError = new AppendTextFileErrorReadOnly(error);
27
+ else if (error.code === "EINVAL") appendTextFileError = new AppendTextFileErrorInvalidArgument(error);
28
+ else if (error.code === "EMFILE" || error.code === "ENFILE") appendTextFileError = new AppendTextFileErrorTooManyOpenFiles(error);
29
+ else if (error.code === "EBUSY") appendTextFileError = new AppendTextFileErrorBusy(error);
17
30
  }
18
- return _duplojs_lang_either.left("file-system-append-text-file-error", error);
31
+ if (appendTextFileError === void 0) appendTextFileError = new AppendTextFileError(error);
32
+ return _duplojs_lang_either.left("file-system-append-text-file-error", appendTextFileError);
19
33
  }
20
34
  function handleDenoAppendTextFileError(error) {
21
- if (error instanceof Deno.errors.NotFound) return _duplojs_lang_either.left("file-system-append-text-file-not-found", error);
22
- if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return _duplojs_lang_either.left("file-system-append-text-file-permission-denied", error);
23
- if (error instanceof Deno.errors.IsADirectory) return _duplojs_lang_either.left("file-system-append-text-file-is-directory", error);
24
- if (error instanceof Deno.errors.NotADirectory) return _duplojs_lang_either.left("file-system-append-text-file-not-directory", error);
25
- if (error instanceof Deno.errors.InvalidData) return _duplojs_lang_either.left("file-system-append-text-file-invalid-argument", error);
26
- if (error instanceof Deno.errors.Busy) return _duplojs_lang_either.left("file-system-append-text-file-busy", error);
27
- return _duplojs_lang_either.left("file-system-append-text-file-error", error);
35
+ let appendTextFileError = void 0;
36
+ if (error instanceof Deno.errors.NotFound) appendTextFileError = new AppendTextFileErrorNotFound(error);
37
+ else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) appendTextFileError = new AppendTextFileErrorPermissionDenied(error);
38
+ else if (error instanceof Deno.errors.IsADirectory) appendTextFileError = new AppendTextFileErrorIsDirectory(error);
39
+ else if (error instanceof Deno.errors.NotADirectory) appendTextFileError = new AppendTextFileErrorNotDirectory(error);
40
+ else if (error instanceof Deno.errors.InvalidData) appendTextFileError = new AppendTextFileErrorInvalidArgument(error);
41
+ else if (error instanceof Deno.errors.Busy) appendTextFileError = new AppendTextFileErrorBusy(error);
42
+ if (appendTextFileError === void 0) appendTextFileError = new AppendTextFileError(error);
43
+ return _duplojs_lang_either.left("file-system-append-text-file-error", appendTextFileError);
28
44
  }
29
45
  const appendTextFileImplementation = require_implementor.implementFunction("appendTextFile", {
30
- NODE: async (path, data) => {
31
- return (await require_implementor.nodeFileSystem.value).appendFile(path, data).then(() => _duplojs_lang_either.right("file-system-append-text-file")).catch(handleNodeAppendTextFileError);
32
- },
46
+ NODE: async (path, data) => require_implementor.nodeFileSystem.value.appendFile(path, data).then(() => _duplojs_lang_either.right("file-system-append-text-file")).catch(handleNodeAppendTextFileError),
33
47
  DENO: (path, data) => Deno.writeTextFile(path, data, { append: true }).then(() => _duplojs_lang_either.right("file-system-append-text-file")).catch(handleDenoAppendTextFileError)
34
48
  });
35
49
  function appendTextFile(...args) {
@@ -40,4 +54,14 @@ function appendTextFile(...args) {
40
54
  return appendTextFileImplementation(...args);
41
55
  }
42
56
  //#endregion
57
+ exports.AppendTextFileError = AppendTextFileError;
58
+ exports.AppendTextFileErrorBusy = AppendTextFileErrorBusy;
59
+ exports.AppendTextFileErrorInvalidArgument = AppendTextFileErrorInvalidArgument;
60
+ exports.AppendTextFileErrorIsDirectory = AppendTextFileErrorIsDirectory;
61
+ exports.AppendTextFileErrorNoSpace = AppendTextFileErrorNoSpace;
62
+ exports.AppendTextFileErrorNotDirectory = AppendTextFileErrorNotDirectory;
63
+ exports.AppendTextFileErrorNotFound = AppendTextFileErrorNotFound;
64
+ exports.AppendTextFileErrorPermissionDenied = AppendTextFileErrorPermissionDenied;
65
+ exports.AppendTextFileErrorReadOnly = AppendTextFileErrorReadOnly;
66
+ exports.AppendTextFileErrorTooManyOpenFiles = AppendTextFileErrorTooManyOpenFiles;
43
67
  exports.appendTextFile = appendTextFile;
@@ -1,11 +1,43 @@
1
- import { FileSystemEither } from './types';
2
1
  import * as DEither from "@duplojs/lang/either";
3
2
  import type * as DPath from "@duplojs/lang/path";
4
- export type AppendTextFileResult = FileSystemEither<DEither.Right<"append-text-file", void> | DEither.Left<"append-text-file-not-found", unknown> | DEither.Left<"append-text-file-permission-denied", unknown> | DEither.Left<"append-text-file-is-directory", unknown> | DEither.Left<"append-text-file-not-directory", unknown> | DEither.Left<"append-text-file-no-space", unknown> | DEither.Left<"append-text-file-read-only", unknown> | DEither.Left<"append-text-file-invalid-argument", unknown> | DEither.Left<"append-text-file-too-many-open-files", unknown> | DEither.Left<"append-text-file-busy", unknown> | DEither.Left<"append-text-file-error", unknown>>;
3
+ import * as DCommon from "@duplojs/lang/common";
4
+ declare const AppendTextFileErrorNotFound_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-append-text-file-not-found", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-append-text-file-not-found", unknown>>, unknown>;
5
+ export declare class AppendTextFileErrorNotFound extends AppendTextFileErrorNotFound_base {
6
+ }
7
+ declare const AppendTextFileErrorPermissionDenied_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-append-text-file-permission-denied", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-append-text-file-permission-denied", unknown>>, unknown>;
8
+ export declare class AppendTextFileErrorPermissionDenied extends AppendTextFileErrorPermissionDenied_base {
9
+ }
10
+ declare const AppendTextFileErrorIsDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-append-text-file-is-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-append-text-file-is-directory", unknown>>, unknown>;
11
+ export declare class AppendTextFileErrorIsDirectory extends AppendTextFileErrorIsDirectory_base {
12
+ }
13
+ declare const AppendTextFileErrorNotDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-append-text-file-not-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-append-text-file-not-directory", unknown>>, unknown>;
14
+ export declare class AppendTextFileErrorNotDirectory extends AppendTextFileErrorNotDirectory_base {
15
+ }
16
+ declare const AppendTextFileErrorNoSpace_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-append-text-file-no-space", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-append-text-file-no-space", unknown>>, unknown>;
17
+ export declare class AppendTextFileErrorNoSpace extends AppendTextFileErrorNoSpace_base {
18
+ }
19
+ declare const AppendTextFileErrorReadOnly_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-append-text-file-read-only", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-append-text-file-read-only", unknown>>, unknown>;
20
+ export declare class AppendTextFileErrorReadOnly extends AppendTextFileErrorReadOnly_base {
21
+ }
22
+ declare const AppendTextFileErrorInvalidArgument_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-append-text-file-invalid-argument", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-append-text-file-invalid-argument", unknown>>, unknown>;
23
+ export declare class AppendTextFileErrorInvalidArgument extends AppendTextFileErrorInvalidArgument_base {
24
+ }
25
+ declare const AppendTextFileErrorTooManyOpenFiles_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-append-text-file-too-many-open-files", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-append-text-file-too-many-open-files", unknown>>, unknown>;
26
+ export declare class AppendTextFileErrorTooManyOpenFiles extends AppendTextFileErrorTooManyOpenFiles_base {
27
+ }
28
+ declare const AppendTextFileErrorBusy_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-append-text-file-busy", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-append-text-file-busy", unknown>>, unknown>;
29
+ export declare class AppendTextFileErrorBusy extends AppendTextFileErrorBusy_base {
30
+ }
31
+ declare const AppendTextFileError_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-append-text-file-error", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-append-text-file-error", unknown>>, unknown>;
32
+ export declare class AppendTextFileError extends AppendTextFileError_base {
33
+ }
34
+ export type AppendTextFileErrors = (AppendTextFileErrorNotFound | AppendTextFileErrorPermissionDenied | AppendTextFileErrorIsDirectory | AppendTextFileErrorNotDirectory | AppendTextFileErrorNoSpace | AppendTextFileErrorReadOnly | AppendTextFileErrorInvalidArgument | AppendTextFileErrorTooManyOpenFiles | AppendTextFileErrorBusy | AppendTextFileError);
35
+ export type AppendTextFileResult = (DEither.Right<"file-system-append-text-file", void> | DEither.Left<"file-system-append-text-file-error", AppendTextFileErrors>);
5
36
  declare module '../implementor' {
6
37
  interface ServerFunction {
7
- appendTextFile(path: string & DPath.Path, data: string): Promise<AppendTextFileResult>;
38
+ appendTextFile(path: DPath.AnyPath, data: string): Promise<AppendTextFileResult>;
8
39
  }
9
40
  }
10
- export declare function appendTextFile(data: string): (path: string & DPath.Path) => Promise<AppendTextFileResult>;
11
- export declare function appendTextFile(path: string & DPath.Path, data: string): Promise<AppendTextFileResult>;
41
+ export declare function appendTextFile(data: string): (path: DPath.AnyPath) => Promise<AppendTextFileResult>;
42
+ export declare function appendTextFile(path: DPath.AnyPath, data: string): Promise<AppendTextFileResult>;
43
+ export {};
@@ -1,33 +1,46 @@
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/appendTextFile.ts
5
+ var AppendTextFileErrorNotFound = class extends DCommon.DuploJSError.parentClass("file-system-append-text-file-not-found", Error) {};
6
+ var AppendTextFileErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-append-text-file-permission-denied", Error) {};
7
+ var AppendTextFileErrorIsDirectory = class extends DCommon.DuploJSError.parentClass("file-system-append-text-file-is-directory", Error) {};
8
+ var AppendTextFileErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-append-text-file-not-directory", Error) {};
9
+ var AppendTextFileErrorNoSpace = class extends DCommon.DuploJSError.parentClass("file-system-append-text-file-no-space", Error) {};
10
+ var AppendTextFileErrorReadOnly = class extends DCommon.DuploJSError.parentClass("file-system-append-text-file-read-only", Error) {};
11
+ var AppendTextFileErrorInvalidArgument = class extends DCommon.DuploJSError.parentClass("file-system-append-text-file-invalid-argument", Error) {};
12
+ var AppendTextFileErrorTooManyOpenFiles = class extends DCommon.DuploJSError.parentClass("file-system-append-text-file-too-many-open-files", Error) {};
13
+ var AppendTextFileErrorBusy = class extends DCommon.DuploJSError.parentClass("file-system-append-text-file-busy", Error) {};
14
+ var AppendTextFileError = class extends DCommon.DuploJSError.parentClass("file-system-append-text-file-error", Error) {};
4
15
  function handleNodeAppendTextFileError(error) {
16
+ let appendTextFileError = void 0;
5
17
  if (typeof error === "object" && error !== null && "code" in error) {
6
- if (error.code === "ENOENT") return DEither.left("file-system-append-text-file-not-found", error);
7
- else if (error.code === "EACCES" || error.code === "EPERM") return DEither.left("file-system-append-text-file-permission-denied", error);
8
- else if (error.code === "EISDIR") return DEither.left("file-system-append-text-file-is-directory", error);
9
- else if (error.code === "ENOTDIR") return DEither.left("file-system-append-text-file-not-directory", error);
10
- else if (error.code === "ENOSPC") return DEither.left("file-system-append-text-file-no-space", error);
11
- else if (error.code === "EROFS") return DEither.left("file-system-append-text-file-read-only", error);
12
- else if (error.code === "EINVAL") return DEither.left("file-system-append-text-file-invalid-argument", error);
13
- else if (error.code === "EMFILE" || error.code === "ENFILE") return DEither.left("file-system-append-text-file-too-many-open-files", error);
14
- else if (error.code === "EBUSY") return DEither.left("file-system-append-text-file-busy", error);
18
+ if (error.code === "ENOENT") appendTextFileError = new AppendTextFileErrorNotFound(error);
19
+ else if (error.code === "EACCES" || error.code === "EPERM") appendTextFileError = new AppendTextFileErrorPermissionDenied(error);
20
+ else if (error.code === "EISDIR") appendTextFileError = new AppendTextFileErrorIsDirectory(error);
21
+ else if (error.code === "ENOTDIR") appendTextFileError = new AppendTextFileErrorNotDirectory(error);
22
+ else if (error.code === "ENOSPC") appendTextFileError = new AppendTextFileErrorNoSpace(error);
23
+ else if (error.code === "EROFS") appendTextFileError = new AppendTextFileErrorReadOnly(error);
24
+ else if (error.code === "EINVAL") appendTextFileError = new AppendTextFileErrorInvalidArgument(error);
25
+ else if (error.code === "EMFILE" || error.code === "ENFILE") appendTextFileError = new AppendTextFileErrorTooManyOpenFiles(error);
26
+ else if (error.code === "EBUSY") appendTextFileError = new AppendTextFileErrorBusy(error);
15
27
  }
16
- return DEither.left("file-system-append-text-file-error", error);
28
+ if (appendTextFileError === void 0) appendTextFileError = new AppendTextFileError(error);
29
+ return DEither.left("file-system-append-text-file-error", appendTextFileError);
17
30
  }
18
31
  function handleDenoAppendTextFileError(error) {
19
- if (error instanceof Deno.errors.NotFound) return DEither.left("file-system-append-text-file-not-found", error);
20
- if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return DEither.left("file-system-append-text-file-permission-denied", error);
21
- if (error instanceof Deno.errors.IsADirectory) return DEither.left("file-system-append-text-file-is-directory", error);
22
- if (error instanceof Deno.errors.NotADirectory) return DEither.left("file-system-append-text-file-not-directory", error);
23
- if (error instanceof Deno.errors.InvalidData) return DEither.left("file-system-append-text-file-invalid-argument", error);
24
- if (error instanceof Deno.errors.Busy) return DEither.left("file-system-append-text-file-busy", error);
25
- return DEither.left("file-system-append-text-file-error", error);
32
+ let appendTextFileError = void 0;
33
+ if (error instanceof Deno.errors.NotFound) appendTextFileError = new AppendTextFileErrorNotFound(error);
34
+ else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) appendTextFileError = new AppendTextFileErrorPermissionDenied(error);
35
+ else if (error instanceof Deno.errors.IsADirectory) appendTextFileError = new AppendTextFileErrorIsDirectory(error);
36
+ else if (error instanceof Deno.errors.NotADirectory) appendTextFileError = new AppendTextFileErrorNotDirectory(error);
37
+ else if (error instanceof Deno.errors.InvalidData) appendTextFileError = new AppendTextFileErrorInvalidArgument(error);
38
+ else if (error instanceof Deno.errors.Busy) appendTextFileError = new AppendTextFileErrorBusy(error);
39
+ if (appendTextFileError === void 0) appendTextFileError = new AppendTextFileError(error);
40
+ return DEither.left("file-system-append-text-file-error", appendTextFileError);
26
41
  }
27
42
  const appendTextFileImplementation = implementFunction("appendTextFile", {
28
- NODE: async (path, data) => {
29
- return (await nodeFileSystem.value).appendFile(path, data).then(() => DEither.right("file-system-append-text-file")).catch(handleNodeAppendTextFileError);
30
- },
43
+ NODE: async (path, data) => nodeFileSystem.value.appendFile(path, data).then(() => DEither.right("file-system-append-text-file")).catch(handleNodeAppendTextFileError),
31
44
  DENO: (path, data) => Deno.writeTextFile(path, data, { append: true }).then(() => DEither.right("file-system-append-text-file")).catch(handleDenoAppendTextFileError)
32
45
  });
33
46
  function appendTextFile(...args) {
@@ -38,4 +51,4 @@ function appendTextFile(...args) {
38
51
  return appendTextFileImplementation(...args);
39
52
  }
40
53
  //#endregion
41
- export { appendTextFile };
54
+ export { AppendTextFileError, AppendTextFileErrorBusy, AppendTextFileErrorInvalidArgument, AppendTextFileErrorIsDirectory, AppendTextFileErrorNoSpace, AppendTextFileErrorNotDirectory, AppendTextFileErrorNotFound, AppendTextFileErrorPermissionDenied, AppendTextFileErrorReadOnly, AppendTextFileErrorTooManyOpenFiles, appendTextFile };
@@ -1,25 +1,37 @@
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/copy.ts
8
+ var CopyErrorNotFound = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-copy-not-found", Error) {};
9
+ var CopyErrorPermissionDenied = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-copy-permission-denied", Error) {};
10
+ var CopyErrorAlreadyExists = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-copy-already-exists", Error) {};
11
+ var CopyErrorNotDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-copy-not-directory", Error) {};
12
+ var CopyErrorNoSpace = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-copy-no-space", Error) {};
13
+ var CopyErrorReadOnly = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-copy-read-only", Error) {};
14
+ var CopyErrorInvalidArgument = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-copy-invalid-argument", Error) {};
15
+ var CopyErrorTooManyOpenFiles = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-copy-too-many-open-files", Error) {};
16
+ var CopyErrorBusy = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-copy-busy", Error) {};
17
+ var CopyError = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-copy-error", Error) {};
6
18
  function handleNodeCopyError(error) {
7
- if (typeof error === "object" && error !== null && "code" in error) {
8
- if (error.code === "ENOENT") return _duplojs_lang_either.left("file-system-copy-not-found", error);
9
- else if (error.code === "EACCES" || error.code === "EPERM") return _duplojs_lang_either.left("file-system-copy-permission-denied", error);
10
- else if (error.code === "EEXIST") return _duplojs_lang_either.left("file-system-copy-already-exists", error);
11
- else if (error.code === "ENOTDIR") return _duplojs_lang_either.left("file-system-copy-not-directory", error);
12
- else if (error.code === "ENOSPC") return _duplojs_lang_either.left("file-system-copy-no-space", error);
13
- else if (error.code === "EROFS") return _duplojs_lang_either.left("file-system-copy-read-only", error);
14
- else if (error.code === "EINVAL") return _duplojs_lang_either.left("file-system-copy-invalid-argument", error);
15
- else if (error.code === "EMFILE" || error.code === "ENFILE") return _duplojs_lang_either.left("file-system-copy-too-many-open-files", error);
16
- else if (error.code === "EBUSY") return _duplojs_lang_either.left("file-system-copy-busy", error);
19
+ let copyError = void 0;
20
+ if ("code" in error) {
21
+ if (error.code === "ENOENT") copyError = new CopyErrorNotFound(error);
22
+ else if (error.code === "EACCES" || error.code === "EPERM") copyError = new CopyErrorPermissionDenied(error);
23
+ else if (error.code === "EEXIST") copyError = new CopyErrorAlreadyExists(error);
24
+ else if (error.code === "ENOTDIR") copyError = new CopyErrorNotDirectory(error);
25
+ else if (error.code === "ENOSPC") copyError = new CopyErrorNoSpace(error);
26
+ else if (error.code === "EROFS") copyError = new CopyErrorReadOnly(error);
27
+ else if (error.code === "EINVAL") copyError = new CopyErrorInvalidArgument(error);
28
+ else if (error.code === "EMFILE" || error.code === "ENFILE") copyError = new CopyErrorTooManyOpenFiles(error);
29
+ else if (error.code === "EBUSY") copyError = new CopyErrorBusy(error);
17
30
  }
18
- return _duplojs_lang_either.left("file-system-copy-error", error);
31
+ if (copyError === void 0) copyError = new CopyError(error);
32
+ return _duplojs_lang_either.left("file-system-copy-error", copyError);
19
33
  }
20
- const copyImplementation = require_implementor.implementFunction("copy", { NODE: async (fromPath, toPath) => {
21
- return (await require_implementor.nodeFileSystem.value).cp(fromPath, toPath, { recursive: true }).then(() => _duplojs_lang_either.right("file-system-copy")).catch(handleNodeCopyError);
22
- } });
34
+ const copyImplementation = require_implementor.implementFunction("copy", { NODE: async (fromPath, toPath) => require_implementor.nodeFileSystem.value.cp(fromPath, toPath, { recursive: true }).then(() => _duplojs_lang_either.right("file-system-copy")).catch(handleNodeCopyError) });
23
35
  function copy(...args) {
24
36
  if (args.length === 1) {
25
37
  const [toPath] = args;
@@ -28,4 +40,14 @@ function copy(...args) {
28
40
  return copyImplementation(...args);
29
41
  }
30
42
  //#endregion
43
+ exports.CopyError = CopyError;
44
+ exports.CopyErrorAlreadyExists = CopyErrorAlreadyExists;
45
+ exports.CopyErrorBusy = CopyErrorBusy;
46
+ exports.CopyErrorInvalidArgument = CopyErrorInvalidArgument;
47
+ exports.CopyErrorNoSpace = CopyErrorNoSpace;
48
+ exports.CopyErrorNotDirectory = CopyErrorNotDirectory;
49
+ exports.CopyErrorNotFound = CopyErrorNotFound;
50
+ exports.CopyErrorPermissionDenied = CopyErrorPermissionDenied;
51
+ exports.CopyErrorReadOnly = CopyErrorReadOnly;
52
+ exports.CopyErrorTooManyOpenFiles = CopyErrorTooManyOpenFiles;
31
53
  exports.copy = copy;
@@ -1,11 +1,43 @@
1
- import { FileSystemEither } from './types';
2
1
  import * as DEither from "@duplojs/lang/either";
3
2
  import type * as DPath from "@duplojs/lang/path";
4
- export type CopyResult = FileSystemEither<DEither.Right<"copy", void> | DEither.Left<"copy-not-found", unknown> | DEither.Left<"copy-permission-denied", unknown> | DEither.Left<"copy-already-exists", unknown> | DEither.Left<"copy-not-directory", unknown> | DEither.Left<"copy-no-space", unknown> | DEither.Left<"copy-read-only", unknown> | DEither.Left<"copy-invalid-argument", unknown> | DEither.Left<"copy-too-many-open-files", unknown> | DEither.Left<"copy-busy", unknown> | DEither.Left<"copy-error", unknown>>;
3
+ import * as DCommon from "@duplojs/lang/common";
4
+ declare const CopyErrorNotFound_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-copy-not-found", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-copy-not-found", unknown>>, unknown>;
5
+ export declare class CopyErrorNotFound extends CopyErrorNotFound_base {
6
+ }
7
+ declare const CopyErrorPermissionDenied_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-copy-permission-denied", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-copy-permission-denied", unknown>>, unknown>;
8
+ export declare class CopyErrorPermissionDenied extends CopyErrorPermissionDenied_base {
9
+ }
10
+ declare const CopyErrorAlreadyExists_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-copy-already-exists", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-copy-already-exists", unknown>>, unknown>;
11
+ export declare class CopyErrorAlreadyExists extends CopyErrorAlreadyExists_base {
12
+ }
13
+ declare const CopyErrorNotDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-copy-not-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-copy-not-directory", unknown>>, unknown>;
14
+ export declare class CopyErrorNotDirectory extends CopyErrorNotDirectory_base {
15
+ }
16
+ declare const CopyErrorNoSpace_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-copy-no-space", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-copy-no-space", unknown>>, unknown>;
17
+ export declare class CopyErrorNoSpace extends CopyErrorNoSpace_base {
18
+ }
19
+ declare const CopyErrorReadOnly_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-copy-read-only", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-copy-read-only", unknown>>, unknown>;
20
+ export declare class CopyErrorReadOnly extends CopyErrorReadOnly_base {
21
+ }
22
+ declare const CopyErrorInvalidArgument_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-copy-invalid-argument", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-copy-invalid-argument", unknown>>, unknown>;
23
+ export declare class CopyErrorInvalidArgument extends CopyErrorInvalidArgument_base {
24
+ }
25
+ declare const CopyErrorTooManyOpenFiles_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-copy-too-many-open-files", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-copy-too-many-open-files", unknown>>, unknown>;
26
+ export declare class CopyErrorTooManyOpenFiles extends CopyErrorTooManyOpenFiles_base {
27
+ }
28
+ declare const CopyErrorBusy_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-copy-busy", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-copy-busy", unknown>>, unknown>;
29
+ export declare class CopyErrorBusy extends CopyErrorBusy_base {
30
+ }
31
+ declare const CopyError_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-copy-error", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-copy-error", unknown>>, unknown>;
32
+ export declare class CopyError extends CopyError_base {
33
+ }
34
+ export type CopyErrors = (CopyErrorNotFound | CopyErrorPermissionDenied | CopyErrorAlreadyExists | CopyErrorNotDirectory | CopyErrorNoSpace | CopyErrorReadOnly | CopyErrorInvalidArgument | CopyErrorTooManyOpenFiles | CopyErrorBusy | CopyError);
35
+ export type CopyResult = (DEither.Right<"file-system-copy", void> | DEither.Left<"file-system-copy-error", CopyErrors>);
5
36
  declare module '../implementor' {
6
37
  interface ServerFunction {
7
- copy(fromPath: string & DPath.Path, toPath: string & DPath.Path): Promise<CopyResult>;
38
+ copy(fromPath: DPath.AnyPath, toPath: DPath.AnyPath): Promise<CopyResult>;
8
39
  }
9
40
  }
10
- export declare function copy(toPath: string & DPath.Path): (fromPath: string & DPath.Path) => Promise<CopyResult>;
11
- export declare function copy(fromPath: string & DPath.Path, toPath: string & DPath.Path): Promise<CopyResult>;
41
+ export declare function copy(toPath: DPath.AnyPath): (fromPath: DPath.AnyPath) => Promise<CopyResult>;
42
+ export declare function copy(fromPath: DPath.AnyPath, toPath: DPath.AnyPath): Promise<CopyResult>;
43
+ export {};
@@ -1,23 +1,34 @@
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/copy.ts
5
+ var CopyErrorNotFound = class extends DCommon.DuploJSError.parentClass("file-system-copy-not-found", Error) {};
6
+ var CopyErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-copy-permission-denied", Error) {};
7
+ var CopyErrorAlreadyExists = class extends DCommon.DuploJSError.parentClass("file-system-copy-already-exists", Error) {};
8
+ var CopyErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-copy-not-directory", Error) {};
9
+ var CopyErrorNoSpace = class extends DCommon.DuploJSError.parentClass("file-system-copy-no-space", Error) {};
10
+ var CopyErrorReadOnly = class extends DCommon.DuploJSError.parentClass("file-system-copy-read-only", Error) {};
11
+ var CopyErrorInvalidArgument = class extends DCommon.DuploJSError.parentClass("file-system-copy-invalid-argument", Error) {};
12
+ var CopyErrorTooManyOpenFiles = class extends DCommon.DuploJSError.parentClass("file-system-copy-too-many-open-files", Error) {};
13
+ var CopyErrorBusy = class extends DCommon.DuploJSError.parentClass("file-system-copy-busy", Error) {};
14
+ var CopyError = class extends DCommon.DuploJSError.parentClass("file-system-copy-error", Error) {};
4
15
  function handleNodeCopyError(error) {
5
- if (typeof error === "object" && error !== null && "code" in error) {
6
- if (error.code === "ENOENT") return DEither.left("file-system-copy-not-found", error);
7
- else if (error.code === "EACCES" || error.code === "EPERM") return DEither.left("file-system-copy-permission-denied", error);
8
- else if (error.code === "EEXIST") return DEither.left("file-system-copy-already-exists", error);
9
- else if (error.code === "ENOTDIR") return DEither.left("file-system-copy-not-directory", error);
10
- else if (error.code === "ENOSPC") return DEither.left("file-system-copy-no-space", error);
11
- else if (error.code === "EROFS") return DEither.left("file-system-copy-read-only", error);
12
- else if (error.code === "EINVAL") return DEither.left("file-system-copy-invalid-argument", error);
13
- else if (error.code === "EMFILE" || error.code === "ENFILE") return DEither.left("file-system-copy-too-many-open-files", error);
14
- else if (error.code === "EBUSY") return DEither.left("file-system-copy-busy", error);
16
+ let copyError = void 0;
17
+ if ("code" in error) {
18
+ if (error.code === "ENOENT") copyError = new CopyErrorNotFound(error);
19
+ else if (error.code === "EACCES" || error.code === "EPERM") copyError = new CopyErrorPermissionDenied(error);
20
+ else if (error.code === "EEXIST") copyError = new CopyErrorAlreadyExists(error);
21
+ else if (error.code === "ENOTDIR") copyError = new CopyErrorNotDirectory(error);
22
+ else if (error.code === "ENOSPC") copyError = new CopyErrorNoSpace(error);
23
+ else if (error.code === "EROFS") copyError = new CopyErrorReadOnly(error);
24
+ else if (error.code === "EINVAL") copyError = new CopyErrorInvalidArgument(error);
25
+ else if (error.code === "EMFILE" || error.code === "ENFILE") copyError = new CopyErrorTooManyOpenFiles(error);
26
+ else if (error.code === "EBUSY") copyError = new CopyErrorBusy(error);
15
27
  }
16
- return DEither.left("file-system-copy-error", error);
28
+ if (copyError === void 0) copyError = new CopyError(error);
29
+ return DEither.left("file-system-copy-error", copyError);
17
30
  }
18
- const copyImplementation = implementFunction("copy", { NODE: async (fromPath, toPath) => {
19
- return (await nodeFileSystem.value).cp(fromPath, toPath, { recursive: true }).then(() => DEither.right("file-system-copy")).catch(handleNodeCopyError);
20
- } });
31
+ const copyImplementation = implementFunction("copy", { NODE: async (fromPath, toPath) => nodeFileSystem.value.cp(fromPath, toPath, { recursive: true }).then(() => DEither.right("file-system-copy")).catch(handleNodeCopyError) });
21
32
  function copy(...args) {
22
33
  if (args.length === 1) {
23
34
  const [toPath] = args;
@@ -26,4 +37,4 @@ function copy(...args) {
26
37
  return copyImplementation(...args);
27
38
  }
28
39
  //#endregion
29
- export { copy };
40
+ export { CopyError, CopyErrorAlreadyExists, CopyErrorBusy, CopyErrorInvalidArgument, CopyErrorNoSpace, CopyErrorNotDirectory, CopyErrorNotFound, CopyErrorPermissionDenied, CopyErrorReadOnly, CopyErrorTooManyOpenFiles, copy };
@@ -3,13 +3,16 @@ const require_stat = require("./stat.cjs");
3
3
  const require_fileInterface = require("./fileInterface.cjs");
4
4
  const require_unknownEntryInterface = require("./unknownEntryInterface.cjs");
5
5
  const require_folderInterface = require("./folderInterface.cjs");
6
- let _duplojs_lang_either = require("@duplojs/lang/either");
7
- _duplojs_lang_either = require_runtime.__toESM(_duplojs_lang_either, 1);
6
+ let _duplojs_lang_common = require("@duplojs/lang/common");
7
+ _duplojs_lang_common = require_runtime.__toESM(_duplojs_lang_common, 1);
8
8
  let _duplojs_lang_pattern = require("@duplojs/lang/pattern");
9
9
  _duplojs_lang_pattern = require_runtime.__toESM(_duplojs_lang_pattern, 1);
10
+ let _duplojs_lang_either = require("@duplojs/lang/either");
11
+ _duplojs_lang_either = require_runtime.__toESM(_duplojs_lang_either, 1);
10
12
  //#region scripts/file/createEntryInterface.ts
11
13
  async function createEntryInterface(path) {
12
- const result = await _duplojs_lang_either.rightAsyncPipe(require_stat.stat(path), _duplojs_lang_pattern.when(({ isFile }) => isFile, () => _duplojs_lang_either.right("file-interface", require_fileInterface.createFileInterface(path))), _duplojs_lang_pattern.when(({ isDirectory }) => isDirectory, () => _duplojs_lang_either.right("folder-interface", require_folderInterface.createFolderInterface(path))), _duplojs_lang_pattern.otherwise(() => _duplojs_lang_either.right("unknown-entry-interface", require_unknownEntryInterface.createUnknownEntryInterface(path))));
14
+ const entryPath = _duplojs_lang_common.cast(path);
15
+ const result = await _duplojs_lang_either.rightAsyncPipe(require_stat.stat(path), _duplojs_lang_pattern.when(({ isFile }) => isFile, () => _duplojs_lang_either.right("file-interface", require_fileInterface.createFileInterface(entryPath))), _duplojs_lang_pattern.when(({ isDirectory }) => isDirectory, () => _duplojs_lang_either.right("folder-interface", require_folderInterface.createFolderInterface(entryPath))), _duplojs_lang_pattern.otherwise(() => _duplojs_lang_either.right("unknown-entry-interface", require_unknownEntryInterface.createUnknownEntryInterface(entryPath))));
13
16
  return _duplojs_lang_either.whenIsLeft(result, (value) => _duplojs_lang_either.left("create-entry-interface-error", value));
14
17
  }
15
18
  //#endregion
@@ -1,3 +1,3 @@
1
1
  import type * as DPath from "@duplojs/lang/path";
2
2
  import * as DEither from "@duplojs/lang/either";
3
- export declare function createEntryInterface(path: string & DPath.Path): Promise<DEither.Right<"file-interface", import('./fileInterface').FileInterface> | DEither.Right<"folder-interface", import('./folderInterface').FolderInterface> | DEither.Right<"unknown-entry-interface", import('./unknownEntryInterface').UnknownEntryInterface> | DEither.Left<"create-entry-interface-error", unknown>>;
3
+ export declare function createEntryInterface(path: DPath.AnyPath): Promise<DEither.Right<"file-interface", import('./fileInterface').FileInterface<string & DPath.Path>> | DEither.Right<"folder-interface", import('./folderInterface').FolderInterface<string & DPath.Path>> | DEither.Right<"unknown-entry-interface", import('./unknownEntryInterface').UnknownEntryInterface<string & DPath.Path>> | DEither.Left<"create-entry-interface-error", import('./stat').StatErrors>>;
@@ -2,11 +2,13 @@ import { stat } from "./stat.mjs";
2
2
  import { createFileInterface } from "./fileInterface.mjs";
3
3
  import { createUnknownEntryInterface } from "./unknownEntryInterface.mjs";
4
4
  import { createFolderInterface } from "./folderInterface.mjs";
5
- import * as DEither from "@duplojs/lang/either";
5
+ import * as DCommon from "@duplojs/lang/common";
6
6
  import * as DPattern from "@duplojs/lang/pattern";
7
+ import * as DEither from "@duplojs/lang/either";
7
8
  //#region scripts/file/createEntryInterface.ts
8
9
  async function createEntryInterface(path) {
9
- const result = await DEither.rightAsyncPipe(stat(path), DPattern.when(({ isFile }) => isFile, () => DEither.right("file-interface", createFileInterface(path))), DPattern.when(({ isDirectory }) => isDirectory, () => DEither.right("folder-interface", createFolderInterface(path))), DPattern.otherwise(() => DEither.right("unknown-entry-interface", createUnknownEntryInterface(path))));
10
+ const entryPath = DCommon.cast(path);
11
+ const result = await DEither.rightAsyncPipe(stat(path), DPattern.when(({ isFile }) => isFile, () => DEither.right("file-interface", createFileInterface(entryPath))), DPattern.when(({ isDirectory }) => isDirectory, () => DEither.right("folder-interface", createFolderInterface(entryPath))), DPattern.otherwise(() => DEither.right("unknown-entry-interface", createUnknownEntryInterface(entryPath))));
10
12
  return DEither.whenIsLeft(result, (value) => DEither.left("create-entry-interface-error", value));
11
13
  }
12
14
  //#endregion