@duplojs/server 0.1.0-beta.1 → 0.1.0-beta.10

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 +96 -43
  7. package/dist/command/error.d.ts +9 -1
  8. package/dist/command/error.mjs +95 -42
  9. package/dist/command/exec.d.ts +4 -3
  10. package/dist/command/help.cjs +28 -35
  11. package/dist/command/help.d.ts +1 -1
  12. package/dist/command/help.mjs +27 -34
  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
@@ -5,43 +5,54 @@ _duplojs_lang_common = require_runtime.__toESM(_duplojs_lang_common, 1);
5
5
  let _duplojs_lang_either = require("@duplojs/lang/either");
6
6
  _duplojs_lang_either = require_runtime.__toESM(_duplojs_lang_either, 1);
7
7
  //#region scripts/file/writeJsonFile.ts
8
+ var WriteJsonFileErrorNotFound = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-json-file-not-found", Error) {};
9
+ var WriteJsonFileErrorPermissionDenied = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-json-file-permission-denied", Error) {};
10
+ var WriteJsonFileErrorIsDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-json-file-is-directory", Error) {};
11
+ var WriteJsonFileErrorNotDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-json-file-not-directory", Error) {};
12
+ var WriteJsonFileErrorNoSpace = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-json-file-no-space", Error) {};
13
+ var WriteJsonFileErrorReadOnly = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-json-file-read-only", Error) {};
14
+ var WriteJsonFileErrorInvalidArgument = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-json-file-invalid-argument", Error) {};
15
+ var WriteJsonFileErrorTooManyOpenFiles = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-json-file-too-many-open-files", Error) {};
16
+ var WriteJsonFileErrorBusy = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-json-file-busy", Error) {};
17
+ var WriteJsonFileError = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-json-file-error", Error) {};
8
18
  function handleNodeWriteJsonFileError(error) {
9
- if (typeof error === "object" && error !== null && "code" in error) {
10
- if (error.code === "ENOENT") return _duplojs_lang_either.left("file-system-write-json-file-not-found", error);
11
- else if (error.code === "EACCES" || error.code === "EPERM") return _duplojs_lang_either.left("file-system-write-json-file-permission-denied", error);
12
- else if (error.code === "EISDIR") return _duplojs_lang_either.left("file-system-write-json-file-is-directory", error);
13
- else if (error.code === "ENOTDIR") return _duplojs_lang_either.left("file-system-write-json-file-not-directory", error);
14
- else if (error.code === "ENOSPC") return _duplojs_lang_either.left("file-system-write-json-file-no-space", error);
15
- else if (error.code === "EROFS") return _duplojs_lang_either.left("file-system-write-json-file-read-only", error);
16
- else if (error.code === "EINVAL") return _duplojs_lang_either.left("file-system-write-json-file-invalid-argument", error);
17
- else if (error.code === "EMFILE" || error.code === "ENFILE") return _duplojs_lang_either.left("file-system-write-json-file-too-many-open-files", error);
18
- else if (error.code === "EBUSY") return _duplojs_lang_either.left("file-system-write-json-file-busy", error);
19
+ let writeJsonFileError = void 0;
20
+ if ("code" in error) {
21
+ if (error.code === "ENOENT") writeJsonFileError = new WriteJsonFileErrorNotFound(error);
22
+ else if (error.code === "EACCES" || error.code === "EPERM") writeJsonFileError = new WriteJsonFileErrorPermissionDenied(error);
23
+ else if (error.code === "EISDIR") writeJsonFileError = new WriteJsonFileErrorIsDirectory(error);
24
+ else if (error.code === "ENOTDIR") writeJsonFileError = new WriteJsonFileErrorNotDirectory(error);
25
+ else if (error.code === "ENOSPC") writeJsonFileError = new WriteJsonFileErrorNoSpace(error);
26
+ else if (error.code === "EROFS") writeJsonFileError = new WriteJsonFileErrorReadOnly(error);
27
+ else if (error.code === "EINVAL") writeJsonFileError = new WriteJsonFileErrorInvalidArgument(error);
28
+ else if (error.code === "EMFILE" || error.code === "ENFILE") writeJsonFileError = new WriteJsonFileErrorTooManyOpenFiles(error);
29
+ else if (error.code === "EBUSY") writeJsonFileError = new WriteJsonFileErrorBusy(error);
19
30
  }
20
- return _duplojs_lang_either.left("file-system-write-json-file-error", error);
31
+ if (writeJsonFileError === void 0) writeJsonFileError = new WriteJsonFileError(error);
32
+ return _duplojs_lang_either.left("file-system-write-json-file-error", writeJsonFileError);
21
33
  }
22
34
  function handleDenoWriteJsonFileError(error) {
23
- if (error instanceof Deno.errors.NotFound) return _duplojs_lang_either.left("file-system-write-json-file-not-found", error);
24
- if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return _duplojs_lang_either.left("file-system-write-json-file-permission-denied", error);
25
- if (error instanceof Deno.errors.IsADirectory) return _duplojs_lang_either.left("file-system-write-json-file-is-directory", error);
26
- if (error instanceof Deno.errors.NotADirectory) return _duplojs_lang_either.left("file-system-write-json-file-not-directory", error);
27
- if (error instanceof Deno.errors.InvalidData) return _duplojs_lang_either.left("file-system-write-json-file-invalid-argument", error);
28
- if (error instanceof Deno.errors.Busy) return _duplojs_lang_either.left("file-system-write-json-file-busy", error);
29
- return _duplojs_lang_either.left("file-system-write-json-file-error", error);
35
+ let writeJsonFileError = void 0;
36
+ if (error instanceof Deno.errors.NotFound) writeJsonFileError = new WriteJsonFileErrorNotFound(error);
37
+ else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) writeJsonFileError = new WriteJsonFileErrorPermissionDenied(error);
38
+ else if (error instanceof Deno.errors.IsADirectory) writeJsonFileError = new WriteJsonFileErrorIsDirectory(error);
39
+ else if (error instanceof Deno.errors.NotADirectory) writeJsonFileError = new WriteJsonFileErrorNotDirectory(error);
40
+ else if (error instanceof Deno.errors.InvalidData) writeJsonFileError = new WriteJsonFileErrorInvalidArgument(error);
41
+ else if (error instanceof Deno.errors.Busy) writeJsonFileError = new WriteJsonFileErrorBusy(error);
42
+ if (writeJsonFileError === void 0) writeJsonFileError = new WriteJsonFileError(error);
43
+ return _duplojs_lang_either.left("file-system-write-json-file-error", writeJsonFileError);
30
44
  }
