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