@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,18 +1,33 @@
1
1
  import { implementFunction, nodeFileSystem } from "../implementor.mjs";
2
+ import { getCurrentWorkDirectoryOrThrow } from "../common/getCurrentWorkDirectoryOrThrow.mjs";
3
+ import * as DCommon from "@duplojs/lang/common";
2
4
  import * as DEither from "@duplojs/lang/either";
5
+ import * as DPath from "@duplojs/lang/path";
6
+ import * as DArray from "@duplojs/lang/array";
3
7
  //#region scripts/file/readDirectory.ts
8
+ var ReadDirectoryErrorNotFound = class extends DCommon.DuploJSError.parentClass("file-system-read-directory-not-found", Error) {};
9
+ var ReadDirectoryErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-read-directory-permission-denied", Error) {};
10
+ var ReadDirectoryErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-read-directory-not-directory", Error) {};
11
+ var ReadDirectoryErrorTooManyOpenFiles = class extends DCommon.DuploJSError.parentClass("file-system-read-directory-too-many-open-files", Error) {};
12
+ var ReadDirectoryErrorBusy = class extends DCommon.DuploJSError.parentClass("file-system-read-directory-busy", Error) {};
13
+ var ReadDirectoryError = class extends DCommon.DuploJSError.parentClass("file-system-read-directory-error", Error) {};
4
14
  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);
15
+ let readDirectoryError = void 0;
16
+ if ("code" in error) {
17
+ if (error.code === "ENOENT") readDirectoryError = new ReadDirectoryErrorNotFound(error);
18
+ else if (error.code === "EACCES" || error.code === "EPERM") readDirectoryError = new ReadDirectoryErrorPermissionDenied(error);
19
+ else if (error.code === "ENOTDIR") readDirectoryError = new ReadDirectoryErrorNotDirectory(error);
20
+ else if (error.code === "EMFILE" || error.code === "ENFILE") readDirectoryError = new ReadDirectoryErrorTooManyOpenFiles(error);
21
+ else if (error.code === "EBUSY") readDirectoryError = new ReadDirectoryErrorBusy(error);
11
22
  }
12
- return DEither.left("file-system-read-directory-error", error);
23
+ if (readDirectoryError === void 0) readDirectoryError = new ReadDirectoryError(error);
24
+ return DEither.left("file-system-read-directory-error", readDirectoryError);
13
25
  }
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);
26
+ const readDirectory = implementFunction("readDirectory", { NODE: (path, params) => {
27
+ return (params?.absolute ? nodeFileSystem.value.readdir(path, {
28
+ recursive: params.recursive,
29
+ withFileTypes: true
30
+ }).then((value) => DArray.map(value, ({ name, parentPath }) => DPath.resolveFrom(getCurrentWorkDirectoryOrThrow(), [DPath.normalize(`${parentPath}/${name}`)]))) : nodeFileSystem.value.readdir(path, { recursive: params?.recursive }).then((value) => DArray.map(value, (subPath) => DPath.normalize(subPath)))).then(DCommon.innerPipe((paths) => params?.matcher ? DArray.filter(paths, params.matcher) : paths, (value) => DEither.right("file-system-read-directory", value))).catch(handleNodeReadDirectoryError);
16
31
  } });
17
32
  //#endregion
18
- export { readDirectory };
33
+ export { ReadDirectoryError, ReadDirectoryErrorBusy, ReadDirectoryErrorNotDirectory, ReadDirectoryErrorNotFound, ReadDirectoryErrorPermissionDenied, ReadDirectoryErrorTooManyOpenFiles, readDirectory };
@@ -1,33 +1,51 @@
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/readFile.ts
8
+ var ReadFileErrorNotFound = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-file-not-found", Error) {};
9
+ var ReadFileErrorPermissionDenied = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-file-permission-denied", Error) {};
10
+ var ReadFileErrorIsDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-file-is-directory", Error) {};
11
+ var ReadFileErrorNotDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-file-not-directory", Error) {};
12
+ var ReadFileErrorTooManyOpenFiles = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-file-too-many-open-files", Error) {};
13
+ var ReadFileErrorBusy = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-file-busy", Error) {};
14
+ var ReadFileError = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-file-error", Error) {};
6
15
  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);
16
+ let readFileError = void 0;
17
+ if ("code" in error) {
18
+ if (error.code === "ENOENT") readFileError = new ReadFileErrorNotFound(error);
19
+ else if (error.code === "EACCES" || error.code === "EPERM") readFileError = new ReadFileErrorPermissionDenied(error);
20
+ else if (error.code === "EISDIR") readFileError = new ReadFileErrorIsDirectory(error);
21
+ else if (error.code === "ENOTDIR") readFileError = new ReadFileErrorNotDirectory(error);
22
+ else if (error.code === "EMFILE" || error.code === "ENFILE") readFileError = new ReadFileErrorTooManyOpenFiles(error);
23
+ else if (error.code === "EBUSY") readFileError = new ReadFileErrorBusy(error);
14
24
  }
15
- return _duplojs_lang_either.left("file-system-read-file-error", error);
25
+ if (readFileError === void 0) readFileError = new ReadFileError(error);
26
+ return _duplojs_lang_either.left("file-system-read-file-error", readFileError);
16
27
  }
17
28
  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);