31
45
  const writeJsonFileImplementation = require_implementor.implementFunction("writeJsonFile", {
32
- NODE: async (path, data, params) => {
33
- const fs = await require_implementor.nodeFileSystem.value;
34
- return _duplojs_lang_common.pipe(_duplojs_lang_either.safeCallback(() => JSON.stringify(data, null, params?.space)), _duplojs_lang_either.matchInformation({
35
- "safe-callback-error": (value) => _duplojs_lang_either.left("file-system-write-json-file-error", value),
36
- "safe-callback-success": (value) => fs.writeFile(path, value, { encoding: "utf-8" }).then(() => _duplojs_lang_either.right("file-system-write-json-file")).catch(handleNodeWriteJsonFileError)
37
- }));
38
- },
46
+ NODE: async (path, data, params) => _duplojs_lang_common.pipe(_duplojs_lang_either.safeCallback(() => JSON.stringify(data, null, params?.space)), _duplojs_lang_either.matchInformation({
47
+ "safe-callback-error": (value) => _duplojs_lang_either.left("file-system-write-json-file-error", new WriteJsonFileError(value)),
48
+ "safe-callback-success": (value) => require_implementor.nodeFileSystem.value.writeFile(path, value, { encoding: "utf-8" }).then(() => _duplojs_lang_either.right("file-system-write-json-file")).catch(handleNodeWriteJsonFileError)
49
+ })),
39
50
  DENO: async (path, data, params) => _duplojs_lang_common.pipe(_duplojs_lang_either.safeCallback(() => JSON.stringify(data, null, params?.space)), _duplojs_lang_either.matchInformation({
40
- "safe-callback-error": (value) => _duplojs_lang_either.left("file-system-write-json-file-error", value),
51
+ "safe-callback-error": (value) => _duplojs_lang_either.left("file-system-write-json-file-error", new WriteJsonFileError(value)),
41
52
  "safe-callback-success": (value) => Deno.writeTextFile(path, value).then(() => _duplojs_lang_either.right("file-system-write-json-file")).catch(handleDenoWriteJsonFileError)
42
53
  })),
43
54
  BUN: async (path, data, params) => _duplojs_lang_common.pipe(_duplojs_lang_either.safeCallback(() => JSON.stringify(data, null, params?.space)), _duplojs_lang_either.matchInformation({
44
- "safe-callback-error": (value) => _duplojs_lang_either.left("file-system-write-json-file-error", value),
55
+ "safe-callback-error": (value) => _duplojs_lang_either.left("file-system-write-json-file-error", new WriteJsonFileError(value)),
45
56
  "safe-callback-success": (value) => Bun.file(path).write(value).then(() => _duplojs_lang_either.right("file-system-write-json-file")).catch(handleNodeWriteJsonFileError)
46
57
  }))
47
58
  });
@@ -53,4 +64,14 @@ function writeJsonFile(...args) {
53
64
  return writeJsonFileImplementation(...args);
54
65
  }
55
66
  //#endregion
67
+ exports.WriteJsonFileError = WriteJsonFileError;
68
+ exports.WriteJsonFileErrorBusy = WriteJsonFileErrorBusy;
69
+ exports.WriteJsonFileErrorInvalidArgument = WriteJsonFileErrorInvalidArgument;
70
+ exports.WriteJsonFileErrorIsDirectory = WriteJsonFileErrorIsDirectory;
71
+ exports.WriteJsonFileErrorNoSpace = WriteJsonFileErrorNoSpace;
72
+ exports.WriteJsonFileErrorNotDirectory = WriteJsonFileErrorNotDirectory;
73
+ exports.WriteJsonFileErrorNotFound = WriteJsonFileErrorNotFound;
74
+ exports.WriteJsonFileErrorPermissionDenied = WriteJsonFileErrorPermissionDenied;
75
+ exports.WriteJsonFileErrorReadOnly = WriteJsonFileErrorReadOnly;
76
+ exports.WriteJsonFileErrorTooManyOpenFiles = WriteJsonFileErrorTooManyOpenFiles;
56
77
  exports.writeJsonFile = writeJsonFile;
@@ -1,15 +1,46 @@
1
- import { FileSystemEither } from './types';
1
+ import * as DCommon from "@duplojs/lang/common";
2
2
  import * as DEither from "@duplojs/lang/either";
3
3
  import type * as DPath from "@duplojs/lang/path";
