@duplojs/server 0.0.0-stage → 0.1.0-beta.1

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 (262) hide show
  1. package/README +9 -0
  2. package/dist/_virtual/_rolldown/runtime.cjs +33 -0
  3. package/dist/_virtual/_rolldown/runtime.mjs +13 -0
  4. package/dist/command/argument.cjs +27 -0
  5. package/dist/command/argument.d.ts +18 -0
  6. package/dist/command/argument.mjs +24 -0
  7. package/dist/command/create.cjs +94 -0
  8. package/dist/command/create.d.ts +47 -0
  9. package/dist/command/create.mjs +88 -0
  10. package/dist/command/error.cjs +153 -0
  11. package/dist/command/error.d.ts +53 -0
  12. package/dist/command/error.mjs +140 -0
  13. package/dist/command/exec.cjs +19 -0
  14. package/dist/command/exec.d.ts +13 -0
  15. package/dist/command/exec.mjs +17 -0
  16. package/dist/command/execOptions.cjs +41 -0
  17. package/dist/command/execOptions.d.ts +14 -0
  18. package/dist/command/execOptions.mjs +37 -0
  19. package/dist/command/help.cjs +257 -0
  20. package/dist/command/help.d.ts +10 -0
  21. package/dist/command/help.mjs +244 -0
  22. package/dist/command/index.cjs +78 -0
  23. package/dist/command/index.d.ts +8 -0
  24. package/dist/command/index.mjs +45 -0
  25. package/dist/command/kind.cjs +7 -0
  26. package/dist/command/kind.d.ts +2 -0
  27. package/dist/command/kind.mjs +5 -0
  28. package/dist/command/options/base.cjs +68 -0
  29. package/dist/command/options/base.d.ts +24 -0
  30. package/dist/command/options/base.mjs +63 -0
  31. package/dist/command/options/defaults/array.cjs +35 -0
  32. package/dist/command/options/defaults/array.d.ts +24 -0
  33. package/dist/command/options/defaults/array.mjs +29 -0
  34. package/dist/command/options/defaults/boolean.cjs +14 -0
  35. package/dist/command/options/defaults/boolean.d.ts +11 -0
  36. package/dist/command/options/defaults/boolean.mjs +13 -0
  37. package/dist/command/options/defaults/index.d.ts +3 -0
  38. package/dist/command/options/defaults/simple.cjs +25 -0
  39. package/dist/command/options/defaults/simple.d.ts +16 -0
  40. package/dist/command/options/defaults/simple.mjs +22 -0
  41. package/dist/command/options/identifier.cjs +7 -0
  42. package/dist/command/options/identifier.d.ts +4 -0
  43. package/dist/command/options/identifier.mjs +5 -0
  44. package/dist/command/options/index.d.ts +4 -0
  45. package/dist/command/options/types/index.d.ts +1 -0
  46. package/dist/command/options/types/options.d.ts +9 -0
  47. package/dist/command/types/eligibleType.d.ts +4 -0
  48. package/dist/command/types/forbiddenDuplicateName.d.ts +11 -0
  49. package/dist/command/types/index.d.ts +2 -0
  50. package/dist/common/environmentVariable/expandEnvironmentVariables.cjs +27 -0
  51. package/dist/common/environmentVariable/expandEnvironmentVariables.d.ts +2 -0
  52. package/dist/common/environmentVariable/expandEnvironmentVariables.mjs +22 -0
  53. package/dist/common/environmentVariable/index.cjs +47 -0
  54. package/dist/common/environmentVariable/index.d.ts +16 -0
  55. package/dist/common/environmentVariable/index.mjs +41 -0
  56. package/dist/common/environmentVariable/overrideEnvironmentVariables.cjs +13 -0
  57. package/dist/common/environmentVariable/overrideEnvironmentVariables.d.ts +3 -0
  58. package/dist/common/environmentVariable/overrideEnvironmentVariables.mjs +9 -0
  59. package/dist/common/environmentVariable/parseEnvironmentFiles.cjs +32 -0
  60. package/dist/common/environmentVariable/parseEnvironmentFiles.d.ts +4 -0
  61. package/dist/common/environmentVariable/parseEnvironmentFiles.mjs +26 -0
  62. package/dist/common/environmentVariableOrThrow.cjs +23 -0
  63. package/dist/common/environmentVariableOrThrow.d.ts +12 -0
  64. package/dist/common/environmentVariableOrThrow.mjs +19 -0
  65. package/dist/common/exitProcess.cjs +7 -0
  66. package/dist/common/exitProcess.d.ts +6 -0
  67. package/dist/common/exitProcess.mjs +8 -0
  68. package/dist/common/getCurrentWorkDirectory.cjs +15 -0
  69. package/dist/common/getCurrentWorkDirectory.d.ts +8 -0
  70. package/dist/common/getCurrentWorkDirectory.mjs +11 -0
  71. package/dist/common/getCurrentWorkDirectoryOrThrow.cjs +25 -0
  72. package/dist/common/getCurrentWorkDirectoryOrThrow.d.ts +8 -0
  73. package/dist/common/getCurrentWorkDirectoryOrThrow.mjs +20 -0
  74. package/dist/common/getProcessArguments.cjs +18 -0
  75. package/dist/common/getProcessArguments.d.ts +6 -0
  76. package/dist/common/getProcessArguments.mjs +18 -0
  77. package/dist/common/index.cjs +41 -0
  78. package/dist/common/index.d.ts +8 -0
  79. package/dist/common/index.mjs +25 -0
  80. package/dist/common/setCurrentWorkingDirectory.cjs +11 -0
  81. package/dist/common/setCurrentWorkingDirectory.d.ts +8 -0
  82. package/dist/common/setCurrentWorkingDirectory.mjs +9 -0
  83. package/dist/common/setCurrentWorkingDirectoryOrThrow.cjs +23 -0
  84. package/dist/common/setCurrentWorkingDirectoryOrThrow.d.ts +8 -0
  85. package/dist/common/setCurrentWorkingDirectoryOrThrow.mjs +18 -0
  86. package/dist/dataStructure/common/codec/defaults/index.d.ts +2 -0
  87. package/dist/dataStructure/common/codec/defaults/json.cjs +14 -0
  88. package/dist/dataStructure/common/codec/defaults/json.d.ts +9 -0
  89. package/dist/dataStructure/common/codec/defaults/json.mjs +11 -0
  90. package/dist/dataStructure/common/codec/defaults/string.cjs +14 -0
  91. package/dist/dataStructure/common/codec/defaults/string.d.ts +13 -0
  92. package/dist/dataStructure/common/codec/defaults/string.mjs +11 -0
  93. package/dist/dataStructure/common/codec/index.d.ts +1 -0
  94. package/dist/dataStructure/common/error/defaultInterpreter.cjs +27 -0
  95. package/dist/dataStructure/common/error/defaultInterpreter.d.ts +64 -0
  96. package/dist/dataStructure/common/error/defaultInterpreter.mjs +24 -0
  97. package/dist/dataStructure/common/error/index.d.ts +1 -0
  98. package/dist/dataStructure/common/index.d.ts +2 -0
  99. package/dist/dataStructure/constraint/exist.cjs +19 -0
  100. package/dist/dataStructure/constraint/exist.d.ts +10 -0
  101. package/dist/dataStructure/constraint/exist.mjs +15 -0
  102. package/dist/dataStructure/constraint/index.d.ts +4 -0
  103. package/dist/dataStructure/constraint/mimeType.cjs +18 -0
  104. package/dist/dataStructure/constraint/mimeType.d.ts +11 -0
  105. package/dist/dataStructure/constraint/mimeType.mjs +14 -0
  106. package/dist/dataStructure/constraint/size.cjs +29 -0
  107. package/dist/dataStructure/constraint/size.d.ts +16 -0
  108. package/dist/dataStructure/constraint/size.mjs +24 -0
  109. package/dist/dataStructure/constraint/types/constraints.d.ts +10 -0
  110. package/dist/dataStructure/constraint/types/index.d.ts +1 -0
  111. package/dist/dataStructure/fundamentalType/file.cjs +11 -0
  112. package/dist/dataStructure/fundamentalType/file.d.ts +8 -0
  113. package/dist/dataStructure/fundamentalType/file.mjs +8 -0
  114. package/dist/dataStructure/fundamentalType/index.d.ts +2 -0
  115. package/dist/dataStructure/fundamentalType/types/fundamentalTypes.d.ts +6 -0
  116. package/dist/dataStructure/fundamentalType/types/index.d.ts +1 -0
  117. package/dist/dataStructure/helper/exist.cjs +7 -0
  118. package/dist/dataStructure/helper/exist.d.ts +2 -0
  119. package/dist/dataStructure/helper/exist.mjs +7 -0
  120. package/dist/dataStructure/helper/file.cjs +10 -0
  121. package/dist/dataStructure/helper/file.d.ts +3 -0
  122. package/dist/dataStructure/helper/file.mjs +8 -0
  123. package/dist/dataStructure/helper/index.d.ts +4 -0
  124. package/dist/dataStructure/helper/mimeType.cjs +7 -0
  125. package/dist/dataStructure/helper/mimeType.d.ts +2 -0
  126. package/dist/dataStructure/helper/mimeType.mjs +7 -0
  127. package/dist/dataStructure/helper/size.cjs +7 -0
  128. package/dist/dataStructure/helper/size.d.ts +2 -0
  129. package/dist/dataStructure/helper/size.mjs +7 -0
  130. package/dist/dataStructure/index.cjs +62 -0
  131. package/dist/dataStructure/index.d.ts +6 -0
  132. package/dist/dataStructure/index.mjs +38 -0
  133. package/dist/dataStructure/kind.cjs +7 -0
  134. package/dist/dataStructure/kind.d.ts +2 -0
  135. package/dist/dataStructure/kind.mjs +5 -0
  136. package/dist/dataStructure/type/file.cjs +14 -0
  137. package/dist/dataStructure/type/file.d.ts +11 -0
  138. package/dist/dataStructure/type/file.mjs +11 -0
  139. package/dist/dataStructure/type/index.d.ts +2 -0
  140. package/dist/dataStructure/type/types/index.d.ts +1 -0
  141. package/dist/dataStructure/type/types/types.d.ts +6 -0
  142. package/dist/file/appendFile.cjs +43 -0
  143. package/dist/file/appendFile.d.ts +11 -0
  144. package/dist/file/appendFile.mjs +41 -0
  145. package/dist/file/appendTextFile.cjs +43 -0
  146. package/dist/file/appendTextFile.d.ts +11 -0
  147. package/dist/file/appendTextFile.mjs +41 -0
  148. package/dist/file/copy.cjs +31 -0
  149. package/dist/file/copy.d.ts +11 -0
  150. package/dist/file/copy.mjs +29 -0
  151. package/dist/file/createEntryInterface.cjs +16 -0
  152. package/dist/file/createEntryInterface.d.ts +3 -0
  153. package/dist/file/createEntryInterface.mjs +13 -0
  154. package/dist/file/ensureDirectory.cjs +32 -0
  155. package/dist/file/ensureDirectory.d.ts +10 -0
  156. package/dist/file/ensureDirectory.mjs +30 -0
  157. package/dist/file/ensureFile.cjs +38 -0
  158. package/dist/file/ensureFile.d.ts +10 -0
  159. package/dist/file/ensureFile.mjs +36 -0
  160. package/dist/file/exists.cjs +29 -0
  161. package/dist/file/exists.d.ts +10 -0
  162. package/dist/file/exists.mjs +27 -0
  163. package/dist/file/fileInterface.cjs +74 -0
  164. package/dist/file/fileInterface.d.ts +30 -0
  165. package/dist/file/fileInterface.mjs +69 -0
  166. package/dist/file/folderInterface.cjs +74 -0
  167. package/dist/file/folderInterface.d.ts +32 -0
  168. package/dist/file/folderInterface.mjs +69 -0
  169. package/dist/file/index.cjs +122 -0
  170. package/dist/file/index.d.ts +36 -0
  171. package/dist/file/index.mjs +79 -0
  172. package/dist/file/link.cjs +44 -0
  173. package/dist/file/link.d.ts +11 -0
  174. package/dist/file/link.mjs +42 -0
  175. package/dist/file/linkStat.cjs +84 -0
  176. package/dist/file/linkStat.d.ts +11 -0
  177. package/dist/file/linkStat.mjs +80 -0
  178. package/dist/file/makeDirectory.cjs +36 -0
  179. package/dist/file/makeDirectory.d.ts +14 -0
  180. package/dist/file/makeDirectory.mjs +34 -0
  181. package/dist/file/makeTemporaryDirectory.cjs +30 -0
  182. package/dist/file/makeTemporaryDirectory.d.ts +9 -0
  183. package/dist/file/makeTemporaryDirectory.mjs +28 -0
  184. package/dist/file/makeTemporaryFile.cjs +45 -0
  185. package/dist/file/makeTemporaryFile.d.ts +10 -0
  186. package/dist/file/makeTemporaryFile.mjs +41 -0
  187. package/dist/file/move.cjs +45 -0
  188. package/dist/file/move.d.ts +11 -0
  189. package/dist/file/move.mjs +43 -0
  190. package/dist/file/readDirectory.cjs +20 -0
  191. package/dist/file/readDirectory.d.ts +14 -0
  192. package/dist/file/readDirectory.mjs +18 -0
  193. package/dist/file/readFile.cjs +33 -0
  194. package/dist/file/readFile.d.ts +10 -0
  195. package/dist/file/readFile.mjs +31 -0
  196. package/dist/file/readJsonFile.cjs +33 -0
  197. package/dist/file/readJsonFile.d.ts +11 -0
  198. package/dist/file/readJsonFile.mjs +31 -0
  199. package/dist/file/readLink.cjs +30 -0
  200. package/dist/file/readLink.d.ts +10 -0
  201. package/dist/file/readLink.mjs +28 -0
  202. package/dist/file/readTextFile.cjs +33 -0
  203. package/dist/file/readTextFile.d.ts +10 -0
  204. package/dist/file/readTextFile.mjs +31 -0
  205. package/dist/file/realPath.cjs +28 -0
  206. package/dist/file/realPath.d.ts +10 -0
  207. package/dist/file/realPath.mjs +26 -0
  208. package/dist/file/relocate.cjs +56 -0
  209. package/dist/file/relocate.d.ts +11 -0
  210. package/dist/file/relocate.mjs +53 -0
  211. package/dist/file/remove.cjs +38 -0
  212. package/dist/file/remove.d.ts +14 -0
  213. package/dist/file/remove.mjs +36 -0
  214. package/dist/file/rename.cjs +56 -0
  215. package/dist/file/rename.d.ts +11 -0
  216. package/dist/file/rename.mjs +53 -0
  217. package/dist/file/setMode.cjs +51 -0
  218. package/dist/file/setMode.d.ts +26 -0
  219. package/dist/file/setMode.mjs +48 -0
  220. package/dist/file/setOwner.cjs +37 -0
  221. package/dist/file/setOwner.d.ts +15 -0
  222. package/dist/file/setOwner.mjs +35 -0
  223. package/dist/file/setTime.cjs +39 -0
  224. package/dist/file/setTime.d.ts +17 -0
  225. package/dist/file/setTime.mjs +36 -0
  226. package/dist/file/stat.cjs +85 -0
  227. package/dist/file/stat.d.ts +42 -0
  228. package/dist/file/stat.mjs +81 -0
  229. package/dist/file/symlink.cjs +42 -0
  230. package/dist/file/symlink.d.ts +19 -0
  231. package/dist/file/symlink.mjs +40 -0
  232. package/dist/file/truncate.cjs +38 -0
  233. package/dist/file/truncate.d.ts +10 -0
  234. package/dist/file/truncate.mjs +35 -0
  235. package/dist/file/types/fileSystemEither.d.ts +2 -0
  236. package/dist/file/types/index.d.ts +1 -0
  237. package/dist/file/unknownEntryInterface.cjs +36 -0
  238. package/dist/file/unknownEntryInterface.d.ts +15 -0
  239. package/dist/file/unknownEntryInterface.mjs +33 -0
  240. package/dist/file/walkDirectory.cjs +34 -0
  241. package/dist/file/walkDirectory.d.ts +16 -0
  242. package/dist/file/walkDirectory.mjs +28 -0
  243. package/dist/file/writeFile.cjs +44 -0
  244. package/dist/file/writeFile.d.ts +11 -0
  245. package/dist/file/writeFile.mjs +42 -0
  246. package/dist/file/writeJsonFile.cjs +56 -0
  247. package/dist/file/writeJsonFile.d.ts +15 -0
  248. package/dist/file/writeJsonFile.mjs +53 -0
  249. package/dist/file/writeTextFile.cjs +44 -0
  250. package/dist/file/writeTextFile.d.ts +11 -0
  251. package/dist/file/writeTextFile.mjs +42 -0
  252. package/dist/implementor.cjs +64 -0
  253. package/dist/implementor.d.ts +35 -0
  254. package/dist/implementor.mjs +52 -0
  255. package/dist/index.cjs +74 -0
  256. package/dist/index.d.ts +9 -0
  257. package/dist/index.mjs +14 -0
  258. package/dist/kind.cjs +7 -0
  259. package/dist/kind.d.ts +2 -0
  260. package/dist/kind.mjs +5 -0
  261. package/package.json +81 -3
  262. package/README.md +0 -3