29
+ let readFileError = void 0;
30
+ if (error instanceof Deno.errors.NotFound) readFileError = new ReadFileErrorNotFound(error);
31
+ else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) readFileError = new ReadFileErrorPermissionDenied(error);
32
+ else if (error instanceof Deno.errors.IsADirectory) readFileError = new ReadFileErrorIsDirectory(error);
33
+ else if (error instanceof Deno.errors.NotADirectory) readFileError = new ReadFileErrorNotDirectory(error);
34
+ else if (error instanceof Deno.errors.Busy) readFileError = new ReadFileErrorBusy(error);
35
+ if (readFileError === void 0) readFileError = new ReadFileError(error);
36
+ return _duplojs_lang_either.left("file-system-read-file-error", readFileError);
24
37
  }
25
38
  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
- },
39
+ NODE: async (path) => require_implementor.nodeFileSystem.value.readFile(path).then((value) => _duplojs_lang_either.right("file-system-read-file", value)).catch(handleNodeReadFileError),
29
40
  DENO: (path) => Deno.readFile(path).then((value) => _duplojs_lang_either.right("file-system-read-file", value)).catch(handleDenoReadFileError),
30
41
  BUN: (path) => Bun.file(path).bytes().then((value) => _duplojs_lang_either.right("file-system-read-file", value)).catch(handleNodeReadFileError)
31
42
  });
32
43
  //#endregion
44
+ exports.ReadFileError = ReadFileError;
45
+ exports.ReadFileErrorBusy = ReadFileErrorBusy;
46
+ exports.ReadFileErrorIsDirectory = ReadFileErrorIsDirectory;
47
+ exports.ReadFileErrorNotDirectory = ReadFileErrorNotDirectory;
48
+ exports.ReadFileErrorNotFound = ReadFileErrorNotFound;
49
+ exports.ReadFileErrorPermissionDenied = ReadFileErrorPermissionDenied;
50
+ exports.ReadFileErrorTooManyOpenFiles = ReadFileErrorTooManyOpenFiles;
33
51
  exports.readFile = readFile;
@@ -1,10 +1,33 @@
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 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>>;
3
+ import * as DCommon from "@duplojs/lang/common";
4
+ declare const ReadFileErrorNotFound_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-file-not-found", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-file-not-found", unknown>>, unknown>;
5
+ export declare class ReadFileErrorNotFound extends ReadFileErrorNotFound_base {
6
+ }
7
+ declare const ReadFileErrorPermissionDenied_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-file-permission-denied", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-file-permission-denied", unknown>>, unknown>;
8
+ export declare class ReadFileErrorPermissionDenied extends ReadFileErrorPermissionDenied_base {
9
+ }
10
+ declare const ReadFileErrorIsDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-file-is-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-file-is-directory", unknown>>, unknown>;
11
+ export declare class ReadFileErrorIsDirectory extends ReadFileErrorIsDirectory_base {
12
+ }
13
+ declare const ReadFileErrorNotDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-file-not-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-file-not-directory", unknown>>, unknown>;
14
+ export declare class ReadFileErrorNotDirectory extends ReadFileErrorNotDirectory_base {
15
+ }
16
+ declare const ReadFileErrorTooManyOpenFiles_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-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-read-file-too-many-open-files", unknown>>, unknown>;
17
+ export declare class ReadFileErrorTooManyOpenFiles extends ReadFileErrorTooManyOpenFiles_base {
18
+ }
19
+ declare const ReadFileErrorBusy_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-file-busy", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-file-busy", unknown>>, unknown>;
20
+ export declare class ReadFileErrorBusy extends ReadFileErrorBusy_base {
21
+ }
22
+ declare const ReadFileError_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-file-error", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-file-error", unknown>>, unknown>;
23
+ export declare class ReadFileError extends ReadFileError_base {
24
+ }
25
+ export type ReadFileErrors = (ReadFileErrorNotFound | ReadFileErrorPermissionDenied | ReadFileErrorIsDirectory | ReadFileErrorNotDirectory | ReadFileErrorTooManyOpenFiles | ReadFileErrorBusy | ReadFileError);
26
+ export type ReadFileResult = (DEither.Right<"file-system-read-file", Uint8Array> | DEither.Left<"file-system-read-file-error", ReadFileErrors>);
5
27
  declare module '../implementor' {
6
28
  interface ServerFunction {
7
- readFile(path: string & DPath.Path): Promise<ReadFileResult>;
29
+ readFile(path: DPath.AnyPath): Promise<ReadFileResult>;
8
30
  }
9
31
  }
10
- export declare const readFile: (path: string & DPath.Path) => Promise<ReadFileResult>;
32
+ export declare const readFile: (path: DPath.AnyPath) => Promise<ReadFileResult>;
33
+ export {};
@@ -1,31 +1,41 @@
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/readFile.ts
5
+ var ReadFileErrorNotFound = class extends DCommon.DuploJSError.parentClass("file-system-read-file-not-found", Error) {};
6
+ var ReadFileErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-read-file-permission-denied", Error) {};
7
+ var ReadFileErrorIsDirectory = class extends DCommon.DuploJSError.parentClass("file-system-read-file-is-directory", Error) {};
8
+ var ReadFileErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-read-file-not-directory", Error) {};
9
+ var ReadFileErrorTooManyOpenFiles = class extends DCommon.DuploJSError.parentClass("file-system-read-file-too-many-open-files", Error) {};
10
+ var ReadFileErrorBusy = class extends DCommon.DuploJSError.parentClass("file-system-read-file-busy", Error) {};
11
+ var ReadFileError = class extends DCommon.DuploJSError.parentClass("file-system-read-file-error", Error) {};
4
12
  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);
