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

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 (178) hide show
  1. package/dist/_virtual/_rolldown/runtime.mjs +5 -1
  2. package/dist/command/create.cjs +11 -9
  3. package/dist/command/create.mjs +11 -9
  4. package/dist/command/error.cjs +2 -2
  5. package/dist/command/error.mjs +1 -1
  6. package/dist/command/help.cjs +11 -9
  7. package/dist/command/help.mjs +10 -8
  8. package/dist/common/environmentVariable/parseEnvironmentFiles.d.ts +2 -1
  9. package/dist/common/index.cjs +3 -0
  10. package/dist/common/index.d.ts +1 -0
  11. package/dist/common/index.mjs +3 -1
  12. package/dist/common/meta/getCurrentDirectoryName.cjs +10 -0
  13. package/dist/common/meta/getCurrentDirectoryName.d.ts +7 -0
  14. package/dist/common/meta/getCurrentDirectoryName.mjs +7 -0
  15. package/dist/common/meta/index.d.ts +7 -0
  16. package/dist/dataStructure/common/codec/defaults/json.cjs +12 -1
  17. package/dist/dataStructure/common/codec/defaults/json.d.ts +2 -2
  18. package/dist/dataStructure/common/codec/defaults/json.mjs +12 -1
  19. package/dist/dataStructure/common/codec/defaults/string.cjs +12 -1
  20. package/dist/dataStructure/common/codec/defaults/string.d.ts +2 -2
  21. package/dist/dataStructure/common/codec/defaults/string.mjs +12 -1
  22. package/dist/dataStructure/common/error/defaultInterpreter.cjs +3 -1
  23. package/dist/dataStructure/common/error/defaultInterpreter.d.ts +7 -2
  24. package/dist/dataStructure/common/error/defaultInterpreter.mjs +3 -1
  25. package/dist/dataStructure/constraint/{exist.cjs → fileExist.cjs} +5 -5
  26. package/dist/dataStructure/constraint/fileExist.d.ts +10 -0
  27. package/dist/dataStructure/constraint/{exist.mjs → fileExist.mjs} +4 -4
  28. package/dist/dataStructure/constraint/folderExist.cjs +19 -0
  29. package/dist/dataStructure/constraint/folderExist.d.ts +10 -0
  30. package/dist/dataStructure/constraint/folderExist.mjs +15 -0
  31. package/dist/dataStructure/constraint/index.d.ts +2 -1
  32. package/dist/dataStructure/constraint/mimeType.cjs +1 -1
  33. package/dist/dataStructure/constraint/mimeType.mjs +1 -1
  34. package/dist/dataStructure/constraint/types/constraints.d.ts +4 -2
  35. package/dist/dataStructure/fundamentalType/folder.cjs +11 -0
  36. package/dist/dataStructure/fundamentalType/folder.d.ts +8 -0
  37. package/dist/dataStructure/fundamentalType/folder.mjs +8 -0
  38. package/dist/dataStructure/fundamentalType/index.d.ts +1 -0
  39. package/dist/dataStructure/fundamentalType/types/fundamentalTypes.d.ts +2 -0
  40. package/dist/dataStructure/helper/file.d.ts +1 -1
  41. package/dist/dataStructure/helper/fileExist.cjs +7 -0
  42. package/dist/dataStructure/helper/fileExist.d.ts +2 -0
  43. package/dist/dataStructure/helper/fileExist.mjs +7 -0
  44. package/dist/dataStructure/helper/folder.cjs +10 -0
  45. package/dist/dataStructure/helper/folder.d.ts +3 -0
  46. package/dist/dataStructure/helper/folder.mjs +8 -0
  47. package/dist/dataStructure/helper/folderExist.cjs +7 -0
  48. package/dist/dataStructure/helper/folderExist.d.ts +2 -0
  49. package/dist/dataStructure/helper/folderExist.mjs +7 -0
  50. package/dist/dataStructure/helper/index.d.ts +3 -1
  51. package/dist/dataStructure/index.cjs +29 -8
  52. package/dist/dataStructure/index.mjs +19 -6
  53. package/dist/dataStructure/type/folder.cjs +14 -0
  54. package/dist/dataStructure/type/folder.d.ts +11 -0
  55. package/dist/dataStructure/type/folder.mjs +11 -0
  56. package/dist/dataStructure/type/index.d.ts +1 -0
  57. package/dist/dataStructure/type/types/types.d.ts +2 -0
  58. package/dist/file/appendFile.cjs +36 -22
  59. package/dist/file/appendFile.d.ts +34 -2
  60. package/dist/file/appendFile.mjs +35 -22
  61. package/dist/file/appendTextFile.cjs +34 -20
  62. package/dist/file/appendTextFile.d.ts +34 -2
  63. package/dist/file/appendTextFile.mjs +33 -20
  64. package/dist/file/copy.cjs +26 -14
  65. package/dist/file/copy.d.ts +34 -2
  66. package/dist/file/copy.mjs +25 -14
  67. package/dist/file/createEntryInterface.cjs +2 -2
  68. package/dist/file/createEntryInterface.d.ts +1 -1
  69. package/dist/file/createEntryInterface.mjs +1 -1
  70. package/dist/file/ensureDirectory.cjs +29 -17
  71. package/dist/file/ensureDirectory.d.ts +28 -2
  72. package/dist/file/ensureDirectory.mjs +28 -17
  73. package/dist/file/ensureFile.cjs +32 -19
  74. package/dist/file/ensureFile.d.ts +31 -2
  75. package/dist/file/ensureFile.mjs +31 -19
  76. package/dist/file/exists.cjs +23 -14
  77. package/dist/file/exists.d.ts +19 -2
  78. package/dist/file/exists.mjs +22 -14
  79. package/dist/file/fileInterface.cjs +2 -0
  80. package/dist/file/fileInterface.d.ts +8 -6
  81. package/dist/file/fileInterface.mjs +2 -1
  82. package/dist/file/folderInterface.cjs +2 -0
  83. package/dist/file/folderInterface.d.ts +7 -5
  84. package/dist/file/folderInterface.mjs +2 -1
  85. package/dist/file/index.cjs +6 -0
  86. package/dist/file/index.d.ts +0 -1
  87. package/dist/file/index.mjs +7 -4
  88. package/dist/file/link.cjs +37 -22
  89. package/dist/file/link.d.ts +37 -2
  90. package/dist/file/link.mjs +36 -22
  91. package/dist/file/linkStat.cjs +23 -15
  92. package/dist/file/linkStat.d.ts +22 -2
  93. package/dist/file/linkStat.mjs +23 -15
  94. package/dist/file/makeDirectory.cjs +35 -21
  95. package/dist/file/makeDirectory.d.ts +33 -2
  96. package/dist/file/makeDirectory.mjs +34 -21
  97. package/dist/file/makeTemporaryDirectory.cjs +26 -15
  98. package/dist/file/makeTemporaryDirectory.d.ts +25 -2
  99. package/dist/file/makeTemporaryDirectory.mjs +25 -15
  100. package/dist/file/makeTemporaryFile.cjs +29 -20
  101. package/dist/file/makeTemporaryFile.d.ts +28 -2
  102. package/dist/file/makeTemporaryFile.mjs +29 -20
  103. package/dist/file/move.cjs +38 -23
  104. package/dist/file/move.d.ts +37 -2
  105. package/dist/file/move.mjs +37 -23
  106. package/dist/file/readDirectory.cjs +27 -9
  107. package/dist/file/readDirectory.d.ts +26 -5
  108. package/dist/file/readDirectory.mjs +24 -9
  109. package/dist/file/readFile.cjs +28 -17
  110. package/dist/file/readFile.d.ts +25 -2
  111. package/dist/file/readFile.mjs +27 -17
  112. package/dist/file/readJsonFile.cjs +28 -17
  113. package/dist/file/readJsonFile.d.ts +25 -3
  114. package/dist/file/readJsonFile.mjs +27 -17
  115. package/dist/file/readLink.cjs +25 -15
  116. package/dist/file/readLink.d.ts +22 -2
  117. package/dist/file/readLink.mjs +24 -15
  118. package/dist/file/readTextFile.cjs +28 -17
  119. package/dist/file/readTextFile.d.ts +25 -2
  120. package/dist/file/readTextFile.mjs +27 -17
  121. package/dist/file/realPath.cjs +22 -13
  122. package/dist/file/realPath.d.ts +19 -2
  123. package/dist/file/realPath.mjs +21 -13
  124. package/dist/file/relocate.cjs +41 -25
  125. package/dist/file/relocate.d.ts +37 -2
  126. package/dist/file/relocate.mjs +40 -25
  127. package/dist/file/remove.cjs +36 -23
  128. package/dist/file/remove.d.ts +30 -2
  129. package/dist/file/remove.mjs +35 -23
  130. package/dist/file/rename.cjs +41 -25
  131. package/dist/file/rename.d.ts +37 -2
  132. package/dist/file/rename.mjs +40 -25
  133. package/dist/file/setMode.cjs +23 -15
  134. package/dist/file/setMode.d.ts +21 -2
  135. package/dist/file/setMode.mjs +23 -15
  136. package/dist/file/setOwner.cjs +25 -15
  137. package/dist/file/setOwner.d.ts +22 -2
  138. package/dist/file/setOwner.mjs +24 -15
  139. package/dist/file/setTime.cjs +25 -15
  140. package/dist/file/setTime.d.ts +21 -2
  141. package/dist/file/setTime.mjs +24 -15
  142. package/dist/file/stat.cjs +23 -15
  143. package/dist/file/stat.d.ts +22 -2
  144. package/dist/file/stat.mjs +23 -15
  145. package/dist/file/symlink.cjs +33 -20
  146. package/dist/file/symlink.d.ts +31 -2
  147. package/dist/file/symlink.mjs +32 -20
  148. package/dist/file/truncate.cjs +33 -21
  149. package/dist/file/truncate.d.ts +34 -2
  150. package/dist/file/truncate.mjs +33 -21
  151. package/dist/file/unknownEntryInterface.cjs +2 -0
  152. package/dist/file/unknownEntryInterface.d.ts +7 -5
  153. package/dist/file/unknownEntryInterface.mjs +2 -1
  154. package/dist/file/walkDirectory.cjs +28 -15
  155. package/dist/file/walkDirectory.d.ts +23 -2
  156. package/dist/file/walkDirectory.mjs +27 -14
  157. package/dist/file/writeFile.cjs +35 -21
  158. package/dist/file/writeFile.d.ts +34 -2
  159. package/dist/file/writeFile.mjs +34 -21
  160. package/dist/file/writeJsonFile.cjs +38 -27
  161. package/dist/file/writeJsonFile.d.ts +36 -5
  162. package/dist/file/writeJsonFile.mjs +38 -27
  163. package/dist/file/writeTextFile.cjs +35 -21
  164. package/dist/file/writeTextFile.d.ts +34 -2
  165. package/dist/file/writeTextFile.mjs +34 -21
  166. package/dist/implementor.cjs +8 -5
  167. package/dist/implementor.d.ts +4 -4
  168. package/dist/implementor.mjs +8 -5
  169. package/dist/index.cjs +2 -0
  170. package/dist/index.mjs +2 -1
  171. package/package.json +4 -4
  172. package/dist/dataStructure/constraint/exist.d.ts +0 -10
  173. package/dist/dataStructure/helper/exist.cjs +0 -7
  174. package/dist/dataStructure/helper/exist.d.ts +0 -2
  175. package/dist/dataStructure/helper/exist.mjs +0 -7
  176. package/dist/file/types/fileSystemEither.d.ts +0 -2
  177. package/dist/file/types/index.d.ts +0 -1
  178. /package/{README → README.md} +0 -0
