@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.
- package/dist/_virtual/_rolldown/runtime.mjs +5 -1
- package/dist/command/create.cjs +11 -9
- package/dist/command/create.mjs +11 -9
- package/dist/command/error.cjs +2 -2
- package/dist/command/error.mjs +1 -1
- package/dist/command/help.cjs +11 -9
- package/dist/command/help.mjs +10 -8
- package/dist/common/environmentVariable/parseEnvironmentFiles.d.ts +2 -1
- package/dist/common/index.cjs +3 -0
- package/dist/common/index.d.ts +1 -0
- package/dist/common/index.mjs +3 -1
- package/dist/common/meta/getCurrentDirectoryName.cjs +10 -0
- package/dist/common/meta/getCurrentDirectoryName.d.ts +7 -0
- package/dist/common/meta/getCurrentDirectoryName.mjs +7 -0
- package/dist/common/meta/index.d.ts +7 -0
- package/dist/dataStructure/common/codec/defaults/json.cjs +12 -1
- package/dist/dataStructure/common/codec/defaults/json.d.ts +2 -2
- package/dist/dataStructure/common/codec/defaults/json.mjs +12 -1
- package/dist/dataStructure/common/codec/defaults/string.cjs +12 -1
- package/dist/dataStructure/common/codec/defaults/string.d.ts +2 -2
- package/dist/dataStructure/common/codec/defaults/string.mjs +12 -1
- package/dist/dataStructure/common/error/defaultInterpreter.cjs +3 -1
- package/dist/dataStructure/common/error/defaultInterpreter.d.ts +7 -2
- package/dist/dataStructure/common/error/defaultInterpreter.mjs +3 -1
- package/dist/dataStructure/constraint/{exist.cjs → fileExist.cjs} +5 -5
- package/dist/dataStructure/constraint/fileExist.d.ts +10 -0
- package/dist/dataStructure/constraint/{exist.mjs → fileExist.mjs} +4 -4
- package/dist/dataStructure/constraint/folderExist.cjs +19 -0
- package/dist/dataStructure/constraint/folderExist.d.ts +10 -0
- package/dist/dataStructure/constraint/folderExist.mjs +15 -0
- package/dist/dataStructure/constraint/index.d.ts +2 -1
- package/dist/dataStructure/constraint/mimeType.cjs +1 -1
- package/dist/dataStructure/constraint/mimeType.mjs +1 -1
- package/dist/dataStructure/constraint/types/constraints.d.ts +4 -2
- package/dist/dataStructure/fundamentalType/folder.cjs +11 -0
- package/dist/dataStructure/fundamentalType/folder.d.ts +8 -0
- package/dist/dataStructure/fundamentalType/folder.mjs +8 -0
- package/dist/dataStructure/fundamentalType/index.d.ts +1 -0
- package/dist/dataStructure/fundamentalType/types/fundamentalTypes.d.ts +2 -0
- package/dist/dataStructure/helper/file.d.ts +1 -1
- package/dist/dataStructure/helper/fileExist.cjs +7 -0
- package/dist/dataStructure/helper/fileExist.d.ts +2 -0
- package/dist/dataStructure/helper/fileExist.mjs +7 -0
- package/dist/dataStructure/helper/folder.cjs +10 -0
- package/dist/dataStructure/helper/folder.d.ts +3 -0
- package/dist/dataStructure/helper/folder.mjs +8 -0
- package/dist/dataStructure/helper/folderExist.cjs +7 -0
- package/dist/dataStructure/helper/folderExist.d.ts +2 -0
- package/dist/dataStructure/helper/folderExist.mjs +7 -0
- package/dist/dataStructure/helper/index.d.ts +3 -1
- package/dist/dataStructure/index.cjs +29 -8
- package/dist/dataStructure/index.mjs +19 -6
- package/dist/dataStructure/type/folder.cjs +14 -0
- package/dist/dataStructure/type/folder.d.ts +11 -0
- package/dist/dataStructure/type/folder.mjs +11 -0
- package/dist/dataStructure/type/index.d.ts +1 -0
- package/dist/dataStructure/type/types/types.d.ts +2 -0
- package/dist/file/appendFile.cjs +36 -22
- package/dist/file/appendFile.d.ts +34 -2
- package/dist/file/appendFile.mjs +35 -22
- package/dist/file/appendTextFile.cjs +34 -20
- package/dist/file/appendTextFile.d.ts +34 -2
- package/dist/file/appendTextFile.mjs +33 -20
- package/dist/file/copy.cjs +26 -14
- package/dist/file/copy.d.ts +34 -2
- package/dist/file/copy.mjs +25 -14
- package/dist/file/createEntryInterface.cjs +2 -2
- package/dist/file/createEntryInterface.d.ts +1 -1
- package/dist/file/createEntryInterface.mjs +1 -1
- package/dist/file/ensureDirectory.cjs +29 -17
- package/dist/file/ensureDirectory.d.ts +28 -2
- package/dist/file/ensureDirectory.mjs +28 -17
- package/dist/file/ensureFile.cjs +32 -19
- package/dist/file/ensureFile.d.ts +31 -2
- package/dist/file/ensureFile.mjs +31 -19
- package/dist/file/exists.cjs +23 -14
- package/dist/file/exists.d.ts +19 -2
- package/dist/file/exists.mjs +22 -14
- package/dist/file/fileInterface.cjs +2 -0
- package/dist/file/fileInterface.d.ts +8 -6
- package/dist/file/fileInterface.mjs +2 -1
- package/dist/file/folderInterface.cjs +2 -0
- package/dist/file/folderInterface.d.ts +7 -5
- package/dist/file/folderInterface.mjs +2 -1
- package/dist/file/index.cjs +6 -0
- package/dist/file/index.d.ts +0 -1
- package/dist/file/index.mjs +7 -4
- package/dist/file/link.cjs +37 -22
- package/dist/file/link.d.ts +37 -2
- package/dist/file/link.mjs +36 -22
- package/dist/file/linkStat.cjs +23 -15
- package/dist/file/linkStat.d.ts +22 -2
- package/dist/file/linkStat.mjs +23 -15
- package/dist/file/makeDirectory.cjs +35 -21
- package/dist/file/makeDirectory.d.ts +33 -2
- package/dist/file/makeDirectory.mjs +34 -21
- package/dist/file/makeTemporaryDirectory.cjs +26 -15
- package/dist/file/makeTemporaryDirectory.d.ts +25 -2
- package/dist/file/makeTemporaryDirectory.mjs +25 -15
- package/dist/file/makeTemporaryFile.cjs +29 -20
- package/dist/file/makeTemporaryFile.d.ts +28 -2
- package/dist/file/makeTemporaryFile.mjs +29 -20
- package/dist/file/move.cjs +38 -23
- package/dist/file/move.d.ts +37 -2
- package/dist/file/move.mjs +37 -23
- package/dist/file/readDirectory.cjs +27 -9
- package/dist/file/readDirectory.d.ts +26 -5
- package/dist/file/readDirectory.mjs +24 -9
- package/dist/file/readFile.cjs +28 -17
- package/dist/file/readFile.d.ts +25 -2
- package/dist/file/readFile.mjs +27 -17
- package/dist/file/readJsonFile.cjs +28 -17
- package/dist/file/readJsonFile.d.ts +25 -3
- package/dist/file/readJsonFile.mjs +27 -17
- package/dist/file/readLink.cjs +25 -15
- package/dist/file/readLink.d.ts +22 -2
- package/dist/file/readLink.mjs +24 -15
- package/dist/file/readTextFile.cjs +28 -17
- package/dist/file/readTextFile.d.ts +25 -2
- package/dist/file/readTextFile.mjs +27 -17
- package/dist/file/realPath.cjs +22 -13
- package/dist/file/realPath.d.ts +19 -2
- package/dist/file/realPath.mjs +21 -13
- package/dist/file/relocate.cjs +41 -25
- package/dist/file/relocate.d.ts +37 -2
- package/dist/file/relocate.mjs +40 -25
- package/dist/file/remove.cjs +36 -23
- package/dist/file/remove.d.ts +30 -2
- package/dist/file/remove.mjs +35 -23
- package/dist/file/rename.cjs +41 -25
- package/dist/file/rename.d.ts +37 -2
- package/dist/file/rename.mjs +40 -25
- package/dist/file/setMode.cjs +23 -15
- package/dist/file/setMode.d.ts +21 -2
- package/dist/file/setMode.mjs +23 -15
- package/dist/file/setOwner.cjs +25 -15
- package/dist/file/setOwner.d.ts +22 -2
- package/dist/file/setOwner.mjs +24 -15
- package/dist/file/setTime.cjs +25 -15
- package/dist/file/setTime.d.ts +21 -2
- package/dist/file/setTime.mjs +24 -15
- package/dist/file/stat.cjs +23 -15
- package/dist/file/stat.d.ts +22 -2
- package/dist/file/stat.mjs +23 -15
- package/dist/file/symlink.cjs +33 -20
- package/dist/file/symlink.d.ts +31 -2
- package/dist/file/symlink.mjs +32 -20
- package/dist/file/truncate.cjs +33 -21
- package/dist/file/truncate.d.ts +34 -2
- package/dist/file/truncate.mjs +33 -21
- package/dist/file/unknownEntryInterface.cjs +2 -0
- package/dist/file/unknownEntryInterface.d.ts +7 -5
- package/dist/file/unknownEntryInterface.mjs +2 -1
- package/dist/file/walkDirectory.cjs +28 -15
- package/dist/file/walkDirectory.d.ts +23 -2
- package/dist/file/walkDirectory.mjs +27 -14
- package/dist/file/writeFile.cjs +35 -21
- package/dist/file/writeFile.d.ts +34 -2
- package/dist/file/writeFile.mjs +34 -21
- package/dist/file/writeJsonFile.cjs +38 -27
- package/dist/file/writeJsonFile.d.ts +36 -5
- package/dist/file/writeJsonFile.mjs +38 -27
- package/dist/file/writeTextFile.cjs +35 -21
- package/dist/file/writeTextFile.d.ts +34 -2
- package/dist/file/writeTextFile.mjs +34 -21
- package/dist/implementor.cjs +8 -5
- package/dist/implementor.d.ts +4 -4
- package/dist/implementor.mjs +8 -5
- package/dist/index.cjs +2 -0
- package/dist/index.mjs +2 -1
- package/package.json +4 -4
- package/dist/dataStructure/constraint/exist.d.ts +0 -10
- package/dist/dataStructure/helper/exist.cjs +0 -7
- package/dist/dataStructure/helper/exist.d.ts +0 -2
- package/dist/dataStructure/helper/exist.mjs +0 -7
- package/dist/file/types/fileSystemEither.d.ts +0 -2
- package/dist/file/types/index.d.ts +0 -1
- /package/{README → README.md} +0 -0
package/dist/file/move.mjs
CHANGED
|
@@ -1,35 +1,49 @@
|
|
|
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/move.ts
|
|
5
|
+
var MoveErrorNotFound = class extends DCommon.DuploJSError.parentClass("file-system-move-not-found", Error) {};
|
|
6
|
+
var MoveErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-move-permission-denied", Error) {};
|
|
7
|
+
var MoveErrorAlreadyExists = class extends DCommon.DuploJSError.parentClass("file-system-move-already-exists", Error) {};
|
|
8
|
+
var MoveErrorIsDirectory = class extends DCommon.DuploJSError.parentClass("file-system-move-is-directory", Error) {};
|
|
9
|
+
var MoveErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-move-not-directory", Error) {};
|
|
10
|
+
var MoveErrorDirectoryNotEmpty = class extends DCommon.DuploJSError.parentClass("file-system-move-directory-not-empty", Error) {};
|
|
11
|
+
var MoveErrorReadOnly = class extends DCommon.DuploJSError.parentClass("file-system-move-read-only", Error) {};
|
|
12
|
+
var MoveErrorInvalidArgument = class extends DCommon.DuploJSError.parentClass("file-system-move-invalid-argument", Error) {};
|
|
13
|
+
var MoveErrorBusy = class extends DCommon.DuploJSError.parentClass("file-system-move-busy", Error) {};
|
|
14
|
+
var MoveErrorCrossDevice = class extends DCommon.DuploJSError.parentClass("file-system-move-cross-device", Error) {};
|
|
15
|
+
var MoveError = class extends DCommon.DuploJSError.parentClass("file-system-move-error", Error) {};
|
|
4
16
|
function handleNodeMoveError(error) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
else if (error.code === "
|
|
9
|
-
else if (error.code === "
|
|
10
|
-
else if (error.code === "
|
|
11
|
-
else if (error.code === "
|
|
12
|
-
else if (error.code === "
|
|
13
|
-
else if (error.code === "
|
|
14
|
-
else if (error.code === "
|
|
15
|
-
else if (error.code === "
|
|
17
|
+
let moveError = void 0;
|
|
18
|
+
if ("code" in error) {
|
|
19
|
+
if (error.code === "ENOENT") moveError = new MoveErrorNotFound(error);
|
|
20
|
+
else if (error.code === "EACCES" || error.code === "EPERM") moveError = new MoveErrorPermissionDenied(error);
|
|
21
|
+
else if (error.code === "EEXIST") moveError = new MoveErrorAlreadyExists(error);
|
|
22
|
+
else if (error.code === "EISDIR") moveError = new MoveErrorIsDirectory(error);
|
|
23
|
+
else if (error.code === "ENOTDIR") moveError = new MoveErrorNotDirectory(error);
|
|
24
|
+
else if (error.code === "ENOTEMPTY") moveError = new MoveErrorDirectoryNotEmpty(error);
|
|
25
|
+
else if (error.code === "EROFS") moveError = new MoveErrorReadOnly(error);
|
|
26
|
+
else if (error.code === "EINVAL") moveError = new MoveErrorInvalidArgument(error);
|
|
27
|
+
else if (error.code === "EBUSY") moveError = new MoveErrorBusy(error);
|
|
28
|
+
else if (error.code === "EXDEV") moveError = new MoveErrorCrossDevice(error);
|
|
16
29
|
}
|
|
17
|
-
|
|
30
|
+
if (moveError === void 0) moveError = new MoveError(error);
|
|
31
|
+
return DEither.left("file-system-move-error", moveError);
|
|
18
32
|
}
|
|
19
33
|
function handleDenoMoveError(error) {
|
|
20
|
-
|
|
21
|
-
if (error instanceof Deno.errors.
|
|
22
|
-
if (error instanceof Deno.errors.
|
|
23
|
-
if (error instanceof Deno.errors.
|
|
24
|
-
if (error instanceof Deno.errors.
|
|
25
|
-
if (error instanceof Deno.errors.
|
|
26
|
-
if (error instanceof Deno.errors.
|
|
27
|
-
|
|
34
|
+
let moveError = void 0;
|
|
35
|
+
if (error instanceof Deno.errors.NotFound) moveError = new MoveErrorNotFound(error);
|
|
36
|
+
else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) moveError = new MoveErrorPermissionDenied(error);
|
|
37
|
+
else if (error instanceof Deno.errors.AlreadyExists) moveError = new MoveErrorAlreadyExists(error);
|
|
38
|
+
else if (error instanceof Deno.errors.IsADirectory) moveError = new MoveErrorIsDirectory(error);
|
|
39
|
+
else if (error instanceof Deno.errors.NotADirectory) moveError = new MoveErrorNotDirectory(error);
|
|
40
|
+
else if (error instanceof Deno.errors.InvalidData) moveError = new MoveErrorInvalidArgument(error);
|
|
41
|
+
else if (error instanceof Deno.errors.Busy) moveError = new MoveErrorBusy(error);
|
|
42
|
+
if (moveError === void 0) moveError = new MoveError(error);
|
|
43
|
+
return DEither.left("file-system-move-error", moveError);
|
|
28
44
|
}
|
|
29
45
|
const moveImplementation = implementFunction("move", {
|
|
30
|
-
NODE: async (fromPath, toPath) =>
|
|
31
|
-
return (await nodeFileSystem.value).rename(fromPath, toPath).then(() => DEither.right("file-system-move")).catch(handleNodeMoveError);
|
|
32
|
-
},
|
|
46
|
+
NODE: async (fromPath, toPath) => nodeFileSystem.value.rename(fromPath, toPath).then(() => DEither.right("file-system-move")).catch(handleNodeMoveError),
|
|
33
47
|
DENO: (fromPath, toPath) => Deno.rename(fromPath, toPath).then(() => DEither.right("file-system-move")).catch(handleDenoMoveError)
|
|
34
48
|
});
|
|
35
49
|
function move(...args) {
|
|
@@ -1,20 +1,38 @@
|
|
|
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");
|
|
4
|
+
let _duplojs_lang_common = require("@duplojs/lang/common");
|
|
5
|
+
_duplojs_lang_common = require_runtime.__toESM(_duplojs_lang_common, 1);
|
|
3
6
|
let _duplojs_lang_either = require("@duplojs/lang/either");
|
|
4
7
|
_duplojs_lang_either = require_runtime.__toESM(_duplojs_lang_either, 1);
|
|
8
|
+
let _duplojs_lang_path = require("@duplojs/lang/path");
|
|
9
|
+
_duplojs_lang_path = require_runtime.__toESM(_duplojs_lang_path, 1);
|
|
10
|
+
let _duplojs_lang_array = require("@duplojs/lang/array");
|
|
11
|
+
_duplojs_lang_array = require_runtime.__toESM(_duplojs_lang_array, 1);
|
|
5
12
|
//#region scripts/file/readDirectory.ts
|
|
13
|
+
var ReadDirectoryErrorNotFound = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-directory-not-found", Error) {};
|
|
14
|
+
var ReadDirectoryErrorPermissionDenied = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-directory-permission-denied", Error) {};
|
|
15
|
+
var ReadDirectoryErrorNotDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-directory-not-directory", Error) {};
|
|
16
|
+
var ReadDirectoryErrorTooManyOpenFiles = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-directory-too-many-open-files", Error) {};
|
|
17
|
+
var ReadDirectoryErrorBusy = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-directory-busy", Error) {};
|
|
18
|
+
var ReadDirectoryError = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-directory-error", Error) {};
|
|
6
19
|
function handleNodeReadDirectoryError(error) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
else if (error.code === "
|
|
11
|
-
else if (error.code === "
|
|
12
|
-
else if (error.code === "
|
|
20
|
+
let readDirectoryError = void 0;
|
|
21
|
+
if ("code" in error) {
|
|
22
|
+
if (error.code === "ENOENT") readDirectoryError = new ReadDirectoryErrorNotFound(error);
|
|
23
|
+
else if (error.code === "EACCES" || error.code === "EPERM") readDirectoryError = new ReadDirectoryErrorPermissionDenied(error);
|
|
24
|
+
else if (error.code === "ENOTDIR") readDirectoryError = new ReadDirectoryErrorNotDirectory(error);
|
|
25
|
+
else if (error.code === "EMFILE" || error.code === "ENFILE") readDirectoryError = new ReadDirectoryErrorTooManyOpenFiles(error);
|
|
26
|
+
else if (error.code === "EBUSY") readDirectoryError = new ReadDirectoryErrorBusy(error);
|
|
13
27
|
}
|
|
14
|
-
|
|
28
|
+
if (readDirectoryError === void 0) readDirectoryError = new ReadDirectoryError(error);
|
|
29
|
+
return _duplojs_lang_either.left("file-system-read-directory-error", readDirectoryError);
|
|
15
30
|
}
|
|
16
|
-
const readDirectory = require_implementor.implementFunction("readDirectory", { NODE:
|
|
17
|
-
return (
|
|
31
|
+
const readDirectory = require_implementor.implementFunction("readDirectory", { NODE: (path, params) => {
|
|
32
|
+
return (params?.absolute ? require_implementor.nodeFileSystem.value.readdir(path, {
|
|
33
|
+
recursive: params.recursive,
|
|
34
|
+
withFileTypes: true
|
|
35
|
+
}).then((value) => _duplojs_lang_array.map(value, ({ name, parentPath }) => _duplojs_lang_path.resolveFrom(require_getCurrentWorkDirectoryOrThrow.getCurrentWorkDirectoryOrThrow(), [_duplojs_lang_path.normalize(`${parentPath}/${name}`)]))) : require_implementor.nodeFileSystem.value.readdir(path, { recursive: params?.recursive }).then((value) => _duplojs_lang_array.map(value, (subPath) => _duplojs_lang_path.normalize(subPath)))).then(_duplojs_lang_common.innerPipe((paths) => params?.matcher ? _duplojs_lang_array.filter(paths, params.matcher) : paths, (value) => _duplojs_lang_either.right("file-system-read-directory", value))).catch(handleNodeReadDirectoryError);
|
|
18
36
|
} });
|
|
19
37
|
//#endregion
|
|
20
38
|
exports.readDirectory = readDirectory;
|
|
@@ -1,14 +1,35 @@
|
|
|
1
|
-
import
|
|
2
|
-
import type * as DPath from "@duplojs/lang/path";
|
|
1
|
+
import * as DPath from "@duplojs/lang/path";
|
|
3
2
|
import * as DEither from "@duplojs/lang/either";
|
|
3
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
4
|
+
declare const ReadDirectoryErrorNotFound_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-directory-not-found", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-directory-not-found", unknown>>, unknown>;
|
|
5
|
+
declare class ReadDirectoryErrorNotFound extends ReadDirectoryErrorNotFound_base {
|
|
6
|
+
}
|
|
7
|
+
declare const ReadDirectoryErrorPermissionDenied_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-directory-permission-denied", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-directory-permission-denied", unknown>>, unknown>;
|
|
8
|
+
declare class ReadDirectoryErrorPermissionDenied extends ReadDirectoryErrorPermissionDenied_base {
|
|
9
|
+
}
|
|
10
|
+
declare const ReadDirectoryErrorNotDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-directory-not-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-directory-not-directory", unknown>>, unknown>;
|
|
11
|
+
declare class ReadDirectoryErrorNotDirectory extends ReadDirectoryErrorNotDirectory_base {
|
|
12
|
+
}
|
|
13
|
+
declare const ReadDirectoryErrorTooManyOpenFiles_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-directory-too-many-open-files", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-directory-too-many-open-files", unknown>>, unknown>;
|
|
14
|
+
declare class ReadDirectoryErrorTooManyOpenFiles extends ReadDirectoryErrorTooManyOpenFiles_base {
|
|
15
|
+
}
|
|
16
|
+
declare const ReadDirectoryErrorBusy_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-directory-busy", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-directory-busy", unknown>>, unknown>;
|
|
17
|
+
declare class ReadDirectoryErrorBusy extends ReadDirectoryErrorBusy_base {
|
|
18
|
+
}
|
|
19
|
+
declare const ReadDirectoryError_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-directory-error", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-directory-error", unknown>>, unknown>;
|
|
20
|
+
declare class ReadDirectoryError extends ReadDirectoryError_base {
|
|
21
|
+
}
|
|
22
|
+
export type ReadDirectoryErrors = (ReadDirectoryErrorNotFound | ReadDirectoryErrorPermissionDenied | ReadDirectoryErrorNotDirectory | ReadDirectoryErrorTooManyOpenFiles | ReadDirectoryErrorBusy | ReadDirectoryError);
|
|
4
23
|
interface ReadDirectoryParams {
|
|
5
24
|
recursive?: boolean;
|
|
25
|
+
absolute?: boolean;
|
|
26
|
+
matcher?: DPath.PathMatcher;
|
|
6
27
|
}
|
|
7
|
-
export type ReadDirectoryResult =
|
|
28
|
+
export type ReadDirectoryResult<GenericParams extends ReadDirectoryParams = ReadDirectoryParams> = (DEither.Right<"file-system-read-directory", readonly (string & DPath.Path & (DCommon.IsEqual<GenericParams["absolute"], true> extends true ? DPath.Absolute : unknown))[]> | DEither.Left<"file-system-read-directory-error", ReadDirectoryErrors>);
|
|
8
29
|
declare module '../implementor' {
|
|
9
30
|
interface ServerFunction {
|
|
10
|
-
readDirectory(path: string & DPath.Path, params?:
|
|
31
|
+
readDirectory<const GenericParams extends ReadDirectoryParams = {}>(path: string & DPath.Path, params?: GenericParams): Promise<ReadDirectoryResult<GenericParams>>;
|
|
11
32
|
}
|
|
12
33
|
}
|
|
13
|
-
export declare const readDirectory: (path: string & DPath.Path, params?:
|
|
34
|
+
export declare const readDirectory: <const GenericParams extends ReadDirectoryParams = {}>(path: string & DPath.Path, params?: GenericParams) => Promise<ReadDirectoryResult<GenericParams>>;
|
|
14
35
|
export {};
|
|
@@ -1,18 +1,33 @@
|
|
|
1
1
|
import { implementFunction, nodeFileSystem } from "../implementor.mjs";
|
|
2
|
+
import { getCurrentWorkDirectoryOrThrow } from "../common/getCurrentWorkDirectoryOrThrow.mjs";
|
|
3
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
2
4
|
import * as DEither from "@duplojs/lang/either";
|
|
5
|
+
import * as DPath from "@duplojs/lang/path";
|
|
6
|
+
import * as DArray from "@duplojs/lang/array";
|
|
3
7
|
//#region scripts/file/readDirectory.ts
|
|
8
|
+
var ReadDirectoryErrorNotFound = class extends DCommon.DuploJSError.parentClass("file-system-read-directory-not-found", Error) {};
|
|
9
|
+
var ReadDirectoryErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-read-directory-permission-denied", Error) {};
|
|
10
|
+
var ReadDirectoryErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-read-directory-not-directory", Error) {};
|
|
11
|
+
var ReadDirectoryErrorTooManyOpenFiles = class extends DCommon.DuploJSError.parentClass("file-system-read-directory-too-many-open-files", Error) {};
|
|
12
|
+
var ReadDirectoryErrorBusy = class extends DCommon.DuploJSError.parentClass("file-system-read-directory-busy", Error) {};
|
|
13
|
+
var ReadDirectoryError = class extends DCommon.DuploJSError.parentClass("file-system-read-directory-error", Error) {};
|
|
4
14
|
function handleNodeReadDirectoryError(error) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
else if (error.code === "
|
|
9
|
-
else if (error.code === "
|
|
10
|
-
else if (error.code === "
|
|
15
|
+
let readDirectoryError = void 0;
|
|
16
|
+
if ("code" in error) {
|
|
17
|
+
if (error.code === "ENOENT") readDirectoryError = new ReadDirectoryErrorNotFound(error);
|
|
18
|
+
else if (error.code === "EACCES" || error.code === "EPERM") readDirectoryError = new ReadDirectoryErrorPermissionDenied(error);
|
|
19
|
+
else if (error.code === "ENOTDIR") readDirectoryError = new ReadDirectoryErrorNotDirectory(error);
|
|
20
|
+
else if (error.code === "EMFILE" || error.code === "ENFILE") readDirectoryError = new ReadDirectoryErrorTooManyOpenFiles(error);
|
|
21
|
+
else if (error.code === "EBUSY") readDirectoryError = new ReadDirectoryErrorBusy(error);
|
|
11
22
|
}
|
|
12
|
-
|
|
23
|
+
if (readDirectoryError === void 0) readDirectoryError = new ReadDirectoryError(error);
|
|
24
|
+
return DEither.left("file-system-read-directory-error", readDirectoryError);
|
|
13
25
|
}
|
|
14
|
-
const readDirectory = implementFunction("readDirectory", { NODE:
|
|
15
|
-
return (
|
|
26
|
+
const readDirectory = implementFunction("readDirectory", { NODE: (path, params) => {
|
|
27
|
+
return (params?.absolute ? nodeFileSystem.value.readdir(path, {
|
|
28
|
+
recursive: params.recursive,
|
|
29
|
+
withFileTypes: true
|
|
30
|
+
}).then((value) => DArray.map(value, ({ name, parentPath }) => DPath.resolveFrom(getCurrentWorkDirectoryOrThrow(), [DPath.normalize(`${parentPath}/${name}`)]))) : nodeFileSystem.value.readdir(path, { recursive: params?.recursive }).then((value) => DArray.map(value, (subPath) => DPath.normalize(subPath)))).then(DCommon.innerPipe((paths) => params?.matcher ? DArray.filter(paths, params.matcher) : paths, (value) => DEither.right("file-system-read-directory", value))).catch(handleNodeReadDirectoryError);
|
|
16
31
|
} });
|
|
17
32
|
//#endregion
|
|
18
33
|
export { readDirectory };
|
package/dist/file/readFile.cjs
CHANGED
|
@@ -1,31 +1,42 @@
|
|
|
1
1
|
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
|
|
2
2
|
const require_implementor = require("../implementor.cjs");
|
|
3
|
+
let _duplojs_lang_common = require("@duplojs/lang/common");
|
|
4
|
+
_duplojs_lang_common = require_runtime.__toESM(_duplojs_lang_common, 1);
|
|
3
5
|
let _duplojs_lang_either = require("@duplojs/lang/either");
|
|
4
6
|
_duplojs_lang_either = require_runtime.__toESM(_duplojs_lang_either, 1);
|
|
5
7
|
//#region scripts/file/readFile.ts
|
|
8
|
+
var ReadFileErrorNotFound = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-file-not-found", Error) {};
|
|
9
|
+
var ReadFileErrorPermissionDenied = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-file-permission-denied", Error) {};
|
|
10
|
+
var ReadFileErrorIsDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-file-is-directory", Error) {};
|
|
11
|
+
var ReadFileErrorNotDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-file-not-directory", Error) {};
|
|
12
|
+
var ReadFileErrorTooManyOpenFiles = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-file-too-many-open-files", Error) {};
|
|
13
|
+
var ReadFileErrorBusy = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-file-busy", Error) {};
|
|
14
|
+
var ReadFileError = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-file-error", Error) {};
|
|
6
15
|
function handleNodeReadFileError(error) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
else if (error.code === "
|
|
11
|
-
else if (error.code === "
|
|
12
|
-
else if (error.code === "
|
|
13
|
-
else if (error.code === "
|
|
16
|
+
let readFileError = void 0;
|
|
17
|
+
if ("code" in error) {
|
|
18
|
+
if (error.code === "ENOENT") readFileError = new ReadFileErrorNotFound(error);
|
|
19
|
+
else if (error.code === "EACCES" || error.code === "EPERM") readFileError = new ReadFileErrorPermissionDenied(error);
|
|
20
|
+
else if (error.code === "EISDIR") readFileError = new ReadFileErrorIsDirectory(error);
|
|
21
|
+
else if (error.code === "ENOTDIR") readFileError = new ReadFileErrorNotDirectory(error);
|
|
22
|
+
else if (error.code === "EMFILE" || error.code === "ENFILE") readFileError = new ReadFileErrorTooManyOpenFiles(error);
|
|
23
|
+
else if (error.code === "EBUSY") readFileError = new ReadFileErrorBusy(error);
|
|
14
24
|
}
|
|
15
|
-
|
|
25
|
+
if (readFileError === void 0) readFileError = new ReadFileError(error);
|
|
26
|
+
return _duplojs_lang_either.left("file-system-read-file-error", readFileError);
|
|
16
27
|
}
|
|
17
28
|
function handleDenoReadFileError(error) {
|
|
18
|
-
|
|
19
|
-
if (error instanceof Deno.errors.
|
|
20
|
-
if (error instanceof Deno.errors.
|
|
21
|
-
if (error instanceof Deno.errors.
|
|
22
|
-
if (error instanceof Deno.errors.
|
|
23
|
-
|
|
29
|
+
let readFileError = void 0;
|
|
30
|
+
if (error instanceof Deno.errors.NotFound) readFileError = new ReadFileErrorNotFound(error);
|
|
31
|
+
else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) readFileError = new ReadFileErrorPermissionDenied(error);
|
|
32
|
+
else if (error instanceof Deno.errors.IsADirectory) readFileError = new ReadFileErrorIsDirectory(error);
|
|
33
|
+
else if (error instanceof Deno.errors.NotADirectory) readFileError = new ReadFileErrorNotDirectory(error);
|
|
34
|
+
else if (error instanceof Deno.errors.Busy) readFileError = new ReadFileErrorBusy(error);
|
|
35
|
+
if (readFileError === void 0) readFileError = new ReadFileError(error);
|
|
36
|
+
return _duplojs_lang_either.left("file-system-read-file-error", readFileError);
|
|
24
37
|
}
|
|
25
38
|
const readFile = require_implementor.implementFunction("readFile", {
|
|
26
|
-
NODE: async (path) =>
|
|
27
|
-
return (await require_implementor.nodeFileSystem.value).readFile(path).then((value) => _duplojs_lang_either.right("file-system-read-file", value)).catch(handleNodeReadFileError);
|
|
28
|
-
},
|
|
39
|
+
NODE: async (path) => require_implementor.nodeFileSystem.value.readFile(path).then((value) => _duplojs_lang_either.right("file-system-read-file", value)).catch(handleNodeReadFileError),
|
|
29
40
|
DENO: (path) => Deno.readFile(path).then((value) => _duplojs_lang_either.right("file-system-read-file", value)).catch(handleDenoReadFileError),
|
|
30
41
|
BUN: (path) => Bun.file(path).bytes().then((value) => _duplojs_lang_either.right("file-system-read-file", value)).catch(handleNodeReadFileError)
|
|
31
42
|
});
|
package/dist/file/readFile.d.ts
CHANGED
|
@@ -1,10 +1,33 @@
|
|
|
1
|
-
import { FileSystemEither } from './types';
|
|
2
1
|
import * as DEither from "@duplojs/lang/either";
|
|
3
2
|
import type * as DPath from "@duplojs/lang/path";
|
|
4
|
-
|
|
3
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
4
|
+
declare const ReadFileErrorNotFound_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-file-not-found", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-file-not-found", unknown>>, unknown>;
|
|
5
|
+
declare class ReadFileErrorNotFound extends ReadFileErrorNotFound_base {
|
|
6
|
+
}
|
|
7
|
+
declare const ReadFileErrorPermissionDenied_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-file-permission-denied", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-file-permission-denied", unknown>>, unknown>;
|
|
8
|
+
declare class ReadFileErrorPermissionDenied extends ReadFileErrorPermissionDenied_base {
|
|
9
|
+
}
|
|
10
|
+
declare const ReadFileErrorIsDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-file-is-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-file-is-directory", unknown>>, unknown>;
|
|
11
|
+
declare class ReadFileErrorIsDirectory extends ReadFileErrorIsDirectory_base {
|
|
12
|
+
}
|
|
13
|
+
declare const ReadFileErrorNotDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-file-not-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-file-not-directory", unknown>>, unknown>;
|
|
14
|
+
declare class ReadFileErrorNotDirectory extends ReadFileErrorNotDirectory_base {
|
|
15
|
+
}
|
|
16
|
+
declare const ReadFileErrorTooManyOpenFiles_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-file-too-many-open-files", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-file-too-many-open-files", unknown>>, unknown>;
|
|
17
|
+
declare class ReadFileErrorTooManyOpenFiles extends ReadFileErrorTooManyOpenFiles_base {
|
|
18
|
+
}
|
|
19
|
+
declare const ReadFileErrorBusy_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-file-busy", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-file-busy", unknown>>, unknown>;
|
|
20
|
+
declare class ReadFileErrorBusy extends ReadFileErrorBusy_base {
|
|
21
|
+
}
|
|
22
|
+
declare const ReadFileError_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-file-error", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-file-error", unknown>>, unknown>;
|
|
23
|
+
declare class ReadFileError extends ReadFileError_base {
|
|
24
|
+
}
|
|
25
|
+
export type ReadFileErrors = (ReadFileErrorNotFound | ReadFileErrorPermissionDenied | ReadFileErrorIsDirectory | ReadFileErrorNotDirectory | ReadFileErrorTooManyOpenFiles | ReadFileErrorBusy | ReadFileError);
|
|
26
|
+
export type ReadFileResult = (DEither.Right<"file-system-read-file", Uint8Array> | DEither.Left<"file-system-read-file-error", ReadFileErrors>);
|
|
5
27
|
declare module '../implementor' {
|
|
6
28
|
interface ServerFunction {
|
|
7
29
|
readFile(path: string & DPath.Path): Promise<ReadFileResult>;
|
|
8
30
|
}
|
|
9
31
|
}
|
|
10
32
|
export declare const readFile: (path: string & DPath.Path) => Promise<ReadFileResult>;
|
|
33
|
+
export {};
|
package/dist/file/readFile.mjs
CHANGED
|
@@ -1,29 +1,39 @@
|
|
|
1
1
|
import { implementFunction, nodeFileSystem } from "../implementor.mjs";
|
|
2
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
2
3
|
import * as DEither from "@duplojs/lang/either";
|
|
3
4
|
//#region scripts/file/readFile.ts
|
|
5
|
+
var ReadFileErrorNotFound = class extends DCommon.DuploJSError.parentClass("file-system-read-file-not-found", Error) {};
|
|
6
|
+
var ReadFileErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-read-file-permission-denied", Error) {};
|
|
7
|
+
var ReadFileErrorIsDirectory = class extends DCommon.DuploJSError.parentClass("file-system-read-file-is-directory", Error) {};
|
|
8
|
+
var ReadFileErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-read-file-not-directory", Error) {};
|
|
9
|
+
var ReadFileErrorTooManyOpenFiles = class extends DCommon.DuploJSError.parentClass("file-system-read-file-too-many-open-files", Error) {};
|
|
10
|
+
var ReadFileErrorBusy = class extends DCommon.DuploJSError.parentClass("file-system-read-file-busy", Error) {};
|
|
11
|
+
var ReadFileError = class extends DCommon.DuploJSError.parentClass("file-system-read-file-error", Error) {};
|
|
4
12
|
function handleNodeReadFileError(error) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
else if (error.code === "
|
|
9
|
-
else if (error.code === "
|
|
10
|
-
else if (error.code === "
|
|
11
|
-
else if (error.code === "
|
|
13
|
+
let readFileError = void 0;
|
|
14
|
+
if ("code" in error) {
|
|
15
|
+
if (error.code === "ENOENT") readFileError = new ReadFileErrorNotFound(error);
|
|
16
|
+
else if (error.code === "EACCES" || error.code === "EPERM") readFileError = new ReadFileErrorPermissionDenied(error);
|
|
17
|
+
else if (error.code === "EISDIR") readFileError = new ReadFileErrorIsDirectory(error);
|
|
18
|
+
else if (error.code === "ENOTDIR") readFileError = new ReadFileErrorNotDirectory(error);
|
|
19
|
+
else if (error.code === "EMFILE" || error.code === "ENFILE") readFileError = new ReadFileErrorTooManyOpenFiles(error);
|
|
20
|
+
else if (error.code === "EBUSY") readFileError = new ReadFileErrorBusy(error);
|
|
12
21
|
}
|
|
13
|
-
|
|
22
|
+
if (readFileError === void 0) readFileError = new ReadFileError(error);
|
|
23
|
+
return DEither.left("file-system-read-file-error", readFileError);
|
|
14
24
|
}
|
|
15
25
|
function handleDenoReadFileError(error) {
|
|
16
|
-
|
|
17
|
-
if (error instanceof Deno.errors.
|
|
18
|
-
if (error instanceof Deno.errors.
|
|
19
|
-
if (error instanceof Deno.errors.
|
|
20
|
-
if (error instanceof Deno.errors.
|
|
21
|
-
|
|
26
|
+
let readFileError = void 0;
|
|
27
|
+
if (error instanceof Deno.errors.NotFound) readFileError = new ReadFileErrorNotFound(error);
|
|
28
|
+
else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) readFileError = new ReadFileErrorPermissionDenied(error);
|
|
29
|
+
else if (error instanceof Deno.errors.IsADirectory) readFileError = new ReadFileErrorIsDirectory(error);
|
|
30
|
+
else if (error instanceof Deno.errors.NotADirectory) readFileError = new ReadFileErrorNotDirectory(error);
|
|
31
|
+
else if (error instanceof Deno.errors.Busy) readFileError = new ReadFileErrorBusy(error);
|
|
32
|
+
if (readFileError === void 0) readFileError = new ReadFileError(error);
|
|
33
|
+
return DEither.left("file-system-read-file-error", readFileError);
|
|
22
34
|
}
|
|
23
35
|
const readFile = implementFunction("readFile", {
|
|
24
|
-
NODE: async (path) =>
|
|
25
|
-
return (await nodeFileSystem.value).readFile(path).then((value) => DEither.right("file-system-read-file", value)).catch(handleNodeReadFileError);
|
|
26
|
-
},
|
|
36
|
+
NODE: async (path) => nodeFileSystem.value.readFile(path).then((value) => DEither.right("file-system-read-file", value)).catch(handleNodeReadFileError),
|
|
27
37
|
DENO: (path) => Deno.readFile(path).then((value) => DEither.right("file-system-read-file", value)).catch(handleDenoReadFileError),
|
|
28
38
|
BUN: (path) => Bun.file(path).bytes().then((value) => DEither.right("file-system-read-file", value)).catch(handleNodeReadFileError)
|
|
29
39
|
});
|
|
@@ -1,31 +1,42 @@
|
|
|
1
1
|
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
|
|
2
2
|
const require_implementor = require("../implementor.cjs");
|
|
3
|
+
let _duplojs_lang_common = require("@duplojs/lang/common");
|
|
4
|
+
_duplojs_lang_common = require_runtime.__toESM(_duplojs_lang_common, 1);
|
|
3
5
|
let _duplojs_lang_either = require("@duplojs/lang/either");
|
|
4
6
|
_duplojs_lang_either = require_runtime.__toESM(_duplojs_lang_either, 1);
|
|
5
7
|
//#region scripts/file/readJsonFile.ts
|
|
8
|
+
var ReadJsonFileErrorNotFound = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-json-file-not-found", Error) {};
|
|
9
|
+
var ReadJsonFileErrorPermissionDenied = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-json-file-permission-denied", Error) {};
|
|
10
|
+
var ReadJsonFileErrorIsDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-json-file-is-directory", Error) {};
|
|
11
|
+
var ReadJsonFileErrorNotDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-json-file-not-directory", Error) {};
|
|
12
|
+
var ReadJsonFileErrorTooManyOpenFiles = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-json-file-too-many-open-files", Error) {};
|
|
13
|
+
var ReadJsonFileErrorBusy = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-json-file-busy", Error) {};
|
|
14
|
+
var ReadJsonFileError = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-json-file-error", Error) {};
|
|
6
15
|
function handleNodeReadJsonFileError(error) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
else if (error.code === "
|
|
11
|
-
else if (error.code === "
|
|
12
|
-
else if (error.code === "
|
|
13
|
-
else if (error.code === "
|
|
16
|
+
let readJsonFileError = void 0;
|
|
17
|
+
if ("code" in error) {
|
|
18
|
+
if (error.code === "ENOENT") readJsonFileError = new ReadJsonFileErrorNotFound(error);
|
|
19
|
+
else if (error.code === "EACCES" || error.code === "EPERM") readJsonFileError = new ReadJsonFileErrorPermissionDenied(error);
|
|
20
|
+
else if (error.code === "EISDIR") readJsonFileError = new ReadJsonFileErrorIsDirectory(error);
|
|
21
|
+
else if (error.code === "ENOTDIR") readJsonFileError = new ReadJsonFileErrorNotDirectory(error);
|
|
22
|
+
else if (error.code === "EMFILE" || error.code === "ENFILE") readJsonFileError = new ReadJsonFileErrorTooManyOpenFiles(error);
|
|
23
|
+
else if (error.code === "EBUSY") readJsonFileError = new ReadJsonFileErrorBusy(error);
|
|
14
24
|
}
|
|
15
|
-
|
|
25
|
+
if (readJsonFileError === void 0) readJsonFileError = new ReadJsonFileError(error);
|
|
26
|
+
return _duplojs_lang_either.left("file-system-read-json-file-error", readJsonFileError);
|
|
16
27
|
}
|
|
17
28
|
function handleDenoReadJsonFileError(error) {
|
|
18
|
-
|
|
19
|
-
if (error instanceof Deno.errors.
|
|
20
|
-
if (error instanceof Deno.errors.
|
|
21
|
-
if (error instanceof Deno.errors.
|
|
22
|
-
if (error instanceof Deno.errors.
|
|
23
|
-
|
|
29
|
+
let readJsonFileError = void 0;
|
|
30
|
+
if (error instanceof Deno.errors.NotFound) readJsonFileError = new ReadJsonFileErrorNotFound(error);
|
|
31
|
+
else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) readJsonFileError = new ReadJsonFileErrorPermissionDenied(error);
|
|
32
|
+
else if (error instanceof Deno.errors.IsADirectory) readJsonFileError = new ReadJsonFileErrorIsDirectory(error);
|
|
33
|
+
else if (error instanceof Deno.errors.NotADirectory) readJsonFileError = new ReadJsonFileErrorNotDirectory(error);
|
|
34
|
+
else if (error instanceof Deno.errors.Busy) readJsonFileError = new ReadJsonFileErrorBusy(error);
|
|
35
|
+
if (readJsonFileError === void 0) readJsonFileError = new ReadJsonFileError(error);
|
|
36
|
+
return _duplojs_lang_either.left("file-system-read-json-file-error", readJsonFileError);
|
|
24
37
|
}
|
|
25
38
|
const readJsonFile = require_implementor.implementFunction("readJsonFile", {
|
|
26
|
-
NODE: async (path) => {
|
|
27
|
-
return (await require_implementor.nodeFileSystem.value).readFile(path, { encoding: "utf-8" }).then(JSON.parse).then((value) => _duplojs_lang_either.right("file-system-read-json-file", value)).catch(handleNodeReadJsonFileError);
|
|
28
|
-
},
|
|
39
|
+
NODE: async (path) => require_implementor.nodeFileSystem.value.readFile(path, { encoding: "utf-8" }).then(JSON.parse).then((value) => _duplojs_lang_either.right("file-system-read-json-file", value)).catch(handleNodeReadJsonFileError),
|
|
29
40
|
DENO: (path) => Deno.readTextFile(path).then(JSON.parse).then((value) => _duplojs_lang_either.right("file-system-read-json-file", value)).catch(handleDenoReadJsonFileError),
|
|
30
41
|
BUN: (path) => Bun.file(path).text().then(JSON.parse).then((value) => _duplojs_lang_either.right("file-system-read-json-file", value)).catch(handleNodeReadJsonFileError)
|
|
31
42
|
});
|
|
@@ -1,11 +1,33 @@
|
|
|
1
|
-
import
|
|
2
|
-
import type * as DCommon from "@duplojs/lang/common";
|
|
1
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
3
2
|
import * as DEither from "@duplojs/lang/either";
|
|
4
3
|
import type * as DPath from "@duplojs/lang/path";
|
|
5
|
-
|
|
4
|
+
declare const ReadJsonFileErrorNotFound_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-json-file-not-found", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-json-file-not-found", unknown>>, unknown>;
|
|
5
|
+
declare class ReadJsonFileErrorNotFound extends ReadJsonFileErrorNotFound_base {
|
|
6
|
+
}
|
|
7
|
+
declare const ReadJsonFileErrorPermissionDenied_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-json-file-permission-denied", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-json-file-permission-denied", unknown>>, unknown>;
|
|
8
|
+
declare class ReadJsonFileErrorPermissionDenied extends ReadJsonFileErrorPermissionDenied_base {
|
|
9
|
+
}
|
|
10
|
+
declare const ReadJsonFileErrorIsDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-json-file-is-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-json-file-is-directory", unknown>>, unknown>;
|
|
11
|
+
declare class ReadJsonFileErrorIsDirectory extends ReadJsonFileErrorIsDirectory_base {
|
|
12
|
+
}
|
|
13
|
+
declare const ReadJsonFileErrorNotDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-json-file-not-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-json-file-not-directory", unknown>>, unknown>;
|
|
14
|
+
declare class ReadJsonFileErrorNotDirectory extends ReadJsonFileErrorNotDirectory_base {
|
|
15
|
+
}
|
|
16
|
+
declare const ReadJsonFileErrorTooManyOpenFiles_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-json-file-too-many-open-files", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-json-file-too-many-open-files", unknown>>, unknown>;
|
|
17
|
+
declare class ReadJsonFileErrorTooManyOpenFiles extends ReadJsonFileErrorTooManyOpenFiles_base {
|
|
18
|
+
}
|
|
19
|
+
declare const ReadJsonFileErrorBusy_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-json-file-busy", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-json-file-busy", unknown>>, unknown>;
|
|
20
|
+
declare class ReadJsonFileErrorBusy extends ReadJsonFileErrorBusy_base {
|
|
21
|
+
}
|
|
22
|
+
declare const ReadJsonFileError_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-json-file-error", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-json-file-error", unknown>>, unknown>;
|
|
23
|
+
declare class ReadJsonFileError extends ReadJsonFileError_base {
|
|
24
|
+
}
|
|
25
|
+
export type ReadJsonFileErrors = (ReadJsonFileErrorNotFound | ReadJsonFileErrorPermissionDenied | ReadJsonFileErrorIsDirectory | ReadJsonFileErrorNotDirectory | ReadJsonFileErrorTooManyOpenFiles | ReadJsonFileErrorBusy | ReadJsonFileError);
|
|
26
|
+
export type ReadJsonFileResult = (DEither.Right<"file-system-read-json-file", DCommon.Json> | DEither.Left<"file-system-read-json-file-error", ReadJsonFileErrors>);
|
|
6
27
|
declare module '../implementor' {
|
|
7
28
|
interface ServerFunction {
|
|
8
29
|
readJsonFile(path: string & DPath.Path): Promise<ReadJsonFileResult>;
|
|
9
30
|
}
|
|
10
31
|
}
|
|
11
32
|
export declare const readJsonFile: (path: string & DPath.Path) => Promise<ReadJsonFileResult>;
|
|
33
|
+
export {};
|
|
@@ -1,29 +1,39 @@
|
|
|
1
1
|
import { implementFunction, nodeFileSystem } from "../implementor.mjs";
|
|
2
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
2
3
|
import * as DEither from "@duplojs/lang/either";
|
|
3
4
|
//#region scripts/file/readJsonFile.ts
|
|
5
|
+
var ReadJsonFileErrorNotFound = class extends DCommon.DuploJSError.parentClass("file-system-read-json-file-not-found", Error) {};
|
|
6
|
+
var ReadJsonFileErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-read-json-file-permission-denied", Error) {};
|
|
7
|
+
var ReadJsonFileErrorIsDirectory = class extends DCommon.DuploJSError.parentClass("file-system-read-json-file-is-directory", Error) {};
|
|
8
|
+
var ReadJsonFileErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-read-json-file-not-directory", Error) {};
|
|
9
|
+
var ReadJsonFileErrorTooManyOpenFiles = class extends DCommon.DuploJSError.parentClass("file-system-read-json-file-too-many-open-files", Error) {};
|
|
10
|
+
var ReadJsonFileErrorBusy = class extends DCommon.DuploJSError.parentClass("file-system-read-json-file-busy", Error) {};
|
|
11
|
+
var ReadJsonFileError = class extends DCommon.DuploJSError.parentClass("file-system-read-json-file-error", Error) {};
|
|
4
12
|
function handleNodeReadJsonFileError(error) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
else if (error.code === "
|
|
9
|
-
else if (error.code === "
|
|
10
|
-
else if (error.code === "
|
|
11
|
-
else if (error.code === "
|
|
13
|
+
let readJsonFileError = void 0;
|
|
14
|
+
if ("code" in error) {
|
|
15
|
+
if (error.code === "ENOENT") readJsonFileError = new ReadJsonFileErrorNotFound(error);
|
|
16
|
+
else if (error.code === "EACCES" || error.code === "EPERM") readJsonFileError = new ReadJsonFileErrorPermissionDenied(error);
|
|
17
|
+
else if (error.code === "EISDIR") readJsonFileError = new ReadJsonFileErrorIsDirectory(error);
|
|
18
|
+
else if (error.code === "ENOTDIR") readJsonFileError = new ReadJsonFileErrorNotDirectory(error);
|
|
19
|
+
else if (error.code === "EMFILE" || error.code === "ENFILE") readJsonFileError = new ReadJsonFileErrorTooManyOpenFiles(error);
|
|
20
|
+
else if (error.code === "EBUSY") readJsonFileError = new ReadJsonFileErrorBusy(error);
|
|
12
21
|
}
|
|
13
|
-
|
|
22
|
+
if (readJsonFileError === void 0) readJsonFileError = new ReadJsonFileError(error);
|
|
23
|
+
return DEither.left("file-system-read-json-file-error", readJsonFileError);
|
|
14
24
|
}
|
|
15
25
|
function handleDenoReadJsonFileError(error) {
|
|
16
|
-
|
|
17
|
-
if (error instanceof Deno.errors.
|
|
18
|
-
if (error instanceof Deno.errors.
|
|
19
|
-
if (error instanceof Deno.errors.
|
|
20
|
-
if (error instanceof Deno.errors.
|
|
21
|
-
|
|
26
|
+
let readJsonFileError = void 0;
|
|
27
|
+
if (error instanceof Deno.errors.NotFound) readJsonFileError = new ReadJsonFileErrorNotFound(error);
|
|
28
|
+
else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) readJsonFileError = new ReadJsonFileErrorPermissionDenied(error);
|
|
29
|
+
else if (error instanceof Deno.errors.IsADirectory) readJsonFileError = new ReadJsonFileErrorIsDirectory(error);
|
|
30
|
+
else if (error instanceof Deno.errors.NotADirectory) readJsonFileError = new ReadJsonFileErrorNotDirectory(error);
|
|
31
|
+
else if (error instanceof Deno.errors.Busy) readJsonFileError = new ReadJsonFileErrorBusy(error);
|
|
32
|
+
if (readJsonFileError === void 0) readJsonFileError = new ReadJsonFileError(error);
|
|
33
|
+
return DEither.left("file-system-read-json-file-error", readJsonFileError);
|
|
22
34
|
}
|
|
23
35
|
const readJsonFile = implementFunction("readJsonFile", {
|
|
24
|
-
NODE: async (path) => {
|
|
25
|
-
return (await nodeFileSystem.value).readFile(path, { encoding: "utf-8" }).then(JSON.parse).then((value) => DEither.right("file-system-read-json-file", value)).catch(handleNodeReadJsonFileError);
|
|
26
|
-
},
|
|
36
|
+
NODE: async (path) => nodeFileSystem.value.readFile(path, { encoding: "utf-8" }).then(JSON.parse).then((value) => DEither.right("file-system-read-json-file", value)).catch(handleNodeReadJsonFileError),
|
|
27
37
|
DENO: (path) => Deno.readTextFile(path).then(JSON.parse).then((value) => DEither.right("file-system-read-json-file", value)).catch(handleDenoReadJsonFileError),
|
|
28
38
|
BUN: (path) => Bun.file(path).text().then(JSON.parse).then((value) => DEither.right("file-system-read-json-file", value)).catch(handleNodeReadJsonFileError)
|
|
29
39
|
});
|