13
+ let readFileError = void 0;
14
+ if ("code" in error) {
15
+ if (error.code === "ENOENT") readFileError = new ReadFileErrorNotFound(error);
16
+ else if (error.code === "EACCES" || error.code === "EPERM") readFileError = new ReadFileErrorPermissionDenied(error);
17
+ else if (error.code === "EISDIR") readFileError = new ReadFileErrorIsDirectory(error);
18
+ else if (error.code === "ENOTDIR") readFileError = new ReadFileErrorNotDirectory(error);
19
+ else if (error.code === "EMFILE" || error.code === "ENFILE") readFileError = new ReadFileErrorTooManyOpenFiles(error);
20
+ else if (error.code === "EBUSY") readFileError = new ReadFileErrorBusy(error);
12
21
  }
13
- return DEither.left("file-system-read-file-error", error);
22
+ if (readFileError === void 0) readFileError = new ReadFileError(error);
23
+ return DEither.left("file-system-read-file-error", readFileError);
14
24
  }
15
25
  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);
26
+ let readFileError = void 0;
27
+ if (error instanceof Deno.errors.NotFound) readFileError = new ReadFileErrorNotFound(error);
28
+ else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) readFileError = new ReadFileErrorPermissionDenied(error);
29
+ else if (error instanceof Deno.errors.IsADirectory) readFileError = new ReadFileErrorIsDirectory(error);
30
+ else if (error instanceof Deno.errors.NotADirectory) readFileError = new ReadFileErrorNotDirectory(error);
31
+ else if (error instanceof Deno.errors.Busy) readFileError = new ReadFileErrorBusy(error);
32
+ if (readFileError === void 0) readFileError = new ReadFileError(error);
33
+ return DEither.left("file-system-read-file-error", readFileError);
22
34
  }
23
35
  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
- },
36
+ NODE: async (path) => nodeFileSystem.value.readFile(path).then((value) => DEither.right("file-system-read-file", value)).catch(handleNodeReadFileError),
27
37
  DENO: (path) => Deno.readFile(path).then((value) => DEither.right("file-system-read-file", value)).catch(handleDenoReadFileError),
28
38
  BUN: (path) => Bun.file(path).bytes().then((value) => DEither.right("file-system-read-file", value)).catch(handleNodeReadFileError)
29
39
  });
30
40
  //#endregion
31
- export { readFile };
41
+ export { ReadFileError, ReadFileErrorBusy, ReadFileErrorIsDirectory, ReadFileErrorNotDirectory, ReadFileErrorNotFound, ReadFileErrorPermissionDenied, ReadFileErrorTooManyOpenFiles, readFile };
@@ -1,33 +1,51 @@
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/readJsonFile.ts
8
+ var ReadJsonFileErrorNotFound = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-json-file-not-found", Error) {};
9
+ var ReadJsonFileErrorPermissionDenied = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-json-file-permission-denied", Error) {};
10
+ var ReadJsonFileErrorIsDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-json-file-is-directory", Error) {};
11
+ var ReadJsonFileErrorNotDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-json-file-not-directory", Error) {};
12
+ var ReadJsonFileErrorTooManyOpenFiles = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-json-file-too-many-open-files", Error) {};
13
+ var ReadJsonFileErrorBusy = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-json-file-busy", Error) {};
14
+ var ReadJsonFileError = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-json-file-error", Error) {};
6
15
  function handleNodeReadJsonFileError(error) {
7
- if (typeof error === "object" && error !== null && "code" in error) {
8
- if (error.code === "ENOENT") return _duplojs_lang_either.left("file-system-read-json-file-not-found", error);
9
- else if (error.code === "EACCES" || error.code === "EPERM") return _duplojs_lang_either.left("file-system-read-json-file-permission-denied", error);
10
- else if (error.code === "EISDIR") return _duplojs_lang_either.left("file-system-read-json-file-is-directory", error);
11
- else if (error.code === "ENOTDIR") return _duplojs_lang_either.left("file-system-read-json-file-not-directory", error);
12
- else if (error.code === "EMFILE" || error.code === "ENFILE") return _duplojs_lang_either.left("file-system-read-json-file-too-many-open-files", error);
13
- else if (error.code === "EBUSY") return _duplojs_lang_either.left("file-system-read-json-file-busy", error);
16
+ let readJsonFileError = void 0;
17
+ if ("code" in error) {
18
+ if (error.code === "ENOENT") readJsonFileError = new ReadJsonFileErrorNotFound(error);
19
+ else if (error.code === "EACCES" || error.code === "EPERM") readJsonFileError = new ReadJsonFileErrorPermissionDenied(error);
20
+ else if (error.code === "EISDIR") readJsonFileError = new ReadJsonFileErrorIsDirectory(error);
21
+ else if (error.code === "ENOTDIR") readJsonFileError = new ReadJsonFileErrorNotDirectory(error);
22
+ else if (error.code === "EMFILE" || error.code === "ENFILE") readJsonFileError = new ReadJsonFileErrorTooManyOpenFiles(error);
23
+ else if (error.code === "EBUSY") readJsonFileError = new ReadJsonFileErrorBusy(error);
14
24
  }
15
- return _duplojs_lang_either.left("file-system-read-json-file-error", error);
25
+ if (readJsonFileError === void 0) readJsonFileError = new ReadJsonFileError(error);
26
+ return _duplojs_lang_either.left("file-system-read-json-file-error", readJsonFileError);
16
27
  }
17
28
  function handleDenoReadJsonFileError(error) {
18
- if (error instanceof Deno.errors.NotFound) return _duplojs_lang_either.left("file-system-read-json-file-not-found", error);
19
- if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return _duplojs_lang_either.left("file-system-read-json-file-permission-denied", error);
20
- if (error instanceof Deno.errors.IsADirectory) return _duplojs_lang_either.left("file-system-read-json-file-is-directory", error);
21
- if (error instanceof Deno.errors.NotADirectory) return _duplojs_lang_either.left("file-system-read-json-file-not-directory", error);
22
- if (error instanceof Deno.errors.Busy) return _duplojs_lang_either.left("file-system-read-json-file-busy", error);
23
- return _duplojs_lang_either.left("file-system-read-json-file-error", error);
29
+ let readJsonFileError = void 0;
30
+ if (error instanceof Deno.errors.NotFound) readJsonFileError = new ReadJsonFileErrorNotFound(error);
31
+ else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) readJsonFileError = new ReadJsonFileErrorPermissionDenied(error);
32
+ else if (error instanceof Deno.errors.IsADirectory) readJsonFileError = new ReadJsonFileErrorIsDirectory(error);
33
+ else if (error instanceof Deno.errors.NotADirectory) readJsonFileError = new ReadJsonFileErrorNotDirectory(error);
34
+ else if (error instanceof Deno.errors.Busy) readJsonFileError = new ReadJsonFileErrorBusy(error);
35
+ if (readJsonFileError === void 0) readJsonFileError = new ReadJsonFileError(error);
36
+ return _duplojs_lang_either.left("file-system-read-json-file-error", readJsonFileError);
24
37
  }