@@ -3,22 +3,32 @@ import * as DCommon from "@duplojs/lang/common";
3
3
  import * as DEither from "@duplojs/lang/either";
4
4
  import * as DChrono from "@duplojs/lang/chrono";
5
5
  //#region scripts/file/stat.ts
6
+ var StatErrorNotFound = class extends DCommon.DuploJSError.parentClass("file-system-stat-not-found", Error) {};
7
+ var StatErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-stat-permission-denied", Error) {};
8
+ var StatErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-stat-not-directory", Error) {};
9
+ var StatErrorTooManyOpenFiles = class extends DCommon.DuploJSError.parentClass("file-system-stat-too-many-open-files", Error) {};
10
+ var StatErrorBusy = class extends DCommon.DuploJSError.parentClass("file-system-stat-busy", Error) {};
11
+ var StatError = class extends DCommon.DuploJSError.parentClass("file-system-stat-error", Error) {};
6
12
  function handleNodeStatError(error) {
7
- if (typeof error === "object" && error !== null && "code" in error) {
8
- if (error.code === "ENOENT") return DEither.left("file-system-stat-not-found", error);
9
- else if (error.code === "EACCES" || error.code === "EPERM") return DEither.left("file-system-stat-permission-denied", error);
10
- else if (error.code === "ENOTDIR") return DEither.left("file-system-stat-not-directory", error);
11
- else if (error.code === "EMFILE" || error.code === "ENFILE") return DEither.left("file-system-stat-too-many-open-files", error);
12
- else if (error.code === "EBUSY") return DEither.left("file-system-stat-busy", error);
13
+ let statError = void 0;
14
+ if ("code" in error) {
15
+ if (error.code === "ENOENT") statError = new StatErrorNotFound(error);
16
+ else if (error.code === "EACCES" || error.code === "EPERM") statError = new StatErrorPermissionDenied(error);
17
+ else if (error.code === "ENOTDIR") statError = new StatErrorNotDirectory(error);
18
+ else if (error.code === "EMFILE" || error.code === "ENFILE") statError = new StatErrorTooManyOpenFiles(error);
19
+ else if (error.code === "EBUSY") statError = new StatErrorBusy(error);
13
20
  }
14
- return DEither.left("file-system-stat-error", error);
21
+ if (statError === void 0) statError = new StatError(error);
22
+ return DEither.left("file-system-stat-error", statError);
15
23
  }
16
24
  function handleDenoStatError(error) {
17
- if (error instanceof Deno.errors.NotFound) return DEither.left("file-system-stat-not-found", error);
18
- if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return DEither.left("file-system-stat-permission-denied", error);
19
- if (error instanceof Deno.errors.NotADirectory) return DEither.left("file-system-stat-not-directory", error);
20
- if (error instanceof Deno.errors.Busy) return DEither.left("file-system-stat-busy", error);
21
- return DEither.left("file-system-stat-error", error);
25
+ let statError = void 0;
26
+ if (error instanceof Deno.errors.NotFound) statError = new StatErrorNotFound(error);
27
+ else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) statError = new StatErrorPermissionDenied(error);
28
+ else if (error instanceof Deno.errors.NotADirectory) statError = new StatErrorNotDirectory(error);
29
+ else if (error instanceof Deno.errors.Busy) statError = new StatErrorBusy(error);
30
+ if (statError === void 0) statError = new StatError(error);
31
+ return DEither.left("file-system-stat-error", statError);
22
32
  }
