@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,36 @@
|
|
|
1
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
2
|
+
import * as DPath from "@duplojs/lang/path";
|
|
3
|
+
import * as DEither from "@duplojs/lang/either";
|
|
4
|
+
declare const MakeTemporaryFileErrorPermissionDenied_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-temporary-file-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-file-permission-denied", unknown>>, unknown>;
|
|
5
|
+
export declare class MakeTemporaryFileErrorPermissionDenied extends MakeTemporaryFileErrorPermissionDenied_base {
|
|
6
|
+
}
|
|
7
|
+
declare const MakeTemporaryFileErrorAlreadyExists_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-temporary-file-already-exists", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-make-temporary-file-already-exists", unknown>>, unknown>;
|
|
8
|
+
export declare class MakeTemporaryFileErrorAlreadyExists extends MakeTemporaryFileErrorAlreadyExists_base {
|
|
9
|
+
}
|
|
10
|
+
declare const MakeTemporaryFileErrorNotDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-temporary-file-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-file-not-directory", unknown>>, unknown>;
|
|
11
|
+
export declare class MakeTemporaryFileErrorNotDirectory extends MakeTemporaryFileErrorNotDirectory_base {
|
|
12
|
+
}
|
|
13
|
+
declare const MakeTemporaryFileErrorNoSpace_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-temporary-file-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-file-no-space", unknown>>, unknown>;
|
|
14
|
+
export declare class MakeTemporaryFileErrorNoSpace extends MakeTemporaryFileErrorNoSpace_base {
|
|
15
|
+
}
|
|
16
|
+
declare const MakeTemporaryFileErrorReadOnly_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-temporary-file-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-file-read-only", unknown>>, unknown>;
|
|
17
|
+
export declare class MakeTemporaryFileErrorReadOnly extends MakeTemporaryFileErrorReadOnly_base {
|
|
18
|
+
}
|
|
19
|
+
declare const MakeTemporaryFileErrorInvalidArgument_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-temporary-file-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-file-invalid-argument", unknown>>, unknown>;
|
|
20
|
+
export declare class MakeTemporaryFileErrorInvalidArgument extends MakeTemporaryFileErrorInvalidArgument_base {
|
|
21
|
+
}
|
|
22
|
+
declare const MakeTemporaryFileErrorTooManyOpenFiles_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-temporary-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-make-temporary-file-too-many-open-files", unknown>>, unknown>;
|
|
23
|
+
export declare class MakeTemporaryFileErrorTooManyOpenFiles extends MakeTemporaryFileErrorTooManyOpenFiles_base {
|
|
24
|
+
}
|
|
25
|
+
declare const MakeTemporaryFileError_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-temporary-file-error", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-make-temporary-file-error", unknown>>, unknown>;
|
|
26
|
+
export declare class MakeTemporaryFileError extends MakeTemporaryFileError_base {
|
|
27
|
+
}
|
|
28
|
+
export type MakeTemporaryFileErrors = (MakeTemporaryFileErrorPermissionDenied | MakeTemporaryFileErrorAlreadyExists | MakeTemporaryFileErrorNotDirectory | MakeTemporaryFileErrorNoSpace | MakeTemporaryFileErrorReadOnly | MakeTemporaryFileErrorInvalidArgument | MakeTemporaryFileErrorTooManyOpenFiles | MakeTemporaryFileError);
|
|
29
|
+
export type MakeTemporaryFileResult = (DEither.Right<"file-system-make-temporary-file", string> | DEither.Left<"file-system-make-temporary-file-error", MakeTemporaryFileErrors>);
|
|
30
|
+
declare module '../implementor' {
|
|
31
|
+
interface ServerFunction {
|
|
32
|
+
makeTemporaryFile(prefix: string & DPath.Segment, suffix?: string & DPath.Segment): Promise<MakeTemporaryFileResult>;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export declare const makeTemporaryFile: (prefix: string & DPath.Segment, suffix?: string & DPath.Segment) => Promise<MakeTemporaryFileResult>;
|
|
36
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { implementFunction, nodeCrypto, nodeFileSystem, nodeOs } from "../implementor.mjs";
|
|
2
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
3
|
+
import * as DEither from "@duplojs/lang/either";
|
|
4
|
+
import * as DPath from "@duplojs/lang/path";
|
|
5
|
+
//#region scripts/file/makeTemporaryFile.ts
|
|
6
|
+
var MakeTemporaryFileErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-make-temporary-file-permission-denied", Error) {};
|
|
7
|
+
var MakeTemporaryFileErrorAlreadyExists = class extends DCommon.DuploJSError.parentClass("file-system-make-temporary-file-already-exists", Error) {};
|
|
8
|
+
var MakeTemporaryFileErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-make-temporary-file-not-directory", Error) {};
|
|
9
|
+
var MakeTemporaryFileErrorNoSpace = class extends DCommon.DuploJSError.parentClass("file-system-make-temporary-file-no-space", Error) {};
|
|
10
|
+
var MakeTemporaryFileErrorReadOnly = class extends DCommon.DuploJSError.parentClass("file-system-make-temporary-file-read-only", Error) {};
|
|
11
|
+
var MakeTemporaryFileErrorInvalidArgument = class extends DCommon.DuploJSError.parentClass("file-system-make-temporary-file-invalid-argument", Error) {};
|
|
12
|
+
var MakeTemporaryFileErrorTooManyOpenFiles = class extends DCommon.DuploJSError.parentClass("file-system-make-temporary-file-too-many-open-files", Error) {};
|
|
13
|
+
var MakeTemporaryFileError = class extends DCommon.DuploJSError.parentClass("file-system-make-temporary-file-error", Error) {};
|
|
14
|
+
function handleNodeMakeTemporaryFileError(error) {
|
|
15
|
+
let makeTemporaryFileError = void 0;
|
|
16
|
+
if ("code" in error) {
|
|
17
|
+
if (error.code === "EACCES" || error.code === "EPERM") makeTemporaryFileError = new MakeTemporaryFileErrorPermissionDenied(error);
|
|
18
|
+
else if (error.code === "EEXIST") makeTemporaryFileError = new MakeTemporaryFileErrorAlreadyExists(error);
|
|
19
|
+
else if (error.code === "ENOTDIR") makeTemporaryFileError = new MakeTemporaryFileErrorNotDirectory(error);
|
|
20
|
+
else if (error.code === "ENOSPC") makeTemporaryFileError = new MakeTemporaryFileErrorNoSpace(error);
|
|
21
|
+
else if (error.code === "EROFS") makeTemporaryFileError = new MakeTemporaryFileErrorReadOnly(error);
|
|
22
|
+
else if (error.code === "EINVAL") makeTemporaryFileError = new MakeTemporaryFileErrorInvalidArgument(error);
|
|
23
|
+
else if (error.code === "EMFILE" || error.code === "ENFILE") makeTemporaryFileError = new MakeTemporaryFileErrorTooManyOpenFiles(error);
|
|
24
|
+
}
|
|
25
|
+
if (makeTemporaryFileError === void 0) makeTemporaryFileError = new MakeTemporaryFileError(error);
|
|
26
|
+
return DEither.left("file-system-make-temporary-file-error", makeTemporaryFileError);
|
|
27
|
+
}
|
|
28
|
+
function handleDenoMakeTemporaryFileError(error) {
|
|
29
|
+
let makeTemporaryFileError = void 0;
|
|
30
|
+
if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) makeTemporaryFileError = new MakeTemporaryFileErrorPermissionDenied(error);
|
|
31
|
+
else if (error instanceof Deno.errors.AlreadyExists) makeTemporaryFileError = new MakeTemporaryFileErrorAlreadyExists(error);
|
|
32
|
+
else if (error instanceof Deno.errors.NotADirectory) makeTemporaryFileError = new MakeTemporaryFileErrorNotDirectory(error);
|
|
33
|
+
else if (error instanceof Deno.errors.InvalidData) makeTemporaryFileError = new MakeTemporaryFileErrorInvalidArgument(error);
|
|
34
|
+
if (makeTemporaryFileError === void 0) makeTemporaryFileError = new MakeTemporaryFileError(error);
|
|
35
|
+
return DEither.left("file-system-make-temporary-file-error", makeTemporaryFileError);
|
|
36
|
+
}
|
|
37
|
+
const makeTemporaryFile = implementFunction("makeTemporaryFile", {
|
|
38
|
+
NODE: async (prefix, suffix) => {
|
|
39
|
+
const tempPath = DCommon.forwardAsserts(nodeOs.value.tmpdir(), DPath.is);
|
|
40
|
+
const fileName = DCommon.forwardAsserts(`${prefix}${nodeCrypto.value.randomUUID()}${suffix ?? ""}`, DPath.isSegment);
|
|
41
|
+
const fileTemporaryPath = DPath.resolveRelative([tempPath, fileName]);
|
|
42
|
+
return nodeFileSystem.value.open(fileTemporaryPath, "wx").then((fh) => fh.close()).then(() => DEither.right("file-system-make-temporary-file", fileTemporaryPath)).catch(handleNodeMakeTemporaryFileError);
|
|
43
|
+
},
|
|
44
|
+
DENO: (prefix, suffix) => Deno.makeTempFile({
|
|
45
|
+
prefix,
|
|
46
|
+
suffix
|
|
47
|
+
}).then((value) => DEither.right("file-system-make-temporary-file", value)).catch(handleDenoMakeTemporaryFileError)
|
|
48
|
+
});
|
|
49
|
+
//#endregion
|
|
50
|
+
export { MakeTemporaryFileError, MakeTemporaryFileErrorAlreadyExists, MakeTemporaryFileErrorInvalidArgument, MakeTemporaryFileErrorNoSpace, MakeTemporaryFileErrorNotDirectory, MakeTemporaryFileErrorPermissionDenied, MakeTemporaryFileErrorReadOnly, MakeTemporaryFileErrorTooManyOpenFiles, makeTemporaryFile };
|
|
@@ -0,0 +1,71 @@
|
|
|
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/move.ts
|
|
8
|
+
var MoveErrorNotFound = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-move-not-found", Error) {};
|
|
9
|
+
var MoveErrorPermissionDenied = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-move-permission-denied", Error) {};
|
|
10
|
+
var MoveErrorAlreadyExists = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-move-already-exists", Error) {};
|
|
11
|
+
var MoveErrorIsDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-move-is-directory", Error) {};
|
|
12
|
+
var MoveErrorNotDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-move-not-directory", Error) {};
|
|
13
|
+
var MoveErrorDirectoryNotEmpty = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-move-directory-not-empty", Error) {};
|
|
14
|
+
var MoveErrorReadOnly = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-move-read-only", Error) {};
|
|
15
|
+
var MoveErrorInvalidArgument = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-move-invalid-argument", Error) {};
|
|
16
|
+
var MoveErrorBusy = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-move-busy", Error) {};
|
|
17
|
+
var MoveErrorCrossDevice = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-move-cross-device", Error) {};
|
|
18
|
+
var MoveError = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-move-error", Error) {};
|
|
19
|
+
function handleNodeMoveError(error) {
|
|
20
|
+
let moveError = void 0;
|
|
21
|
+
if ("code" in error) {
|
|
22
|
+
if (error.code === "ENOENT") moveError = new MoveErrorNotFound(error);
|
|
23
|
+
else if (error.code === "EACCES" || error.code === "EPERM") moveError = new MoveErrorPermissionDenied(error);
|
|
24
|
+
else if (error.code === "EEXIST") moveError = new MoveErrorAlreadyExists(error);
|
|
25
|
+
else if (error.code === "EISDIR") moveError = new MoveErrorIsDirectory(error);
|
|
26
|
+
else if (error.code === "ENOTDIR") moveError = new MoveErrorNotDirectory(error);
|
|
27
|
+
else if (error.code === "ENOTEMPTY") moveError = new MoveErrorDirectoryNotEmpty(error);
|
|
28
|
+
else if (error.code === "EROFS") moveError = new MoveErrorReadOnly(error);
|
|
29
|
+
else if (error.code === "EINVAL") moveError = new MoveErrorInvalidArgument(error);
|
|
30
|
+
else if (error.code === "EBUSY") moveError = new MoveErrorBusy(error);
|
|
31
|
+
else if (error.code === "EXDEV") moveError = new MoveErrorCrossDevice(error);
|
|
32
|
+
}
|
|
33
|
+
if (moveError === void 0) moveError = new MoveError(error);
|
|
34
|
+
return _duplojs_lang_either.left("file-system-move-error", moveError);
|
|
35
|
+
}
|
|
36
|
+
function handleDenoMoveError(error) {
|
|
37
|
+
let moveError = void 0;
|
|
38
|
+
if (error instanceof Deno.errors.NotFound) moveError = new MoveErrorNotFound(error);
|
|
39
|
+
else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) moveError = new MoveErrorPermissionDenied(error);
|
|
40
|
+
else if (error instanceof Deno.errors.AlreadyExists) moveError = new MoveErrorAlreadyExists(error);
|
|
41
|
+
else if (error instanceof Deno.errors.IsADirectory) moveError = new MoveErrorIsDirectory(error);
|
|
42
|
+
else if (error instanceof Deno.errors.NotADirectory) moveError = new MoveErrorNotDirectory(error);
|
|
43
|
+
else if (error instanceof Deno.errors.InvalidData) moveError = new MoveErrorInvalidArgument(error);
|
|
44
|
+
else if (error instanceof Deno.errors.Busy) moveError = new MoveErrorBusy(error);
|
|
45
|
+
if (moveError === void 0) moveError = new MoveError(error);
|
|
46
|
+
return _duplojs_lang_either.left("file-system-move-error", moveError);
|
|
47
|
+
}
|
|
48
|
+
const moveImplementation = require_implementor.implementFunction("move", {
|
|
49
|
+
NODE: async (fromPath, toPath) => require_implementor.nodeFileSystem.value.rename(fromPath, toPath).then(() => _duplojs_lang_either.right("file-system-move")).catch(handleNodeMoveError),
|
|
50
|
+
DENO: (fromPath, toPath) => Deno.rename(fromPath, toPath).then(() => _duplojs_lang_either.right("file-system-move")).catch(handleDenoMoveError)
|
|
51
|
+
});
|
|
52
|
+
function move(...args) {
|
|
53
|
+
if (args.length === 1) {
|
|
54
|
+
const [toPath] = args;
|
|
55
|
+
return (fromPath) => moveImplementation(fromPath, toPath);
|
|
56
|
+
}
|
|
57
|
+
return moveImplementation(...args);
|
|
58
|
+
}
|
|
59
|
+
//#endregion
|
|
60
|
+
exports.MoveError = MoveError;
|
|
61
|
+
exports.MoveErrorAlreadyExists = MoveErrorAlreadyExists;
|
|
62
|
+
exports.MoveErrorBusy = MoveErrorBusy;
|
|
63
|
+
exports.MoveErrorCrossDevice = MoveErrorCrossDevice;
|
|
64
|
+
exports.MoveErrorDirectoryNotEmpty = MoveErrorDirectoryNotEmpty;
|
|
65
|
+
exports.MoveErrorInvalidArgument = MoveErrorInvalidArgument;
|
|
66
|
+
exports.MoveErrorIsDirectory = MoveErrorIsDirectory;
|
|
67
|
+
exports.MoveErrorNotDirectory = MoveErrorNotDirectory;
|
|
68
|
+
exports.MoveErrorNotFound = MoveErrorNotFound;
|
|
69
|
+
exports.MoveErrorPermissionDenied = MoveErrorPermissionDenied;
|
|
70
|
+
exports.MoveErrorReadOnly = MoveErrorReadOnly;
|
|
71
|
+
exports.move = move;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type * as DPath from "@duplojs/lang/path";
|
|
2
|
+
import * as DEither from "@duplojs/lang/either";
|
|
3
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
4
|
+
declare const MoveErrorNotFound_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-move-not-found", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-move-not-found", unknown>>, unknown>;
|
|
5
|
+
export declare class MoveErrorNotFound extends MoveErrorNotFound_base {
|
|
6
|
+
}
|
|
7
|
+
declare const MoveErrorPermissionDenied_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-move-permission-denied", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-move-permission-denied", unknown>>, unknown>;
|
|
8
|
+
export declare class MoveErrorPermissionDenied extends MoveErrorPermissionDenied_base {
|
|
9
|
+
}
|
|
10
|
+
declare const MoveErrorAlreadyExists_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-move-already-exists", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-move-already-exists", unknown>>, unknown>;
|
|
11
|
+
export declare class MoveErrorAlreadyExists extends MoveErrorAlreadyExists_base {
|
|
12
|
+
}
|
|
13
|
+
declare const MoveErrorIsDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-move-is-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-move-is-directory", unknown>>, unknown>;
|
|
14
|
+
export declare class MoveErrorIsDirectory extends MoveErrorIsDirectory_base {
|
|
15
|
+
}
|
|
16
|
+
declare const MoveErrorNotDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-move-not-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-move-not-directory", unknown>>, unknown>;
|
|
17
|
+
export declare class MoveErrorNotDirectory extends MoveErrorNotDirectory_base {
|
|
18
|
+
}
|
|
19
|
+
declare const MoveErrorDirectoryNotEmpty_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-move-directory-not-empty", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-move-directory-not-empty", unknown>>, unknown>;
|
|
20
|
+
export declare class MoveErrorDirectoryNotEmpty extends MoveErrorDirectoryNotEmpty_base {
|
|
21
|
+
}
|
|
22
|
+
declare const MoveErrorReadOnly_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-move-read-only", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-move-read-only", unknown>>, unknown>;
|
|
23
|
+
export declare class MoveErrorReadOnly extends MoveErrorReadOnly_base {
|
|
24
|
+
}
|
|
25
|
+
declare const MoveErrorInvalidArgument_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-move-invalid-argument", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-move-invalid-argument", unknown>>, unknown>;
|
|
26
|
+
export declare class MoveErrorInvalidArgument extends MoveErrorInvalidArgument_base {
|
|
27
|
+
}
|
|
28
|
+
declare const MoveErrorBusy_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-move-busy", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-move-busy", unknown>>, unknown>;
|
|
29
|
+
export declare class MoveErrorBusy extends MoveErrorBusy_base {
|
|
30
|
+
}
|
|
31
|
+
declare const MoveErrorCrossDevice_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-move-cross-device", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-move-cross-device", unknown>>, unknown>;
|
|
32
|
+
export declare class MoveErrorCrossDevice extends MoveErrorCrossDevice_base {
|
|
33
|
+
}
|
|
34
|
+
declare const MoveError_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-move-error", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-move-error", unknown>>, unknown>;
|
|
35
|
+
export declare class MoveError extends MoveError_base {
|
|
36
|
+
}
|
|
37
|
+
export type MoveErrors = (MoveErrorNotFound | MoveErrorPermissionDenied | MoveErrorAlreadyExists | MoveErrorIsDirectory | MoveErrorNotDirectory | MoveErrorDirectoryNotEmpty | MoveErrorReadOnly | MoveErrorInvalidArgument | MoveErrorBusy | MoveErrorCrossDevice | MoveError);
|
|
38
|
+
export type MoveResult = (DEither.Right<"file-system-move", void> | DEither.Left<"file-system-move-error", MoveErrors>);
|
|
39
|
+
declare module '../implementor' {
|
|
40
|
+
interface ServerFunction {
|
|
41
|
+
move(fromPath: DPath.AnyPath, toPath: DPath.AnyPath): Promise<MoveResult>;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export declare function move(toPath: DPath.AnyPath): (fromPath: DPath.AnyPath) => Promise<MoveResult>;
|
|
45
|
+
export declare function move(fromPath: DPath.AnyPath, toPath: DPath.AnyPath): Promise<MoveResult>;
|
|
46
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
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/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) {};
|
|
16
|
+
function handleNodeMoveError(error) {
|
|
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);
|
|
29
|
+
}
|
|
30
|
+
if (moveError === void 0) moveError = new MoveError(error);
|
|
31
|
+
return DEither.left("file-system-move-error", moveError);
|
|
32
|
+
}
|
|
33
|
+
function handleDenoMoveError(error) {
|
|
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);
|
|
44
|
+
}
|
|
45
|
+
const moveImplementation = implementFunction("move", {
|
|
46
|
+
NODE: async (fromPath, toPath) => nodeFileSystem.value.rename(fromPath, toPath).then(() => DEither.right("file-system-move")).catch(handleNodeMoveError),
|
|
47
|
+
DENO: (fromPath, toPath) => Deno.rename(fromPath, toPath).then(() => DEither.right("file-system-move")).catch(handleDenoMoveError)
|
|
48
|
+
});
|
|
49
|
+
function move(...args) {
|
|
50
|
+
if (args.length === 1) {
|
|
51
|
+
const [toPath] = args;
|
|
52
|
+
return (fromPath) => moveImplementation(fromPath, toPath);
|
|
53
|
+
}
|
|
54
|
+
return moveImplementation(...args);
|
|
55
|
+
}
|
|
56
|
+
//#endregion
|
|
57
|
+
export { MoveError, MoveErrorAlreadyExists, MoveErrorBusy, MoveErrorCrossDevice, MoveErrorDirectoryNotEmpty, MoveErrorInvalidArgument, MoveErrorIsDirectory, MoveErrorNotDirectory, MoveErrorNotFound, MoveErrorPermissionDenied, MoveErrorReadOnly, move };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
|
|
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);
|
|
6
|
+
let _duplojs_lang_either = require("@duplojs/lang/either");
|
|
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);
|
|
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) {};
|
|
19
|
+
function handleNodeReadDirectoryError(error) {
|
|
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);
|
|
27
|
+
}
|
|
28
|
+
if (readDirectoryError === void 0) readDirectoryError = new ReadDirectoryError(error);
|
|
29
|
+
return _duplojs_lang_either.left("file-system-read-directory-error", readDirectoryError);
|
|
30
|
+
}
|
|
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);
|
|
36
|
+
} });
|
|
37
|
+
//#endregion
|
|
38
|
+
exports.ReadDirectoryError = ReadDirectoryError;
|
|
39
|
+
exports.ReadDirectoryErrorBusy = ReadDirectoryErrorBusy;
|
|
40
|
+
exports.ReadDirectoryErrorNotDirectory = ReadDirectoryErrorNotDirectory;
|
|
41
|
+
exports.ReadDirectoryErrorNotFound = ReadDirectoryErrorNotFound;
|
|
42
|
+
exports.ReadDirectoryErrorPermissionDenied = ReadDirectoryErrorPermissionDenied;
|
|
43
|
+
exports.ReadDirectoryErrorTooManyOpenFiles = ReadDirectoryErrorTooManyOpenFiles;
|
|
44
|
+
exports.readDirectory = readDirectory;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import * as DPath from "@duplojs/lang/path";
|
|
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
|
+
export 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
|
+
export 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
|
+
export 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
|
+
export 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
|
+
export 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
|
+
export declare class ReadDirectoryError extends ReadDirectoryError_base {
|
|
21
|
+
}
|
|
22
|
+
export type ReadDirectoryErrors = (ReadDirectoryErrorNotFound | ReadDirectoryErrorPermissionDenied | ReadDirectoryErrorNotDirectory | ReadDirectoryErrorTooManyOpenFiles | ReadDirectoryErrorBusy | ReadDirectoryError);
|
|
23
|
+
interface ReadDirectoryParams {
|
|
24
|
+
recursive?: boolean;
|
|
25
|
+
absolute?: boolean;
|
|
26
|
+
matcher?: DPath.PathMatcher;
|
|
27
|
+
}
|
|
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>);
|
|
29
|
+
declare module '../implementor' {
|
|
30
|
+
interface ServerFunction {
|
|
31
|
+
readDirectory<const GenericParams extends ReadDirectoryParams = {}>(path: DPath.AnyPath, params?: GenericParams): Promise<ReadDirectoryResult<GenericParams>>;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export declare const readDirectory: <const GenericParams extends ReadDirectoryParams = {}>(path: DPath.AnyPath, params?: GenericParams) => Promise<ReadDirectoryResult<GenericParams>>;
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { implementFunction, nodeFileSystem } from "../implementor.mjs";
|
|
2
|
+
import { getCurrentWorkDirectoryOrThrow } from "../common/getCurrentWorkDirectoryOrThrow.mjs";
|
|
3
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
4
|
+
import * as DEither from "@duplojs/lang/either";
|
|
5
|
+
import * as DPath from "@duplojs/lang/path";
|
|
6
|
+
import * as DArray from "@duplojs/lang/array";
|
|
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) {};
|
|
14
|
+
function handleNodeReadDirectoryError(error) {
|
|
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);
|
|
22
|
+
}
|
|
23
|
+
if (readDirectoryError === void 0) readDirectoryError = new ReadDirectoryError(error);
|
|
24
|
+
return DEither.left("file-system-read-directory-error", readDirectoryError);
|
|
25
|
+
}
|
|
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);
|
|
31
|
+
} });
|
|
32
|
+
//#endregion
|
|
33
|
+
export { ReadDirectoryError, ReadDirectoryErrorBusy, ReadDirectoryErrorNotDirectory, ReadDirectoryErrorNotFound, ReadDirectoryErrorPermissionDenied, ReadDirectoryErrorTooManyOpenFiles, readDirectory };
|
|
@@ -0,0 +1,51 @@
|
|
|
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/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) {};
|
|
15
|
+
function handleNodeReadFileError(error) {
|
|
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);
|
|
24
|
+
}
|
|
25
|
+
if (readFileError === void 0) readFileError = new ReadFileError(error);
|
|
26
|
+
return _duplojs_lang_either.left("file-system-read-file-error", readFileError);
|
|
27
|
+
}
|
|
28
|
+
function handleDenoReadFileError(error) {
|
|
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);
|
|
37
|
+
}
|
|
38
|
+
const readFile = require_implementor.implementFunction("readFile", {
|
|
39
|
+
NODE: async (path) => require_implementor.nodeFileSystem.value.readFile(path).then((value) => _duplojs_lang_either.right("file-system-read-file", value)).catch(handleNodeReadFileError),
|
|
40
|
+
DENO: (path) => Deno.readFile(path).then((value) => _duplojs_lang_either.right("file-system-read-file", value)).catch(handleDenoReadFileError),
|
|
41
|
+
BUN: (path) => Bun.file(path).bytes().then((value) => _duplojs_lang_either.right("file-system-read-file", value)).catch(handleNodeReadFileError)
|
|
42
|
+
});
|
|
43
|
+
//#endregion
|
|
44
|
+
exports.ReadFileError = ReadFileError;
|
|
45
|
+
exports.ReadFileErrorBusy = ReadFileErrorBusy;
|
|
46
|
+
exports.ReadFileErrorIsDirectory = ReadFileErrorIsDirectory;
|
|
47
|
+
exports.ReadFileErrorNotDirectory = ReadFileErrorNotDirectory;
|
|
48
|
+
exports.ReadFileErrorNotFound = ReadFileErrorNotFound;
|
|
49
|
+
exports.ReadFileErrorPermissionDenied = ReadFileErrorPermissionDenied;
|
|
50
|
+
exports.ReadFileErrorTooManyOpenFiles = ReadFileErrorTooManyOpenFiles;
|
|
51
|
+
exports.readFile = readFile;
|
|
@@ -0,0 +1,33 @@
|
|
|
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
|
+
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
|
+
export 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
|
+
export 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
|
+
export 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
|
+
export 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
|
+
export 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
|
+
export 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
|
+
export 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>);
|
|
27
|
+
declare module '../implementor' {
|
|
28
|
+
interface ServerFunction {
|
|
29
|
+
readFile(path: DPath.AnyPath): Promise<ReadFileResult>;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export declare const readFile: (path: DPath.AnyPath) => Promise<ReadFileResult>;
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
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/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) {};
|
|
12
|
+
function handleNodeReadFileError(error) {
|
|
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);
|
|
21
|
+
}
|
|
22
|
+
if (readFileError === void 0) readFileError = new ReadFileError(error);
|
|
23
|
+
return DEither.left("file-system-read-file-error", readFileError);
|
|
24
|
+
}
|
|
25
|
+
function handleDenoReadFileError(error) {
|
|
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);
|
|
34
|
+
}
|
|
35
|
+
const readFile = implementFunction("readFile", {
|
|
36
|
+
NODE: async (path) => nodeFileSystem.value.readFile(path).then((value) => DEither.right("file-system-read-file", value)).catch(handleNodeReadFileError),
|
|
37
|
+
DENO: (path) => Deno.readFile(path).then((value) => DEither.right("file-system-read-file", value)).catch(handleDenoReadFileError),
|
|
38
|
+
BUN: (path) => Bun.file(path).bytes().then((value) => DEither.right("file-system-read-file", value)).catch(handleNodeReadFileError)
|
|
39
|
+
});
|
|
40
|
+
//#endregion
|
|
41
|
+
export { ReadFileError, ReadFileErrorBusy, ReadFileErrorIsDirectory, ReadFileErrorNotDirectory, ReadFileErrorNotFound, ReadFileErrorPermissionDenied, ReadFileErrorTooManyOpenFiles, readFile };
|
|
@@ -0,0 +1,51 @@
|
|
|
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/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) {};
|
|
15
|
+
function handleNodeReadJsonFileError(error) {
|
|
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);
|
|
24
|
+
}
|
|
25
|
+
if (readJsonFileError === void 0) readJsonFileError = new ReadJsonFileError(error);
|
|
26
|
+
return _duplojs_lang_either.left("file-system-read-json-file-error", readJsonFileError);
|
|
27
|
+
}
|
|
28
|
+
function handleDenoReadJsonFileError(error) {
|
|
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);
|
|
37
|
+
}
|
|
38
|
+
const readJsonFile = require_implementor.implementFunction("readJsonFile", {
|
|
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),
|
|
40
|
+
DENO: (path) => Deno.readTextFile(path).then(JSON.parse).then((value) => _duplojs_lang_either.right("file-system-read-json-file", value)).catch(handleDenoReadJsonFileError),
|
|
41
|
+
BUN: (path) => Bun.file(path).text().then(JSON.parse).then((value) => _duplojs_lang_either.right("file-system-read-json-file", value)).catch(handleNodeReadJsonFileError)
|
|
42
|
+
});
|
|
43
|
+
//#endregion
|
|
44
|
+
exports.ReadJsonFileError = ReadJsonFileError;
|
|
45
|
+
exports.ReadJsonFileErrorBusy = ReadJsonFileErrorBusy;
|
|
46
|
+
exports.ReadJsonFileErrorIsDirectory = ReadJsonFileErrorIsDirectory;
|
|
47
|
+
exports.ReadJsonFileErrorNotDirectory = ReadJsonFileErrorNotDirectory;
|
|
48
|
+
exports.ReadJsonFileErrorNotFound = ReadJsonFileErrorNotFound;
|
|
49
|
+
exports.ReadJsonFileErrorPermissionDenied = ReadJsonFileErrorPermissionDenied;
|
|
50
|
+
exports.ReadJsonFileErrorTooManyOpenFiles = ReadJsonFileErrorTooManyOpenFiles;
|
|
51
|
+
exports.readJsonFile = readJsonFile;
|