25
38
  const readJsonFile = require_implementor.implementFunction("readJsonFile", {
26
- NODE: async (path) => {
27
- return (await require_implementor.nodeFileSystem.value).readFile(path, { encoding: "utf-8" }).then(JSON.parse).then((value) => _duplojs_lang_either.right("file-system-read-json-file", value)).catch(handleNodeReadJsonFileError);
28
- },
39
+ NODE: async (path) => require_implementor.nodeFileSystem.value.readFile(path, { encoding: "utf-8" }).then(JSON.parse).then((value) => _duplojs_lang_either.right("file-system-read-json-file", value)).catch(handleNodeReadJsonFileError),
29
40
  DENO: (path) => Deno.readTextFile(path).then(JSON.parse).then((value) => _duplojs_lang_either.right("file-system-read-json-file", value)).catch(handleDenoReadJsonFileError),
30
41
  BUN: (path) => Bun.file(path).text().then(JSON.parse).then((value) => _duplojs_lang_either.right("file-system-read-json-file", value)).catch(handleNodeReadJsonFileError)
31
42
  });
32
43
  //#endregion
44
+ exports.ReadJsonFileError = ReadJsonFileError;
45
+ exports.ReadJsonFileErrorBusy = ReadJsonFileErrorBusy;
46
+ exports.ReadJsonFileErrorIsDirectory = ReadJsonFileErrorIsDirectory;
47
+ exports.ReadJsonFileErrorNotDirectory = ReadJsonFileErrorNotDirectory;
48
+ exports.ReadJsonFileErrorNotFound = ReadJsonFileErrorNotFound;
49
+ exports.ReadJsonFileErrorPermissionDenied = ReadJsonFileErrorPermissionDenied;
50
+ exports.ReadJsonFileErrorTooManyOpenFiles = ReadJsonFileErrorTooManyOpenFiles;
33
51
  exports.readJsonFile = readJsonFile;
@@ -1,11 +1,33 @@
1
- import { FileSystemEither } from './types';
2
- import type * as DCommon from "@duplojs/lang/common";
1
+ import * as DCommon from "@duplojs/lang/common";
3
2
  import * as DEither from "@duplojs/lang/either";
4
3
  import type * as DPath from "@duplojs/lang/path";