4
- interface WriteJsonFile {
4
+ interface WriteJsonFileParams {
5
5
  space?: number;
6
6
  }
7
- export type WriteJsonFileResult = FileSystemEither<DEither.Right<"write-json-file", void> | DEither.Left<"write-json-file-not-found", unknown> | DEither.Left<"write-json-file-permission-denied", unknown> | DEither.Left<"write-json-file-is-directory", unknown> | DEither.Left<"write-json-file-not-directory", unknown> | DEither.Left<"write-json-file-no-space", unknown> | DEither.Left<"write-json-file-read-only", unknown> | DEither.Left<"write-json-file-invalid-argument", unknown> | DEither.Left<"write-json-file-too-many-open-files", unknown> | DEither.Left<"write-json-file-busy", unknown> | DEither.Left<"write-json-file-error", unknown>>;
7
+ declare const WriteJsonFileErrorNotFound_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-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-write-json-file-not-found", unknown>>, unknown>;
8
+ export declare class WriteJsonFileErrorNotFound extends WriteJsonFileErrorNotFound_base {
9
+ }
10
+ declare const WriteJsonFileErrorPermissionDenied_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-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-write-json-file-permission-denied", unknown>>, unknown>;
11
+ export declare class WriteJsonFileErrorPermissionDenied extends WriteJsonFileErrorPermissionDenied_base {
12
+ }
13
+ declare const WriteJsonFileErrorIsDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-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-write-json-file-is-directory", unknown>>, unknown>;
14
+ export declare class WriteJsonFileErrorIsDirectory extends WriteJsonFileErrorIsDirectory_base {
15
+ }
16
+ declare const WriteJsonFileErrorNotDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-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-write-json-file-not-directory", unknown>>, unknown>;
17
+ export declare class WriteJsonFileErrorNotDirectory extends WriteJsonFileErrorNotDirectory_base {
18
+ }
19
+ declare const WriteJsonFileErrorNoSpace_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-json-file-no-space", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-json-file-no-space", unknown>>, unknown>;
20
+ export declare class WriteJsonFileErrorNoSpace extends WriteJsonFileErrorNoSpace_base {
21
+ }
22
+ declare const WriteJsonFileErrorReadOnly_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-json-file-read-only", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-json-file-read-only", unknown>>, unknown>;
23
+ export declare class WriteJsonFileErrorReadOnly extends WriteJsonFileErrorReadOnly_base {
24
+ }
25
+ declare const WriteJsonFileErrorInvalidArgument_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-json-file-invalid-argument", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-json-file-invalid-argument", unknown>>, unknown>;
26
+ export declare class WriteJsonFileErrorInvalidArgument extends WriteJsonFileErrorInvalidArgument_base {
27
+ }
28
+ declare const WriteJsonFileErrorTooManyOpenFiles_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-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-write-json-file-too-many-open-files", unknown>>, unknown>;
29
+ export declare class WriteJsonFileErrorTooManyOpenFiles extends WriteJsonFileErrorTooManyOpenFiles_base {
30
+ }
31
+ declare const WriteJsonFileErrorBusy_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-json-file-busy", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-json-file-busy", unknown>>, unknown>;
32
+ export declare class WriteJsonFileErrorBusy extends WriteJsonFileErrorBusy_base {
33
+ }
34
+ declare const WriteJsonFileError_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-json-file-error", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-json-file-error", unknown>>, unknown>;
35
+ export declare class WriteJsonFileError extends WriteJsonFileError_base {
36
+ }
37
+ export type WriteJsonFileErrors = (WriteJsonFileErrorNotFound | WriteJsonFileErrorPermissionDenied | WriteJsonFileErrorIsDirectory | WriteJsonFileErrorNotDirectory | WriteJsonFileErrorNoSpace | WriteJsonFileErrorReadOnly | WriteJsonFileErrorInvalidArgument | WriteJsonFileErrorTooManyOpenFiles | WriteJsonFileErrorBusy | WriteJsonFileError);
38
+ export type WriteJsonFileResult = (DEither.Right<"file-system-write-json-file", void> | DEither.Left<"file-system-write-json-file-error", WriteJsonFileErrors>);
8
39
  declare module '../implementor' {
9
40
  interface ServerFunction {
10
- writeJsonFile(path: string & DPath.Path, data: unknown, params?: WriteJsonFile): Promise<WriteJsonFileResult>;
41
+ writeJsonFile(path: DPath.AnyPath, data: unknown, params?: WriteJsonFileParams): Promise<WriteJsonFileResult>;
11
42
  }
12
43
  }
13
- export declare function writeJsonFile(data: unknown): (path: string & DPath.Path) => Promise<WriteJsonFileResult>;
14
- export declare function writeJsonFile(path: string & DPath.Path, data: unknown, params?: WriteJsonFile): Promise<WriteJsonFileResult>;
44
+ export declare function writeJsonFile(data: unknown): (path: DPath.AnyPath) => Promise<WriteJsonFileResult>;
45
+ export declare function writeJsonFile(path: DPath.AnyPath, data: unknown, params?: WriteJsonFileParams): Promise<WriteJsonFileResult>;
15
46
  export {};
@@ -2,43 +2,54 @@ import { implementFunction, nodeFileSystem } from "../implementor.mjs";
2
2
  import * as DCommon from "@duplojs/lang/common";
3
3
  import * as DEither from "@duplojs/lang/either";
4
4
  //#region scripts/file/writeJsonFile.ts
5
+ var WriteJsonFileErrorNotFound = class extends DCommon.DuploJSError.parentClass("file-system-write-json-file-not-found", Error) {};
6
+ var WriteJsonFileErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-write-json-file-permission-denied", Error) {};
7
+ var WriteJsonFileErrorIsDirectory = class extends DCommon.DuploJSError.parentClass("file-system-write-json-file-is-directory", Error) {};
8
+ var WriteJsonFileErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-write-json-file-not-directory", Error) {};
9
+ var WriteJsonFileErrorNoSpace = class extends DCommon.DuploJSError.parentClass("file-system-write-json-file-no-space", Error) {};
10
+ var WriteJsonFileErrorReadOnly = class extends DCommon.DuploJSError.parentClass("file-system-write-json-file-read-only", Error) {};
11
+ var WriteJsonFileErrorInvalidArgument = class extends DCommon.DuploJSError.parentClass("file-system-write-json-file-invalid-argument", Error) {};
12
+ var WriteJsonFileErrorTooManyOpenFiles = class extends DCommon.DuploJSError.parentClass("file-system-write-json-file-too-many-open-files", Error) {};
13
+ var WriteJsonFileErrorBusy = class extends DCommon.DuploJSError.parentClass("file-system-write-json-file-busy", Error) {};
14
+ var WriteJsonFileError = class extends DCommon.DuploJSError.parentClass("file-system-write-json-file-error", Error) {};
5
15
  function handleNodeWriteJsonFileError(error) {
6
- if (typeof error === "object" && error !== null && "code" in error) {
7
- if (error.code === "ENOENT") return DEither.left("file-system-write-json-file-not-found", error);
8
- else if (error.code === "EACCES" || error.code === "EPERM") return DEither.left("file-system-write-json-file-permission-denied", error);
9
- else if (error.code === "EISDIR") return DEither.left("file-system-write-json-file-is-directory", error);
10
- else if (error.code === "ENOTDIR") return DEither.left("file-system-write-json-file-not-directory", error);
11
- else if (error.code === "ENOSPC") return DEither.left("file-system-write-json-file-no-space", error);
12
- else if (error.code === "EROFS") return DEither.left("file-system-write-json-file-read-only", error);
13
- else if (error.code === "EINVAL") return DEither.left("file-system-write-json-file-invalid-argument", error);
14
- else if (error.code === "EMFILE" || error.code === "ENFILE") return DEither.left("file-system-write-json-file-too-many-open-files", error);
15
- else if (error.code === "EBUSY") return DEither.left("file-system-write-json-file-busy", error);
16
+ let writeJsonFileError = void 0;
17
+ if ("code" in error) {
18
+ if (error.code === "ENOENT") writeJsonFileError = new WriteJsonFileErrorNotFound(error);
19
+ else if (error.code === "EACCES" || error.code === "EPERM") writeJsonFileError = new WriteJsonFileErrorPermissionDenied(error);
20
+ else if (error.code === "EISDIR") writeJsonFileError = new WriteJsonFileErrorIsDirectory(error);
21
+ else if (error.code === "ENOTDIR") writeJsonFileError = new WriteJsonFileErrorNotDirectory(error);
22
+ else if (error.code === "ENOSPC") writeJsonFileError = new WriteJsonFileErrorNoSpace(error);
23
+ else if (error.code === "EROFS") writeJsonFileError = new WriteJsonFileErrorReadOnly(error);
24
+ else if (error.code === "EINVAL") writeJsonFileError = new WriteJsonFileErrorInvalidArgument(error);
25
+ else if (error.code === "EMFILE" || error.code === "ENFILE") writeJsonFileError = new WriteJsonFileErrorTooManyOpenFiles(error);
26
+ else if (error.code === "EBUSY") writeJsonFileError = new WriteJsonFileErrorBusy(error);
16
27
  }
17
- return DEither.left("file-system-write-json-file-error", error);
28
+ if (writeJsonFileError === void 0) writeJsonFileError = new WriteJsonFileError(error);
29
+ return DEither.left("file-system-write-json-file-error", writeJsonFileError);
18
30
  }
19
31
  function handleDenoWriteJsonFileError(error) {
20
- if (error instanceof Deno.errors.NotFound) return DEither.left("file-system-write-json-file-not-found", error);
21
- if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return DEither.left("file-system-write-json-file-permission-denied", error);
22
- if (error instanceof Deno.errors.IsADirectory) return DEither.left("file-system-write-json-file-is-directory", error);
23
- if (error instanceof Deno.errors.NotADirectory) return DEither.left("file-system-write-json-file-not-directory", error);
24
- if (error instanceof Deno.errors.InvalidData) return DEither.left("file-system-write-json-file-invalid-argument", error);
25
- if (error instanceof Deno.errors.Busy) return DEither.left("file-system-write-json-file-busy", error);
26
- return DEither.left("file-system-write-json-file-error", error);
32
+ let writeJsonFileError = void 0;
33
+ if (error instanceof Deno.errors.NotFound) writeJsonFileError = new WriteJsonFileErrorNotFound(error);
34
+ else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) writeJsonFileError = new WriteJsonFileErrorPermissionDenied(error);
35
+ else if (error instanceof Deno.errors.IsADirectory) writeJsonFileError = new WriteJsonFileErrorIsDirectory(error);
36
+ else if (error instanceof Deno.errors.NotADirectory) writeJsonFileError = new WriteJsonFileErrorNotDirectory(error);
37
+ else if (error instanceof Deno.errors.InvalidData) writeJsonFileError = new WriteJsonFileErrorInvalidArgument(error);
38
+ else if (error instanceof Deno.errors.Busy) writeJsonFileError = new WriteJsonFileErrorBusy(error);
39
+ if (writeJsonFileError === void 0) writeJsonFileError = new WriteJsonFileError(error);
40
+ return DEither.left("file-system-write-json-file-error", writeJsonFileError);
27
41
  }
28
42
  const writeJsonFileImplementation = implementFunction("writeJsonFile", {
29
- NODE: async (path, data, params) => {
30
- const fs = await nodeFileSystem.value;
31
- return DCommon.pipe(DEither.safeCallback(() => JSON.stringify(data, null, params?.space)), DEither.matchInformation({
32
- "safe-callback-error": (value) => DEither.left("file-system-write-json-file-error", value),
33
- "safe-callback-success": (value) => fs.writeFile(path, value, { encoding: "utf-8" }).then(() => DEither.right("file-system-write-json-file")).catch(handleNodeWriteJsonFileError)
34
- }));
35
- },
43
+ NODE: async (path, data, params) => DCommon.pipe(DEither.safeCallback(() => JSON.stringify(data, null, params?.space)), DEither.matchInformation({
44
+ "safe-callback-error": (value) => DEither.left("file-system-write-json-file-error", new WriteJsonFileError(value)),
45
+ "safe-callback-success": (value) => nodeFileSystem.value.writeFile(path, value, { encoding: "utf-8" }).then(() => DEither.right("file-system-write-json-file")).catch(handleNodeWriteJsonFileError)
46
+ })),
36
47
  DENO: async (path, data, params) => DCommon.pipe(DEither.safeCallback(() => JSON.stringify(data, null, params?.space)), DEither.matchInformation({
37
- "safe-callback-error": (value) => DEither.left("file-system-write-json-file-error", value),
48
+ "safe-callback-error": (value) => DEither.left("file-system-write-json-file-error", new WriteJsonFileError(value)),
38
49
  "safe-callback-success": (value) => Deno.writeTextFile(path, value).then(() => DEither.right("file-system-write-json-file")).catch(handleDenoWriteJsonFileError)
39
50
  })),
40
51
  BUN: async (path, data, params) => DCommon.pipe(DEither.safeCallback(() => JSON.stringify(data, null, params?.space)), DEither.matchInformation({
41
- "safe-callback-error": (value) => DEither.left("file-system-write-json-file-error", value),
52
+ "safe-callback-error": (value) => DEither.left("file-system-write-json-file-error", new WriteJsonFileError(value)),
42
53
  "safe-callback-success": (value) => Bun.file(path).write(value).then(() => DEither.right("file-system-write-json-file")).catch(handleNodeWriteJsonFileError)
43
54
  }))
44
55
  });
@@ -50,4 +61,4 @@ function writeJsonFile(...args) {
50
61
  return writeJsonFileImplementation(...args);
51
62
  }
52
63
  //#endregion
53
- export { writeJsonFile };
64
+ export { WriteJsonFileError, WriteJsonFileErrorBusy, WriteJsonFileErrorInvalidArgument, WriteJsonFileErrorIsDirectory, WriteJsonFileErrorNoSpace, WriteJsonFileErrorNotDirectory, WriteJsonFileErrorNotFound, WriteJsonFileErrorPermissionDenied, WriteJsonFileErrorReadOnly, WriteJsonFileErrorTooManyOpenFiles, writeJsonFile };
@@ -1,35 +1,49 @@
1
1
  const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
2
2
  const require_implementor = require("../implementor.cjs");
3
+ let _duplojs_lang_common = require("@duplojs/lang/common");
4
+ _duplojs_lang_common = require_runtime.__toESM(_duplojs_lang_common, 1);
3
5
  let _duplojs_lang_either = require("@duplojs/lang/either");
4
6
  _duplojs_lang_either = require_runtime.__toESM(_duplojs_lang_either, 1);
5
7
  //#region scripts/file/writeTextFile.ts
8
+ var WriteTextFileErrorNotFound = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-text-file-not-found", Error) {};
9
+ var WriteTextFileErrorPermissionDenied = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-text-file-permission-denied", Error) {};
10
+ var WriteTextFileErrorIsDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-text-file-is-directory", Error) {};
11
+ var WriteTextFileErrorNotDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-text-file-not-directory", Error) {};
12
+ var WriteTextFileErrorNoSpace = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-text-file-no-space", Error) {};
13
+ var WriteTextFileErrorReadOnly = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-text-file-read-only", Error) {};
14
+ var WriteTextFileErrorInvalidArgument = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-text-file-invalid-argument", Error) {};
15
+ var WriteTextFileErrorTooManyOpenFiles = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-text-file-too-many-open-files", Error) {};
16
+ var WriteTextFileErrorBusy = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-text-file-busy", Error) {};
17
+ var WriteTextFileError = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-text-file-error", Error) {};
6
18
  function handleNodeWriteTextFileError(error) {
7
- if (typeof error === "object" && error !== null && "code" in error) {
8
- if (error.code === "ENOENT") return _duplojs_lang_either.left("file-system-write-text-file-not-found", error);
9
- else if (error.code === "EACCES" || error.code === "EPERM") return _duplojs_lang_either.left("file-system-write-text-file-permission-denied", error);
10
- else if (error.code === "EISDIR") return _duplojs_lang_either.left("file-system-write-text-file-is-directory", error);
11
- else if (error.code === "ENOTDIR") return _duplojs_lang_either.left("file-system-write-text-file-not-directory", error);
12
- else if (error.code === "ENOSPC") return _duplojs_lang_either.left("file-system-write-text-file-no-space", error);
13
- else if (error.code === "EROFS") return _duplojs_lang_either.left("file-system-write-text-file-read-only", error);
14
- else if (error.code === "EINVAL") return _duplojs_lang_either.left("file-system-write-text-file-invalid-argument", error);
15
- else if (error.code === "EMFILE" || error.code === "ENFILE") return _duplojs_lang_either.left("file-system-write-text-file-too-many-open-files", error);
16
- else if (error.code === "EBUSY") return _duplojs_lang_either.left("file-system-write-text-file-busy", error);
19
+ let writeTextFileError = void 0;
20
+ if ("code" in error) {
21
+ if (error.code === "ENOENT") writeTextFileError = new WriteTextFileErrorNotFound(error);
22
+ else if (error.code === "EACCES" || error.code === "EPERM") writeTextFileError = new WriteTextFileErrorPermissionDenied(error);
23
+ else if (error.code === "EISDIR") writeTextFileError = new WriteTextFileErrorIsDirectory(error);
24
+ else if (error.code === "ENOTDIR") writeTextFileError = new WriteTextFileErrorNotDirectory(error);
25
+ else if (error.code === "ENOSPC") writeTextFileError = new WriteTextFileErrorNoSpace(error);
26
+ else if (error.code === "EROFS") writeTextFileError = new WriteTextFileErrorReadOnly(error);
27
+ else if (error.code === "EINVAL") writeTextFileError = new WriteTextFileErrorInvalidArgument(error);
28
+ else if (error.code === "EMFILE" || error.code === "ENFILE") writeTextFileError = new WriteTextFileErrorTooManyOpenFiles(error);
29
+ else if (error.code === "EBUSY") writeTextFileError = new WriteTextFileErrorBusy(error);
17
30
  }
18
- return _duplojs_lang_either.left("file-system-write-text-file-error", error);
31
+ if (writeTextFileError === void 0) writeTextFileError = new WriteTextFileError(error);
32
+ return _duplojs_lang_either.left("file-system-write-text-file-error", writeTextFileError);
19
33
  }
20
34
  function handleDenoWriteTextFileError(error) {
21
- if (error instanceof Deno.errors.NotFound) return _duplojs_lang_either.left("file-system-write-text-file-not-found", error);
22
- if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return _duplojs_lang_either.left("file-system-write-text-file-permission-denied", error);
23
- if (error instanceof Deno.errors.IsADirectory) return _duplojs_lang_either.left("file-system-write-text-file-is-directory", error);
24
- if (error instanceof Deno.errors.NotADirectory) return _duplojs_lang_either.left("file-system-write-text-file-not-directory", error);
25
- if (error instanceof Deno.errors.InvalidData) return _duplojs_lang_either.left("file-system-write-text-file-invalid-argument", error);
26
- if (error instanceof Deno.errors.Busy) return _duplojs_lang_either.left("file-system-write-text-file-busy", error);
27
- return _duplojs_lang_either.left("file-system-write-text-file-error", error);
35
+ let writeTextFileError = void 0;
36
+ if (error instanceof Deno.errors.NotFound) writeTextFileError = new WriteTextFileErrorNotFound(error);
37
+ else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) writeTextFileError = new WriteTextFileErrorPermissionDenied(error);
38
+ else if (error instanceof Deno.errors.IsADirectory) writeTextFileError = new WriteTextFileErrorIsDirectory(error);
39
+ else if (error instanceof Deno.errors.NotADirectory) writeTextFileError = new WriteTextFileErrorNotDirectory(error);
40
+ else if (error instanceof Deno.errors.InvalidData) writeTextFileError = new WriteTextFileErrorInvalidArgument(error);
41
+ else if (error instanceof Deno.errors.Busy) writeTextFileError = new WriteTextFileErrorBusy(error);
42
+ if (writeTextFileError === void 0) writeTextFileError = new WriteTextFileError(error);
43
+ return _duplojs_lang_either.left("file-system-write-text-file-error", writeTextFileError);
28
44
  }
29
45
  const writeTextFileImplementation = require_implementor.implementFunction("writeTextFile", {
30
- NODE: async (path, data) => {
31
- return (await require_implementor.nodeFileSystem.value).writeFile(path, data, { encoding: "utf-8" }).then(() => _duplojs_lang_either.right("file-system-write-text-file")).catch(handleNodeWriteTextFileError);
32
- },
46
+ NODE: async (path, data) => require_implementor.nodeFileSystem.value.writeFile(path, data, { encoding: "utf-8" }).then(() => _duplojs_lang_either.right("file-system-write-text-file")).catch(handleNodeWriteTextFileError),
33
47
  DENO: (path, data) => Deno.writeTextFile(path, data).then(() => _duplojs_lang_either.right("file-system-write-text-file")).catch(handleDenoWriteTextFileError),
34
48
  BUN: (path, data) => Bun.file(path).write(data).then(() => _duplojs_lang_either.right("file-system-write-text-file")).catch(handleNodeWriteTextFileError)
35
49
  });
@@ -41,4 +55,14 @@ function writeTextFile(...args) {
41
55
  return writeTextFileImplementation(...args);
42
56
  }
43
57
  //#endregion
58
+ exports.WriteTextFileError = WriteTextFileError;
59
+ exports.WriteTextFileErrorBusy = WriteTextFileErrorBusy;
60
+ exports.WriteTextFileErrorInvalidArgument = WriteTextFileErrorInvalidArgument;
61
+ exports.WriteTextFileErrorIsDirectory = WriteTextFileErrorIsDirectory;
62
+ exports.WriteTextFileErrorNoSpace = WriteTextFileErrorNoSpace;
63
+ exports.WriteTextFileErrorNotDirectory = WriteTextFileErrorNotDirectory;
64
+ exports.WriteTextFileErrorNotFound = WriteTextFileErrorNotFound;
65
+ exports.WriteTextFileErrorPermissionDenied = WriteTextFileErrorPermissionDenied;
66
+ exports.WriteTextFileErrorReadOnly = WriteTextFileErrorReadOnly;
67
+ exports.WriteTextFileErrorTooManyOpenFiles = WriteTextFileErrorTooManyOpenFiles;
44
68
  exports.writeTextFile = writeTextFile;
@@ -1,11 +1,43 @@
1
- import { FileSystemEither } from './types';
1
+ import * as DCommon from "@duplojs/lang/common";
2
2
  import * as DEither from "@duplojs/lang/either";
3
3
  import type * as DPath from "@duplojs/lang/path";
4
- export type WriteTextFileResult = FileSystemEither<DEither.Right<"write-text-file", void> | DEither.Left<"write-text-file-not-found", unknown> | DEither.Left<"write-text-file-permission-denied", unknown> | DEither.Left<"write-text-file-is-directory", unknown> | DEither.Left<"write-text-file-not-directory", unknown> | DEither.Left<"write-text-file-no-space", unknown> | DEither.Left<"write-text-file-read-only", unknown> | DEither.Left<"write-text-file-invalid-argument", unknown> | DEither.Left<"write-text-file-too-many-open-files", unknown> | DEither.Left<"write-text-file-busy", unknown> | DEither.Left<"write-text-file-error", unknown>>;
4
+ declare const WriteTextFileErrorNotFound_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-text-file-not-found", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-text-file-not-found", unknown>>, unknown>;
5
+ export declare class WriteTextFileErrorNotFound extends WriteTextFileErrorNotFound_base {
6
+ }
7
+ declare const WriteTextFileErrorPermissionDenied_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-text-file-permission-denied", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-text-file-permission-denied", unknown>>, unknown>;
8
+ export declare class WriteTextFileErrorPermissionDenied extends WriteTextFileErrorPermissionDenied_base {
9
+ }
10
+ declare const WriteTextFileErrorIsDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-text-file-is-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-text-file-is-directory", unknown>>, unknown>;
11
+ export declare class WriteTextFileErrorIsDirectory extends WriteTextFileErrorIsDirectory_base {
12
+ }
13
+ declare const WriteTextFileErrorNotDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-text-file-not-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-text-file-not-directory", unknown>>, unknown>;
14
+ export declare class WriteTextFileErrorNotDirectory extends WriteTextFileErrorNotDirectory_base {
15
+ }
16
+ declare const WriteTextFileErrorNoSpace_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-text-file-no-space", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-text-file-no-space", unknown>>, unknown>;
17
+ export declare class WriteTextFileErrorNoSpace extends WriteTextFileErrorNoSpace_base {
18
+ }
19
+ declare const WriteTextFileErrorReadOnly_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-text-file-read-only", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-text-file-read-only", unknown>>, unknown>;
20
+ export declare class WriteTextFileErrorReadOnly extends WriteTextFileErrorReadOnly_base {
21
+ }
22
+ declare const WriteTextFileErrorInvalidArgument_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-text-file-invalid-argument", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-text-file-invalid-argument", unknown>>, unknown>;
23
+ export declare class WriteTextFileErrorInvalidArgument extends WriteTextFileErrorInvalidArgument_base {
24
+ }
25
+ declare const WriteTextFileErrorTooManyOpenFiles_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-text-file-too-many-open-files", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-text-file-too-many-open-files", unknown>>, unknown>;
26
+ export declare class WriteTextFileErrorTooManyOpenFiles extends WriteTextFileErrorTooManyOpenFiles_base {
27
+ }
28
+ declare const WriteTextFileErrorBusy_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-text-file-busy", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-text-file-busy", unknown>>, unknown>;
29
+ export declare class WriteTextFileErrorBusy extends WriteTextFileErrorBusy_base {
30
+ }
31
+ declare const WriteTextFileError_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-text-file-error", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-text-file-error", unknown>>, unknown>;
32
+ export declare class WriteTextFileError extends WriteTextFileError_base {
33
+ }
34
+ export type WriteTextFileErrors = (WriteTextFileErrorNotFound | WriteTextFileErrorPermissionDenied | WriteTextFileErrorIsDirectory | WriteTextFileErrorNotDirectory | WriteTextFileErrorNoSpace | WriteTextFileErrorReadOnly | WriteTextFileErrorInvalidArgument | WriteTextFileErrorTooManyOpenFiles | WriteTextFileErrorBusy | WriteTextFileError);
35
+ export type WriteTextFileResult = (DEither.Right<"file-system-write-text-file", void> | DEither.Left<"file-system-write-text-file-error", WriteTextFileErrors>);
5
36
  declare module '../implementor' {
6
37
  interface ServerFunction {
7
- writeTextFile(path: string & DPath.Path, data: string): Promise<WriteTextFileResult>;
38
+ writeTextFile(path: DPath.AnyPath, data: string): Promise<WriteTextFileResult>;
8
39
  }
9
40
  }
10
- export declare function writeTextFile(data: string): (path: string & DPath.Path) => Promise<WriteTextFileResult>;
11
- export declare function writeTextFile(path: string & DPath.Path, data: string): Promise<WriteTextFileResult>;
41
+ export declare function writeTextFile(data: string): (path: DPath.AnyPath) => Promise<WriteTextFileResult>;
42
+ export declare function writeTextFile(path: DPath.AnyPath, data: string): Promise<WriteTextFileResult>;
43
+ export {};
@@ -1,33 +1,46 @@
1
1
  import { implementFunction, nodeFileSystem } from "../implementor.mjs";
2
+ import * as DCommon from "@duplojs/lang/common";
2
3
  import * as DEither from "@duplojs/lang/either";
3
4
  //#region scripts/file/writeTextFile.ts
5
+ var WriteTextFileErrorNotFound = class extends DCommon.DuploJSError.parentClass("file-system-write-text-file-not-found", Error) {};
6
+ var WriteTextFileErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-write-text-file-permission-denied", Error) {};
7
+ var WriteTextFileErrorIsDirectory = class extends DCommon.DuploJSError.parentClass("file-system-write-text-file-is-directory", Error) {};
8
+ var WriteTextFileErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-write-text-file-not-directory", Error) {};
9
+ var WriteTextFileErrorNoSpace = class extends DCommon.DuploJSError.parentClass("file-system-write-text-file-no-space", Error) {};
10
+ var WriteTextFileErrorReadOnly = class extends DCommon.DuploJSError.parentClass("file-system-write-text-file-read-only", Error) {};
11
+ var WriteTextFileErrorInvalidArgument = class extends DCommon.DuploJSError.parentClass("file-system-write-text-file-invalid-argument", Error) {};
12
+ var WriteTextFileErrorTooManyOpenFiles = class extends DCommon.DuploJSError.parentClass("file-system-write-text-file-too-many-open-files", Error) {};
13
+ var WriteTextFileErrorBusy = class extends DCommon.DuploJSError.parentClass("file-system-write-text-file-busy", Error) {};
14
+ var WriteTextFileError = class extends DCommon.DuploJSError.parentClass("file-system-write-text-file-error", Error) {};
4
15
  function handleNodeWriteTextFileError(error) {
5
- if (typeof error === "object" && error !== null && "code" in error) {
6
- if (error.code === "ENOENT") return DEither.left("file-system-write-text-file-not-found", error);
7
- else if (error.code === "EACCES" || error.code === "EPERM") return DEither.left("file-system-write-text-file-permission-denied", error);
8
- else if (error.code === "EISDIR") return DEither.left("file-system-write-text-file-is-directory", error);
9
- else if (error.code === "ENOTDIR") return DEither.left("file-system-write-text-file-not-directory", error);
10
- else if (error.code === "ENOSPC") return DEither.left("file-system-write-text-file-no-space", error);
11
- else if (error.code === "EROFS") return DEither.left("file-system-write-text-file-read-only", error);
12
- else if (error.code === "EINVAL") return DEither.left("file-system-write-text-file-invalid-argument", error);
13
- else if (error.code === "EMFILE" || error.code === "ENFILE") return DEither.left("file-system-write-text-file-too-many-open-files", error);
14
- else if (error.code === "EBUSY") return DEither.left("file-system-write-text-file-busy", error);
16
+ let writeTextFileError = void 0;
17
+ if ("code" in error) {
18
+ if (error.code === "ENOENT") writeTextFileError = new WriteTextFileErrorNotFound(error);
19
+ else if (error.code === "EACCES" || error.code === "EPERM") writeTextFileError = new WriteTextFileErrorPermissionDenied(error);
20
+ else if (error.code === "EISDIR") writeTextFileError = new WriteTextFileErrorIsDirectory(error);
21
+ else if (error.code === "ENOTDIR") writeTextFileError = new WriteTextFileErrorNotDirectory(error);
22
+ else if (error.code === "ENOSPC") writeTextFileError = new WriteTextFileErrorNoSpace(error);
23
+ else if (error.code === "EROFS") writeTextFileError = new WriteTextFileErrorReadOnly(error);
24
+ else if (error.code === "EINVAL") writeTextFileError = new WriteTextFileErrorInvalidArgument(error);
25
+ else if (error.code === "EMFILE" || error.code === "ENFILE") writeTextFileError = new WriteTextFileErrorTooManyOpenFiles(error);
26
+ else if (error.code === "EBUSY") writeTextFileError = new WriteTextFileErrorBusy(error);
15
27
  }
16
- return DEither.left("file-system-write-text-file-error", error);
28
+ if (writeTextFileError === void 0) writeTextFileError = new WriteTextFileError(error);
29
+ return DEither.left("file-system-write-text-file-error", writeTextFileError);
17
30
  }
18
31
  function handleDenoWriteTextFileError(error) {
19
- if (error instanceof Deno.errors.NotFound) return DEither.left("file-system-write-text-file-not-found", error);
20
- if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return DEither.left("file-system-write-text-file-permission-denied", error);
21
- if (error instanceof Deno.errors.IsADirectory) return DEither.left("file-system-write-text-file-is-directory", error);
22
- if (error instanceof Deno.errors.NotADirectory) return DEither.left("file-system-write-text-file-not-directory", error);
23
- if (error instanceof Deno.errors.InvalidData) return DEither.left("file-system-write-text-file-invalid-argument", error);
24
- if (error instanceof Deno.errors.Busy) return DEither.left("file-system-write-text-file-busy", error);
25
- return DEither.left("file-system-write-text-file-error", error);
32
+ let writeTextFileError = void 0;
33
+ if (error instanceof Deno.errors.NotFound) writeTextFileError = new WriteTextFileErrorNotFound(error);
34
+ else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) writeTextFileError = new WriteTextFileErrorPermissionDenied(error);
35
+ else if (error instanceof Deno.errors.IsADirectory) writeTextFileError = new WriteTextFileErrorIsDirectory(error);
36
+ else if (error instanceof Deno.errors.NotADirectory) writeTextFileError = new WriteTextFileErrorNotDirectory(error);
37
+ else if (error instanceof Deno.errors.InvalidData) writeTextFileError = new WriteTextFileErrorInvalidArgument(error);
38
+ else if (error instanceof Deno.errors.Busy) writeTextFileError = new WriteTextFileErrorBusy(error);
39
+ if (writeTextFileError === void 0) writeTextFileError = new WriteTextFileError(error);
40
+ return DEither.left("file-system-write-text-file-error", writeTextFileError);
26
41
  }
27
42
  const writeTextFileImplementation = implementFunction("writeTextFile", {
28
- NODE: async (path, data) => {
29
- return (await nodeFileSystem.value).writeFile(path, data, { encoding: "utf-8" }).then(() => DEither.right("file-system-write-text-file")).catch(handleNodeWriteTextFileError);
30
- },
43
+ NODE: async (path, data) => nodeFileSystem.value.writeFile(path, data, { encoding: "utf-8" }).then(() => DEither.right("file-system-write-text-file")).catch(handleNodeWriteTextFileError),
31
44
  DENO: (path, data) => Deno.writeTextFile(path, data).then(() => DEither.right("file-system-write-text-file")).catch(handleDenoWriteTextFileError),
32
45
  BUN: (path, data) => Bun.file(path).write(data).then(() => DEither.right("file-system-write-text-file")).catch(handleNodeWriteTextFileError)
33
46
  });
@@ -39,4 +52,4 @@ function writeTextFile(...args) {
39
52
  return writeTextFileImplementation(...args);
40
53
  }
41
54
  //#endregion
42
- export { writeTextFile };
55
+ export { WriteTextFileError, WriteTextFileErrorBusy, WriteTextFileErrorInvalidArgument, WriteTextFileErrorIsDirectory, WriteTextFileErrorNoSpace, WriteTextFileErrorNotDirectory, WriteTextFileErrorNotFound, WriteTextFileErrorPermissionDenied, WriteTextFileErrorReadOnly, WriteTextFileErrorTooManyOpenFiles, writeTextFile };
@@ -1,6 +1,8 @@
1
1
  const require_runtime = require("./_virtual/_rolldown/runtime.cjs");
2
2
  let _duplojs_lang_common = require("@duplojs/lang/common");
3
3
  _duplojs_lang_common = require_runtime.__toESM(_duplojs_lang_common, 1);
4
+ let _duplojs_lang_pattern = require("@duplojs/lang/pattern");
5
+ _duplojs_lang_pattern = require_runtime.__toESM(_duplojs_lang_pattern, 1);
4
6
  _duplojs_lang_common.createEnum([
5
7
  "BUN",
6
8
  "DENO",
@@ -8,12 +10,12 @@ _duplojs_lang_common.createEnum([
8
10
  "TEST"
9
11
  ]);
10
12
  const SymbolEnvironmentStore = Symbol("environmentStore");
11
- const environmentStoreHandler = _duplojs_lang_common.createGlobalStore(SymbolEnvironmentStore, (() => {
13
+ const environmentStoreHandler = _duplojs_lang_common.createGlobalStore(SymbolEnvironmentStore, _duplojs_lang_common.justExec(() => {
12
14
  if (typeof Deno !== "undefined") return "DENO";
13
15
  if (typeof Bun !== "undefined") return "BUN";
14
16
  if (typeof process !== "undefined" && process.versions?.node) return "NODE";
15
17
  return "NODE";
16
- })());
18
+ }));
17
19
  function setEnvironment(environment) {
18
20
  environmentStoreHandler.set(environment);
19
21
  }
@@ -47,9 +49,10 @@ function implementFunction(functionName, theFunctions) {
47
49
  };
48
50
  return (...args) => environmentFunctions[environmentStoreHandler.value](...args);
49
51
  }
50
- const nodeFileSystem = _duplojs_lang_common.memoPromise(() => import("node:fs/promises"));
51
- const nodeCrypto = _duplojs_lang_common.memoPromise(() => import("node:crypto"));
52
- const nodeOs = _duplojs_lang_common.memoPromise(() => import("node:os"));
52
+ const requireModule = _duplojs_lang_common.memo(() => _duplojs_lang_pattern.matchWithStringOtherwise(environmentStoreHandler.value, { BUN: () => require }, () => process.getBuiltinModule));
53
+ const nodeFileSystem = _duplojs_lang_common.memo(() => requireModule.value("node:fs/promises"));
54
+ const nodeCrypto = _duplojs_lang_common.memo(() => requireModule.value("node:crypto"));
55
+ const nodeOs = _duplojs_lang_common.memo(() => requireModule.value("node:os"));
53
56
  //#endregion
54
57
  Object.defineProperty(exports, "TESTImplementation", {
55
58
  enumerable: true,
@@ -7,7 +7,7 @@ export declare const SupportedEnvironment: {
7
7
  NODE: "NODE";
8
8
  TEST: "TEST";
9
9
  toTuple: () => readonly ["BUN", "DENO", "NODE", "TEST"];
10
- has: (value: string) => value is "BUN" | "DENO" | "NODE" | "TEST";
10
+ has: <GenericValue extends string>(value: GenericValue) => value is GenericValue & ("BUN" | "DENO" | "NODE" | "TEST");
11
11
  contract: <GenericContractValue extends string = "BUN" | "DENO" | "NODE" | "TEST">(...args: (Exclude<"BUN", GenericContractValue> | Exclude<"DENO", GenericContractValue> | Exclude<"NODE", GenericContractValue> | Exclude<"TEST", GenericContractValue> extends infer InferredMissingValue extends string ? DCommon.IsNever<InferredMissingValue> extends true ? unknown : DCommon.ComputedTypeError<`Enum contract is missing value "${InferredMissingValue}".`> : never) & (Exclude<GenericContractValue, "BUN" | "DENO" | "NODE" | "TEST"> extends infer InferredUnknownValue extends string ? DCommon.IsNever<InferredUnknownValue> extends true ? unknown : DCommon.ComputedTypeError<`Enum contract contains unknown value "${InferredUnknownValue}".`> : never) extends infer InferredRequirement ? DCommon.IsEqual<InferredRequirement, unknown> extends true ? [] : [] & InferredRequirement : never) => /*elided*/ any;
12
12
  };
13
13
  export type SupportedEnvironment = DCommon.GetEnumValue<typeof SupportedEnvironment>;
@@ -29,7 +29,7 @@ export declare function implementFunction<GenericFunctionName extends keyof Serv
29
29
  BUN?: ServerFunction[GenericFunctionName];
30
30
  DENO?: ServerFunction[GenericFunctionName];
31
31
  }): ServerFunction[GenericFunctionName];
32
- export declare const nodeFileSystem: DCommon.MemoizedPromise<typeof import("node:fs/promises")>;
33
- export declare const nodeCrypto: DCommon.MemoizedPromise<typeof import("node:crypto")>;
34
- export declare const nodeOs: DCommon.MemoizedPromise<typeof import("node:os")>;
32
+ export declare const nodeFileSystem: DCommon.Memoized<typeof import("node:fs/promises")>;
33
+ export declare const nodeCrypto: DCommon.Memoized<typeof import("node:crypto")>;
34
+ export declare const nodeOs: DCommon.Memoized<typeof import("node:os")>;
35
35
  export {};
@@ -1,4 +1,6 @@
1
+ import { __require } from "./_virtual/_rolldown/runtime.mjs";
1
2
  import * as DCommon from "@duplojs/lang/common";
3
+ import * as DPattern from "@duplojs/lang/pattern";
2
4
  DCommon.createEnum([
3
5
  "BUN",
4
6
  "DENO",
@@ -6,12 +8,12 @@ DCommon.createEnum([
6
8
  "TEST"
7
9
  ]);
8
10
  const SymbolEnvironmentStore = Symbol("environmentStore");
9
- const environmentStoreHandler = DCommon.createGlobalStore(SymbolEnvironmentStore, (() => {
11
+ const environmentStoreHandler = DCommon.createGlobalStore(SymbolEnvironmentStore, DCommon.justExec(() => {
10
12
  if (typeof Deno !== "undefined") return "DENO";
11
13
  if (typeof Bun !== "undefined") return "BUN";
12
14
  if (typeof process !== "undefined" && process.versions?.node) return "NODE";
13
15
  return "NODE";
14
- })());
16
+ }));
15
17
  function setEnvironment(environment) {
16
18
  environmentStoreHandler.set(environment);
17
19
  }
@@ -45,8 +47,9 @@ function implementFunction(functionName, theFunctions) {
45
47
  };
46
48
  return (...args) => environmentFunctions[environmentStoreHandler.value](...args);
47
49
  }
48
- const nodeFileSystem = DCommon.memoPromise(() => import("node:fs/promises"));
49
- const nodeCrypto = DCommon.memoPromise(() => import("node:crypto"));
50
- const nodeOs = DCommon.memoPromise(() => import("node:os"));
50
+ const requireModule = DCommon.memo(() => DPattern.matchWithStringOtherwise(environmentStoreHandler.value, { BUN: () => __require }, () => process.getBuiltinModule));
51
+ const nodeFileSystem = DCommon.memo(() => requireModule.value("node:fs/promises"));
52
+ const nodeCrypto = DCommon.memo(() => requireModule.value("node:crypto"));
53
+ const nodeOs = DCommon.memo(() => requireModule.value("node:os"));
51
54
  //#endregion
52
55
  export { TESTImplementation, implementFunction, nodeCrypto, nodeFileSystem, nodeOs, setEnvironment };