@duplojs/server 0.0.0-stage → 0.1.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -2
- package/dist/_virtual/_rolldown/runtime.cjs +33 -0
- package/dist/_virtual/_rolldown/runtime.mjs +17 -0
- package/dist/command/argument.cjs +27 -0
- package/dist/command/argument.d.ts +18 -0
- package/dist/command/argument.mjs +24 -0
- package/dist/command/create.cjs +102 -0
- package/dist/command/create.d.ts +47 -0
- package/dist/command/create.mjs +96 -0
- package/dist/command/error.cjs +206 -0
- package/dist/command/error.d.ts +61 -0
- package/dist/command/error.mjs +193 -0
- package/dist/command/exec.cjs +19 -0
- package/dist/command/exec.d.ts +14 -0
- package/dist/command/exec.mjs +17 -0
- package/dist/command/execOptions.cjs +41 -0
- package/dist/command/execOptions.d.ts +14 -0
- package/dist/command/execOptions.mjs +37 -0
- package/dist/command/help.cjs +250 -0
- package/dist/command/help.d.ts +10 -0
- package/dist/command/help.mjs +237 -0
- package/dist/command/index.cjs +82 -0
- package/dist/command/index.d.ts +8 -0
- package/dist/command/index.mjs +47 -0
- package/dist/command/kind.cjs +7 -0
- package/dist/command/kind.d.ts +2 -0
- package/dist/command/kind.mjs +5 -0
- package/dist/command/options/base.cjs +76 -0
- package/dist/command/options/base.d.ts +30 -0
- package/dist/command/options/base.mjs +69 -0
- package/dist/command/options/defaults/array.cjs +35 -0
- package/dist/command/options/defaults/array.d.ts +26 -0
- package/dist/command/options/defaults/array.mjs +29 -0
- package/dist/command/options/defaults/boolean.cjs +28 -0
- package/dist/command/options/defaults/boolean.d.ts +14 -0
- package/dist/command/options/defaults/boolean.mjs +25 -0
- package/dist/command/options/defaults/index.d.ts +3 -0
- package/dist/command/options/defaults/simple.cjs +25 -0
- package/dist/command/options/defaults/simple.d.ts +18 -0
- package/dist/command/options/defaults/simple.mjs +22 -0
- package/dist/command/options/identifier.cjs +7 -0
- package/dist/command/options/identifier.d.ts +4 -0
- package/dist/command/options/identifier.mjs +5 -0
- package/dist/command/options/index.d.ts +4 -0
- package/dist/command/options/types/index.d.ts +1 -0
- package/dist/command/options/types/options.d.ts +9 -0
- package/dist/command/types/eligibleType.d.ts +4 -0
- package/dist/command/types/forbiddenDuplicateName.d.ts +11 -0
- package/dist/command/types/forbiddenInvalidIdentifier.d.ts +6 -0
- package/dist/command/types/index.d.ts +3 -0
- package/dist/common/environmentVariable/expandEnvironmentVariables.cjs +27 -0
- package/dist/common/environmentVariable/expandEnvironmentVariables.d.ts +2 -0
- package/dist/common/environmentVariable/expandEnvironmentVariables.mjs +22 -0
- package/dist/common/environmentVariable/index.cjs +47 -0
- package/dist/common/environmentVariable/index.d.ts +16 -0
- package/dist/common/environmentVariable/index.mjs +41 -0
- package/dist/common/environmentVariable/overrideEnvironmentVariables.cjs +13 -0
- package/dist/common/environmentVariable/overrideEnvironmentVariables.d.ts +3 -0
- package/dist/common/environmentVariable/overrideEnvironmentVariables.mjs +9 -0
- package/dist/common/environmentVariable/parseEnvironmentFiles.cjs +32 -0
- package/dist/common/environmentVariable/parseEnvironmentFiles.d.ts +5 -0
- package/dist/common/environmentVariable/parseEnvironmentFiles.mjs +26 -0
- package/dist/common/environmentVariableOrThrow.cjs +23 -0
- package/dist/common/environmentVariableOrThrow.d.ts +12 -0
- package/dist/common/environmentVariableOrThrow.mjs +19 -0
- package/dist/common/exitProcess.cjs +7 -0
- package/dist/common/exitProcess.d.ts +6 -0
- package/dist/common/exitProcess.mjs +8 -0
- package/dist/common/getCurrentWorkDirectory.cjs +15 -0
- package/dist/common/getCurrentWorkDirectory.d.ts +8 -0
- package/dist/common/getCurrentWorkDirectory.mjs +11 -0
- package/dist/common/getCurrentWorkDirectoryOrThrow.cjs +25 -0
- package/dist/common/getCurrentWorkDirectoryOrThrow.d.ts +8 -0
- package/dist/common/getCurrentWorkDirectoryOrThrow.mjs +20 -0
- package/dist/common/getProcessArguments.cjs +18 -0
- package/dist/common/getProcessArguments.d.ts +6 -0
- package/dist/common/getProcessArguments.mjs +18 -0
- package/dist/common/index.cjs +44 -0
- package/dist/common/index.d.ts +9 -0
- package/dist/common/index.mjs +27 -0
- 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/common/setCurrentWorkingDirectory.cjs +11 -0
- package/dist/common/setCurrentWorkingDirectory.d.ts +8 -0
- package/dist/common/setCurrentWorkingDirectory.mjs +9 -0
- package/dist/common/setCurrentWorkingDirectoryOrThrow.cjs +23 -0
- package/dist/common/setCurrentWorkingDirectoryOrThrow.d.ts +8 -0
- package/dist/common/setCurrentWorkingDirectoryOrThrow.mjs +18 -0
- package/dist/dataStructure/common/codec/defaults/index.d.ts +2 -0
- package/dist/dataStructure/common/codec/defaults/json.cjs +25 -0
- package/dist/dataStructure/common/codec/defaults/json.d.ts +9 -0
- package/dist/dataStructure/common/codec/defaults/json.mjs +22 -0
- package/dist/dataStructure/common/codec/defaults/string.cjs +25 -0
- package/dist/dataStructure/common/codec/defaults/string.d.ts +13 -0
- package/dist/dataStructure/common/codec/defaults/string.mjs +22 -0
- package/dist/dataStructure/common/codec/index.d.ts +1 -0
- package/dist/dataStructure/common/error/defaultInterpreter.cjs +29 -0
- package/dist/dataStructure/common/error/defaultInterpreter.d.ts +69 -0
- package/dist/dataStructure/common/error/defaultInterpreter.mjs +26 -0
- package/dist/dataStructure/common/error/index.d.ts +1 -0
- package/dist/dataStructure/common/index.d.ts +2 -0
- package/dist/dataStructure/constraint/fileExist.cjs +19 -0
- package/dist/dataStructure/constraint/fileExist.d.ts +10 -0
- package/dist/dataStructure/constraint/fileExist.mjs +15 -0
- 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 +5 -0
- package/dist/dataStructure/constraint/mimeType.cjs +18 -0
- package/dist/dataStructure/constraint/mimeType.d.ts +11 -0
- package/dist/dataStructure/constraint/mimeType.mjs +14 -0
- package/dist/dataStructure/constraint/size.cjs +29 -0
- package/dist/dataStructure/constraint/size.d.ts +16 -0
- package/dist/dataStructure/constraint/size.mjs +24 -0
- package/dist/dataStructure/constraint/types/constraints.d.ts +12 -0
- package/dist/dataStructure/constraint/types/index.d.ts +1 -0
- package/dist/dataStructure/fundamentalType/file.cjs +11 -0
- package/dist/dataStructure/fundamentalType/file.d.ts +8 -0
- package/dist/dataStructure/fundamentalType/file.mjs +8 -0
- 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 +3 -0
- package/dist/dataStructure/fundamentalType/types/fundamentalTypes.d.ts +8 -0
- package/dist/dataStructure/fundamentalType/types/index.d.ts +1 -0
- package/dist/dataStructure/helper/file.cjs +10 -0
- package/dist/dataStructure/helper/file.d.ts +3 -0
- package/dist/dataStructure/helper/file.mjs +8 -0
- 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 +6 -0
- package/dist/dataStructure/helper/mimeType.cjs +7 -0
- package/dist/dataStructure/helper/mimeType.d.ts +2 -0
- package/dist/dataStructure/helper/mimeType.mjs +7 -0
- package/dist/dataStructure/helper/size.cjs +7 -0
- package/dist/dataStructure/helper/size.d.ts +2 -0
- package/dist/dataStructure/helper/size.mjs +7 -0
- package/dist/dataStructure/index.cjs +83 -0
- package/dist/dataStructure/index.d.ts +6 -0
- package/dist/dataStructure/index.mjs +51 -0
- package/dist/dataStructure/kind.cjs +7 -0
- package/dist/dataStructure/kind.d.ts +2 -0
- package/dist/dataStructure/kind.mjs +5 -0
- package/dist/dataStructure/type/file.cjs +14 -0
- package/dist/dataStructure/type/file.d.ts +11 -0
- package/dist/dataStructure/type/file.mjs +11 -0
- 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 +3 -0
- package/dist/dataStructure/type/types/index.d.ts +1 -0
- package/dist/dataStructure/type/types/types.d.ts +8 -0
- package/dist/file/appendFile.cjs +67 -0
- package/dist/file/appendFile.d.ts +43 -0
- package/dist/file/appendFile.mjs +54 -0
- package/dist/file/appendTextFile.cjs +67 -0
- package/dist/file/appendTextFile.d.ts +43 -0
- package/dist/file/appendTextFile.mjs +54 -0
- package/dist/file/copy.cjs +53 -0
- package/dist/file/copy.d.ts +43 -0
- package/dist/file/copy.mjs +40 -0
- package/dist/file/createEntryInterface.cjs +19 -0
- package/dist/file/createEntryInterface.d.ts +3 -0
- package/dist/file/createEntryInterface.mjs +15 -0
- package/dist/file/ensureDirectory.cjs +52 -0
- package/dist/file/ensureDirectory.d.ts +36 -0
- package/dist/file/ensureDirectory.mjs +41 -0
- package/dist/file/ensureFile.cjs +60 -0
- package/dist/file/ensureFile.d.ts +39 -0
- package/dist/file/ensureFile.mjs +48 -0
- package/dist/file/exists.cjs +43 -0
- package/dist/file/exists.d.ts +27 -0
- package/dist/file/exists.mjs +35 -0
- package/dist/file/fileInterface.cjs +76 -0
- package/dist/file/fileInterface.d.ts +31 -0
- package/dist/file/fileInterface.mjs +70 -0
- package/dist/file/folderInterface.cjs +76 -0
- package/dist/file/folderInterface.d.ts +33 -0
- package/dist/file/folderInterface.mjs +70 -0
- package/dist/file/index.cjs +634 -0
- package/dist/file/index.d.ts +35 -0
- package/dist/file/index.mjs +335 -0
- package/dist/file/link.cjs +70 -0
- package/dist/file/link.d.ts +46 -0
- package/dist/file/link.mjs +56 -0
- package/dist/file/linkStat.cjs +98 -0
- package/dist/file/linkStat.d.ts +31 -0
- package/dist/file/linkStat.mjs +88 -0
- package/dist/file/makeDirectory.cjs +60 -0
- package/dist/file/makeDirectory.d.ts +45 -0
- package/dist/file/makeDirectory.mjs +47 -0
- package/dist/file/makeTemporaryDirectory.cjs +48 -0
- package/dist/file/makeTemporaryDirectory.d.ts +32 -0
- package/dist/file/makeTemporaryDirectory.mjs +38 -0
- package/dist/file/makeTemporaryFile.cjs +62 -0
- package/dist/file/makeTemporaryFile.d.ts +36 -0
- package/dist/file/makeTemporaryFile.mjs +50 -0
- package/dist/file/move.cjs +71 -0
- package/dist/file/move.d.ts +46 -0
- package/dist/file/move.mjs +57 -0
- package/dist/file/readDirectory.cjs +44 -0
- package/dist/file/readDirectory.d.ts +35 -0
- package/dist/file/readDirectory.mjs +33 -0
- package/dist/file/readFile.cjs +51 -0
- package/dist/file/readFile.d.ts +33 -0
- package/dist/file/readFile.mjs +41 -0
- package/dist/file/readJsonFile.cjs +51 -0
- package/dist/file/readJsonFile.d.ts +33 -0
- package/dist/file/readJsonFile.mjs +41 -0
- package/dist/file/readLink.cjs +46 -0
- package/dist/file/readLink.d.ts +30 -0
- package/dist/file/readLink.mjs +37 -0
- package/dist/file/readTextFile.cjs +51 -0
- package/dist/file/readTextFile.d.ts +33 -0
- package/dist/file/readTextFile.mjs +41 -0
- package/dist/file/realPath.cjs +42 -0
- package/dist/file/realPath.d.ts +27 -0
- package/dist/file/realPath.mjs +34 -0
- package/dist/file/relocate.cjs +83 -0
- package/dist/file/relocate.d.ts +46 -0
- package/dist/file/relocate.mjs +68 -0
- package/dist/file/remove.cjs +60 -0
- package/dist/file/remove.d.ts +42 -0
- package/dist/file/remove.mjs +48 -0
- package/dist/file/rename.cjs +83 -0
- package/dist/file/rename.d.ts +46 -0
- package/dist/file/rename.mjs +68 -0
- package/dist/file/setMode.cjs +65 -0
- package/dist/file/setMode.d.ts +45 -0
- package/dist/file/setMode.mjs +56 -0
- package/dist/file/setOwner.cjs +53 -0
- package/dist/file/setOwner.d.ts +35 -0
- package/dist/file/setOwner.mjs +44 -0
- package/dist/file/setTime.cjs +55 -0
- package/dist/file/setTime.d.ts +36 -0
- package/dist/file/setTime.mjs +45 -0
- package/dist/file/stat.cjs +99 -0
- package/dist/file/stat.d.ts +62 -0
- package/dist/file/stat.mjs +89 -0
- package/dist/file/symlink.cjs +64 -0
- package/dist/file/symlink.d.ts +48 -0
- package/dist/file/symlink.mjs +52 -0
- package/dist/file/truncate.cjs +60 -0
- package/dist/file/truncate.d.ts +42 -0
- package/dist/file/truncate.mjs +47 -0
- package/dist/file/unknownEntryInterface.cjs +40 -0
- package/dist/file/unknownEntryInterface.d.ts +17 -0
- package/dist/file/unknownEntryInterface.mjs +35 -0
- package/dist/file/walkDirectory.cjs +57 -0
- package/dist/file/walkDirectory.d.ts +37 -0
- package/dist/file/walkDirectory.mjs +45 -0
- package/dist/file/writeFile.cjs +68 -0
- package/dist/file/writeFile.d.ts +43 -0
- package/dist/file/writeFile.mjs +55 -0
- package/dist/file/writeJsonFile.cjs +77 -0
- package/dist/file/writeJsonFile.d.ts +46 -0
- package/dist/file/writeJsonFile.mjs +64 -0
- package/dist/file/writeTextFile.cjs +68 -0
- package/dist/file/writeTextFile.d.ts +43 -0
- package/dist/file/writeTextFile.mjs +55 -0
- package/dist/implementor.cjs +67 -0
- package/dist/implementor.d.ts +35 -0
- package/dist/implementor.mjs +55 -0
- package/dist/index.cjs +76 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.mjs +15 -0
- package/dist/kind.cjs +7 -0
- package/dist/kind.d.ts +2 -0
- package/dist/kind.mjs +5 -0
- package/dist/override.d.ts +8 -0
- package/package.json +81 -3
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
|
|
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);
|
|
5
|
+
let _duplojs_lang_either = require("@duplojs/lang/either");
|
|
6
|
+
_duplojs_lang_either = require_runtime.__toESM(_duplojs_lang_either, 1);
|
|
7
|
+
let _duplojs_lang_chrono = require("@duplojs/lang/chrono");
|
|
8
|
+
_duplojs_lang_chrono = require_runtime.__toESM(_duplojs_lang_chrono, 1);
|
|
9
|
+
//#region scripts/file/linkStat.ts
|
|
10
|
+
var LinkStatErrorNotFound = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-link-stat-not-found", Error) {};
|
|
11
|
+
var LinkStatErrorPermissionDenied = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-link-stat-permission-denied", Error) {};
|
|
12
|
+
var LinkStatErrorNotDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-link-stat-not-directory", Error) {};
|
|
13
|
+
var LinkStatErrorTooManyOpenFiles = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-link-stat-too-many-open-files", Error) {};
|
|
14
|
+
var LinkStatErrorBusy = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-link-stat-busy", Error) {};
|
|
15
|
+
var LinkStatError = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-link-stat-error", Error) {};
|
|
16
|
+
function handleNodeLinkStatError(error) {
|
|
17
|
+
let linkStatError = void 0;
|
|
18
|
+
if ("code" in error) {
|
|
19
|
+
if (error.code === "ENOENT") linkStatError = new LinkStatErrorNotFound(error);
|
|
20
|
+
else if (error.code === "EACCES" || error.code === "EPERM") linkStatError = new LinkStatErrorPermissionDenied(error);
|
|
21
|
+
else if (error.code === "ENOTDIR") linkStatError = new LinkStatErrorNotDirectory(error);
|
|
22
|
+
else if (error.code === "EMFILE" || error.code === "ENFILE") linkStatError = new LinkStatErrorTooManyOpenFiles(error);
|
|
23
|
+
else if (error.code === "EBUSY") linkStatError = new LinkStatErrorBusy(error);
|
|
24
|
+
}
|
|
25
|
+
if (linkStatError === void 0) linkStatError = new LinkStatError(error);
|
|
26
|
+
return _duplojs_lang_either.left("file-system-link-stat-error", linkStatError);
|
|
27
|
+
}
|
|
28
|
+
function handleDenoLinkStatError(error) {
|
|
29
|
+
let linkStatError = void 0;
|
|
30
|
+
if (error instanceof Deno.errors.NotFound) linkStatError = new LinkStatErrorNotFound(error);
|
|
31
|
+
else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) linkStatError = new LinkStatErrorPermissionDenied(error);
|
|
32
|
+
else if (error instanceof Deno.errors.NotADirectory) linkStatError = new LinkStatErrorNotDirectory(error);
|
|
33
|
+
else if (error instanceof Deno.errors.Busy) linkStatError = new LinkStatErrorBusy(error);
|
|
34
|
+
if (linkStatError === void 0) linkStatError = new LinkStatError(error);
|
|
35
|
+
return _duplojs_lang_either.left("file-system-link-stat-error", linkStatError);
|
|
36
|
+
}
|
|
37
|
+
function createStatInfoWithFsSource(source) {
|
|
38
|
+
return {
|
|
39
|
+
isFile: source.isFile(),
|
|
40
|
+
isDirectory: source.isDirectory(),
|
|
41
|
+
isSymlink: source.isSymbolicLink(),
|
|
42
|
+
sizeBytes: source.size,
|
|
43
|
+
modifiedAt: _duplojs_lang_chrono.isSafeTimestamp(source.mtime.getTime()) ? _duplojs_lang_chrono.createDateOrThrow(source.mtime) : null,
|
|
44
|
+
accessedAt: _duplojs_lang_chrono.isSafeTimestamp(source.atime.getTime()) ? _duplojs_lang_chrono.createDateOrThrow(source.atime) : null,
|
|
45
|
+
createdAt: _duplojs_lang_chrono.isSafeTimestamp(source.birthtime.getTime()) ? _duplojs_lang_chrono.createDateOrThrow(source.birthtime) : null,
|
|
46
|
+
changedAt: _duplojs_lang_chrono.isSafeTimestamp(source.ctime.getTime()) ? _duplojs_lang_chrono.createDateOrThrow(source.ctime) : null,
|
|
47
|
+
deviceId: source.dev,
|
|
48
|
+
inode: source.ino,
|
|
49
|
+
permissionsMode: source.mode,
|
|
50
|
+
hardLinkCount: source.nlink,
|
|
51
|
+
ownerUserId: source.uid,
|
|
52
|
+
ownerGroupId: source.gid,
|
|
53
|
+
specialDeviceId: source.rdev,
|
|
54
|
+
ioBlockSize: source.blksize,
|
|
55
|
+
allocatedBlockCount: source.blocks,
|
|
56
|
+
isBlockDevice: source.isBlockDevice(),
|
|
57
|
+
isCharacterDevice: source.isCharacterDevice(),
|
|
58
|
+
isFifo: source.isFIFO(),
|
|
59
|
+
isSocket: source.isSocket()
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function createStatInfoWithDeno(source) {
|
|
63
|
+
return {
|
|
64
|
+
isFile: source.isFile,
|
|
65
|
+
isDirectory: source.isDirectory,
|
|
66
|
+
isSymlink: source.isSymlink,
|
|
67
|
+
sizeBytes: source.size,
|
|
68
|
+
modifiedAt: source.mtime && _duplojs_lang_chrono.isSafeTimestamp(source.mtime.getTime()) ? _duplojs_lang_chrono.createDateOrThrow(source.mtime) : null,
|
|
69
|
+
accessedAt: source.atime && _duplojs_lang_chrono.isSafeTimestamp(source.atime.getTime()) ? _duplojs_lang_chrono.createDateOrThrow(source.atime) : null,
|
|
70
|
+
createdAt: source.birthtime && _duplojs_lang_chrono.isSafeTimestamp(source.birthtime.getTime()) ? _duplojs_lang_chrono.createDateOrThrow(source.birthtime) : null,
|
|
71
|
+
changedAt: source.ctime && _duplojs_lang_chrono.isSafeTimestamp(source.ctime.getTime()) ? _duplojs_lang_chrono.createDateOrThrow(source.ctime) : null,
|
|
72
|
+
deviceId: source.dev,
|
|
73
|
+
inode: source.ino,
|
|
74
|
+
permissionsMode: source.mode,
|
|
75
|
+
hardLinkCount: source.nlink,
|
|
76
|
+
ownerUserId: source.uid,
|
|
77
|
+
ownerGroupId: source.gid,
|
|
78
|
+
specialDeviceId: source.rdev,
|
|
79
|
+
ioBlockSize: source.blksize,
|
|
80
|
+
allocatedBlockCount: source.blocks,
|
|
81
|
+
isBlockDevice: source.isBlockDevice,
|
|
82
|
+
isCharacterDevice: source.isCharDevice,
|
|
83
|
+
isFifo: source.isFifo,
|
|
84
|
+
isSocket: source.isSocket
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
const linkStat = require_implementor.implementFunction("linkStat", {
|
|
88
|
+
NODE: async (path) => require_implementor.nodeFileSystem.value.lstat(path).then(_duplojs_lang_common.innerPipe(createStatInfoWithFsSource, (value) => _duplojs_lang_either.right("file-system-link-stat", value))).catch(handleNodeLinkStatError),
|
|
89
|
+
DENO: (path) => Deno.lstat(path).then(_duplojs_lang_common.innerPipe(createStatInfoWithDeno, (value) => _duplojs_lang_either.right("file-system-link-stat", value))).catch(handleDenoLinkStatError)
|
|
90
|
+
});
|
|
91
|
+
//#endregion
|
|
92
|
+
exports.LinkStatError = LinkStatError;
|
|
93
|
+
exports.LinkStatErrorBusy = LinkStatErrorBusy;
|
|
94
|
+
exports.LinkStatErrorNotDirectory = LinkStatErrorNotDirectory;
|
|
95
|
+
exports.LinkStatErrorNotFound = LinkStatErrorNotFound;
|
|
96
|
+
exports.LinkStatErrorPermissionDenied = LinkStatErrorPermissionDenied;
|
|
97
|
+
exports.LinkStatErrorTooManyOpenFiles = LinkStatErrorTooManyOpenFiles;
|
|
98
|
+
exports.linkStat = linkStat;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { StatInfo } from './stat';
|
|
2
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
3
|
+
import type * as DPath from "@duplojs/lang/path";
|
|
4
|
+
import * as DEither from "@duplojs/lang/either";
|
|
5
|
+
declare const LinkStatErrorNotFound_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-link-stat-not-found", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-link-stat-not-found", unknown>>, unknown>;
|
|
6
|
+
export declare class LinkStatErrorNotFound extends LinkStatErrorNotFound_base {
|
|
7
|
+
}
|
|
8
|
+
declare const LinkStatErrorPermissionDenied_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-link-stat-permission-denied", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-link-stat-permission-denied", unknown>>, unknown>;
|
|
9
|
+
export declare class LinkStatErrorPermissionDenied extends LinkStatErrorPermissionDenied_base {
|
|
10
|
+
}
|
|
11
|
+
declare const LinkStatErrorNotDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-link-stat-not-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-link-stat-not-directory", unknown>>, unknown>;
|
|
12
|
+
export declare class LinkStatErrorNotDirectory extends LinkStatErrorNotDirectory_base {
|
|
13
|
+
}
|
|
14
|
+
declare const LinkStatErrorTooManyOpenFiles_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-link-stat-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-link-stat-too-many-open-files", unknown>>, unknown>;
|
|
15
|
+
export declare class LinkStatErrorTooManyOpenFiles extends LinkStatErrorTooManyOpenFiles_base {
|
|
16
|
+
}
|
|
17
|
+
declare const LinkStatErrorBusy_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-link-stat-busy", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-link-stat-busy", unknown>>, unknown>;
|
|
18
|
+
export declare class LinkStatErrorBusy extends LinkStatErrorBusy_base {
|
|
19
|
+
}
|
|
20
|
+
declare const LinkStatError_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-link-stat-error", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-link-stat-error", unknown>>, unknown>;
|
|
21
|
+
export declare class LinkStatError extends LinkStatError_base {
|
|
22
|
+
}
|
|
23
|
+
export type LinkStatErrors = (LinkStatErrorNotFound | LinkStatErrorPermissionDenied | LinkStatErrorNotDirectory | LinkStatErrorTooManyOpenFiles | LinkStatErrorBusy | LinkStatError);
|
|
24
|
+
export type LinkStatResult = (DEither.Right<"file-system-link-stat", StatInfo> | DEither.Left<"file-system-link-stat-error", LinkStatErrors>);
|
|
25
|
+
declare module '../implementor' {
|
|
26
|
+
interface ServerFunction {
|
|
27
|
+
linkStat(path: DPath.AnyPath): Promise<LinkStatResult>;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export declare const linkStat: (path: DPath.AnyPath) => Promise<LinkStatResult>;
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { implementFunction, nodeFileSystem } from "../implementor.mjs";
|
|
2
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
3
|
+
import * as DEither from "@duplojs/lang/either";
|
|
4
|
+
import * as DChrono from "@duplojs/lang/chrono";
|
|
5
|
+
//#region scripts/file/linkStat.ts
|
|
6
|
+
var LinkStatErrorNotFound = class extends DCommon.DuploJSError.parentClass("file-system-link-stat-not-found", Error) {};
|
|
7
|
+
var LinkStatErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-link-stat-permission-denied", Error) {};
|
|
8
|
+
var LinkStatErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-link-stat-not-directory", Error) {};
|
|
9
|
+
var LinkStatErrorTooManyOpenFiles = class extends DCommon.DuploJSError.parentClass("file-system-link-stat-too-many-open-files", Error) {};
|
|
10
|
+
var LinkStatErrorBusy = class extends DCommon.DuploJSError.parentClass("file-system-link-stat-busy", Error) {};
|
|
11
|
+
var LinkStatError = class extends DCommon.DuploJSError.parentClass("file-system-link-stat-error", Error) {};
|
|
12
|
+
function handleNodeLinkStatError(error) {
|
|
13
|
+
let linkStatError = void 0;
|
|
14
|
+
if ("code" in error) {
|
|
15
|
+
if (error.code === "ENOENT") linkStatError = new LinkStatErrorNotFound(error);
|
|
16
|
+
else if (error.code === "EACCES" || error.code === "EPERM") linkStatError = new LinkStatErrorPermissionDenied(error);
|
|
17
|
+
else if (error.code === "ENOTDIR") linkStatError = new LinkStatErrorNotDirectory(error);
|
|
18
|
+
else if (error.code === "EMFILE" || error.code === "ENFILE") linkStatError = new LinkStatErrorTooManyOpenFiles(error);
|
|
19
|
+
else if (error.code === "EBUSY") linkStatError = new LinkStatErrorBusy(error);
|
|
20
|
+
}
|
|
21
|
+
if (linkStatError === void 0) linkStatError = new LinkStatError(error);
|
|
22
|
+
return DEither.left("file-system-link-stat-error", linkStatError);
|
|
23
|
+
}
|
|
24
|
+
function handleDenoLinkStatError(error) {
|
|
25
|
+
let linkStatError = void 0;
|
|
26
|
+
if (error instanceof Deno.errors.NotFound) linkStatError = new LinkStatErrorNotFound(error);
|
|
27
|
+
else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) linkStatError = new LinkStatErrorPermissionDenied(error);
|
|
28
|
+
else if (error instanceof Deno.errors.NotADirectory) linkStatError = new LinkStatErrorNotDirectory(error);
|
|
29
|
+
else if (error instanceof Deno.errors.Busy) linkStatError = new LinkStatErrorBusy(error);
|
|
30
|
+
if (linkStatError === void 0) linkStatError = new LinkStatError(error);
|
|
31
|
+
return DEither.left("file-system-link-stat-error", linkStatError);
|
|
32
|
+
}
|
|
33
|
+
function createStatInfoWithFsSource(source) {
|
|
34
|
+
return {
|
|
35
|
+
isFile: source.isFile(),
|
|
36
|
+
isDirectory: source.isDirectory(),
|
|
37
|
+
isSymlink: source.isSymbolicLink(),
|
|
38
|
+
sizeBytes: source.size,
|
|
39
|
+
modifiedAt: DChrono.isSafeTimestamp(source.mtime.getTime()) ? DChrono.createDateOrThrow(source.mtime) : null,
|
|
40
|
+
accessedAt: DChrono.isSafeTimestamp(source.atime.getTime()) ? DChrono.createDateOrThrow(source.atime) : null,
|
|
41
|
+
createdAt: DChrono.isSafeTimestamp(source.birthtime.getTime()) ? DChrono.createDateOrThrow(source.birthtime) : null,
|
|
42
|
+
changedAt: DChrono.isSafeTimestamp(source.ctime.getTime()) ? DChrono.createDateOrThrow(source.ctime) : null,
|
|
43
|
+
deviceId: source.dev,
|
|
44
|
+
inode: source.ino,
|
|
45
|
+
permissionsMode: source.mode,
|
|
46
|
+
hardLinkCount: source.nlink,
|
|
47
|
+
ownerUserId: source.uid,
|
|
48
|
+
ownerGroupId: source.gid,
|
|
49
|
+
specialDeviceId: source.rdev,
|
|
50
|
+
ioBlockSize: source.blksize,
|
|
51
|
+
allocatedBlockCount: source.blocks,
|
|
52
|
+
isBlockDevice: source.isBlockDevice(),
|
|
53
|
+
isCharacterDevice: source.isCharacterDevice(),
|
|
54
|
+
isFifo: source.isFIFO(),
|
|
55
|
+
isSocket: source.isSocket()
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function createStatInfoWithDeno(source) {
|
|
59
|
+
return {
|
|
60
|
+
isFile: source.isFile,
|
|
61
|
+
isDirectory: source.isDirectory,
|
|
62
|
+
isSymlink: source.isSymlink,
|
|
63
|
+
sizeBytes: source.size,
|
|
64
|
+
modifiedAt: source.mtime && DChrono.isSafeTimestamp(source.mtime.getTime()) ? DChrono.createDateOrThrow(source.mtime) : null,
|
|
65
|
+
accessedAt: source.atime && DChrono.isSafeTimestamp(source.atime.getTime()) ? DChrono.createDateOrThrow(source.atime) : null,
|
|
66
|
+
createdAt: source.birthtime && DChrono.isSafeTimestamp(source.birthtime.getTime()) ? DChrono.createDateOrThrow(source.birthtime) : null,
|
|
67
|
+
changedAt: source.ctime && DChrono.isSafeTimestamp(source.ctime.getTime()) ? DChrono.createDateOrThrow(source.ctime) : null,
|
|
68
|
+
deviceId: source.dev,
|
|
69
|
+
inode: source.ino,
|
|
70
|
+
permissionsMode: source.mode,
|
|
71
|
+
hardLinkCount: source.nlink,
|
|
72
|
+
ownerUserId: source.uid,
|
|
73
|
+
ownerGroupId: source.gid,
|
|
74
|
+
specialDeviceId: source.rdev,
|
|
75
|
+
ioBlockSize: source.blksize,
|
|
76
|
+
allocatedBlockCount: source.blocks,
|
|
77
|
+
isBlockDevice: source.isBlockDevice,
|
|
78
|
+
isCharacterDevice: source.isCharDevice,
|
|
79
|
+
isFifo: source.isFifo,
|
|
80
|
+
isSocket: source.isSocket
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
const linkStat = implementFunction("linkStat", {
|
|
84
|
+
NODE: async (path) => nodeFileSystem.value.lstat(path).then(DCommon.innerPipe(createStatInfoWithFsSource, (value) => DEither.right("file-system-link-stat", value))).catch(handleNodeLinkStatError),
|
|
85
|
+
DENO: (path) => Deno.lstat(path).then(DCommon.innerPipe(createStatInfoWithDeno, (value) => DEither.right("file-system-link-stat", value))).catch(handleDenoLinkStatError)
|
|
86
|
+
});
|
|
87
|
+
//#endregion
|
|
88
|
+
export { LinkStatError, LinkStatErrorBusy, LinkStatErrorNotDirectory, LinkStatErrorNotFound, LinkStatErrorPermissionDenied, LinkStatErrorTooManyOpenFiles, linkStat };
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
|
|
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);
|
|
5
|
+
let _duplojs_lang_either = require("@duplojs/lang/either");
|
|
6
|
+
_duplojs_lang_either = require_runtime.__toESM(_duplojs_lang_either, 1);
|
|
7
|
+
//#region scripts/file/makeDirectory.ts
|
|
8
|
+
var MakeDirectoryErrorNotFound = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-directory-not-found", Error) {};
|
|
9
|
+
var MakeDirectoryErrorPermissionDenied = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-directory-permission-denied", Error) {};
|
|
10
|
+
var MakeDirectoryErrorAlreadyExists = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-directory-already-exists", Error) {};
|
|
11
|
+
var MakeDirectoryErrorNotDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-directory-not-directory", Error) {};
|
|
12
|
+
var MakeDirectoryErrorNoSpace = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-directory-no-space", Error) {};
|
|
13
|
+
var MakeDirectoryErrorReadOnly = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-directory-read-only", Error) {};
|
|
14
|
+
var MakeDirectoryErrorInvalidArgument = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-directory-invalid-argument", Error) {};
|
|
15
|
+
var MakeDirectoryErrorTooManyOpenFiles = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-directory-too-many-open-files", Error) {};
|
|
16
|
+
var MakeDirectoryErrorBusy = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-directory-busy", Error) {};
|
|
17
|
+
var MakeDirectoryError = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-directory-error", Error) {};
|
|
18
|
+
function handleNodeMakeDirectoryError(error) {
|
|
19
|
+
let makeDirectoryError = void 0;
|
|
20
|
+
if ("code" in error) {
|
|
21
|
+
if (error.code === "ENOENT") makeDirectoryError = new MakeDirectoryErrorNotFound(error);
|
|
22
|
+
else if (error.code === "EACCES" || error.code === "EPERM") makeDirectoryError = new MakeDirectoryErrorPermissionDenied(error);
|
|
23
|
+
else if (error.code === "EEXIST") makeDirectoryError = new MakeDirectoryErrorAlreadyExists(error);
|
|
24
|
+
else if (error.code === "ENOTDIR") makeDirectoryError = new MakeDirectoryErrorNotDirectory(error);
|
|
25
|
+
else if (error.code === "ENOSPC") makeDirectoryError = new MakeDirectoryErrorNoSpace(error);
|
|
26
|
+
else if (error.code === "EROFS") makeDirectoryError = new MakeDirectoryErrorReadOnly(error);
|
|
27
|
+
else if (error.code === "EINVAL") makeDirectoryError = new MakeDirectoryErrorInvalidArgument(error);
|
|
28
|
+
else if (error.code === "EMFILE" || error.code === "ENFILE") makeDirectoryError = new MakeDirectoryErrorTooManyOpenFiles(error);
|
|
29
|
+
else if (error.code === "EBUSY") makeDirectoryError = new MakeDirectoryErrorBusy(error);
|
|
30
|
+
}
|
|
31
|
+
if (makeDirectoryError === void 0) makeDirectoryError = new MakeDirectoryError(error);
|
|
32
|
+
return _duplojs_lang_either.left("file-system-make-directory-error", makeDirectoryError);
|
|
33
|
+
}
|
|
34
|
+
function handleDenoMakeDirectoryError(error) {
|
|
35
|
+
let makeDirectoryError = void 0;
|
|
36
|
+
if (error instanceof Deno.errors.NotFound) makeDirectoryError = new MakeDirectoryErrorNotFound(error);
|
|
37
|
+
else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) makeDirectoryError = new MakeDirectoryErrorPermissionDenied(error);
|
|
38
|
+
else if (error instanceof Deno.errors.AlreadyExists) makeDirectoryError = new MakeDirectoryErrorAlreadyExists(error);
|
|
39
|
+
else if (error instanceof Deno.errors.NotADirectory) makeDirectoryError = new MakeDirectoryErrorNotDirectory(error);
|
|
40
|
+
else if (error instanceof Deno.errors.InvalidData) makeDirectoryError = new MakeDirectoryErrorInvalidArgument(error);
|
|
41
|
+
else if (error instanceof Deno.errors.Busy) makeDirectoryError = new MakeDirectoryErrorBusy(error);
|
|
42
|
+
if (makeDirectoryError === void 0) makeDirectoryError = new MakeDirectoryError(error);
|
|
43
|
+
return _duplojs_lang_either.left("file-system-make-directory-error", makeDirectoryError);
|
|
44
|
+
}
|
|
45
|
+
const makeDirectory = require_implementor.implementFunction("makeDirectory", {
|
|
46
|
+
NODE: async (path, params) => require_implementor.nodeFileSystem.value.mkdir(path, { recursive: params?.recursive }).then(() => _duplojs_lang_either.right("file-system-make-directory")).catch(handleNodeMakeDirectoryError),
|
|
47
|
+
DENO: (path, params) => Deno.mkdir(path, { recursive: params?.recursive }).then(() => _duplojs_lang_either.right("file-system-make-directory")).catch(handleDenoMakeDirectoryError)
|
|
48
|
+
});
|
|
49
|
+
//#endregion
|
|
50
|
+
exports.MakeDirectoryError = MakeDirectoryError;
|
|
51
|
+
exports.MakeDirectoryErrorAlreadyExists = MakeDirectoryErrorAlreadyExists;
|
|
52
|
+
exports.MakeDirectoryErrorBusy = MakeDirectoryErrorBusy;
|
|
53
|
+
exports.MakeDirectoryErrorInvalidArgument = MakeDirectoryErrorInvalidArgument;
|
|
54
|
+
exports.MakeDirectoryErrorNoSpace = MakeDirectoryErrorNoSpace;
|
|
55
|
+
exports.MakeDirectoryErrorNotDirectory = MakeDirectoryErrorNotDirectory;
|
|
56
|
+
exports.MakeDirectoryErrorNotFound = MakeDirectoryErrorNotFound;
|
|
57
|
+
exports.MakeDirectoryErrorPermissionDenied = MakeDirectoryErrorPermissionDenied;
|
|
58
|
+
exports.MakeDirectoryErrorReadOnly = MakeDirectoryErrorReadOnly;
|
|
59
|
+
exports.MakeDirectoryErrorTooManyOpenFiles = MakeDirectoryErrorTooManyOpenFiles;
|
|
60
|
+
exports.makeDirectory = makeDirectory;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import * as DEither from "@duplojs/lang/either";
|
|
2
|
+
import type * as DPath from "@duplojs/lang/path";
|
|
3
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
4
|
+
interface MakeDirectoryParams {
|
|
5
|
+
recursive?: boolean;
|
|
6
|
+
}
|
|
7
|
+
declare const MakeDirectoryErrorNotFound_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-directory-not-found", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-make-directory-not-found", unknown>>, unknown>;
|
|
8
|
+
export declare class MakeDirectoryErrorNotFound extends MakeDirectoryErrorNotFound_base {
|
|
9
|
+
}
|
|
10
|
+
declare const MakeDirectoryErrorPermissionDenied_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-directory-permission-denied", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-make-directory-permission-denied", unknown>>, unknown>;
|
|
11
|
+
export declare class MakeDirectoryErrorPermissionDenied extends MakeDirectoryErrorPermissionDenied_base {
|
|
12
|
+
}
|
|
13
|
+
declare const MakeDirectoryErrorAlreadyExists_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-directory-already-exists", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-make-directory-already-exists", unknown>>, unknown>;
|
|
14
|
+
export declare class MakeDirectoryErrorAlreadyExists extends MakeDirectoryErrorAlreadyExists_base {
|
|
15
|
+
}
|
|
16
|
+
declare const MakeDirectoryErrorNotDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-directory-not-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-make-directory-not-directory", unknown>>, unknown>;
|
|
17
|
+
export declare class MakeDirectoryErrorNotDirectory extends MakeDirectoryErrorNotDirectory_base {
|
|
18
|
+
}
|
|
19
|
+
declare const MakeDirectoryErrorNoSpace_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-directory-no-space", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-make-directory-no-space", unknown>>, unknown>;
|
|
20
|
+
export declare class MakeDirectoryErrorNoSpace extends MakeDirectoryErrorNoSpace_base {
|
|
21
|
+
}
|
|
22
|
+
declare const MakeDirectoryErrorReadOnly_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-directory-read-only", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-make-directory-read-only", unknown>>, unknown>;
|
|
23
|
+
export declare class MakeDirectoryErrorReadOnly extends MakeDirectoryErrorReadOnly_base {
|
|
24
|
+
}
|
|
25
|
+
declare const MakeDirectoryErrorInvalidArgument_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-directory-invalid-argument", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-make-directory-invalid-argument", unknown>>, unknown>;
|
|
26
|
+
export declare class MakeDirectoryErrorInvalidArgument extends MakeDirectoryErrorInvalidArgument_base {
|
|
27
|
+
}
|
|
28
|
+
declare const MakeDirectoryErrorTooManyOpenFiles_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-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-make-directory-too-many-open-files", unknown>>, unknown>;
|
|
29
|
+
export declare class MakeDirectoryErrorTooManyOpenFiles extends MakeDirectoryErrorTooManyOpenFiles_base {
|
|
30
|
+
}
|
|
31
|
+
declare const MakeDirectoryErrorBusy_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-directory-busy", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-make-directory-busy", unknown>>, unknown>;
|
|
32
|
+
export declare class MakeDirectoryErrorBusy extends MakeDirectoryErrorBusy_base {
|
|
33
|
+
}
|
|
34
|
+
declare const MakeDirectoryError_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-directory-error", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-make-directory-error", unknown>>, unknown>;
|
|
35
|
+
export declare class MakeDirectoryError extends MakeDirectoryError_base {
|
|
36
|
+
}
|
|
37
|
+
export type MakeDirectoryErrors = (MakeDirectoryErrorNotFound | MakeDirectoryErrorPermissionDenied | MakeDirectoryErrorAlreadyExists | MakeDirectoryErrorNotDirectory | MakeDirectoryErrorNoSpace | MakeDirectoryErrorReadOnly | MakeDirectoryErrorInvalidArgument | MakeDirectoryErrorTooManyOpenFiles | MakeDirectoryErrorBusy | MakeDirectoryError);
|
|
38
|
+
export type MakeDirectoryResult = (DEither.Right<"file-system-make-directory", void> | DEither.Left<"file-system-make-directory-error", MakeDirectoryErrors>);
|
|
39
|
+
declare module '../implementor' {
|
|
40
|
+
interface ServerFunction {
|
|
41
|
+
makeDirectory(path: DPath.AnyPath, params?: MakeDirectoryParams): Promise<MakeDirectoryResult>;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export declare const makeDirectory: (path: DPath.AnyPath, params?: MakeDirectoryParams) => Promise<MakeDirectoryResult>;
|
|
45
|
+
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { implementFunction, nodeFileSystem } from "../implementor.mjs";
|
|
2
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
3
|
+
import * as DEither from "@duplojs/lang/either";
|
|
4
|
+
//#region scripts/file/makeDirectory.ts
|
|
5
|
+
var MakeDirectoryErrorNotFound = class extends DCommon.DuploJSError.parentClass("file-system-make-directory-not-found", Error) {};
|
|
6
|
+
var MakeDirectoryErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-make-directory-permission-denied", Error) {};
|
|
7
|
+
var MakeDirectoryErrorAlreadyExists = class extends DCommon.DuploJSError.parentClass("file-system-make-directory-already-exists", Error) {};
|
|
8
|
+
var MakeDirectoryErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-make-directory-not-directory", Error) {};
|
|
9
|
+
var MakeDirectoryErrorNoSpace = class extends DCommon.DuploJSError.parentClass("file-system-make-directory-no-space", Error) {};
|
|
10
|
+
var MakeDirectoryErrorReadOnly = class extends DCommon.DuploJSError.parentClass("file-system-make-directory-read-only", Error) {};
|
|
11
|
+
var MakeDirectoryErrorInvalidArgument = class extends DCommon.DuploJSError.parentClass("file-system-make-directory-invalid-argument", Error) {};
|
|
12
|
+
var MakeDirectoryErrorTooManyOpenFiles = class extends DCommon.DuploJSError.parentClass("file-system-make-directory-too-many-open-files", Error) {};
|
|
13
|
+
var MakeDirectoryErrorBusy = class extends DCommon.DuploJSError.parentClass("file-system-make-directory-busy", Error) {};
|
|
14
|
+
var MakeDirectoryError = class extends DCommon.DuploJSError.parentClass("file-system-make-directory-error", Error) {};
|
|
15
|
+
function handleNodeMakeDirectoryError(error) {
|
|
16
|
+
let makeDirectoryError = void 0;
|
|
17
|
+
if ("code" in error) {
|
|
18
|
+
if (error.code === "ENOENT") makeDirectoryError = new MakeDirectoryErrorNotFound(error);
|
|
19
|
+
else if (error.code === "EACCES" || error.code === "EPERM") makeDirectoryError = new MakeDirectoryErrorPermissionDenied(error);
|
|
20
|
+
else if (error.code === "EEXIST") makeDirectoryError = new MakeDirectoryErrorAlreadyExists(error);
|
|
21
|
+
else if (error.code === "ENOTDIR") makeDirectoryError = new MakeDirectoryErrorNotDirectory(error);
|
|
22
|
+
else if (error.code === "ENOSPC") makeDirectoryError = new MakeDirectoryErrorNoSpace(error);
|
|
23
|
+
else if (error.code === "EROFS") makeDirectoryError = new MakeDirectoryErrorReadOnly(error);
|
|
24
|
+
else if (error.code === "EINVAL") makeDirectoryError = new MakeDirectoryErrorInvalidArgument(error);
|
|
25
|
+
else if (error.code === "EMFILE" || error.code === "ENFILE") makeDirectoryError = new MakeDirectoryErrorTooManyOpenFiles(error);
|
|
26
|
+
else if (error.code === "EBUSY") makeDirectoryError = new MakeDirectoryErrorBusy(error);
|
|
27
|
+
}
|
|
28
|
+
if (makeDirectoryError === void 0) makeDirectoryError = new MakeDirectoryError(error);
|
|
29
|
+
return DEither.left("file-system-make-directory-error", makeDirectoryError);
|
|
30
|
+
}
|
|
31
|
+
function handleDenoMakeDirectoryError(error) {
|
|
32
|
+
let makeDirectoryError = void 0;
|
|
33
|
+
if (error instanceof Deno.errors.NotFound) makeDirectoryError = new MakeDirectoryErrorNotFound(error);
|
|
34
|
+
else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) makeDirectoryError = new MakeDirectoryErrorPermissionDenied(error);
|
|
35
|
+
else if (error instanceof Deno.errors.AlreadyExists) makeDirectoryError = new MakeDirectoryErrorAlreadyExists(error);
|
|
36
|
+
else if (error instanceof Deno.errors.NotADirectory) makeDirectoryError = new MakeDirectoryErrorNotDirectory(error);
|
|
37
|
+
else if (error instanceof Deno.errors.InvalidData) makeDirectoryError = new MakeDirectoryErrorInvalidArgument(error);
|
|
38
|
+
else if (error instanceof Deno.errors.Busy) makeDirectoryError = new MakeDirectoryErrorBusy(error);
|
|
39
|
+
if (makeDirectoryError === void 0) makeDirectoryError = new MakeDirectoryError(error);
|
|
40
|
+
return DEither.left("file-system-make-directory-error", makeDirectoryError);
|
|
41
|
+
}
|
|
42
|
+
const makeDirectory = implementFunction("makeDirectory", {
|
|
43
|
+
NODE: async (path, params) => nodeFileSystem.value.mkdir(path, { recursive: params?.recursive }).then(() => DEither.right("file-system-make-directory")).catch(handleNodeMakeDirectoryError),
|
|
44
|
+
DENO: (path, params) => Deno.mkdir(path, { recursive: params?.recursive }).then(() => DEither.right("file-system-make-directory")).catch(handleDenoMakeDirectoryError)
|
|
45
|
+
});
|
|
46
|
+
//#endregion
|
|
47
|
+
export { MakeDirectoryError, MakeDirectoryErrorAlreadyExists, MakeDirectoryErrorBusy, MakeDirectoryErrorInvalidArgument, MakeDirectoryErrorNoSpace, MakeDirectoryErrorNotDirectory, MakeDirectoryErrorNotFound, MakeDirectoryErrorPermissionDenied, MakeDirectoryErrorReadOnly, MakeDirectoryErrorTooManyOpenFiles, makeDirectory };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
|
|
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);
|
|
5
|
+
let _duplojs_lang_either = require("@duplojs/lang/either");
|
|
6
|
+
_duplojs_lang_either = require_runtime.__toESM(_duplojs_lang_either, 1);
|
|
7
|
+
//#region scripts/file/makeTemporaryDirectory.ts
|
|
8
|
+
var MakeTemporaryDirectoryErrorPermissionDenied = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-temporary-directory-permission-denied", Error) {};
|
|
9
|
+
var MakeTemporaryDirectoryErrorNotDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-temporary-directory-not-directory", Error) {};
|
|
10
|
+
var MakeTemporaryDirectoryErrorNoSpace = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-temporary-directory-no-space", Error) {};
|
|
11
|
+
var MakeTemporaryDirectoryErrorReadOnly = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-temporary-directory-read-only", Error) {};
|
|
12
|
+
var MakeTemporaryDirectoryErrorInvalidArgument = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-temporary-directory-invalid-argument", Error) {};
|
|
13
|
+
var MakeTemporaryDirectoryErrorTooManyOpenFiles = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-temporary-directory-too-many-open-files", Error) {};
|
|
14
|
+
var MakeTemporaryDirectoryError = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-temporary-directory-error", Error) {};
|
|
15
|
+
function handleNodeMakeTemporaryDirectoryError(error) {
|
|
16
|
+
let makeTemporaryDirectoryError = void 0;
|
|
17
|
+
if ("code" in error) {
|
|
18
|
+
if (error.code === "EACCES" || error.code === "EPERM") makeTemporaryDirectoryError = new MakeTemporaryDirectoryErrorPermissionDenied(error);
|
|
19
|
+
else if (error.code === "ENOTDIR") makeTemporaryDirectoryError = new MakeTemporaryDirectoryErrorNotDirectory(error);
|
|
20
|
+
else if (error.code === "ENOSPC") makeTemporaryDirectoryError = new MakeTemporaryDirectoryErrorNoSpace(error);
|
|
21
|
+
else if (error.code === "EROFS") makeTemporaryDirectoryError = new MakeTemporaryDirectoryErrorReadOnly(error);
|
|
22
|
+
else if (error.code === "EINVAL") makeTemporaryDirectoryError = new MakeTemporaryDirectoryErrorInvalidArgument(error);
|
|
23
|
+
else if (error.code === "EMFILE" || error.code === "ENFILE") makeTemporaryDirectoryError = new MakeTemporaryDirectoryErrorTooManyOpenFiles(error);
|
|
24
|
+
}
|
|
25
|
+
if (makeTemporaryDirectoryError === void 0) makeTemporaryDirectoryError = new MakeTemporaryDirectoryError(error);
|
|
26
|
+
return _duplojs_lang_either.left("file-system-make-temporary-directory-error", makeTemporaryDirectoryError);
|
|
27
|
+
}
|
|
28
|
+
function handleDenoMakeTemporaryDirectoryError(error) {
|
|
29
|
+
let makeTemporaryDirectoryError = void 0;
|
|
30
|
+
if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) makeTemporaryDirectoryError = new MakeTemporaryDirectoryErrorPermissionDenied(error);
|
|
31
|
+
else if (error instanceof Deno.errors.NotADirectory) makeTemporaryDirectoryError = new MakeTemporaryDirectoryErrorNotDirectory(error);
|
|
32
|
+
else if (error instanceof Deno.errors.InvalidData) makeTemporaryDirectoryError = new MakeTemporaryDirectoryErrorInvalidArgument(error);
|
|
33
|
+
if (makeTemporaryDirectoryError === void 0) makeTemporaryDirectoryError = new MakeTemporaryDirectoryError(error);
|
|
34
|
+
return _duplojs_lang_either.left("file-system-make-temporary-directory-error", makeTemporaryDirectoryError);
|
|
35
|
+
}
|
|
36
|
+
const makeTemporaryDirectory = require_implementor.implementFunction("makeTemporaryDirectory", {
|
|
37
|
+
NODE: async (prefix) => require_implementor.nodeFileSystem.value.mkdtemp(prefix).then((value) => _duplojs_lang_either.right("file-system-make-temporary-directory", value)).catch(handleNodeMakeTemporaryDirectoryError),
|
|
38
|
+
DENO: (prefix) => Deno.makeTempDir({ prefix }).then((value) => _duplojs_lang_either.right("file-system-make-temporary-directory", value)).catch(handleDenoMakeTemporaryDirectoryError)
|
|
39
|
+
});
|
|
40
|
+
//#endregion
|
|
41
|
+
exports.MakeTemporaryDirectoryError = MakeTemporaryDirectoryError;
|
|
42
|
+
exports.MakeTemporaryDirectoryErrorInvalidArgument = MakeTemporaryDirectoryErrorInvalidArgument;
|
|
43
|
+
exports.MakeTemporaryDirectoryErrorNoSpace = MakeTemporaryDirectoryErrorNoSpace;
|
|
44
|
+
exports.MakeTemporaryDirectoryErrorNotDirectory = MakeTemporaryDirectoryErrorNotDirectory;
|
|
45
|
+
exports.MakeTemporaryDirectoryErrorPermissionDenied = MakeTemporaryDirectoryErrorPermissionDenied;
|
|
46
|
+
exports.MakeTemporaryDirectoryErrorReadOnly = MakeTemporaryDirectoryErrorReadOnly;
|
|
47
|
+
exports.MakeTemporaryDirectoryErrorTooManyOpenFiles = MakeTemporaryDirectoryErrorTooManyOpenFiles;
|
|
48
|
+
exports.makeTemporaryDirectory = makeTemporaryDirectory;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import * as DEither from "@duplojs/lang/either";
|
|
2
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
3
|
+
declare const MakeTemporaryDirectoryErrorPermissionDenied_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-temporary-directory-permission-denied", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-make-temporary-directory-permission-denied", unknown>>, unknown>;
|
|
4
|
+
export declare class MakeTemporaryDirectoryErrorPermissionDenied extends MakeTemporaryDirectoryErrorPermissionDenied_base {
|
|
5
|
+
}
|
|
6
|
+
declare const MakeTemporaryDirectoryErrorNotDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-temporary-directory-not-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-make-temporary-directory-not-directory", unknown>>, unknown>;
|
|
7
|
+
export declare class MakeTemporaryDirectoryErrorNotDirectory extends MakeTemporaryDirectoryErrorNotDirectory_base {
|
|
8
|
+
}
|
|
9
|
+
declare const MakeTemporaryDirectoryErrorNoSpace_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-temporary-directory-no-space", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-make-temporary-directory-no-space", unknown>>, unknown>;
|
|
10
|
+
export declare class MakeTemporaryDirectoryErrorNoSpace extends MakeTemporaryDirectoryErrorNoSpace_base {
|
|
11
|
+
}
|
|
12
|
+
declare const MakeTemporaryDirectoryErrorReadOnly_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-temporary-directory-read-only", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-make-temporary-directory-read-only", unknown>>, unknown>;
|
|
13
|
+
export declare class MakeTemporaryDirectoryErrorReadOnly extends MakeTemporaryDirectoryErrorReadOnly_base {
|
|
14
|
+
}
|
|
15
|
+
declare const MakeTemporaryDirectoryErrorInvalidArgument_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-temporary-directory-invalid-argument", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-make-temporary-directory-invalid-argument", unknown>>, unknown>;
|
|
16
|
+
export declare class MakeTemporaryDirectoryErrorInvalidArgument extends MakeTemporaryDirectoryErrorInvalidArgument_base {
|
|
17
|
+
}
|
|
18
|
+
declare const MakeTemporaryDirectoryErrorTooManyOpenFiles_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-temporary-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-make-temporary-directory-too-many-open-files", unknown>>, unknown>;
|
|
19
|
+
export declare class MakeTemporaryDirectoryErrorTooManyOpenFiles extends MakeTemporaryDirectoryErrorTooManyOpenFiles_base {
|
|
20
|
+
}
|
|
21
|
+
declare const MakeTemporaryDirectoryError_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-temporary-directory-error", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-make-temporary-directory-error", unknown>>, unknown>;
|
|
22
|
+
export declare class MakeTemporaryDirectoryError extends MakeTemporaryDirectoryError_base {
|
|
23
|
+
}
|
|
24
|
+
export type MakeTemporaryDirectoryErrors = (MakeTemporaryDirectoryErrorPermissionDenied | MakeTemporaryDirectoryErrorNotDirectory | MakeTemporaryDirectoryErrorNoSpace | MakeTemporaryDirectoryErrorReadOnly | MakeTemporaryDirectoryErrorInvalidArgument | MakeTemporaryDirectoryErrorTooManyOpenFiles | MakeTemporaryDirectoryError);
|
|
25
|
+
export type MakeTemporaryDirectoryResult = (DEither.Right<"file-system-make-temporary-directory", string> | DEither.Left<"file-system-make-temporary-directory-error", MakeTemporaryDirectoryErrors>);
|
|
26
|
+
declare module '../implementor' {
|
|
27
|
+
interface ServerFunction {
|
|
28
|
+
makeTemporaryDirectory(prefix: string): Promise<MakeTemporaryDirectoryResult>;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export declare const makeTemporaryDirectory: (prefix: string) => Promise<MakeTemporaryDirectoryResult>;
|
|
32
|
+
export {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { implementFunction, nodeFileSystem } from "../implementor.mjs";
|
|
2
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
3
|
+
import * as DEither from "@duplojs/lang/either";
|
|
4
|
+
//#region scripts/file/makeTemporaryDirectory.ts
|
|
5
|
+
var MakeTemporaryDirectoryErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-make-temporary-directory-permission-denied", Error) {};
|
|
6
|
+
var MakeTemporaryDirectoryErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-make-temporary-directory-not-directory", Error) {};
|
|
7
|
+
var MakeTemporaryDirectoryErrorNoSpace = class extends DCommon.DuploJSError.parentClass("file-system-make-temporary-directory-no-space", Error) {};
|
|
8
|
+
var MakeTemporaryDirectoryErrorReadOnly = class extends DCommon.DuploJSError.parentClass("file-system-make-temporary-directory-read-only", Error) {};
|
|
9
|
+
var MakeTemporaryDirectoryErrorInvalidArgument = class extends DCommon.DuploJSError.parentClass("file-system-make-temporary-directory-invalid-argument", Error) {};
|
|
10
|
+
var MakeTemporaryDirectoryErrorTooManyOpenFiles = class extends DCommon.DuploJSError.parentClass("file-system-make-temporary-directory-too-many-open-files", Error) {};
|
|
11
|
+
var MakeTemporaryDirectoryError = class extends DCommon.DuploJSError.parentClass("file-system-make-temporary-directory-error", Error) {};
|
|
12
|
+
function handleNodeMakeTemporaryDirectoryError(error) {
|
|
13
|
+
let makeTemporaryDirectoryError = void 0;
|
|
14
|
+
if ("code" in error) {
|
|
15
|
+
if (error.code === "EACCES" || error.code === "EPERM") makeTemporaryDirectoryError = new MakeTemporaryDirectoryErrorPermissionDenied(error);
|
|
16
|
+
else if (error.code === "ENOTDIR") makeTemporaryDirectoryError = new MakeTemporaryDirectoryErrorNotDirectory(error);
|
|
17
|
+
else if (error.code === "ENOSPC") makeTemporaryDirectoryError = new MakeTemporaryDirectoryErrorNoSpace(error);
|
|
18
|
+
else if (error.code === "EROFS") makeTemporaryDirectoryError = new MakeTemporaryDirectoryErrorReadOnly(error);
|
|
19
|
+
else if (error.code === "EINVAL") makeTemporaryDirectoryError = new MakeTemporaryDirectoryErrorInvalidArgument(error);
|
|
20
|
+
else if (error.code === "EMFILE" || error.code === "ENFILE") makeTemporaryDirectoryError = new MakeTemporaryDirectoryErrorTooManyOpenFiles(error);
|
|
21
|
+
}
|
|
22
|
+
if (makeTemporaryDirectoryError === void 0) makeTemporaryDirectoryError = new MakeTemporaryDirectoryError(error);
|
|
23
|
+
return DEither.left("file-system-make-temporary-directory-error", makeTemporaryDirectoryError);
|
|
24
|
+
}
|
|
25
|
+
function handleDenoMakeTemporaryDirectoryError(error) {
|
|
26
|
+
let makeTemporaryDirectoryError = void 0;
|
|
27
|
+
if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) makeTemporaryDirectoryError = new MakeTemporaryDirectoryErrorPermissionDenied(error);
|
|
28
|
+
else if (error instanceof Deno.errors.NotADirectory) makeTemporaryDirectoryError = new MakeTemporaryDirectoryErrorNotDirectory(error);
|
|
29
|
+
else if (error instanceof Deno.errors.InvalidData) makeTemporaryDirectoryError = new MakeTemporaryDirectoryErrorInvalidArgument(error);
|
|
30
|
+
if (makeTemporaryDirectoryError === void 0) makeTemporaryDirectoryError = new MakeTemporaryDirectoryError(error);
|
|
31
|
+
return DEither.left("file-system-make-temporary-directory-error", makeTemporaryDirectoryError);
|
|
32
|
+
}
|
|
33
|
+
const makeTemporaryDirectory = implementFunction("makeTemporaryDirectory", {
|
|
34
|
+
NODE: async (prefix) => nodeFileSystem.value.mkdtemp(prefix).then((value) => DEither.right("file-system-make-temporary-directory", value)).catch(handleNodeMakeTemporaryDirectoryError),
|
|
35
|
+
DENO: (prefix) => Deno.makeTempDir({ prefix }).then((value) => DEither.right("file-system-make-temporary-directory", value)).catch(handleDenoMakeTemporaryDirectoryError)
|
|
36
|
+
});
|
|
37
|
+
//#endregion
|
|
38
|
+
export { MakeTemporaryDirectoryError, MakeTemporaryDirectoryErrorInvalidArgument, MakeTemporaryDirectoryErrorNoSpace, MakeTemporaryDirectoryErrorNotDirectory, MakeTemporaryDirectoryErrorPermissionDenied, MakeTemporaryDirectoryErrorReadOnly, MakeTemporaryDirectoryErrorTooManyOpenFiles, makeTemporaryDirectory };
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
|
|
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);
|
|
5
|
+
let _duplojs_lang_either = require("@duplojs/lang/either");
|
|
6
|
+
_duplojs_lang_either = require_runtime.__toESM(_duplojs_lang_either, 1);
|
|
7
|
+
let _duplojs_lang_path = require("@duplojs/lang/path");
|
|
8
|
+
_duplojs_lang_path = require_runtime.__toESM(_duplojs_lang_path, 1);
|
|
9
|
+
//#region scripts/file/makeTemporaryFile.ts
|
|
10
|
+
var MakeTemporaryFileErrorPermissionDenied = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-temporary-file-permission-denied", Error) {};
|
|
11
|
+
var MakeTemporaryFileErrorAlreadyExists = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-temporary-file-already-exists", Error) {};
|
|
12
|
+
var MakeTemporaryFileErrorNotDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-temporary-file-not-directory", Error) {};
|
|
13
|
+
var MakeTemporaryFileErrorNoSpace = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-temporary-file-no-space", Error) {};
|
|
14
|
+
var MakeTemporaryFileErrorReadOnly = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-temporary-file-read-only", Error) {};
|
|
15
|
+
var MakeTemporaryFileErrorInvalidArgument = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-temporary-file-invalid-argument", Error) {};
|
|
16
|
+
var MakeTemporaryFileErrorTooManyOpenFiles = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-temporary-file-too-many-open-files", Error) {};
|
|
17
|
+
var MakeTemporaryFileError = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-temporary-file-error", Error) {};
|
|
18
|
+
function handleNodeMakeTemporaryFileError(error) {
|
|
19
|
+
let makeTemporaryFileError = void 0;
|
|
20
|
+
if ("code" in error) {
|
|
21
|
+
if (error.code === "EACCES" || error.code === "EPERM") makeTemporaryFileError = new MakeTemporaryFileErrorPermissionDenied(error);
|
|
22
|
+
else if (error.code === "EEXIST") makeTemporaryFileError = new MakeTemporaryFileErrorAlreadyExists(error);
|
|
23
|
+
else if (error.code === "ENOTDIR") makeTemporaryFileError = new MakeTemporaryFileErrorNotDirectory(error);
|
|
24
|
+
else if (error.code === "ENOSPC") makeTemporaryFileError = new MakeTemporaryFileErrorNoSpace(error);
|
|
25
|
+
else if (error.code === "EROFS") makeTemporaryFileError = new MakeTemporaryFileErrorReadOnly(error);
|
|
26
|
+
else if (error.code === "EINVAL") makeTemporaryFileError = new MakeTemporaryFileErrorInvalidArgument(error);
|
|
27
|
+
else if (error.code === "EMFILE" || error.code === "ENFILE") makeTemporaryFileError = new MakeTemporaryFileErrorTooManyOpenFiles(error);
|
|
28
|
+
}
|
|
29
|
+
if (makeTemporaryFileError === void 0) makeTemporaryFileError = new MakeTemporaryFileError(error);
|
|
30
|
+
return _duplojs_lang_either.left("file-system-make-temporary-file-error", makeTemporaryFileError);
|
|
31
|
+
}
|
|
32
|
+
function handleDenoMakeTemporaryFileError(error) {
|
|
33
|
+
let makeTemporaryFileError = void 0;
|
|
34
|
+
if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) makeTemporaryFileError = new MakeTemporaryFileErrorPermissionDenied(error);
|
|
35
|
+
else if (error instanceof Deno.errors.AlreadyExists) makeTemporaryFileError = new MakeTemporaryFileErrorAlreadyExists(error);
|
|
36
|
+
else if (error instanceof Deno.errors.NotADirectory) makeTemporaryFileError = new MakeTemporaryFileErrorNotDirectory(error);
|
|
37
|
+
else if (error instanceof Deno.errors.InvalidData) makeTemporaryFileError = new MakeTemporaryFileErrorInvalidArgument(error);
|
|
38
|
+
if (makeTemporaryFileError === void 0) makeTemporaryFileError = new MakeTemporaryFileError(error);
|
|
39
|
+
return _duplojs_lang_either.left("file-system-make-temporary-file-error", makeTemporaryFileError);
|
|
40
|
+
}
|
|
41
|
+
const makeTemporaryFile = require_implementor.implementFunction("makeTemporaryFile", {
|
|
42
|
+
NODE: async (prefix, suffix) => {
|
|
43
|
+
const tempPath = _duplojs_lang_common.forwardAsserts(require_implementor.nodeOs.value.tmpdir(), _duplojs_lang_path.is);
|
|
44
|
+
const fileName = _duplojs_lang_common.forwardAsserts(`${prefix}${require_implementor.nodeCrypto.value.randomUUID()}${suffix ?? ""}`, _duplojs_lang_path.isSegment);
|
|
45
|
+
const fileTemporaryPath = _duplojs_lang_path.resolveRelative([tempPath, fileName]);
|
|
46
|
+
return require_implementor.nodeFileSystem.value.open(fileTemporaryPath, "wx").then((fh) => fh.close()).then(() => _duplojs_lang_either.right("file-system-make-temporary-file", fileTemporaryPath)).catch(handleNodeMakeTemporaryFileError);
|
|
47
|
+
},
|
|
48
|
+
DENO: (prefix, suffix) => Deno.makeTempFile({
|
|
49
|
+
prefix,
|
|
50
|
+
suffix
|
|
51
|
+
}).then((value) => _duplojs_lang_either.right("file-system-make-temporary-file", value)).catch(handleDenoMakeTemporaryFileError)
|
|
52
|
+
});
|
|
53
|
+
//#endregion
|
|
54
|
+
exports.MakeTemporaryFileError = MakeTemporaryFileError;
|
|
55
|
+
exports.MakeTemporaryFileErrorAlreadyExists = MakeTemporaryFileErrorAlreadyExists;
|
|
56
|
+
exports.MakeTemporaryFileErrorInvalidArgument = MakeTemporaryFileErrorInvalidArgument;
|
|
57
|
+
exports.MakeTemporaryFileErrorNoSpace = MakeTemporaryFileErrorNoSpace;
|
|
58
|
+
exports.MakeTemporaryFileErrorNotDirectory = MakeTemporaryFileErrorNotDirectory;
|
|
59
|
+
exports.MakeTemporaryFileErrorPermissionDenied = MakeTemporaryFileErrorPermissionDenied;
|
|
60
|
+
exports.MakeTemporaryFileErrorReadOnly = MakeTemporaryFileErrorReadOnly;
|
|
61
|
+
exports.MakeTemporaryFileErrorTooManyOpenFiles = MakeTemporaryFileErrorTooManyOpenFiles;
|
|
62
|
+
exports.makeTemporaryFile = makeTemporaryFile;
|