5
- export type ReadJsonFileResult = FileSystemEither<DEither.Right<"read-json-file", DCommon.Json> | DEither.Left<"read-json-file-not-found", unknown> | DEither.Left<"read-json-file-permission-denied", unknown> | DEither.Left<"read-json-file-is-directory", unknown> | DEither.Left<"read-json-file-not-directory", unknown> | DEither.Left<"read-json-file-too-many-open-files", unknown> | DEither.Left<"read-json-file-busy", unknown> | DEither.Left<"read-json-file-error", unknown>>;
4
+ declare const ReadJsonFileErrorNotFound_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-json-file-not-found", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-json-file-not-found", unknown>>, unknown>;
5
+ export declare class ReadJsonFileErrorNotFound extends ReadJsonFileErrorNotFound_base {
6
+ }
7
+ declare const ReadJsonFileErrorPermissionDenied_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-json-file-permission-denied", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-json-file-permission-denied", unknown>>, unknown>;
8
+ export declare class ReadJsonFileErrorPermissionDenied extends ReadJsonFileErrorPermissionDenied_base {
9
+ }
10
+ declare const ReadJsonFileErrorIsDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-json-file-is-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-json-file-is-directory", unknown>>, unknown>;
11
+ export declare class ReadJsonFileErrorIsDirectory extends ReadJsonFileErrorIsDirectory_base {
12
+ }
13
+ declare const ReadJsonFileErrorNotDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-json-file-not-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-json-file-not-directory", unknown>>, unknown>;
14
+ export declare class ReadJsonFileErrorNotDirectory extends ReadJsonFileErrorNotDirectory_base {
15
+ }
16
+ declare const ReadJsonFileErrorTooManyOpenFiles_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-json-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-read-json-file-too-many-open-files", unknown>>, unknown>;
17
+ export declare class ReadJsonFileErrorTooManyOpenFiles extends ReadJsonFileErrorTooManyOpenFiles_base {
18
+ }
19
+ declare const ReadJsonFileErrorBusy_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-json-file-busy", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-json-file-busy", unknown>>, unknown>;
20
+ export declare class ReadJsonFileErrorBusy extends ReadJsonFileErrorBusy_base {
21
+ }
22
+ declare const ReadJsonFileError_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-json-file-error", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-json-file-error", unknown>>, unknown>;
23
+ export declare class ReadJsonFileError extends ReadJsonFileError_base {
24
+ }
25
+ export type ReadJsonFileErrors = (ReadJsonFileErrorNotFound | ReadJsonFileErrorPermissionDenied | ReadJsonFileErrorIsDirectory | ReadJsonFileErrorNotDirectory | ReadJsonFileErrorTooManyOpenFiles | ReadJsonFileErrorBusy | ReadJsonFileError);
26
+ export type ReadJsonFileResult = (DEither.Right<"file-system-read-json-file", DCommon.Json> | DEither.Left<"file-system-read-json-file-error", ReadJsonFileErrors>);
6
27
  declare module '../implementor' {
7
28
  interface ServerFunction {
8
- readJsonFile(path: string & DPath.Path): Promise<ReadJsonFileResult>;
29
+ readJsonFile(path: DPath.AnyPath): Promise<ReadJsonFileResult>;
9
30
  }
10
31
  }
11
- export declare const readJsonFile: (path: string & DPath.Path) => Promise<ReadJsonFileResult>;
32
+ export declare const readJsonFile: (path: DPath.AnyPath) => Promise<ReadJsonFileResult>;
33
+ export {};
@@ -1,31 +1,41 @@
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/readJsonFile.ts
5
+ var ReadJsonFileErrorNotFound = class extends DCommon.DuploJSError.parentClass("file-system-read-json-file-not-found", Error) {};
6
+ var ReadJsonFileErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-read-json-file-permission-denied", Error) {};
7
+ var ReadJsonFileErrorIsDirectory = class extends DCommon.DuploJSError.parentClass("file-system-read-json-file-is-directory", Error) {};
8
+ var ReadJsonFileErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-read-json-file-not-directory", Error) {};
9
+ var ReadJsonFileErrorTooManyOpenFiles = class extends DCommon.DuploJSError.parentClass("file-system-read-json-file-too-many-open-files", Error) {};
10
+ var ReadJsonFileErrorBusy = class extends DCommon.DuploJSError.parentClass("file-system-read-json-file-busy", Error) {};
11
+ var ReadJsonFileError = class extends DCommon.DuploJSError.parentClass("file-system-read-json-file-error", Error) {};
4
12
  function handleNodeReadJsonFileError(error) {
5
- if (typeof error === "object" && error !== null && "code" in error) {
6
- if (error.code === "ENOENT") return DEither.left("file-system-read-json-file-not-found", error);
7
- else if (error.code === "EACCES" || error.code === "EPERM") return DEither.left("file-system-read-json-file-permission-denied", error);
8
- else if (error.code === "EISDIR") return DEither.left("file-system-read-json-file-is-directory", error);
9
- else if (error.code === "ENOTDIR") return DEither.left("file-system-read-json-file-not-directory", error);
10
- else if (error.code === "EMFILE" || error.code === "ENFILE") return DEither.left("file-system-read-json-file-too-many-open-files", error);
11
- else if (error.code === "EBUSY") return DEither.left("file-system-read-json-file-busy", error);
13
+ let readJsonFileError = void 0;
14
+ if ("code" in error) {
15
+ if (error.code === "ENOENT") readJsonFileError = new ReadJsonFileErrorNotFound(error);
16
+ else if (error.code === "EACCES" || error.code === "EPERM") readJsonFileError = new ReadJsonFileErrorPermissionDenied(error);
17
+ else if (error.code === "EISDIR") readJsonFileError = new ReadJsonFileErrorIsDirectory(error);
18
+ else if (error.code === "ENOTDIR") readJsonFileError = new ReadJsonFileErrorNotDirectory(error);
19
+ else if (error.code === "EMFILE" || error.code === "ENFILE") readJsonFileError = new ReadJsonFileErrorTooManyOpenFiles(error);
20
+ else if (error.code === "EBUSY") readJsonFileError = new ReadJsonFileErrorBusy(error);
12
21
  }
13
- return DEither.left("file-system-read-json-file-error", error);
22
+ if (readJsonFileError === void 0) readJsonFileError = new ReadJsonFileError(error);
23
+ return DEither.left("file-system-read-json-file-error", readJsonFileError);
14
24
  }
15
25
  function handleDenoReadJsonFileError(error) {
16
- if (error instanceof Deno.errors.NotFound) return DEither.left("file-system-read-json-file-not-found", error);
17
- if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return DEither.left("file-system-read-json-file-permission-denied", error);
18
- if (error instanceof Deno.errors.IsADirectory) return DEither.left("file-system-read-json-file-is-directory", error);
19
- if (error instanceof Deno.errors.NotADirectory) return DEither.left("file-system-read-json-file-not-directory", error);
20
- if (error instanceof Deno.errors.Busy) return DEither.left("file-system-read-json-file-busy", error);
21
- return DEither.left("file-system-read-json-file-error", error);
26
+ let readJsonFileError = void 0;
27
+ if (error instanceof Deno.errors.NotFound) readJsonFileError = new ReadJsonFileErrorNotFound(error);
28
+ else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) readJsonFileError = new ReadJsonFileErrorPermissionDenied(error);
29
+ else if (error instanceof Deno.errors.IsADirectory) readJsonFileError = new ReadJsonFileErrorIsDirectory(error);
30
+ else if (error instanceof Deno.errors.NotADirectory) readJsonFileError = new ReadJsonFileErrorNotDirectory(error);
31
+ else if (error instanceof Deno.errors.Busy) readJsonFileError = new ReadJsonFileErrorBusy(error);
32
+ if (readJsonFileError === void 0) readJsonFileError = new ReadJsonFileError(error);
33
+ return DEither.left("file-system-read-json-file-error", readJsonFileError);
22
34
  }