23
33
  function createStatInfoWithFsSource(source) {
24
34
  return {
@@ -71,9 +81,7 @@ function createStatInfoWithDeno(source) {
71
81
  };
72
82
  }
73
83
  const stat = implementFunction("stat", {
74
- NODE: async (path) => {
75
- return (await nodeFileSystem.value).stat(path).then(DCommon.innerPipe(createStatInfoWithFsSource, (value) => DEither.right("file-system-stat", value))).catch(handleNodeStatError);
76
- },
84
+ NODE: async (path) => nodeFileSystem.value.stat(path).then(DCommon.innerPipe(createStatInfoWithFsSource, (value) => DEither.right("file-system-stat", value))).catch(handleNodeStatError),
77
85
  DENO: (path) => Deno.stat(path).then(DCommon.innerPipe(createStatInfoWithDeno, (value) => DEither.right("file-system-stat", value))).catch(handleDenoStatError),
78
86
  BUN: (path) => Bun.file(path).stat().then(DCommon.innerPipe(createStatInfoWithFsSource, (value) => DEither.right("file-system-stat", value))).catch(handleNodeStatError)
79
87
  });
@@ -1,34 +1,47 @@
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/symlink.ts
8
+ var SymlinkErrorNotFound = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-symlink-not-found", Error) {};
9
+ var SymlinkErrorPermissionDenied = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-symlink-permission-denied", Error) {};
10
+ var SymlinkErrorAlreadyExists = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-symlink-already-exists", Error) {};
11
+ var SymlinkErrorNotDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-symlink-not-directory", Error) {};
12
+ var SymlinkErrorReadOnly = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-symlink-read-only", Error) {};
13
+ var SymlinkErrorInvalidArgument = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-symlink-invalid-argument", Error) {};
14
+ var SymlinkErrorTooManyOpenFiles = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-symlink-too-many-open-files", Error) {};
15
+ var SymlinkErrorBusy = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-symlink-busy", Error) {};
16
+ var SymlinkError = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-symlink-error", Error) {};
6
17
  function handleNodeSymlinkError(error) {
7
- if (typeof error === "object" && error !== null && "code" in error) {
8
- if (error.code === "ENOENT") return _duplojs_lang_either.left("file-system-symlink-not-found", error);
9
- else if (error.code === "EACCES" || error.code === "EPERM") return _duplojs_lang_either.left("file-system-symlink-permission-denied", error);
10
- else if (error.code === "EEXIST") return _duplojs_lang_either.left("file-system-symlink-already-exists", error);
11
- else if (error.code === "ENOTDIR") return _duplojs_lang_either.left("file-system-symlink-not-directory", error);
12
- else if (error.code === "EROFS") return _duplojs_lang_either.left("file-system-symlink-read-only", error);
13
- else if (error.code === "EINVAL") return _duplojs_lang_either.left("file-system-symlink-invalid-argument", error);
14
- else if (error.code === "EMFILE" || error.code === "ENFILE") return _duplojs_lang_either.left("file-system-symlink-too-many-open-files", error);
15
- else if (error.code === "EBUSY") return _duplojs_lang_either.left("file-system-symlink-busy", error);
18
+ let symlinkError = void 0;
19
+ if ("code" in error) {
20
+ if (error.code === "ENOENT") symlinkError = new SymlinkErrorNotFound(error);
21
+ else if (error.code === "EACCES" || error.code === "EPERM") symlinkError = new SymlinkErrorPermissionDenied(error);
22
+ else if (error.code === "EEXIST") symlinkError = new SymlinkErrorAlreadyExists(error);
23
+ else if (error.code === "ENOTDIR") symlinkError = new SymlinkErrorNotDirectory(error);
24
+ else if (error.code === "EROFS") symlinkError = new SymlinkErrorReadOnly(error);
25
+ else if (error.code === "EINVAL") symlinkError = new SymlinkErrorInvalidArgument(error);
26
+ else if (error.code === "EMFILE" || error.code === "ENFILE") symlinkError = new SymlinkErrorTooManyOpenFiles(error);
27
+ else if (error.code === "EBUSY") symlinkError = new SymlinkErrorBusy(error);
16
28
  }
17
- return _duplojs_lang_either.left("file-system-symlink-error", error);
29
+ if (symlinkError === void 0) symlinkError = new SymlinkError(error);
30
+ return _duplojs_lang_either.left("file-system-symlink-error", symlinkError);
18
31
  }
19
32
  function handleDenoSymlinkError(error) {
20
- if (error instanceof Deno.errors.NotFound) return _duplojs_lang_either.left("file-system-symlink-not-found", error);
21
- if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return _duplojs_lang_either.left("file-system-symlink-permission-denied", error);
22
- if (error instanceof Deno.errors.AlreadyExists) return _duplojs_lang_either.left("file-system-symlink-already-exists", error);
23
- if (error instanceof Deno.errors.NotADirectory) return _duplojs_lang_either.left("file-system-symlink-not-directory", error);
24
- if (error instanceof Deno.errors.InvalidData) return _duplojs_lang_either.left("file-system-symlink-invalid-argument", error);
25
- if (error instanceof Deno.errors.Busy) return _duplojs_lang_either.left("file-system-symlink-busy", error);
26
- return _duplojs_lang_either.left("file-system-symlink-error", error);
33
+ let symlinkError = void 0;
34
+ if (error instanceof Deno.errors.NotFound) symlinkError = new SymlinkErrorNotFound(error);
35
+ else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) symlinkError = new SymlinkErrorPermissionDenied(error);
36
+ else if (error instanceof Deno.errors.AlreadyExists) symlinkError = new SymlinkErrorAlreadyExists(error);
37
+ else if (error instanceof Deno.errors.NotADirectory) symlinkError = new SymlinkErrorNotDirectory(error);
38
+ else if (error instanceof Deno.errors.InvalidData) symlinkError = new SymlinkErrorInvalidArgument(error);
39
+ else if (error instanceof Deno.errors.Busy) symlinkError = new SymlinkErrorBusy(error);
40
+ if (symlinkError === void 0) symlinkError = new SymlinkError(error);
41
+ return _duplojs_lang_either.left("file-system-symlink-error", symlinkError);
27
42
  }
28
43
  const symlinkImplementation = require_implementor.implementFunction("symlink", {
29
- NODE: async (oldPath, newPath, params) => {
30
- return (await require_implementor.nodeFileSystem.value).symlink(oldPath, newPath, params?.type).then(() => _duplojs_lang_either.right("file-system-symlink")).catch(handleNodeSymlinkError);
31
- },
44
+ NODE: async (oldPath, newPath, params) => require_implementor.nodeFileSystem.value.symlink(oldPath, newPath, params?.type).then(() => _duplojs_lang_either.right("file-system-symlink")).catch(handleNodeSymlinkError),
32
45
  DENO: (oldPath, newPath, params) => Deno.symlink(oldPath, newPath, params).then(() => _duplojs_lang_either.right("file-system-symlink")).catch(handleDenoSymlinkError)
33
46
  });
34
47
  function symlink(...args) {
@@ -1,4 +1,4 @@
1
- import { FileSystemEither } from './types';
1
+ import * as DCommon from "@duplojs/lang/common";
2
2
  import * as DEither from "@duplojs/lang/either";
3
3
  import type * as DPath from "@duplojs/lang/path";
4
4
  export interface SymlinkParams {
@@ -9,7 +9,35 @@ export interface SymlinkParams {
9
9
  */
10
10
  type: "file" | "dir" | "junction";
11
11
  }
12
- export type SymlinkResult = FileSystemEither<DEither.Right<"symlink", void> | DEither.Left<"symlink-not-found", unknown> | DEither.Left<"symlink-permission-denied", unknown> | DEither.Left<"symlink-already-exists", unknown> | DEither.Left<"symlink-not-directory", unknown> | DEither.Left<"symlink-read-only", unknown> | DEither.Left<"symlink-invalid-argument", unknown> | DEither.Left<"symlink-too-many-open-files", unknown> | DEither.Left<"symlink-busy", unknown> | DEither.Left<"symlink-error", unknown>>;
12
+ declare const SymlinkErrorNotFound_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-symlink-not-found", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-symlink-not-found", unknown>>, unknown>;
13
+ declare class SymlinkErrorNotFound extends SymlinkErrorNotFound_base {
14
+ }
15
+ declare const SymlinkErrorPermissionDenied_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-symlink-permission-denied", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-symlink-permission-denied", unknown>>, unknown>;
16
+ declare class SymlinkErrorPermissionDenied extends SymlinkErrorPermissionDenied_base {
17
+ }
18
+ declare const SymlinkErrorAlreadyExists_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-symlink-already-exists", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-symlink-already-exists", unknown>>, unknown>;
19
+ declare class SymlinkErrorAlreadyExists extends SymlinkErrorAlreadyExists_base {
20
+ }
21
+ declare const SymlinkErrorNotDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-symlink-not-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-symlink-not-directory", unknown>>, unknown>;
22
+ declare class SymlinkErrorNotDirectory extends SymlinkErrorNotDirectory_base {
23
+ }
24
+ declare const SymlinkErrorReadOnly_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-symlink-read-only", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-symlink-read-only", unknown>>, unknown>;
25
+ declare class SymlinkErrorReadOnly extends SymlinkErrorReadOnly_base {
26
+ }
27
+ declare const SymlinkErrorInvalidArgument_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-symlink-invalid-argument", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-symlink-invalid-argument", unknown>>, unknown>;
28
+ declare class SymlinkErrorInvalidArgument extends SymlinkErrorInvalidArgument_base {
29
+ }
30
+ declare const SymlinkErrorTooManyOpenFiles_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-symlink-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-symlink-too-many-open-files", unknown>>, unknown>;
31
+ declare class SymlinkErrorTooManyOpenFiles extends SymlinkErrorTooManyOpenFiles_base {
32
+ }
33
+ declare const SymlinkErrorBusy_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-symlink-busy", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-symlink-busy", unknown>>, unknown>;
34
+ declare class SymlinkErrorBusy extends SymlinkErrorBusy_base {
35
+ }
36
+ declare const SymlinkError_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-symlink-error", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-symlink-error", unknown>>, unknown>;
37
+ declare class SymlinkError extends SymlinkError_base {
38
+ }
39
+ export type SymlinkErrors = (SymlinkErrorNotFound | SymlinkErrorPermissionDenied | SymlinkErrorAlreadyExists | SymlinkErrorNotDirectory | SymlinkErrorReadOnly | SymlinkErrorInvalidArgument | SymlinkErrorTooManyOpenFiles | SymlinkErrorBusy | SymlinkError);
40
+ export type SymlinkResult = (DEither.Right<"file-system-symlink", void> | DEither.Left<"file-system-symlink-error", SymlinkErrors>);
13
41
  declare module '../implementor' {
14
42
  interface ServerFunction {
15
43
  symlink(oldPath: string & DPath.Path, newPath: string & DPath.Path, params?: SymlinkParams): Promise<SymlinkResult>;
@@ -17,3 +45,4 @@ declare module '../implementor' {
17
45
  }
18
46
  export declare function symlink(newPath: string & DPath.Path): (oldPath: string & DPath.Path) => Promise<SymlinkResult>;
19
47
  export declare function symlink(oldPath: string & DPath.Path, newPath: string & DPath.Path, params?: SymlinkParams): Promise<SymlinkResult>;
48
+ export {};
@@ -1,32 +1,44 @@
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/symlink.ts
5
+ var SymlinkErrorNotFound = class extends DCommon.DuploJSError.parentClass("file-system-symlink-not-found", Error) {};
6
+ var SymlinkErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-symlink-permission-denied", Error) {};
7
+ var SymlinkErrorAlreadyExists = class extends DCommon.DuploJSError.parentClass("file-system-symlink-already-exists", Error) {};
8
+ var SymlinkErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-symlink-not-directory", Error) {};
9
+ var SymlinkErrorReadOnly = class extends DCommon.DuploJSError.parentClass("file-system-symlink-read-only", Error) {};
10
+ var SymlinkErrorInvalidArgument = class extends DCommon.DuploJSError.parentClass("file-system-symlink-invalid-argument", Error) {};
11
+ var SymlinkErrorTooManyOpenFiles = class extends DCommon.DuploJSError.parentClass("file-system-symlink-too-many-open-files", Error) {};
12
+ var SymlinkErrorBusy = class extends DCommon.DuploJSError.parentClass("file-system-symlink-busy", Error) {};
13
+ var SymlinkError = class extends DCommon.DuploJSError.parentClass("file-system-symlink-error", Error) {};
4
14
  function handleNodeSymlinkError(error) {
5
- if (typeof error === "object" && error !== null && "code" in error) {
6
- if (error.code === "ENOENT") return DEither.left("file-system-symlink-not-found", error);
7
- else if (error.code === "EACCES" || error.code === "EPERM") return DEither.left("file-system-symlink-permission-denied", error);
8
- else if (error.code === "EEXIST") return DEither.left("file-system-symlink-already-exists", error);
9
- else if (error.code === "ENOTDIR") return DEither.left("file-system-symlink-not-directory", error);
10
- else if (error.code === "EROFS") return DEither.left("file-system-symlink-read-only", error);
11
- else if (error.code === "EINVAL") return DEither.left("file-system-symlink-invalid-argument", error);
12
- else if (error.code === "EMFILE" || error.code === "ENFILE") return DEither.left("file-system-symlink-too-many-open-files", error);
13
- else if (error.code === "EBUSY") return DEither.left("file-system-symlink-busy", error);
15
+ let symlinkError = void 0;
16
+ if ("code" in error) {
17
+ if (error.code === "ENOENT") symlinkError = new SymlinkErrorNotFound(error);
18
+ else if (error.code === "EACCES" || error.code === "EPERM") symlinkError = new SymlinkErrorPermissionDenied(error);
19
+ else if (error.code === "EEXIST") symlinkError = new SymlinkErrorAlreadyExists(error);
20
+ else if (error.code === "ENOTDIR") symlinkError = new SymlinkErrorNotDirectory(error);
21
+ else if (error.code === "EROFS") symlinkError = new SymlinkErrorReadOnly(error);
22
+ else if (error.code === "EINVAL") symlinkError = new SymlinkErrorInvalidArgument(error);
23
+ else if (error.code === "EMFILE" || error.code === "ENFILE") symlinkError = new SymlinkErrorTooManyOpenFiles(error);
24
+ else if (error.code === "EBUSY") symlinkError = new SymlinkErrorBusy(error);
14
25
  }
15
- return DEither.left("file-system-symlink-error", error);
26
+ if (symlinkError === void 0) symlinkError = new SymlinkError(error);
27
+ return DEither.left("file-system-symlink-error", symlinkError);
16
28
  }
17
29
  function handleDenoSymlinkError(error) {
18
- if (error instanceof Deno.errors.NotFound) return DEither.left("file-system-symlink-not-found", error);
19
- if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return DEither.left("file-system-symlink-permission-denied", error);
20
- if (error instanceof Deno.errors.AlreadyExists) return DEither.left("file-system-symlink-already-exists", error);
21
- if (error instanceof Deno.errors.NotADirectory) return DEither.left("file-system-symlink-not-directory", error);
22
- if (error instanceof Deno.errors.InvalidData) return DEither.left("file-system-symlink-invalid-argument", error);
23
- if (error instanceof Deno.errors.Busy) return DEither.left("file-system-symlink-busy", error);
24
- return DEither.left("file-system-symlink-error", error);
30
+ let symlinkError = void 0;
31
+ if (error instanceof Deno.errors.NotFound) symlinkError = new SymlinkErrorNotFound(error);
32
+ else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) symlinkError = new SymlinkErrorPermissionDenied(error);
33
+ else if (error instanceof Deno.errors.AlreadyExists) symlinkError = new SymlinkErrorAlreadyExists(error);
34
+ else if (error instanceof Deno.errors.NotADirectory) symlinkError = new SymlinkErrorNotDirectory(error);
35
+ else if (error instanceof Deno.errors.InvalidData) symlinkError = new SymlinkErrorInvalidArgument(error);
36
+ else if (error instanceof Deno.errors.Busy) symlinkError = new SymlinkErrorBusy(error);
37
+ if (symlinkError === void 0) symlinkError = new SymlinkError(error);
38
+ return DEither.left("file-system-symlink-error", symlinkError);
25
39
  }
26
40
  const symlinkImplementation = implementFunction("symlink", {
27
- NODE: async (oldPath, newPath, params) => {
28
- return (await nodeFileSystem.value).symlink(oldPath, newPath, params?.type).then(() => DEither.right("file-system-symlink")).catch(handleNodeSymlinkError);
29
- },
41
+ NODE: async (oldPath, newPath, params) => nodeFileSystem.value.symlink(oldPath, newPath, params?.type).then(() => DEither.right("file-system-symlink")).catch(handleNodeSymlinkError),
30
42
  DENO: (oldPath, newPath, params) => Deno.symlink(oldPath, newPath, params).then(() => DEither.right("file-system-symlink")).catch(handleDenoSymlinkError)
31
43
  });
32
44
  function symlink(...args) {
@@ -5,33 +5,45 @@ _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/truncate.ts
8
+ var TruncateErrorNotFound = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-truncate-not-found", Error) {};
9
+ var TruncateErrorPermissionDenied = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-truncate-permission-denied", Error) {};
10
+ var TruncateErrorIsDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-truncate-is-directory", Error) {};
11
+ var TruncateErrorNotDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-truncate-not-directory", Error) {};
12
+ var TruncateErrorNoSpace = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-truncate-no-space", Error) {};
13
+ var TruncateErrorReadOnly = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-truncate-read-only", Error) {};
14
+ var TruncateErrorInvalidArgument = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-truncate-invalid-argument", Error) {};
15
+ var TruncateErrorTooManyOpenFiles = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-truncate-too-many-open-files", Error) {};
16
+ var TruncateErrorBusy = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-truncate-busy", Error) {};
17
+ var TruncateError = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-truncate-error", Error) {};
8
18
  function handleNodeTruncateError(error) {
9
- if (typeof error === "object" && error !== null && "code" in error) {
10
- if (error.code === "ENOENT") return _duplojs_lang_either.left("file-system-truncate-not-found", error);
11
- else if (error.code === "EACCES" || error.code === "EPERM") return _duplojs_lang_either.left("file-system-truncate-permission-denied", error);
12
- else if (error.code === "EISDIR") return _duplojs_lang_either.left("file-system-truncate-is-directory", error);
13
- else if (error.code === "ENOTDIR") return _duplojs_lang_either.left("file-system-truncate-not-directory", error);
14
- else if (error.code === "ENOSPC") return _duplojs_lang_either.left("file-system-truncate-no-space", error);
15
- else if (error.code === "EROFS") return _duplojs_lang_either.left("file-system-truncate-read-only", error);
16
- else if (error.code === "EINVAL") return _duplojs_lang_either.left("file-system-truncate-invalid-argument", error);
17
- else if (error.code === "EMFILE" || error.code === "ENFILE") return _duplojs_lang_either.left("file-system-truncate-too-many-open-files", error);
18
- else if (error.code === "EBUSY") return _duplojs_lang_either.left("file-system-truncate-busy", error);
19
+ let truncateError = void 0;
20
+ if ("code" in error) {
21
+ if (error.code === "ENOENT") truncateError = new TruncateErrorNotFound(error);
22
+ else if (error.code === "EACCES" || error.code === "EPERM") truncateError = new TruncateErrorPermissionDenied(error);
23
+ else if (error.code === "EISDIR") truncateError = new TruncateErrorIsDirectory(error);
24
+ else if (error.code === "ENOTDIR") truncateError = new TruncateErrorNotDirectory(error);
25
+ else if (error.code === "ENOSPC") truncateError = new TruncateErrorNoSpace(error);
26
+ else if (error.code === "EROFS") truncateError = new TruncateErrorReadOnly(error);
27
+ else if (error.code === "EINVAL") truncateError = new TruncateErrorInvalidArgument(error);
28
+ else if (error.code === "EMFILE" || error.code === "ENFILE") truncateError = new TruncateErrorTooManyOpenFiles(error);
29
+ else if (error.code === "EBUSY") truncateError = new TruncateErrorBusy(error);
19
30
  }
20
- return _duplojs_lang_either.left("file-system-truncate-error", error);
31
+ if (truncateError === void 0) truncateError = new TruncateError(error);
32
+ return _duplojs_lang_either.left("file-system-truncate-error", truncateError);
21
33
  }
22
34
  function handleDenoTruncateError(error) {
23
- if (error instanceof Deno.errors.NotFound) return _duplojs_lang_either.left("file-system-truncate-not-found", error);
24
- if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return _duplojs_lang_either.left("file-system-truncate-permission-denied", error);
25
- if (error instanceof Deno.errors.IsADirectory) return _duplojs_lang_either.left("file-system-truncate-is-directory", error);
26
- if (error instanceof Deno.errors.NotADirectory) return _duplojs_lang_either.left("file-system-truncate-not-directory", error);
27
- if (error instanceof Deno.errors.InvalidData) return _duplojs_lang_either.left("file-system-truncate-invalid-argument", error);
28
- if (error instanceof Deno.errors.Busy) return _duplojs_lang_either.left("file-system-truncate-busy", error);
29
- return _duplojs_lang_either.left("file-system-truncate-error", error);
35
+ let truncateError = void 0;
36
+ if (error instanceof Deno.errors.NotFound) truncateError = new TruncateErrorNotFound(error);
37
+ else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) truncateError = new TruncateErrorPermissionDenied(error);
38
+ else if (error instanceof Deno.errors.IsADirectory) truncateError = new TruncateErrorIsDirectory(error);
39
+ else if (error instanceof Deno.errors.NotADirectory) truncateError = new TruncateErrorNotDirectory(error);
40
+ else if (error instanceof Deno.errors.InvalidData) truncateError = new TruncateErrorInvalidArgument(error);
41
+ else if (error instanceof Deno.errors.Busy) truncateError = new TruncateErrorBusy(error);
42
+ if (truncateError === void 0) truncateError = new TruncateError(error);
43
+ return _duplojs_lang_either.left("file-system-truncate-error", truncateError);
30
44
  }
31
45
  const truncate = require_implementor.implementFunction("truncate", {
32
- NODE: async (path, size) => {
33
- return (await require_implementor.nodeFileSystem.value).truncate(path, size).then(() => _duplojs_lang_either.right("file-system-truncate")).catch(handleNodeTruncateError);
34
- },
46
+ NODE: async (path, size) => require_implementor.nodeFileSystem.value.truncate(path, size).then(() => _duplojs_lang_either.right("file-system-truncate")).catch(handleNodeTruncateError),
35
47
  DENO: (path, size) => _duplojs_lang_common.pipe(path, _duplojs_lang_common.when(_duplojs_lang_common.instanceOf(URL), ({ pathname }) => decodeURIComponent(pathname)), (stringPath) => Deno.truncate(stringPath, size).then(() => _duplojs_lang_either.right("file-system-truncate")).catch(handleDenoTruncateError))
36
48
  });
37
49
  //#endregion
@@ -1,10 +1,42 @@
1
- import { FileSystemEither } from './types';
1
+ import * as DCommon from "@duplojs/lang/common";
2
2
  import * as DEither from "@duplojs/lang/either";
3
3
  import type * as DPath from "@duplojs/lang/path";
4
- export type TruncateResult = FileSystemEither<DEither.Right<"truncate", void> | DEither.Left<"truncate-not-found", unknown> | DEither.Left<"truncate-permission-denied", unknown> | DEither.Left<"truncate-is-directory", unknown> | DEither.Left<"truncate-not-directory", unknown> | DEither.Left<"truncate-no-space", unknown> | DEither.Left<"truncate-read-only", unknown> | DEither.Left<"truncate-invalid-argument", unknown> | DEither.Left<"truncate-too-many-open-files", unknown> | DEither.Left<"truncate-busy", unknown> | DEither.Left<"truncate-error", unknown>>;
4
+ declare const TruncateErrorNotFound_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-truncate-not-found", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-truncate-not-found", unknown>>, unknown>;
5
+ declare class TruncateErrorNotFound extends TruncateErrorNotFound_base {
6
+ }
7
+ declare const TruncateErrorPermissionDenied_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-truncate-permission-denied", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-truncate-permission-denied", unknown>>, unknown>;
8
+ declare class TruncateErrorPermissionDenied extends TruncateErrorPermissionDenied_base {
9
+ }
10
+ declare const TruncateErrorIsDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-truncate-is-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-truncate-is-directory", unknown>>, unknown>;
11
+ declare class TruncateErrorIsDirectory extends TruncateErrorIsDirectory_base {
12
+ }
13
+ declare const TruncateErrorNotDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-truncate-not-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-truncate-not-directory", unknown>>, unknown>;
14
+ declare class TruncateErrorNotDirectory extends TruncateErrorNotDirectory_base {
15
+ }
16
+ declare const TruncateErrorNoSpace_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-truncate-no-space", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-truncate-no-space", unknown>>, unknown>;
17
+ declare class TruncateErrorNoSpace extends TruncateErrorNoSpace_base {
18
+ }
19
+ declare const TruncateErrorReadOnly_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-truncate-read-only", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-truncate-read-only", unknown>>, unknown>;
20
+ declare class TruncateErrorReadOnly extends TruncateErrorReadOnly_base {
21
+ }
22
+ declare const TruncateErrorInvalidArgument_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-truncate-invalid-argument", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-truncate-invalid-argument", unknown>>, unknown>;
23
+ declare class TruncateErrorInvalidArgument extends TruncateErrorInvalidArgument_base {
24
+ }
25
+ declare const TruncateErrorTooManyOpenFiles_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-truncate-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-truncate-too-many-open-files", unknown>>, unknown>;
26
+ declare class TruncateErrorTooManyOpenFiles extends TruncateErrorTooManyOpenFiles_base {
27
+ }
28
+ declare const TruncateErrorBusy_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-truncate-busy", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-truncate-busy", unknown>>, unknown>;
29
+ declare class TruncateErrorBusy extends TruncateErrorBusy_base {
30
+ }
31
+ declare const TruncateError_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-truncate-error", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-truncate-error", unknown>>, unknown>;
32
+ declare class TruncateError extends TruncateError_base {
33
+ }
34
+ export type TruncateErrors = (TruncateErrorNotFound | TruncateErrorPermissionDenied | TruncateErrorIsDirectory | TruncateErrorNotDirectory | TruncateErrorNoSpace | TruncateErrorReadOnly | TruncateErrorInvalidArgument | TruncateErrorTooManyOpenFiles | TruncateErrorBusy | TruncateError);
35
+ export type TruncateResult = (DEither.Right<"file-system-truncate", void> | DEither.Left<"file-system-truncate-error", TruncateErrors>);
5
36
  declare module '../implementor' {
6
37
  interface ServerFunction {
7
38
  truncate(path: string & DPath.Path, size?: number): Promise<TruncateResult>;
8
39
  }
9
40
  }
10
41
  export declare const truncate: (path: string & DPath.Path, size?: number) => Promise<TruncateResult>;
42
+ export {};
@@ -2,33 +2,45 @@ 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/truncate.ts
5
+ var TruncateErrorNotFound = class extends DCommon.DuploJSError.parentClass("file-system-truncate-not-found", Error) {};
6
+ var TruncateErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-truncate-permission-denied", Error) {};
7
+ var TruncateErrorIsDirectory = class extends DCommon.DuploJSError.parentClass("file-system-truncate-is-directory", Error) {};
8
+ var TruncateErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-truncate-not-directory", Error) {};
9
+ var TruncateErrorNoSpace = class extends DCommon.DuploJSError.parentClass("file-system-truncate-no-space", Error) {};
10
+ var TruncateErrorReadOnly = class extends DCommon.DuploJSError.parentClass("file-system-truncate-read-only", Error) {};
11
+ var TruncateErrorInvalidArgument = class extends DCommon.DuploJSError.parentClass("file-system-truncate-invalid-argument", Error) {};
12
+ var TruncateErrorTooManyOpenFiles = class extends DCommon.DuploJSError.parentClass("file-system-truncate-too-many-open-files", Error) {};
13
+ var TruncateErrorBusy = class extends DCommon.DuploJSError.parentClass("file-system-truncate-busy", Error) {};
14
+ var TruncateError = class extends DCommon.DuploJSError.parentClass("file-system-truncate-error", Error) {};
5
15
  function handleNodeTruncateError(error) {
6
- if (typeof error === "object" && error !== null && "code" in error) {
7
- if (error.code === "ENOENT") return DEither.left("file-system-truncate-not-found", error);
8
- else if (error.code === "EACCES" || error.code === "EPERM") return DEither.left("file-system-truncate-permission-denied", error);
9
- else if (error.code === "EISDIR") return DEither.left("file-system-truncate-is-directory", error);
10
- else if (error.code === "ENOTDIR") return DEither.left("file-system-truncate-not-directory", error);
11
- else if (error.code === "ENOSPC") return DEither.left("file-system-truncate-no-space", error);
12
- else if (error.code === "EROFS") return DEither.left("file-system-truncate-read-only", error);
13
- else if (error.code === "EINVAL") return DEither.left("file-system-truncate-invalid-argument", error);
14
- else if (error.code === "EMFILE" || error.code === "ENFILE") return DEither.left("file-system-truncate-too-many-open-files", error);
15
- else if (error.code === "EBUSY") return DEither.left("file-system-truncate-busy", error);
16
+ let truncateError = void 0;
17
+ if ("code" in error) {
18
+ if (error.code === "ENOENT") truncateError = new TruncateErrorNotFound(error);
19
+ else if (error.code === "EACCES" || error.code === "EPERM") truncateError = new TruncateErrorPermissionDenied(error);
20
+ else if (error.code === "EISDIR") truncateError = new TruncateErrorIsDirectory(error);
21
+ else if (error.code === "ENOTDIR") truncateError = new TruncateErrorNotDirectory(error);
22
+ else if (error.code === "ENOSPC") truncateError = new TruncateErrorNoSpace(error);
23
+ else if (error.code === "EROFS") truncateError = new TruncateErrorReadOnly(error);
24
+ else if (error.code === "EINVAL") truncateError = new TruncateErrorInvalidArgument(error);
25
+ else if (error.code === "EMFILE" || error.code === "ENFILE") truncateError = new TruncateErrorTooManyOpenFiles(error);
26
+ else if (error.code === "EBUSY") truncateError = new TruncateErrorBusy(error);
16
27
  }
17
- return DEither.left("file-system-truncate-error", error);
28
+ if (truncateError === void 0) truncateError = new TruncateError(error);
29
+ return DEither.left("file-system-truncate-error", truncateError);
18
30
  }
19
31
  function handleDenoTruncateError(error) {
20
- if (error instanceof Deno.errors.NotFound) return DEither.left("file-system-truncate-not-found", error);
21
- if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return DEither.left("file-system-truncate-permission-denied", error);
22
- if (error instanceof Deno.errors.IsADirectory) return DEither.left("file-system-truncate-is-directory", error);
23
- if (error instanceof Deno.errors.NotADirectory) return DEither.left("file-system-truncate-not-directory", error);
24
- if (error instanceof Deno.errors.InvalidData) return DEither.left("file-system-truncate-invalid-argument", error);
25
- if (error instanceof Deno.errors.Busy) return DEither.left("file-system-truncate-busy", error);
26
- return DEither.left("file-system-truncate-error", error);
32
+ let truncateError = void 0;
33
+ if (error instanceof Deno.errors.NotFound) truncateError = new TruncateErrorNotFound(error);
34
+ else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) truncateError = new TruncateErrorPermissionDenied(error);
35
+ else if (error instanceof Deno.errors.IsADirectory) truncateError = new TruncateErrorIsDirectory(error);
36
+ else if (error instanceof Deno.errors.NotADirectory) truncateError = new TruncateErrorNotDirectory(error);
37
+ else if (error instanceof Deno.errors.InvalidData) truncateError = new TruncateErrorInvalidArgument(error);
38
+ else if (error instanceof Deno.errors.Busy) truncateError = new TruncateErrorBusy(error);
39
+ if (truncateError === void 0) truncateError = new TruncateError(error);
40
+ return DEither.left("file-system-truncate-error", truncateError);
27
41
  }
28
42
  const truncate = implementFunction("truncate", {
29
- NODE: async (path, size) => {
30
- return (await nodeFileSystem.value).truncate(path, size).then(() => DEither.right("file-system-truncate")).catch(handleNodeTruncateError);
31
- },
43
+ NODE: async (path, size) => nodeFileSystem.value.truncate(path, size).then(() => DEither.right("file-system-truncate")).catch(handleNodeTruncateError),
32
44
  DENO: (path, size) => DCommon.pipe(path, DCommon.when(DCommon.instanceOf(URL), ({ pathname }) => decodeURIComponent(pathname)), (stringPath) => Deno.truncate(stringPath, size).then(() => DEither.right("file-system-truncate")).catch(handleDenoTruncateError))
33
45
  });
34
46
  //#endregion
@@ -31,6 +31,8 @@ function createUnknownEntryInterface(path) {
31
31
  function isUnknownEntryInterface(input) {
32
32
  return unknownInterfaceKind.has(input);
33
33
  }
34
+ const isUnknownEntryInterfaceFromUnknown = isUnknownEntryInterface;
34
35
  //#endregion
35
36
  exports.createUnknownEntryInterface = createUnknownEntryInterface;
36
37
  exports.isUnknownEntryInterface = isUnknownEntryInterface;
38
+ exports.isUnknownEntryInterfaceFromUnknown = isUnknownEntryInterfaceFromUnknown;
@@ -3,13 +3,15 @@ import { ExistsResult } from './exists';
3
3
  import type * as DKind from "@duplojs/lang/kind";
4
4
  import * as DPath from "@duplojs/lang/path";
5
5
  declare const unknownInterfaceKind: DKind.Handler<DKind.Definition<"@DuplojsServer/unknownInterface", unknown>>;
6
- export interface UnknownEntryInterface extends DKind.Kind<typeof unknownInterfaceKind> {
7
- path: string & DPath.Path;
8
- getName(): (string & DPath.Segment) | null;
6
+ export type EntryPath = (string & (DPath.Path | DPath.Absolute | DPath.Segment));
7
+ export interface UnknownEntryInterface<GenericPath extends EntryPath = EntryPath> extends DKind.Kind<typeof unknownInterfaceKind> {
8
+ path: GenericPath & DPath.Path;
9
+ getName(): (string & DPath.Segment & DPath.Path) | null;
9
10
  getParentPath(): (string & DPath.Path) | null;
10
11
  stat(): Promise<StatResult>;
11
12
  exist(): Promise<ExistsResult>;
12
13
  }
13
- export declare function createUnknownEntryInterface(path: string & DPath.Path): UnknownEntryInterface;
14
- export declare function isUnknownEntryInterface(input: unknown): input is UnknownEntryInterface;
14
+ export declare function createUnknownEntryInterface<GenericPath extends EntryPath = EntryPath>(path: GenericPath): UnknownEntryInterface<GenericPath>;
15
+ export declare function isUnknownEntryInterface<GenericInput extends unknown>(input: GenericInput): input is Extract<GenericInput, UnknownEntryInterface>;
16
+ export declare const isUnknownEntryInterfaceFromUnknown: (input: unknown) => input is UnknownEntryInterface;
15
17
  export {};
@@ -29,5 +29,6 @@ function createUnknownEntryInterface(path) {
29
29
  function isUnknownEntryInterface(input) {
30
30
  return unknownInterfaceKind.has(input);
31
31
  }
32
+ const isUnknownEntryInterfaceFromUnknown = isUnknownEntryInterface;
32
33
  //#endregion
33
- export { createUnknownEntryInterface, isUnknownEntryInterface };
34
+ export { createUnknownEntryInterface, isUnknownEntryInterface, isUnknownEntryInterfaceFromUnknown };
@@ -1,34 +1,47 @@
1
1
  const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
2
2
  const require_implementor = require("../implementor.cjs");
3
+ const require_getCurrentWorkDirectoryOrThrow = require("../common/getCurrentWorkDirectoryOrThrow.cjs");
3
4
  const require_fileInterface = require("./fileInterface.cjs");
4
5
  const require_unknownEntryInterface = require("./unknownEntryInterface.cjs");
5
6
  const require_folderInterface = require("./folderInterface.cjs");
6
7
  let _duplojs_lang_common = require("@duplojs/lang/common");
7
8
  _duplojs_lang_common = require_runtime.__toESM(_duplojs_lang_common, 1);
9
+ let _duplojs_lang_pattern = require("@duplojs/lang/pattern");
10
+ _duplojs_lang_pattern = require_runtime.__toESM(_duplojs_lang_pattern, 1);
8
11
  let _duplojs_lang_either = require("@duplojs/lang/either");
9
12
  _duplojs_lang_either = require_runtime.__toESM(_duplojs_lang_either, 1);
10
13
  let _duplojs_lang_path = require("@duplojs/lang/path");
11
14
  _duplojs_lang_path = require_runtime.__toESM(_duplojs_lang_path, 1);
12
- let _duplojs_lang_pattern = require("@duplojs/lang/pattern");
13
- _duplojs_lang_pattern = require_runtime.__toESM(_duplojs_lang_pattern, 1);
14
15
  let _duplojs_lang_generator = require("@duplojs/lang/generator");
15
16
  _duplojs_lang_generator = require_runtime.__toESM(_duplojs_lang_generator, 1);
16
17
  //#region scripts/file/walkDirectory.ts
18
+ var WalkDirectoryErrorNotFound = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-walk-directory-not-found", Error) {};
19
+ var WalkDirectoryErrorPermissionDenied = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-walk-directory-permission-denied", Error) {};
20
+ var WalkDirectoryErrorNotDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-walk-directory-not-directory", Error) {};
21
+ var WalkDirectoryErrorTooManyOpenFiles = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-walk-directory-too-many-open-files", Error) {};
22
+ var WalkDirectoryErrorBusy = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-walk-directory-busy", Error) {};
23
+ var WalkDirectoryError = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-walk-directory-error", Error) {};
17
24
  function handleNodeWalkDirectoryError(error) {
18
- if (typeof error === "object" && error !== null && "code" in error) {
19
- if (error.code === "ENOENT") return _duplojs_lang_either.left("file-system-walk-directory-not-found", error);
20
- else if (error.code === "EACCES" || error.code === "EPERM") return _duplojs_lang_either.left("file-system-walk-directory-permission-denied", error);
21
- else if (error.code === "ENOTDIR") return _duplojs_lang_either.left("file-system-walk-directory-not-directory", error);
22
- else if (error.code === "EMFILE" || error.code === "ENFILE") return _duplojs_lang_either.left("file-system-walk-directory-too-many-open-files", error);
23
- else if (error.code === "EBUSY") return _duplojs_lang_either.left("file-system-walk-directory-busy", error);
25
+ let walkDirectoryError = void 0;
26
+ if ("code" in error) {
27
+ if (error.code === "ENOENT") walkDirectoryError = new WalkDirectoryErrorNotFound(error);
28
+ else if (error.code === "EACCES" || error.code === "EPERM") walkDirectoryError = new WalkDirectoryErrorPermissionDenied(error);
29
+ else if (error.code === "ENOTDIR") walkDirectoryError = new WalkDirectoryErrorNotDirectory(error);
30
+ else if (error.code === "EMFILE" || error.code === "ENFILE") walkDirectoryError = new WalkDirectoryErrorTooManyOpenFiles(error);
31
+ else if (error.code === "EBUSY") walkDirectoryError = new WalkDirectoryErrorBusy(error);
24
32
  }
25
- return _duplojs_lang_either.left("file-system-walk-directory-error", error);
33
+ if (walkDirectoryError === void 0) walkDirectoryError = new WalkDirectoryError(error);
34
+ return _duplojs_lang_either.left("file-system-walk-directory-error", walkDirectoryError);
26
35
  }
27
- const walkDirectory = require_implementor.implementFunction("walkDirectory", { NODE: async (path, params) => {
28
- return (await require_implementor.nodeFileSystem.value).readdir(path, {
29
- recursive: params?.recursive ?? false,
30
- withFileTypes: true
31
- }).then(_duplojs_lang_common.innerPipe(_duplojs_lang_generator.map(_duplojs_lang_common.innerPipe(_duplojs_lang_pattern.when((dirent) => dirent.isFile(), ({ parentPath, name }) => require_fileInterface.createFileInterface(_duplojs_lang_common.forwardAsserts(_duplojs_lang_path.normalize(`${parentPath}/${name}`), (result) => _duplojs_lang_common.isType(result, "string") && _duplojs_lang_path.is(result)))), _duplojs_lang_pattern.when((dirent) => dirent.isDirectory(), ({ parentPath, name }) => require_folderInterface.createFolderInterface(_duplojs_lang_common.forwardAsserts(_duplojs_lang_path.normalize(`${parentPath}/${name}`), (result) => _duplojs_lang_common.isType(result, "string") && _duplojs_lang_path.is(result)))), _duplojs_lang_pattern.otherwise(({ parentPath, name }) => require_unknownEntryInterface.createUnknownEntryInterface(_duplojs_lang_common.forwardAsserts(_duplojs_lang_path.normalize(`${parentPath}/${name}`), (result) => _duplojs_lang_common.isType(result, "string") && _duplojs_lang_path.is(result)))))), (value) => _duplojs_lang_either.right("file-system-walk-directory", value))).catch(handleNodeWalkDirectoryError);
32
- } });
36
+ const walkDirectory = require_implementor.implementFunction("walkDirectory", { NODE: async (path, params) => require_implementor.nodeFileSystem.value.readdir(path, {
37
+ recursive: params?.recursive ?? false,
38
+ withFileTypes: true
39
+ }).then((result) => {
40
+ const currentWorkDirectory = require_getCurrentWorkDirectoryOrThrow.getCurrentWorkDirectoryOrThrow();
41
+ return _duplojs_lang_common.pipe(result, _duplojs_lang_generator.map((dirent) => ({
42
+ dirent,
43
+ path: _duplojs_lang_path.resolveFrom(currentWorkDirectory, [_duplojs_lang_path.normalize(`${dirent.parentPath}/${dirent.name}`)])
44
+ })), _duplojs_lang_generator.filter((value) => params?.matcher ? params?.matcher(value.path) : true), _duplojs_lang_generator.map(_duplojs_lang_common.innerPipe(_duplojs_lang_pattern.when(({ dirent }) => dirent.isFile(), ({ path }) => require_fileInterface.createFileInterface(path)), _duplojs_lang_pattern.when(({ dirent }) => dirent.isDirectory(), ({ path }) => require_folderInterface.createFolderInterface(path)), _duplojs_lang_pattern.otherwise(({ path }) => require_unknownEntryInterface.createUnknownEntryInterface(path)))), (value) => _duplojs_lang_either.right("file-system-walk-directory", value));
45
+ }).catch(handleNodeWalkDirectoryError) });
33
46
  //#endregion
34
47
  exports.walkDirectory = walkDirectory;