@@ -0,0 +1,80 @@
1
+ import { implementFunction, nodeFileSystem } from "../implementor.mjs";
2
+ import * as DCommon from "@duplojs/lang/common";
3
+ import * as DEither from "@duplojs/lang/either";
4
+ import * as DChrono from "@duplojs/lang/chrono";
5
+ //#region scripts/file/linkStat.ts
6
+ function handleNodeLinkStatError(error) {
7
+ if (typeof error === "object" && error !== null && "code" in error) {
8
+ if (error.code === "ENOENT") return DEither.left("file-system-link-stat-not-found", error);
9
+ else if (error.code === "EACCES" || error.code === "EPERM") return DEither.left("file-system-link-stat-permission-denied", error);
10
+ else if (error.code === "ENOTDIR") return DEither.left("file-system-link-stat-not-directory", error);
11
+ else if (error.code === "EMFILE" || error.code === "ENFILE") return DEither.left("file-system-link-stat-too-many-open-files", error);
12
+ else if (error.code === "EBUSY") return DEither.left("file-system-link-stat-busy", error);
13
+ }
14
+ return DEither.left("file-system-link-stat-error", error);
15
+ }
16
+ function handleDenoLinkStatError(error) {
17
+ if (error instanceof Deno.errors.NotFound) return DEither.left("file-system-link-stat-not-found", error);
18
+ if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return DEither.left("file-system-link-stat-permission-denied", error);
19
+ if (error instanceof Deno.errors.NotADirectory) return DEither.left("file-system-link-stat-not-directory", error);
20
+ if (error instanceof Deno.errors.Busy) return DEither.left("file-system-link-stat-busy", error);
21
+ return DEither.left("file-system-link-stat-error", error);
22
+ }
23
+ function createStatInfoWithFsSource(source) {
24
+ return {
25
+ isFile: source.isFile(),
26
+ isDirectory: source.isDirectory(),
27
+ isSymlink: source.isSymbolicLink(),
28
+ sizeBytes: source.size,
29
+ modifiedAt: DChrono.isSafeTimestamp(source.mtime.getTime()) ? DChrono.createDateOrThrow(source.mtime) : null,
30
+ accessedAt: DChrono.isSafeTimestamp(source.atime.getTime()) ? DChrono.createDateOrThrow(source.atime) : null,
31
+ createdAt: DChrono.isSafeTimestamp(source.birthtime.getTime()) ? DChrono.createDateOrThrow(source.birthtime) : null,
32
+ changedAt: DChrono.isSafeTimestamp(source.ctime.getTime()) ? DChrono.createDateOrThrow(source.ctime) : null,
33
+ deviceId: source.dev,
34
+ inode: source.ino,
35
+ permissionsMode: source.mode,
36
+ hardLinkCount: source.nlink,
37
+ ownerUserId: source.uid,
38
+ ownerGroupId: source.gid,
39
+ specialDeviceId: source.rdev,
40
+ ioBlockSize: source.blksize,
41
+ allocatedBlockCount: source.blocks,
42
+ isBlockDevice: source.isBlockDevice(),
43
+ isCharacterDevice: source.isCharacterDevice(),
44
+ isFifo: source.isFIFO(),
45
+ isSocket: source.isSocket()
46
+ };
47
+ }
48
+ function createStatInfoWithDeno(source) {
49
+ return {
50
+ isFile: source.isFile,
51
+ isDirectory: source.isDirectory,
52
+ isSymlink: source.isSymlink,
53
+ sizeBytes: source.size,
54
+ modifiedAt: source.mtime && DChrono.isSafeTimestamp(source.mtime.getTime()) ? DChrono.createDateOrThrow(source.mtime) : null,
55
+ accessedAt: source.atime && DChrono.isSafeTimestamp(source.atime.getTime()) ? DChrono.createDateOrThrow(source.atime) : null,
56
+ createdAt: source.birthtime && DChrono.isSafeTimestamp(source.birthtime.getTime()) ? DChrono.createDateOrThrow(source.birthtime) : null,
57
+ changedAt: source.ctime && DChrono.isSafeTimestamp(source.ctime.getTime()) ? DChrono.createDateOrThrow(source.ctime) : null,
58
+ deviceId: source.dev,
59
+ inode: source.ino,
60
+ permissionsMode: source.mode,
61
+ hardLinkCount: source.nlink,
62
+ ownerUserId: source.uid,
63
+ ownerGroupId: source.gid,
64
+ specialDeviceId: source.rdev,
65
+ ioBlockSize: source.blksize,
66
+ allocatedBlockCount: source.blocks,
67
+ isBlockDevice: source.isBlockDevice,
68
+ isCharacterDevice: source.isCharDevice,
69
+ isFifo: source.isFifo,
70
+ isSocket: source.isSocket
71
+ };
72
+ }
73
+ const linkStat = implementFunction("linkStat", {
74
+ NODE: async (path) => {
75
+ return (await nodeFileSystem.value).lstat(path).then(DCommon.innerPipe(createStatInfoWithFsSource, (value) => DEither.right("file-system-link-stat", value))).catch(handleNodeLinkStatError);
76
+ },
77
+ DENO: (path) => Deno.lstat(path).then(DCommon.innerPipe(createStatInfoWithDeno, (value) => DEither.right("file-system-link-stat", value))).catch(handleDenoLinkStatError)
78
+ });
79
+ //#endregion
80
+ export { linkStat };
@@ -0,0 +1,36 @@
1
+ const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
2
+ const require_implementor = require("../implementor.cjs");
3
+ let _duplojs_lang_either = require("@duplojs/lang/either");
4
+ _duplojs_lang_either = require_runtime.__toESM(_duplojs_lang_either, 1);
5
+ //#region scripts/file/makeDirectory.ts
6
+ function handleNodeMakeDirectoryError(error) {
7
+ if (typeof error === "object" && error !== null && "code" in error) {
8
+ if (error.code === "ENOENT") return _duplojs_lang_either.left("file-system-make-directory-not-found", error);
9
+ else if (error.code === "EACCES" || error.code === "EPERM") return _duplojs_lang_either.left("file-system-make-directory-permission-denied", error);
10
+ else if (error.code === "EEXIST") return _duplojs_lang_either.left("file-system-make-directory-already-exists", error);
11
+ else if (error.code === "ENOTDIR") return _duplojs_lang_either.left("file-system-make-directory-not-directory", error);
12
+ else if (error.code === "ENOSPC") return _duplojs_lang_either.left("file-system-make-directory-no-space", error);
13
+ else if (error.code === "EROFS") return _duplojs_lang_either.left("file-system-make-directory-read-only", error);
14
+ else if (error.code === "EINVAL") return _duplojs_lang_either.left("file-system-make-directory-invalid-argument", error);
15
+ else if (error.code === "EMFILE" || error.code === "ENFILE") return _duplojs_lang_either.left("file-system-make-directory-too-many-open-files", error);
16
+ else if (error.code === "EBUSY") return _duplojs_lang_either.left("file-system-make-directory-busy", error);
17
+ }
18
+ return _duplojs_lang_either.left("file-system-make-directory-error", error);
19
+ }
20
+ function handleDenoMakeDirectoryError(error) {
21
+ if (error instanceof Deno.errors.NotFound) return _duplojs_lang_either.left("file-system-make-directory-not-found", error);
22
+ if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return _duplojs_lang_either.left("file-system-make-directory-permission-denied", error);
23
+ if (error instanceof Deno.errors.AlreadyExists) return _duplojs_lang_either.left("file-system-make-directory-already-exists", error);
24
+ if (error instanceof Deno.errors.NotADirectory) return _duplojs_lang_either.left("file-system-make-directory-not-directory", error);
25
+ if (error instanceof Deno.errors.InvalidData) return _duplojs_lang_either.left("file-system-make-directory-invalid-argument", error);
26
+ if (error instanceof Deno.errors.Busy) return _duplojs_lang_either.left("file-system-make-directory-busy", error);
27
+ return _duplojs_lang_either.left("file-system-make-directory-error", error);
28
+ }
29
+ const makeDirectory = require_implementor.implementFunction("makeDirectory", {
30
+ NODE: async (path, params) => {
31
+ return (await require_implementor.nodeFileSystem.value).mkdir(path, { recursive: params?.recursive }).then(() => _duplojs_lang_either.right("file-system-make-directory")).catch(handleNodeMakeDirectoryError);
32
+ },
33
+ DENO: (path, params) => Deno.mkdir(path, { recursive: params?.recursive }).then(() => _duplojs_lang_either.right("file-system-make-directory")).catch(handleDenoMakeDirectoryError)
34
+ });
35
+ //#endregion
36
+ exports.makeDirectory = makeDirectory;
@@ -0,0 +1,14 @@
1
+ import { FileSystemEither } from './types';
2
+ import * as DEither from "@duplojs/lang/either";
3
+ import type * as DPath from "@duplojs/lang/path";
4
+ interface MakeDirectoryParams {
5
+ recursive?: boolean;
6
+ }
7
+ export type MakeDirectoryResult = FileSystemEither<DEither.Right<"make-directory", void> | DEither.Left<"make-directory-not-found", unknown> | DEither.Left<"make-directory-permission-denied", unknown> | DEither.Left<"make-directory-already-exists", unknown> | DEither.Left<"make-directory-not-directory", unknown> | DEither.Left<"make-directory-no-space", unknown> | DEither.Left<"make-directory-read-only", unknown> | DEither.Left<"make-directory-invalid-argument", unknown> | DEither.Left<"make-directory-too-many-open-files", unknown> | DEither.Left<"make-directory-busy", unknown> | DEither.Left<"make-directory-error", unknown>>;
8
+ declare module '../implementor' {
9
+ interface ServerFunction {
10
+ makeDirectory(path: string & DPath.Path, params?: MakeDirectoryParams): Promise<MakeDirectoryResult>;
11
+ }
12
+ }
13
+ export declare const makeDirectory: (path: string & DPath.Path, params?: MakeDirectoryParams) => Promise<MakeDirectoryResult>;
14
+ export {};
@@ -0,0 +1,34 @@
1
+ import { implementFunction, nodeFileSystem } from "../implementor.mjs";
2
+ import * as DEither from "@duplojs/lang/either";
3
+ //#region scripts/file/makeDirectory.ts
4
+ function handleNodeMakeDirectoryError(error) {
5
+ if (typeof error === "object" && error !== null && "code" in error) {
6
+ if (error.code === "ENOENT") return DEither.left("file-system-make-directory-not-found", error);
7
+ else if (error.code === "EACCES" || error.code === "EPERM") return DEither.left("file-system-make-directory-permission-denied", error);
8
+ else if (error.code === "EEXIST") return DEither.left("file-system-make-directory-already-exists", error);
9
+ else if (error.code === "ENOTDIR") return DEither.left("file-system-make-directory-not-directory", error);
10
+ else if (error.code === "ENOSPC") return DEither.left("file-system-make-directory-no-space", error);
11
+ else if (error.code === "EROFS") return DEither.left("file-system-make-directory-read-only", error);
12
+ else if (error.code === "EINVAL") return DEither.left("file-system-make-directory-invalid-argument", error);
13
+ else if (error.code === "EMFILE" || error.code === "ENFILE") return DEither.left("file-system-make-directory-too-many-open-files", error);
14
+ else if (error.code === "EBUSY") return DEither.left("file-system-make-directory-busy", error);
15
+ }
16
+ return DEither.left("file-system-make-directory-error", error);
17
+ }
18
+ function handleDenoMakeDirectoryError(error) {
19
+ if (error instanceof Deno.errors.NotFound) return DEither.left("file-system-make-directory-not-found", error);
20
+ if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return DEither.left("file-system-make-directory-permission-denied", error);
21
+ if (error instanceof Deno.errors.AlreadyExists) return DEither.left("file-system-make-directory-already-exists", error);
22
+ if (error instanceof Deno.errors.NotADirectory) return DEither.left("file-system-make-directory-not-directory", error);
23
+ if (error instanceof Deno.errors.InvalidData) return DEither.left("file-system-make-directory-invalid-argument", error);
24
+ if (error instanceof Deno.errors.Busy) return DEither.left("file-system-make-directory-busy", error);
25
+ return DEither.left("file-system-make-directory-error", error);
26
+ }
27
+ const makeDirectory = implementFunction("makeDirectory", {
28
+ NODE: async (path, params) => {
29
+ return (await nodeFileSystem.value).mkdir(path, { recursive: params?.recursive }).then(() => DEither.right("file-system-make-directory")).catch(handleNodeMakeDirectoryError);
30
+ },
31
+ DENO: (path, params) => Deno.mkdir(path, { recursive: params?.recursive }).then(() => DEither.right("file-system-make-directory")).catch(handleDenoMakeDirectoryError)
32
+ });
33
+ //#endregion
34
+ export { makeDirectory };
@@ -0,0 +1,30 @@
1
+ const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
2
+ const require_implementor = require("../implementor.cjs");
3
+ let _duplojs_lang_either = require("@duplojs/lang/either");
4
+ _duplojs_lang_either = require_runtime.__toESM(_duplojs_lang_either, 1);
5
+ //#region scripts/file/makeTemporaryDirectory.ts
6
+ function handleNodeMakeTemporaryDirectoryError(error) {
7
+ if (typeof error === "object" && error !== null && "code" in error) {
8
+ if (error.code === "EACCES" || error.code === "EPERM") return _duplojs_lang_either.left("file-system-make-temporary-directory-permission-denied", error);
9
+ else if (error.code === "ENOTDIR") return _duplojs_lang_either.left("file-system-make-temporary-directory-not-directory", error);
10
+ else if (error.code === "ENOSPC") return _duplojs_lang_either.left("file-system-make-temporary-directory-no-space", error);
11
+ else if (error.code === "EROFS") return _duplojs_lang_either.left("file-system-make-temporary-directory-read-only", error);
12
+ else if (error.code === "EINVAL") return _duplojs_lang_either.left("file-system-make-temporary-directory-invalid-argument", error);
13
+ else if (error.code === "EMFILE" || error.code === "ENFILE") return _duplojs_lang_either.left("file-system-make-temporary-directory-too-many-open-files", error);
14
+ }
15
+ return _duplojs_lang_either.left("file-system-make-temporary-directory-error", error);
16
+ }
17
+ function handleDenoMakeTemporaryDirectoryError(error) {
18
+ if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return _duplojs_lang_either.left("file-system-make-temporary-directory-permission-denied", error);
19
+ if (error instanceof Deno.errors.NotADirectory) return _duplojs_lang_either.left("file-system-make-temporary-directory-not-directory", error);
20
+ if (error instanceof Deno.errors.InvalidData) return _duplojs_lang_either.left("file-system-make-temporary-directory-invalid-argument", error);
21
+ return _duplojs_lang_either.left("file-system-make-temporary-directory-error", error);
22
+ }
23
+ const makeTemporaryDirectory = require_implementor.implementFunction("makeTemporaryDirectory", {
24
+ NODE: async (prefix) => {
25
+ return (await require_implementor.nodeFileSystem.value).mkdtemp(prefix).then((value) => _duplojs_lang_either.right("file-system-make-temporary-directory", value)).catch(handleNodeMakeTemporaryDirectoryError);
26
+ },
27
+ DENO: (prefix) => Deno.makeTempDir({ prefix }).then((value) => _duplojs_lang_either.right("file-system-make-temporary-directory", value)).catch(handleDenoMakeTemporaryDirectoryError)
28
+ });
29
+ //#endregion
30
+ exports.makeTemporaryDirectory = makeTemporaryDirectory;
@@ -0,0 +1,9 @@
1
+ import { FileSystemEither } from './types';
2
+ import * as DEither from "@duplojs/lang/either";
3
+ export type MakeTemporaryDirectoryResult = FileSystemEither<DEither.Right<"make-temporary-directory", string> | DEither.Left<"make-temporary-directory-permission-denied", unknown> | DEither.Left<"make-temporary-directory-not-directory", unknown> | DEither.Left<"make-temporary-directory-no-space", unknown> | DEither.Left<"make-temporary-directory-read-only", unknown> | DEither.Left<"make-temporary-directory-invalid-argument", unknown> | DEither.Left<"make-temporary-directory-too-many-open-files", unknown> | DEither.Left<"make-temporary-directory-error", unknown>>;
4
+ declare module '../implementor' {
5
+ interface ServerFunction {
6
+ makeTemporaryDirectory(prefix: string): Promise<MakeTemporaryDirectoryResult>;
7
+ }
8
+ }
9
+ export declare const makeTemporaryDirectory: (prefix: string) => Promise<MakeTemporaryDirectoryResult>;
@@ -0,0 +1,28 @@
1
+ import { implementFunction, nodeFileSystem } from "../implementor.mjs";
2
+ import * as DEither from "@duplojs/lang/either";
3
+ //#region scripts/file/makeTemporaryDirectory.ts
4
+ function handleNodeMakeTemporaryDirectoryError(error) {
5
+ if (typeof error === "object" && error !== null && "code" in error) {
6
+ if (error.code === "EACCES" || error.code === "EPERM") return DEither.left("file-system-make-temporary-directory-permission-denied", error);
7
+ else if (error.code === "ENOTDIR") return DEither.left("file-system-make-temporary-directory-not-directory", error);
8
+ else if (error.code === "ENOSPC") return DEither.left("file-system-make-temporary-directory-no-space", error);
9
+ else if (error.code === "EROFS") return DEither.left("file-system-make-temporary-directory-read-only", error);
10
+ else if (error.code === "EINVAL") return DEither.left("file-system-make-temporary-directory-invalid-argument", error);
11
+ else if (error.code === "EMFILE" || error.code === "ENFILE") return DEither.left("file-system-make-temporary-directory-too-many-open-files", error);
12
+ }
13
+ return DEither.left("file-system-make-temporary-directory-error", error);
14
+ }
15
+ function handleDenoMakeTemporaryDirectoryError(error) {
16
+ if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return DEither.left("file-system-make-temporary-directory-permission-denied", error);
17
+ if (error instanceof Deno.errors.NotADirectory) return DEither.left("file-system-make-temporary-directory-not-directory", error);
18
+ if (error instanceof Deno.errors.InvalidData) return DEither.left("file-system-make-temporary-directory-invalid-argument", error);
19
+ return DEither.left("file-system-make-temporary-directory-error", error);
20
+ }
21
+ const makeTemporaryDirectory = implementFunction("makeTemporaryDirectory", {
22
+ NODE: async (prefix) => {
23
+ return (await nodeFileSystem.value).mkdtemp(prefix).then((value) => DEither.right("file-system-make-temporary-directory", value)).catch(handleNodeMakeTemporaryDirectoryError);
24
+ },
25
+ DENO: (prefix) => Deno.makeTempDir({ prefix }).then((value) => DEither.right("file-system-make-temporary-directory", value)).catch(handleDenoMakeTemporaryDirectoryError)
26
+ });
27
+ //#endregion
28
+ export { makeTemporaryDirectory };
@@ -0,0 +1,45 @@
1
+ const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
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);
5
+ let _duplojs_lang_either = require("@duplojs/lang/either");
6
+ _duplojs_lang_either = require_runtime.__toESM(_duplojs_lang_either, 1);
7
+ let _duplojs_lang_path = require("@duplojs/lang/path");
8
+ _duplojs_lang_path = require_runtime.__toESM(_duplojs_lang_path, 1);
9
+ //#region scripts/file/makeTemporaryFile.ts
10
+ function handleNodeMakeTemporaryFileError(error) {
11
+ if (typeof error === "object" && error !== null && "code" in error) {
12
+ if (error.code === "EACCES" || error.code === "EPERM") return _duplojs_lang_either.left("file-system-make-temporary-file-permission-denied", error);
13
+ else if (error.code === "EEXIST") return _duplojs_lang_either.left("file-system-make-temporary-file-already-exists", error);
14
+ else if (error.code === "ENOTDIR") return _duplojs_lang_either.left("file-system-make-temporary-file-not-directory", error);
15
+ else if (error.code === "ENOSPC") return _duplojs_lang_either.left("file-system-make-temporary-file-no-space", error);
16
+ else if (error.code === "EROFS") return _duplojs_lang_either.left("file-system-make-temporary-file-read-only", error);
17
+ else if (error.code === "EINVAL") return _duplojs_lang_either.left("file-system-make-temporary-file-invalid-argument", error);
18
+ else if (error.code === "EMFILE" || error.code === "ENFILE") return _duplojs_lang_either.left("file-system-make-temporary-file-too-many-open-files", error);
19
+ }
20
+ return _duplojs_lang_either.left("file-system-make-temporary-file-error", error);
21
+ }
22
+ function handleDenoMakeTemporaryFileError(error) {
23
+ if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return _duplojs_lang_either.left("file-system-make-temporary-file-permission-denied", error);
24
+ if (error instanceof Deno.errors.AlreadyExists) return _duplojs_lang_either.left("file-system-make-temporary-file-already-exists", error);
25
+ if (error instanceof Deno.errors.NotADirectory) return _duplojs_lang_either.left("file-system-make-temporary-file-not-directory", error);
26
+ if (error instanceof Deno.errors.InvalidData) return _duplojs_lang_either.left("file-system-make-temporary-file-invalid-argument", error);
27
+ return _duplojs_lang_either.left("file-system-make-temporary-file-error", error);
28
+ }
29
+ const makeTemporaryFile = require_implementor.implementFunction("makeTemporaryFile", {
30
+ NODE: async (prefix, suffix) => {
31
+ const fs = await require_implementor.nodeFileSystem.value;
32
+ const os = await require_implementor.nodeOs.value;
33
+ const crypto = await require_implementor.nodeCrypto.value;
34
+ const tempPath = _duplojs_lang_common.forwardAsserts(os.tmpdir(), _duplojs_lang_path.is);
35
+ const fileName = _duplojs_lang_common.forwardAsserts(`${prefix}${crypto.randomUUID()}${suffix ?? ""}`, _duplojs_lang_path.isSegment);
36
+ const fileTemporaryPath = _duplojs_lang_path.resolveRelative([tempPath, fileName]);
37
+ return fs.open(fileTemporaryPath, "wx").then((fh) => fh.close()).then(() => _duplojs_lang_either.right("file-system-make-temporary-file", fileTemporaryPath)).catch(handleNodeMakeTemporaryFileError);
38
+ },
39
+ DENO: (prefix, suffix) => Deno.makeTempFile({
40
+ prefix,
41
+ suffix
42
+ }).then((value) => _duplojs_lang_either.right("file-system-make-temporary-file", value)).catch(handleDenoMakeTemporaryFileError)
43
+ });
44
+ //#endregion
45
+ exports.makeTemporaryFile = makeTemporaryFile;
@@ -0,0 +1,10 @@
1
+ import { FileSystemEither } from './types';
2
+ import * as DPath from "@duplojs/lang/path";
3
+ import * as DEither from "@duplojs/lang/either";
4
+ export type MakeTemporaryFileResult = FileSystemEither<DEither.Right<"make-temporary-file", string> | DEither.Left<"make-temporary-file-permission-denied", unknown> | DEither.Left<"make-temporary-file-already-exists", unknown> | DEither.Left<"make-temporary-file-not-directory", unknown> | DEither.Left<"make-temporary-file-no-space", unknown> | DEither.Left<"make-temporary-file-read-only", unknown> | DEither.Left<"make-temporary-file-invalid-argument", unknown> | DEither.Left<"make-temporary-file-too-many-open-files", unknown> | DEither.Left<"make-temporary-file-error", unknown>>;
5
+ declare module '../implementor' {
6
+ interface ServerFunction {
7
+ makeTemporaryFile(prefix: string & DPath.Segment, suffix?: string & DPath.Segment): Promise<MakeTemporaryFileResult>;
8
+ }
9
+ }
10
+ export declare const makeTemporaryFile: (prefix: string & DPath.Segment, suffix?: string & DPath.Segment) => Promise<MakeTemporaryFileResult>;
@@ -0,0 +1,41 @@
1
+ import { implementFunction, nodeCrypto, nodeFileSystem, nodeOs } from "../implementor.mjs";
2
+ import * as DCommon from "@duplojs/lang/common";
3
+ import * as DEither from "@duplojs/lang/either";
4
+ import * as DPath from "@duplojs/lang/path";
5
+ //#region scripts/file/makeTemporaryFile.ts
6
+ function handleNodeMakeTemporaryFileError(error) {
7
+ if (typeof error === "object" && error !== null && "code" in error) {
8
+ if (error.code === "EACCES" || error.code === "EPERM") return DEither.left("file-system-make-temporary-file-permission-denied", error);
9
+ else if (error.code === "EEXIST") return DEither.left("file-system-make-temporary-file-already-exists", error);
10
+ else if (error.code === "ENOTDIR") return DEither.left("file-system-make-temporary-file-not-directory", error);
11
+ else if (error.code === "ENOSPC") return DEither.left("file-system-make-temporary-file-no-space", error);
12
+ else if (error.code === "EROFS") return DEither.left("file-system-make-temporary-file-read-only", error);
13
+ else if (error.code === "EINVAL") return DEither.left("file-system-make-temporary-file-invalid-argument", error);
14
+ else if (error.code === "EMFILE" || error.code === "ENFILE") return DEither.left("file-system-make-temporary-file-too-many-open-files", error);
15
+ }
16
+ return DEither.left("file-system-make-temporary-file-error", error);
17
+ }
18
+ function handleDenoMakeTemporaryFileError(error) {
19
+ if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return DEither.left("file-system-make-temporary-file-permission-denied", error);
20
+ if (error instanceof Deno.errors.AlreadyExists) return DEither.left("file-system-make-temporary-file-already-exists", error);
21
+ if (error instanceof Deno.errors.NotADirectory) return DEither.left("file-system-make-temporary-file-not-directory", error);
22
+ if (error instanceof Deno.errors.InvalidData) return DEither.left("file-system-make-temporary-file-invalid-argument", error);
23
+ return DEither.left("file-system-make-temporary-file-error", error);
24
+ }
25
+ const makeTemporaryFile = implementFunction("makeTemporaryFile", {
26
+ NODE: async (prefix, suffix) => {
27
+ const fs = await nodeFileSystem.value;
28
+ const os = await nodeOs.value;
29
+ const crypto = await nodeCrypto.value;
30
+ const tempPath = DCommon.forwardAsserts(os.tmpdir(), DPath.is);
31
+ const fileName = DCommon.forwardAsserts(`${prefix}${crypto.randomUUID()}${suffix ?? ""}`, DPath.isSegment);
32
+ const fileTemporaryPath = DPath.resolveRelative([tempPath, fileName]);
33
+ return fs.open(fileTemporaryPath, "wx").then((fh) => fh.close()).then(() => DEither.right("file-system-make-temporary-file", fileTemporaryPath)).catch(handleNodeMakeTemporaryFileError);
34
+ },
35
+ DENO: (prefix, suffix) => Deno.makeTempFile({
36
+ prefix,
37
+ suffix
38
+ }).then((value) => DEither.right("file-system-make-temporary-file", value)).catch(handleDenoMakeTemporaryFileError)
39
+ });
40
+ //#endregion
41
+ export { makeTemporaryFile };
@@ -0,0 +1,45 @@
1
+ const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
2
+ const require_implementor = require("../implementor.cjs");
3
+ let _duplojs_lang_either = require("@duplojs/lang/either");
4
+ _duplojs_lang_either = require_runtime.__toESM(_duplojs_lang_either, 1);
5
+ //#region scripts/file/move.ts
6
+ function handleNodeMoveError(error) {
7
+ if (typeof error === "object" && error !== null && "code" in error) {
8
+ if (error.code === "ENOENT") return _duplojs_lang_either.left("file-system-move-not-found", error);
9
+ else if (error.code === "EACCES" || error.code === "EPERM") return _duplojs_lang_either.left("file-system-move-permission-denied", error);
10
+ else if (error.code === "EEXIST") return _duplojs_lang_either.left("file-system-move-already-exists", error);
11
+ else if (error.code === "EISDIR") return _duplojs_lang_either.left("file-system-move-is-directory", error);
12
+ else if (error.code === "ENOTDIR") return _duplojs_lang_either.left("file-system-move-not-directory", error);
13
+ else if (error.code === "ENOTEMPTY") return _duplojs_lang_either.left("file-system-move-directory-not-empty", error);
14
+ else if (error.code === "EROFS") return _duplojs_lang_either.left("file-system-move-read-only", error);
15
+ else if (error.code === "EINVAL") return _duplojs_lang_either.left("file-system-move-invalid-argument", error);
16
+ else if (error.code === "EBUSY") return _duplojs_lang_either.left("file-system-move-busy", error);
17
+ else if (error.code === "EXDEV") return _duplojs_lang_either.left("file-system-move-cross-device", error);
18
+ }
19
+ return _duplojs_lang_either.left("file-system-move-error", error);
20
+ }
21
+ function handleDenoMoveError(error) {
22
+ if (error instanceof Deno.errors.NotFound) return _duplojs_lang_either.left("file-system-move-not-found", error);
23
+ if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return _duplojs_lang_either.left("file-system-move-permission-denied", error);
24
+ if (error instanceof Deno.errors.AlreadyExists) return _duplojs_lang_either.left("file-system-move-already-exists", error);
25
+ if (error instanceof Deno.errors.IsADirectory) return _duplojs_lang_either.left("file-system-move-is-directory", error);
26
+ if (error instanceof Deno.errors.NotADirectory) return _duplojs_lang_either.left("file-system-move-not-directory", error);
27
+ if (error instanceof Deno.errors.InvalidData) return _duplojs_lang_either.left("file-system-move-invalid-argument", error);
28
+ if (error instanceof Deno.errors.Busy) return _duplojs_lang_either.left("file-system-move-busy", error);
29
+ return _duplojs_lang_either.left("file-system-move-error", error);
30
+ }
31
+ const moveImplementation = require_implementor.implementFunction("move", {
32
+ NODE: async (fromPath, toPath) => {
33
+ return (await require_implementor.nodeFileSystem.value).rename(fromPath, toPath).then(() => _duplojs_lang_either.right("file-system-move")).catch(handleNodeMoveError);
34
+ },
35
+ DENO: (fromPath, toPath) => Deno.rename(fromPath, toPath).then(() => _duplojs_lang_either.right("file-system-move")).catch(handleDenoMoveError)
36
+ });
37
+ function move(...args) {
38
+ if (args.length === 1) {
39
+ const [toPath] = args;
40
+ return (fromPath) => moveImplementation(fromPath, toPath);
41
+ }
42
+ return moveImplementation(...args);
43
+ }
44
+ //#endregion
45
+ exports.move = move;
@@ -0,0 +1,11 @@
1
+ import { FileSystemEither } from './types';
2
+ import type * as DPath from "@duplojs/lang/path";
3
+ import * as DEither from "@duplojs/lang/either";
4
+ export type MoveResult = FileSystemEither<DEither.Right<"move", void> | DEither.Left<"move-not-found", unknown> | DEither.Left<"move-permission-denied", unknown> | DEither.Left<"move-already-exists", unknown> | DEither.Left<"move-is-directory", unknown> | DEither.Left<"move-not-directory", unknown> | DEither.Left<"move-directory-not-empty", unknown> | DEither.Left<"move-read-only", unknown> | DEither.Left<"move-invalid-argument", unknown> | DEither.Left<"move-busy", unknown> | DEither.Left<"move-cross-device", unknown> | DEither.Left<"move-error", unknown>>;
5
+ declare module '../implementor' {
6
+ interface ServerFunction {
7
+ move(fromPath: string & DPath.Path, toPath: string & DPath.Path): Promise<MoveResult>;
8
+ }
9
+ }
10
+ export declare function move(toPath: string & DPath.Path): (fromPath: string & DPath.Path) => Promise<MoveResult>;
11
+ export declare function move(fromPath: string & DPath.Path, toPath: string & DPath.Path): Promise<MoveResult>;
@@ -0,0 +1,43 @@
1
+ import { implementFunction, nodeFileSystem } from "../implementor.mjs";
2
+ import * as DEither from "@duplojs/lang/either";
3
+ //#region scripts/file/move.ts
4
+ function handleNodeMoveError(error) {
5
+ if (typeof error === "object" && error !== null && "code" in error) {
6
+ if (error.code === "ENOENT") return DEither.left("file-system-move-not-found", error);
7
+ else if (error.code === "EACCES" || error.code === "EPERM") return DEither.left("file-system-move-permission-denied", error);
8
+ else if (error.code === "EEXIST") return DEither.left("file-system-move-already-exists", error);
9
+ else if (error.code === "EISDIR") return DEither.left("file-system-move-is-directory", error);
10
+ else if (error.code === "ENOTDIR") return DEither.left("file-system-move-not-directory", error);
11
+ else if (error.code === "ENOTEMPTY") return DEither.left("file-system-move-directory-not-empty", error);
12
+ else if (error.code === "EROFS") return DEither.left("file-system-move-read-only", error);
13
+ else if (error.code === "EINVAL") return DEither.left("file-system-move-invalid-argument", error);
14
+ else if (error.code === "EBUSY") return DEither.left("file-system-move-busy", error);
15
+ else if (error.code === "EXDEV") return DEither.left("file-system-move-cross-device", error);
16
+ }
17
+ return DEither.left("file-system-move-error", error);
18
+ }
19
+ function handleDenoMoveError(error) {
20
+ if (error instanceof Deno.errors.NotFound) return DEither.left("file-system-move-not-found", error);
21
+ if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return DEither.left("file-system-move-permission-denied", error);
22
+ if (error instanceof Deno.errors.AlreadyExists) return DEither.left("file-system-move-already-exists", error);
23
+ if (error instanceof Deno.errors.IsADirectory) return DEither.left("file-system-move-is-directory", error);
24
+ if (error instanceof Deno.errors.NotADirectory) return DEither.left("file-system-move-not-directory", error);
25
+ if (error instanceof Deno.errors.InvalidData) return DEither.left("file-system-move-invalid-argument", error);
26
+ if (error instanceof Deno.errors.Busy) return DEither.left("file-system-move-busy", error);
27
+ return DEither.left("file-system-move-error", error);
28
+ }
29
+ const moveImplementation = implementFunction("move", {
30
+ NODE: async (fromPath, toPath) => {
31
+ return (await nodeFileSystem.value).rename(fromPath, toPath).then(() => DEither.right("file-system-move")).catch(handleNodeMoveError);
32
+ },
33
+ DENO: (fromPath, toPath) => Deno.rename(fromPath, toPath).then(() => DEither.right("file-system-move")).catch(handleDenoMoveError)
34
+ });
35
+ function move(...args) {
36
+ if (args.length === 1) {
37
+ const [toPath] = args;
38
+ return (fromPath) => moveImplementation(fromPath, toPath);
39
+ }
40
+ return moveImplementation(...args);
41
+ }
42
+ //#endregion
43
+ export { move };
@@ -0,0 +1,20 @@
1
+ const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
2
+ const require_implementor = require("../implementor.cjs");
3
+ let _duplojs_lang_either = require("@duplojs/lang/either");
4
+ _duplojs_lang_either = require_runtime.__toESM(_duplojs_lang_either, 1);
5
+ //#region scripts/file/readDirectory.ts
6
+ function handleNodeReadDirectoryError(error) {
7
+ if (typeof error === "object" && error !== null && "code" in error) {
8
+ if (error.code === "ENOENT") return _duplojs_lang_either.left("file-system-read-directory-not-found", error);
9
+ else if (error.code === "EACCES" || error.code === "EPERM") return _duplojs_lang_either.left("file-system-read-directory-permission-denied", error);
10
+ else if (error.code === "ENOTDIR") return _duplojs_lang_either.left("file-system-read-directory-not-directory", error);
11
+ else if (error.code === "EMFILE" || error.code === "ENFILE") return _duplojs_lang_either.left("file-system-read-directory-too-many-open-files", error);
12
+ else if (error.code === "EBUSY") return _duplojs_lang_either.left("file-system-read-directory-busy", error);
13
+ }
14
+ return _duplojs_lang_either.left("file-system-read-directory-error", error);
15
+ }
16
+ const readDirectory = require_implementor.implementFunction("readDirectory", { NODE: async (path, params) => {
17
+ return (await require_implementor.nodeFileSystem.value).readdir(path, { recursive: params?.recursive }).then((value) => _duplojs_lang_either.right("file-system-read-directory", value)).catch(handleNodeReadDirectoryError);
18
+ } });
19
+ //#endregion
20
+ exports.readDirectory = readDirectory;
@@ -0,0 +1,14 @@
1
+ import { FileSystemEither } from './types';
2
+ import type * as DPath from "@duplojs/lang/path";
3
+ import * as DEither from "@duplojs/lang/either";
4
+ interface ReadDirectoryParams {
5
+ recursive?: boolean;
6
+ }
7
+ export type ReadDirectoryResult = FileSystemEither<DEither.Right<"read-directory", (string & DPath.Path)[]> | DEither.Left<"read-directory-not-found", unknown> | DEither.Left<"read-directory-permission-denied", unknown> | DEither.Left<"read-directory-not-directory", unknown> | DEither.Left<"read-directory-too-many-open-files", unknown> | DEither.Left<"read-directory-busy", unknown> | DEither.Left<"read-directory-error", unknown>>;
8
+ declare module '../implementor' {
9
+ interface ServerFunction {
10
+ readDirectory(path: string & DPath.Path, params?: ReadDirectoryParams): Promise<ReadDirectoryResult>;
11
+ }
12
+ }
13
+ export declare const readDirectory: (path: string & DPath.Path, params?: ReadDirectoryParams) => Promise<ReadDirectoryResult>;
14
+ export {};
@@ -0,0 +1,18 @@
1
+ import { implementFunction, nodeFileSystem } from "../implementor.mjs";
2
+ import * as DEither from "@duplojs/lang/either";
3
+ //#region scripts/file/readDirectory.ts
4
+ function handleNodeReadDirectoryError(error) {
5
+ if (typeof error === "object" && error !== null && "code" in error) {
6
+ if (error.code === "ENOENT") return DEither.left("file-system-read-directory-not-found", error);
7
+ else if (error.code === "EACCES" || error.code === "EPERM") return DEither.left("file-system-read-directory-permission-denied", error);
8
+ else if (error.code === "ENOTDIR") return DEither.left("file-system-read-directory-not-directory", error);
9
+ else if (error.code === "EMFILE" || error.code === "ENFILE") return DEither.left("file-system-read-directory-too-many-open-files", error);
10
+ else if (error.code === "EBUSY") return DEither.left("file-system-read-directory-busy", error);
11
+ }
12
+ return DEither.left("file-system-read-directory-error", error);
13
+ }
14
+ const readDirectory = implementFunction("readDirectory", { NODE: async (path, params) => {
15
+ return (await nodeFileSystem.value).readdir(path, { recursive: params?.recursive }).then((value) => DEither.right("file-system-read-directory", value)).catch(handleNodeReadDirectoryError);
16
+ } });
17
+ //#endregion
18
+ export { readDirectory };
@@ -0,0 +1,33 @@
1
+ const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
2
+ const require_implementor = require("../implementor.cjs");
3
+ let _duplojs_lang_either = require("@duplojs/lang/either");
4
+ _duplojs_lang_either = require_runtime.__toESM(_duplojs_lang_either, 1);
5
+ //#region scripts/file/readFile.ts
6
+ function handleNodeReadFileError(error) {
7
+ if (typeof error === "object" && error !== null && "code" in error) {
8
+ if (error.code === "ENOENT") return _duplojs_lang_either.left("file-system-read-file-not-found", error);
9
+ else if (error.code === "EACCES" || error.code === "EPERM") return _duplojs_lang_either.left("file-system-read-file-permission-denied", error);
10
+ else if (error.code === "EISDIR") return _duplojs_lang_either.left("file-system-read-file-is-directory", error);
11
+ else if (error.code === "ENOTDIR") return _duplojs_lang_either.left("file-system-read-file-not-directory", error);
12
+ else if (error.code === "EMFILE" || error.code === "ENFILE") return _duplojs_lang_either.left("file-system-read-file-too-many-open-files", error);
13
+ else if (error.code === "EBUSY") return _duplojs_lang_either.left("file-system-read-file-busy", error);
14
+ }
15
+ return _duplojs_lang_either.left("file-system-read-file-error", error);
16
+ }
17
+ function handleDenoReadFileError(error) {
18
+ if (error instanceof Deno.errors.NotFound) return _duplojs_lang_either.left("file-system-read-file-not-found", error);
19
+ if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return _duplojs_lang_either.left("file-system-read-file-permission-denied", error);
20
+ if (error instanceof Deno.errors.IsADirectory) return _duplojs_lang_either.left("file-system-read-file-is-directory", error);
21
+ if (error instanceof Deno.errors.NotADirectory) return _duplojs_lang_either.left("file-system-read-file-not-directory", error);
22
+ if (error instanceof Deno.errors.Busy) return _duplojs_lang_either.left("file-system-read-file-busy", error);
23
+ return _duplojs_lang_either.left("file-system-read-file-error", error);
24
+ }
25
+ const readFile = require_implementor.implementFunction("readFile", {
26
+ NODE: async (path) => {
27
+ return (await require_implementor.nodeFileSystem.value).readFile(path).then((value) => _duplojs_lang_either.right("file-system-read-file", value)).catch(handleNodeReadFileError);
28
+ },
29
+ DENO: (path) => Deno.readFile(path).then((value) => _duplojs_lang_either.right("file-system-read-file", value)).catch(handleDenoReadFileError),
30
+ BUN: (path) => Bun.file(path).bytes().then((value) => _duplojs_lang_either.right("file-system-read-file", value)).catch(handleNodeReadFileError)
31
+ });
32
+ //#endregion
33
+ exports.readFile = readFile;
@@ -0,0 +1,10 @@
1
+ import { FileSystemEither } from './types';
2
+ import * as DEither from "@duplojs/lang/either";
3
+ import type * as DPath from "@duplojs/lang/path";
4
+ export type ReadFileResult = FileSystemEither<DEither.Right<"read-file", Uint8Array> | DEither.Left<"read-file-not-found", unknown> | DEither.Left<"read-file-permission-denied", unknown> | DEither.Left<"read-file-is-directory", unknown> | DEither.Left<"read-file-not-directory", unknown> | DEither.Left<"read-file-too-many-open-files", unknown> | DEither.Left<"read-file-busy", unknown> | DEither.Left<"read-file-error", unknown>>;
5
+ declare module '../implementor' {
6
+ interface ServerFunction {
7
+ readFile(path: string & DPath.Path): Promise<ReadFileResult>;
8
+ }
9
+ }
10
+ export declare const readFile: (path: string & DPath.Path) => Promise<ReadFileResult>;
@@ -0,0 +1,31 @@
1
+ import { implementFunction, nodeFileSystem } from "../implementor.mjs";
2
+ import * as DEither from "@duplojs/lang/either";
3
+ //#region scripts/file/readFile.ts
4
+ function handleNodeReadFileError(error) {
5
+ if (typeof error === "object" && error !== null && "code" in error) {
6
+ if (error.code === "ENOENT") return DEither.left("file-system-read-file-not-found", error);
7
+ else if (error.code === "EACCES" || error.code === "EPERM") return DEither.left("file-system-read-file-permission-denied", error);
8
+ else if (error.code === "EISDIR") return DEither.left("file-system-read-file-is-directory", error);
9
+ else if (error.code === "ENOTDIR") return DEither.left("file-system-read-file-not-directory", error);
10
+ else if (error.code === "EMFILE" || error.code === "ENFILE") return DEither.left("file-system-read-file-too-many-open-files", error);
11
+ else if (error.code === "EBUSY") return DEither.left("file-system-read-file-busy", error);
12
+ }
13
+ return DEither.left("file-system-read-file-error", error);
14
+ }
15
+ function handleDenoReadFileError(error) {
16
+ if (error instanceof Deno.errors.NotFound) return DEither.left("file-system-read-file-not-found", error);
17
+ if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return DEither.left("file-system-read-file-permission-denied", error);
18
+ if (error instanceof Deno.errors.IsADirectory) return DEither.left("file-system-read-file-is-directory", error);
19
+ if (error instanceof Deno.errors.NotADirectory) return DEither.left("file-system-read-file-not-directory", error);
20
+ if (error instanceof Deno.errors.Busy) return DEither.left("file-system-read-file-busy", error);
21
+ return DEither.left("file-system-read-file-error", error);
22
+ }
23
+ const readFile = implementFunction("readFile", {
24
+ NODE: async (path) => {
25
+ return (await nodeFileSystem.value).readFile(path).then((value) => DEither.right("file-system-read-file", value)).catch(handleNodeReadFileError);
26
+ },
27
+ DENO: (path) => Deno.readFile(path).then((value) => DEither.right("file-system-read-file", value)).catch(handleDenoReadFileError),
28
+ BUN: (path) => Bun.file(path).bytes().then((value) => DEither.right("file-system-read-file", value)).catch(handleNodeReadFileError)
29
+ });
30
+ //#endregion
31
+ export { readFile };