23
35
  const readJsonFile = implementFunction("readJsonFile", {
24
- NODE: async (path) => {
25
- return (await nodeFileSystem.value).readFile(path, { encoding: "utf-8" }).then(JSON.parse).then((value) => DEither.right("file-system-read-json-file", value)).catch(handleNodeReadJsonFileError);
26
- },
36
+ NODE: async (path) => nodeFileSystem.value.readFile(path, { encoding: "utf-8" }).then(JSON.parse).then((value) => DEither.right("file-system-read-json-file", value)).catch(handleNodeReadJsonFileError),
27
37
  DENO: (path) => Deno.readTextFile(path).then(JSON.parse).then((value) => DEither.right("file-system-read-json-file", value)).catch(handleDenoReadJsonFileError),
28
38
  BUN: (path) => Bun.file(path).text().then(JSON.parse).then((value) => DEither.right("file-system-read-json-file", value)).catch(handleNodeReadJsonFileError)
29
39
  });
30
40
  //#endregion
31
- export { readJsonFile };
41
+ export { ReadJsonFileError, ReadJsonFileErrorBusy, ReadJsonFileErrorIsDirectory, ReadJsonFileErrorNotDirectory, ReadJsonFileErrorNotFound, ReadJsonFileErrorPermissionDenied, ReadJsonFileErrorTooManyOpenFiles, readJsonFile };
@@ -1,30 +1,46 @@
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/readLink.ts
8
+ var ReadLinkErrorNotFound = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-link-not-found", Error) {};
9
+ var ReadLinkErrorPermissionDenied = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-link-permission-denied", Error) {};
10
+ var ReadLinkErrorInvalidArgument = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-link-invalid-argument", Error) {};
11
+ var ReadLinkErrorNotDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-link-not-directory", Error) {};
12
+ var ReadLinkErrorTooManyOpenFiles = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-link-too-many-open-files", Error) {};
13
+ var ReadLinkError = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-link-error", Error) {};
6
14
  function handleNodeReadLinkError(error) {
7
- if (typeof error === "object" && error !== null && "code" in error) {
8
- if (error.code === "ENOENT") return _duplojs_lang_either.left("file-system-read-link-not-found", error);
9
- else if (error.code === "EACCES" || error.code === "EPERM") return _duplojs_lang_either.left("file-system-read-link-permission-denied", error);
10
- else if (error.code === "EINVAL") return _duplojs_lang_either.left("file-system-read-link-invalid-argument", error);
11
- else if (error.code === "ENOTDIR") return _duplojs_lang_either.left("file-system-read-link-not-directory", error);
12
- else if (error.code === "EMFILE" || error.code === "ENFILE") return _duplojs_lang_either.left("file-system-read-link-too-many-open-files", error);
15
+ let readLinkError = void 0;
16
+ if ("code" in error) {
17
+ if (error.code === "ENOENT") readLinkError = new ReadLinkErrorNotFound(error);
18
+ else if (error.code === "EACCES" || error.code === "EPERM") readLinkError = new ReadLinkErrorPermissionDenied(error);
19
+ else if (error.code === "EINVAL") readLinkError = new ReadLinkErrorInvalidArgument(error);
20
+ else if (error.code === "ENOTDIR") readLinkError = new ReadLinkErrorNotDirectory(error);
21
+ else if (error.code === "EMFILE" || error.code === "ENFILE") readLinkError = new ReadLinkErrorTooManyOpenFiles(error);
13
22
  }
14
- return _duplojs_lang_either.left("file-system-read-link-error", error);
23
+ if (readLinkError === void 0) readLinkError = new ReadLinkError(error);
24
+ return _duplojs_lang_either.left("file-system-read-link-error", readLinkError);
15
25
  }
16
26
  function handleDenoReadLinkError(error) {
17
- if (error instanceof Deno.errors.NotFound) return _duplojs_lang_either.left("file-system-read-link-not-found", error);
18
- if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return _duplojs_lang_either.left("file-system-read-link-permission-denied", error);
19
- if (error instanceof Deno.errors.InvalidData) return _duplojs_lang_either.left("file-system-read-link-invalid-argument", error);
20
- if (error instanceof Deno.errors.NotADirectory) return _duplojs_lang_either.left("file-system-read-link-not-directory", error);
21
- return _duplojs_lang_either.left("file-system-read-link-error", error);
27
+ let readLinkError = void 0;
28
+ if (error instanceof Deno.errors.NotFound) readLinkError = new ReadLinkErrorNotFound(error);
29
+ else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) readLinkError = new ReadLinkErrorPermissionDenied(error);
30
+ else if (error instanceof Deno.errors.InvalidData) readLinkError = new ReadLinkErrorInvalidArgument(error);
31
+ else if (error instanceof Deno.errors.NotADirectory) readLinkError = new ReadLinkErrorNotDirectory(error);
32
+ if (readLinkError === void 0) readLinkError = new ReadLinkError(error);
33
+ return _duplojs_lang_either.left("file-system-read-link-error", readLinkError);
22
34
  }
23
35
  const readLink = require_implementor.implementFunction("readLink", {
24
- NODE: async (path) => {
25
- return (await require_implementor.nodeFileSystem.value).readlink(path, { encoding: "utf-8" }).then((value) => _duplojs_lang_either.right("file-system-read-link", value)).catch(handleNodeReadLinkError);
26
- },
36
+ NODE: async (path) => require_implementor.nodeFileSystem.value.readlink(path, { encoding: "utf-8" }).then((value) => _duplojs_lang_either.right("file-system-read-link", value)).catch(handleNodeReadLinkError),
27
37
  DENO: (path) => Deno.readLink(path).then((value) => _duplojs_lang_either.right("file-system-read-link", value)).catch(handleDenoReadLinkError)
28
38
  });
29
39
  //#endregion
40
+ exports.ReadLinkError = ReadLinkError;
41
+ exports.ReadLinkErrorInvalidArgument = ReadLinkErrorInvalidArgument;
42
+ exports.ReadLinkErrorNotDirectory = ReadLinkErrorNotDirectory;
43
+ exports.ReadLinkErrorNotFound = ReadLinkErrorNotFound;
44
+ exports.ReadLinkErrorPermissionDenied = ReadLinkErrorPermissionDenied;
45
+ exports.ReadLinkErrorTooManyOpenFiles = ReadLinkErrorTooManyOpenFiles;
30
46
  exports.readLink = readLink;
@@ -1,10 +1,30 @@
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 ReadLinkResult = FileSystemEither<DEither.Right<"read-link", string> | DEither.Left<"read-link-not-found", unknown> | DEither.Left<"read-link-permission-denied", unknown> | DEither.Left<"read-link-invalid-argument", unknown> | DEither.Left<"read-link-not-directory", unknown> | DEither.Left<"read-link-too-many-open-files", unknown> | DEither.Left<"read-link-error", unknown>>;
3
+ import * as DCommon from "@duplojs/lang/common";
4
+ declare const ReadLinkErrorNotFound_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-link-not-found", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-link-not-found", unknown>>, unknown>;
5
+ export declare class ReadLinkErrorNotFound extends ReadLinkErrorNotFound_base {
6
+ }
7
+ declare const ReadLinkErrorPermissionDenied_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-link-permission-denied", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-link-permission-denied", unknown>>, unknown>;
8
+ export declare class ReadLinkErrorPermissionDenied extends ReadLinkErrorPermissionDenied_base {
9
+ }
10
+ declare const ReadLinkErrorInvalidArgument_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-link-invalid-argument", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-link-invalid-argument", unknown>>, unknown>;
11
+ export declare class ReadLinkErrorInvalidArgument extends ReadLinkErrorInvalidArgument_base {
12
+ }
13
+ declare const ReadLinkErrorNotDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-link-not-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-link-not-directory", unknown>>, unknown>;
14
+ export declare class ReadLinkErrorNotDirectory extends ReadLinkErrorNotDirectory_base {
15
+ }
16
+ declare const ReadLinkErrorTooManyOpenFiles_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-link-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-read-link-too-many-open-files", unknown>>, unknown>;
17
+ export declare class ReadLinkErrorTooManyOpenFiles extends ReadLinkErrorTooManyOpenFiles_base {
18
+ }
19
+ declare const ReadLinkError_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-link-error", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-link-error", unknown>>, unknown>;
20
+ export declare class ReadLinkError extends ReadLinkError_base {
21
+ }
22
+ export type ReadLinkErrors = (ReadLinkErrorNotFound | ReadLinkErrorPermissionDenied | ReadLinkErrorInvalidArgument | ReadLinkErrorNotDirectory | ReadLinkErrorTooManyOpenFiles | ReadLinkError);
23
+ export type ReadLinkResult = (DEither.Right<"file-system-read-link", string> | DEither.Left<"file-system-read-link-error", ReadLinkErrors>);
5
24
  declare module '../implementor' {
6
25
  interface ServerFunction {
7
- readLink(path: string & DPath.Path): Promise<ReadLinkResult>;
26
+ readLink(path: DPath.AnyPath): Promise<ReadLinkResult>;
8
27
  }
9
28
  }
10
- export declare const readLink: (path: string & DPath.Path) => Promise<ReadLinkResult>;
29
+ export declare const readLink: (path: DPath.AnyPath) => Promise<ReadLinkResult>;
30
+ export {};
@@ -1,28 +1,37 @@
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/readLink.ts
5
+ var ReadLinkErrorNotFound = class extends DCommon.DuploJSError.parentClass("file-system-read-link-not-found", Error) {};
6
+ var ReadLinkErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-read-link-permission-denied", Error) {};
7
+ var ReadLinkErrorInvalidArgument = class extends DCommon.DuploJSError.parentClass("file-system-read-link-invalid-argument", Error) {};
8
+ var ReadLinkErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-read-link-not-directory", Error) {};
9
+ var ReadLinkErrorTooManyOpenFiles = class extends DCommon.DuploJSError.parentClass("file-system-read-link-too-many-open-files", Error) {};
10
+ var ReadLinkError = class extends DCommon.DuploJSError.parentClass("file-system-read-link-error", Error) {};
4
11
  function handleNodeReadLinkError(error) {
5
- if (typeof error === "object" && error !== null && "code" in error) {
6
- if (error.code === "ENOENT") return DEither.left("file-system-read-link-not-found", error);
7
- else if (error.code === "EACCES" || error.code === "EPERM") return DEither.left("file-system-read-link-permission-denied", error);
8
- else if (error.code === "EINVAL") return DEither.left("file-system-read-link-invalid-argument", error);
9
- else if (error.code === "ENOTDIR") return DEither.left("file-system-read-link-not-directory", error);
10
- else if (error.code === "EMFILE" || error.code === "ENFILE") return DEither.left("file-system-read-link-too-many-open-files", error);
12
+ let readLinkError = void 0;
13
+ if ("code" in error) {
14
+ if (error.code === "ENOENT") readLinkError = new ReadLinkErrorNotFound(error);
15
+ else if (error.code === "EACCES" || error.code === "EPERM") readLinkError = new ReadLinkErrorPermissionDenied(error);
16
+ else if (error.code === "EINVAL") readLinkError = new ReadLinkErrorInvalidArgument(error);
17
+ else if (error.code === "ENOTDIR") readLinkError = new ReadLinkErrorNotDirectory(error);
18
+ else if (error.code === "EMFILE" || error.code === "ENFILE") readLinkError = new ReadLinkErrorTooManyOpenFiles(error);
11
19
  }
12
- return DEither.left("file-system-read-link-error", error);
20
+ if (readLinkError === void 0) readLinkError = new ReadLinkError(error);
21
+ return DEither.left("file-system-read-link-error", readLinkError);
13
22
  }
14
23
  function handleDenoReadLinkError(error) {
15
- if (error instanceof Deno.errors.NotFound) return DEither.left("file-system-read-link-not-found", error);
16
- if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return DEither.left("file-system-read-link-permission-denied", error);
17
- if (error instanceof Deno.errors.InvalidData) return DEither.left("file-system-read-link-invalid-argument", error);
18
- if (error instanceof Deno.errors.NotADirectory) return DEither.left("file-system-read-link-not-directory", error);
19
- return DEither.left("file-system-read-link-error", error);
24
+ let readLinkError = void 0;
25
+ if (error instanceof Deno.errors.NotFound) readLinkError = new ReadLinkErrorNotFound(error);
26
+ else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) readLinkError = new ReadLinkErrorPermissionDenied(error);
27
+ else if (error instanceof Deno.errors.InvalidData) readLinkError = new ReadLinkErrorInvalidArgument(error);
28
+ else if (error instanceof Deno.errors.NotADirectory) readLinkError = new ReadLinkErrorNotDirectory(error);
29
+ if (readLinkError === void 0) readLinkError = new ReadLinkError(error);
30
+ return DEither.left("file-system-read-link-error", readLinkError);
20
31
  }
21
32
  const readLink = implementFunction("readLink", {
22
- NODE: async (path) => {
23
- return (await nodeFileSystem.value).readlink(path, { encoding: "utf-8" }).then((value) => DEither.right("file-system-read-link", value)).catch(handleNodeReadLinkError);
24
- },
33
+ NODE: async (path) => nodeFileSystem.value.readlink(path, { encoding: "utf-8" }).then((value) => DEither.right("file-system-read-link", value)).catch(handleNodeReadLinkError),
25
34
  DENO: (path) => Deno.readLink(path).then((value) => DEither.right("file-system-read-link", value)).catch(handleDenoReadLinkError)
26
35
  });
27
36
  //#endregion
28
- export { readLink };
37
+ export { ReadLinkError, ReadLinkErrorInvalidArgument, ReadLinkErrorNotDirectory, ReadLinkErrorNotFound, ReadLinkErrorPermissionDenied, ReadLinkErrorTooManyOpenFiles, readLink };