@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,43 @@
|
|
|
1
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
2
|
+
import * as DEither from "@duplojs/lang/either";
|
|
3
|
+
import type * as DPath from "@duplojs/lang/path";
|
|
4
|
+
declare const WriteFileErrorNotFound_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-file-not-found", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-file-not-found", unknown>>, unknown>;
|
|
5
|
+
export declare class WriteFileErrorNotFound extends WriteFileErrorNotFound_base {
|
|
6
|
+
}
|
|
7
|
+
declare const WriteFileErrorPermissionDenied_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-file-permission-denied", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-file-permission-denied", unknown>>, unknown>;
|
|
8
|
+
export declare class WriteFileErrorPermissionDenied extends WriteFileErrorPermissionDenied_base {
|
|
9
|
+
}
|
|
10
|
+
declare const WriteFileErrorIsDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-file-is-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-file-is-directory", unknown>>, unknown>;
|
|
11
|
+
export declare class WriteFileErrorIsDirectory extends WriteFileErrorIsDirectory_base {
|
|
12
|
+
}
|
|
13
|
+
declare const WriteFileErrorNotDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-file-not-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-file-not-directory", unknown>>, unknown>;
|
|
14
|
+
export declare class WriteFileErrorNotDirectory extends WriteFileErrorNotDirectory_base {
|
|
15
|
+
}
|
|
16
|
+
declare const WriteFileErrorNoSpace_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-file-no-space", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-file-no-space", unknown>>, unknown>;
|
|
17
|
+
export declare class WriteFileErrorNoSpace extends WriteFileErrorNoSpace_base {
|
|
18
|
+
}
|
|
19
|
+
declare const WriteFileErrorReadOnly_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-file-read-only", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-file-read-only", unknown>>, unknown>;
|
|
20
|
+
export declare class WriteFileErrorReadOnly extends WriteFileErrorReadOnly_base {
|
|
21
|
+
}
|
|
22
|
+
declare const WriteFileErrorInvalidArgument_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-file-invalid-argument", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-file-invalid-argument", unknown>>, unknown>;
|
|
23
|
+
export declare class WriteFileErrorInvalidArgument extends WriteFileErrorInvalidArgument_base {
|
|
24
|
+
}
|
|
25
|
+
declare const WriteFileErrorTooManyOpenFiles_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-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-write-file-too-many-open-files", unknown>>, unknown>;
|
|
26
|
+
export declare class WriteFileErrorTooManyOpenFiles extends WriteFileErrorTooManyOpenFiles_base {
|
|
27
|
+
}
|
|
28
|
+
declare const WriteFileErrorBusy_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-file-busy", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-file-busy", unknown>>, unknown>;
|
|
29
|
+
export declare class WriteFileErrorBusy extends WriteFileErrorBusy_base {
|
|
30
|
+
}
|
|
31
|
+
declare const WriteFileError_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-file-error", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-file-error", unknown>>, unknown>;
|
|
32
|
+
export declare class WriteFileError extends WriteFileError_base {
|
|
33
|
+
}
|
|
34
|
+
export type WriteFileErrors = (WriteFileErrorNotFound | WriteFileErrorPermissionDenied | WriteFileErrorIsDirectory | WriteFileErrorNotDirectory | WriteFileErrorNoSpace | WriteFileErrorReadOnly | WriteFileErrorInvalidArgument | WriteFileErrorTooManyOpenFiles | WriteFileErrorBusy | WriteFileError);
|
|
35
|
+
export type WriteFileResult = (DEither.Right<"file-system-write-file", void> | DEither.Left<"file-system-write-file-error", WriteFileErrors>);
|
|
36
|
+
declare module '../implementor' {
|
|
37
|
+
interface ServerFunction {
|
|
38
|
+
writeFile(path: DPath.AnyPath, data: Uint8Array): Promise<WriteFileResult>;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export declare function writeFile(data: Uint8Array): (path: DPath.AnyPath) => Promise<WriteFileResult>;
|
|
42
|
+
export declare function writeFile(path: DPath.AnyPath, data: Uint8Array): Promise<WriteFileResult>;
|
|
43
|
+
export {};
|
|
@@ -0,0 +1,55 @@
|
|
|
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/writeFile.ts
|
|
5
|
+
var WriteFileErrorNotFound = class extends DCommon.DuploJSError.parentClass("file-system-write-file-not-found", Error) {};
|
|
6
|
+
var WriteFileErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-write-file-permission-denied", Error) {};
|
|
7
|
+
var WriteFileErrorIsDirectory = class extends DCommon.DuploJSError.parentClass("file-system-write-file-is-directory", Error) {};
|
|
8
|
+
var WriteFileErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-write-file-not-directory", Error) {};
|
|
9
|
+
var WriteFileErrorNoSpace = class extends DCommon.DuploJSError.parentClass("file-system-write-file-no-space", Error) {};
|
|
10
|
+
var WriteFileErrorReadOnly = class extends DCommon.DuploJSError.parentClass("file-system-write-file-read-only", Error) {};
|
|
11
|
+
var WriteFileErrorInvalidArgument = class extends DCommon.DuploJSError.parentClass("file-system-write-file-invalid-argument", Error) {};
|
|
12
|
+
var WriteFileErrorTooManyOpenFiles = class extends DCommon.DuploJSError.parentClass("file-system-write-file-too-many-open-files", Error) {};
|
|
13
|
+
var WriteFileErrorBusy = class extends DCommon.DuploJSError.parentClass("file-system-write-file-busy", Error) {};
|
|
14
|
+
var WriteFileError = class extends DCommon.DuploJSError.parentClass("file-system-write-file-error", Error) {};
|
|
15
|
+
function handleNodeWriteFileError(error) {
|
|
16
|
+
let writeFileError = void 0;
|
|
17
|
+
if ("code" in error) {
|
|
18
|
+
if (error.code === "ENOENT") writeFileError = new WriteFileErrorNotFound(error);
|
|
19
|
+
else if (error.code === "EACCES" || error.code === "EPERM") writeFileError = new WriteFileErrorPermissionDenied(error);
|
|
20
|
+
else if (error.code === "EISDIR") writeFileError = new WriteFileErrorIsDirectory(error);
|
|
21
|
+
else if (error.code === "ENOTDIR") writeFileError = new WriteFileErrorNotDirectory(error);
|
|
22
|
+
else if (error.code === "ENOSPC") writeFileError = new WriteFileErrorNoSpace(error);
|
|
23
|
+
else if (error.code === "EROFS") writeFileError = new WriteFileErrorReadOnly(error);
|
|
24
|
+
else if (error.code === "EINVAL") writeFileError = new WriteFileErrorInvalidArgument(error);
|
|
25
|
+
else if (error.code === "EMFILE" || error.code === "ENFILE") writeFileError = new WriteFileErrorTooManyOpenFiles(error);
|
|
26
|
+
else if (error.code === "EBUSY") writeFileError = new WriteFileErrorBusy(error);
|
|
27
|
+
}
|
|
28
|
+
if (writeFileError === void 0) writeFileError = new WriteFileError(error);
|
|
29
|
+
return DEither.left("file-system-write-file-error", writeFileError);
|
|
30
|
+
}
|
|
31
|
+
function handleDenoWriteFileError(error) {
|
|
32
|
+
let writeFileError = void 0;
|
|
33
|
+
if (error instanceof Deno.errors.NotFound) writeFileError = new WriteFileErrorNotFound(error);
|
|
34
|
+
else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) writeFileError = new WriteFileErrorPermissionDenied(error);
|
|
35
|
+
else if (error instanceof Deno.errors.IsADirectory) writeFileError = new WriteFileErrorIsDirectory(error);
|
|
36
|
+
else if (error instanceof Deno.errors.NotADirectory) writeFileError = new WriteFileErrorNotDirectory(error);
|
|
37
|
+
else if (error instanceof Deno.errors.InvalidData) writeFileError = new WriteFileErrorInvalidArgument(error);
|
|
38
|
+
else if (error instanceof Deno.errors.Busy) writeFileError = new WriteFileErrorBusy(error);
|
|
39
|
+
if (writeFileError === void 0) writeFileError = new WriteFileError(error);
|
|
40
|
+
return DEither.left("file-system-write-file-error", writeFileError);
|
|
41
|
+
}
|
|
42
|
+
const writeFileImplementation = implementFunction("writeFile", {
|
|
43
|
+
NODE: async (path, data) => nodeFileSystem.value.writeFile(path, data).then(() => DEither.right("file-system-write-file")).catch(handleNodeWriteFileError),
|
|
44
|
+
DENO: (path, data) => Deno.writeFile(path, data).then(() => DEither.right("file-system-write-file")).catch(handleDenoWriteFileError),
|
|
45
|
+
BUN: (path, data) => Bun.file(path).write(data).then(() => DEither.right("file-system-write-file")).catch(handleNodeWriteFileError)
|
|
46
|
+
});
|
|
47
|
+
function writeFile(...args) {
|
|
48
|
+
if (args.length === 1) {
|
|
49
|
+
const [data] = args;
|
|
50
|
+
return (path) => writeFileImplementation(path, data);
|
|
51
|
+
}
|
|
52
|
+
return writeFileImplementation(...args);
|
|
53
|
+
}
|
|
54
|
+
//#endregion
|
|
55
|
+
export { WriteFileError, WriteFileErrorBusy, WriteFileErrorInvalidArgument, WriteFileErrorIsDirectory, WriteFileErrorNoSpace, WriteFileErrorNotDirectory, WriteFileErrorNotFound, WriteFileErrorPermissionDenied, WriteFileErrorReadOnly, WriteFileErrorTooManyOpenFiles, writeFile };
|
|
@@ -0,0 +1,77 @@
|
|
|
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/writeJsonFile.ts
|
|
8
|
+
var WriteJsonFileErrorNotFound = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-json-file-not-found", Error) {};
|
|
9
|
+
var WriteJsonFileErrorPermissionDenied = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-json-file-permission-denied", Error) {};
|
|
10
|
+
var WriteJsonFileErrorIsDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-json-file-is-directory", Error) {};
|
|
11
|
+
var WriteJsonFileErrorNotDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-json-file-not-directory", Error) {};
|
|
12
|
+
var WriteJsonFileErrorNoSpace = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-json-file-no-space", Error) {};
|
|
13
|
+
var WriteJsonFileErrorReadOnly = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-json-file-read-only", Error) {};
|
|
14
|
+
var WriteJsonFileErrorInvalidArgument = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-json-file-invalid-argument", Error) {};
|
|
15
|
+
var WriteJsonFileErrorTooManyOpenFiles = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-json-file-too-many-open-files", Error) {};
|
|
16
|
+
var WriteJsonFileErrorBusy = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-json-file-busy", Error) {};
|
|
17
|
+
var WriteJsonFileError = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-json-file-error", Error) {};
|
|
18
|
+
function handleNodeWriteJsonFileError(error) {
|
|
19
|
+
let writeJsonFileError = void 0;
|
|
20
|
+
if ("code" in error) {
|
|
21
|
+
if (error.code === "ENOENT") writeJsonFileError = new WriteJsonFileErrorNotFound(error);
|
|
22
|
+
else if (error.code === "EACCES" || error.code === "EPERM") writeJsonFileError = new WriteJsonFileErrorPermissionDenied(error);
|
|
23
|
+
else if (error.code === "EISDIR") writeJsonFileError = new WriteJsonFileErrorIsDirectory(error);
|
|
24
|
+
else if (error.code === "ENOTDIR") writeJsonFileError = new WriteJsonFileErrorNotDirectory(error);
|
|
25
|
+
else if (error.code === "ENOSPC") writeJsonFileError = new WriteJsonFileErrorNoSpace(error);
|
|
26
|
+
else if (error.code === "EROFS") writeJsonFileError = new WriteJsonFileErrorReadOnly(error);
|
|
27
|
+
else if (error.code === "EINVAL") writeJsonFileError = new WriteJsonFileErrorInvalidArgument(error);
|
|
28
|
+
else if (error.code === "EMFILE" || error.code === "ENFILE") writeJsonFileError = new WriteJsonFileErrorTooManyOpenFiles(error);
|
|
29
|
+
else if (error.code === "EBUSY") writeJsonFileError = new WriteJsonFileErrorBusy(error);
|
|
30
|
+
}
|
|
31
|
+
if (writeJsonFileError === void 0) writeJsonFileError = new WriteJsonFileError(error);
|
|
32
|
+
return _duplojs_lang_either.left("file-system-write-json-file-error", writeJsonFileError);
|
|
33
|
+
}
|
|
34
|
+
function handleDenoWriteJsonFileError(error) {
|
|
35
|
+
let writeJsonFileError = void 0;
|
|
36
|
+
if (error instanceof Deno.errors.NotFound) writeJsonFileError = new WriteJsonFileErrorNotFound(error);
|
|
37
|
+
else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) writeJsonFileError = new WriteJsonFileErrorPermissionDenied(error);
|
|
38
|
+
else if (error instanceof Deno.errors.IsADirectory) writeJsonFileError = new WriteJsonFileErrorIsDirectory(error);
|
|
39
|
+
else if (error instanceof Deno.errors.NotADirectory) writeJsonFileError = new WriteJsonFileErrorNotDirectory(error);
|
|
40
|
+
else if (error instanceof Deno.errors.InvalidData) writeJsonFileError = new WriteJsonFileErrorInvalidArgument(error);
|
|
41
|
+
else if (error instanceof Deno.errors.Busy) writeJsonFileError = new WriteJsonFileErrorBusy(error);
|
|
42
|
+
if (writeJsonFileError === void 0) writeJsonFileError = new WriteJsonFileError(error);
|
|
43
|
+
return _duplojs_lang_either.left("file-system-write-json-file-error", writeJsonFileError);
|
|
44
|
+
}
|
|
45
|
+
const writeJsonFileImplementation = require_implementor.implementFunction("writeJsonFile", {
|
|
46
|
+
NODE: async (path, data, params) => _duplojs_lang_common.pipe(_duplojs_lang_either.safeCallback(() => JSON.stringify(data, null, params?.space)), _duplojs_lang_either.matchInformation({
|
|
47
|
+
"safe-callback-error": (value) => _duplojs_lang_either.left("file-system-write-json-file-error", new WriteJsonFileError(value)),
|
|
48
|
+
"safe-callback-success": (value) => require_implementor.nodeFileSystem.value.writeFile(path, value, { encoding: "utf-8" }).then(() => _duplojs_lang_either.right("file-system-write-json-file")).catch(handleNodeWriteJsonFileError)
|
|
49
|
+
})),
|
|
50
|
+
DENO: async (path, data, params) => _duplojs_lang_common.pipe(_duplojs_lang_either.safeCallback(() => JSON.stringify(data, null, params?.space)), _duplojs_lang_either.matchInformation({
|
|
51
|
+
"safe-callback-error": (value) => _duplojs_lang_either.left("file-system-write-json-file-error", new WriteJsonFileError(value)),
|
|
52
|
+
"safe-callback-success": (value) => Deno.writeTextFile(path, value).then(() => _duplojs_lang_either.right("file-system-write-json-file")).catch(handleDenoWriteJsonFileError)
|
|
53
|
+
})),
|
|
54
|
+
BUN: async (path, data, params) => _duplojs_lang_common.pipe(_duplojs_lang_either.safeCallback(() => JSON.stringify(data, null, params?.space)), _duplojs_lang_either.matchInformation({
|
|
55
|
+
"safe-callback-error": (value) => _duplojs_lang_either.left("file-system-write-json-file-error", new WriteJsonFileError(value)),
|
|
56
|
+
"safe-callback-success": (value) => Bun.file(path).write(value).then(() => _duplojs_lang_either.right("file-system-write-json-file")).catch(handleNodeWriteJsonFileError)
|
|
57
|
+
}))
|
|
58
|
+
});
|
|
59
|
+
function writeJsonFile(...args) {
|
|
60
|
+
if (args.length === 1) {
|
|
61
|
+
const [data] = args;
|
|
62
|
+
return (path) => writeJsonFileImplementation(path, data);
|
|
63
|
+
}
|
|
64
|
+
return writeJsonFileImplementation(...args);
|
|
65
|
+
}
|
|
66
|
+
//#endregion
|
|
67
|
+
exports.WriteJsonFileError = WriteJsonFileError;
|
|
68
|
+
exports.WriteJsonFileErrorBusy = WriteJsonFileErrorBusy;
|
|
69
|
+
exports.WriteJsonFileErrorInvalidArgument = WriteJsonFileErrorInvalidArgument;
|
|
70
|
+
exports.WriteJsonFileErrorIsDirectory = WriteJsonFileErrorIsDirectory;
|
|
71
|
+
exports.WriteJsonFileErrorNoSpace = WriteJsonFileErrorNoSpace;
|
|
72
|
+
exports.WriteJsonFileErrorNotDirectory = WriteJsonFileErrorNotDirectory;
|
|
73
|
+
exports.WriteJsonFileErrorNotFound = WriteJsonFileErrorNotFound;
|
|
74
|
+
exports.WriteJsonFileErrorPermissionDenied = WriteJsonFileErrorPermissionDenied;
|
|
75
|
+
exports.WriteJsonFileErrorReadOnly = WriteJsonFileErrorReadOnly;
|
|
76
|
+
exports.WriteJsonFileErrorTooManyOpenFiles = WriteJsonFileErrorTooManyOpenFiles;
|
|
77
|
+
exports.writeJsonFile = writeJsonFile;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
2
|
+
import * as DEither from "@duplojs/lang/either";
|
|
3
|
+
import type * as DPath from "@duplojs/lang/path";
|
|
4
|
+
interface WriteJsonFileParams {
|
|
5
|
+
space?: number;
|
|
6
|
+
}
|
|
7
|
+
declare const WriteJsonFileErrorNotFound_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-json-file-not-found", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-json-file-not-found", unknown>>, unknown>;
|
|
8
|
+
export declare class WriteJsonFileErrorNotFound extends WriteJsonFileErrorNotFound_base {
|
|
9
|
+
}
|
|
10
|
+
declare const WriteJsonFileErrorPermissionDenied_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-json-file-permission-denied", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-json-file-permission-denied", unknown>>, unknown>;
|
|
11
|
+
export declare class WriteJsonFileErrorPermissionDenied extends WriteJsonFileErrorPermissionDenied_base {
|
|
12
|
+
}
|
|
13
|
+
declare const WriteJsonFileErrorIsDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-json-file-is-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-json-file-is-directory", unknown>>, unknown>;
|
|
14
|
+
export declare class WriteJsonFileErrorIsDirectory extends WriteJsonFileErrorIsDirectory_base {
|
|
15
|
+
}
|
|
16
|
+
declare const WriteJsonFileErrorNotDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-json-file-not-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-json-file-not-directory", unknown>>, unknown>;
|
|
17
|
+
export declare class WriteJsonFileErrorNotDirectory extends WriteJsonFileErrorNotDirectory_base {
|
|
18
|
+
}
|
|
19
|
+
declare const WriteJsonFileErrorNoSpace_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-json-file-no-space", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-json-file-no-space", unknown>>, unknown>;
|
|
20
|
+
export declare class WriteJsonFileErrorNoSpace extends WriteJsonFileErrorNoSpace_base {
|
|
21
|
+
}
|
|
22
|
+
declare const WriteJsonFileErrorReadOnly_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-json-file-read-only", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-json-file-read-only", unknown>>, unknown>;
|
|
23
|
+
export declare class WriteJsonFileErrorReadOnly extends WriteJsonFileErrorReadOnly_base {
|
|
24
|
+
}
|
|
25
|
+
declare const WriteJsonFileErrorInvalidArgument_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-json-file-invalid-argument", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-json-file-invalid-argument", unknown>>, unknown>;
|
|
26
|
+
export declare class WriteJsonFileErrorInvalidArgument extends WriteJsonFileErrorInvalidArgument_base {
|
|
27
|
+
}
|
|
28
|
+
declare const WriteJsonFileErrorTooManyOpenFiles_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-json-file-too-many-open-files", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-json-file-too-many-open-files", unknown>>, unknown>;
|
|
29
|
+
export declare class WriteJsonFileErrorTooManyOpenFiles extends WriteJsonFileErrorTooManyOpenFiles_base {
|
|
30
|
+
}
|
|
31
|
+
declare const WriteJsonFileErrorBusy_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-json-file-busy", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-json-file-busy", unknown>>, unknown>;
|
|
32
|
+
export declare class WriteJsonFileErrorBusy extends WriteJsonFileErrorBusy_base {
|
|
33
|
+
}
|
|
34
|
+
declare const WriteJsonFileError_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-json-file-error", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-json-file-error", unknown>>, unknown>;
|
|
35
|
+
export declare class WriteJsonFileError extends WriteJsonFileError_base {
|
|
36
|
+
}
|
|
37
|
+
export type WriteJsonFileErrors = (WriteJsonFileErrorNotFound | WriteJsonFileErrorPermissionDenied | WriteJsonFileErrorIsDirectory | WriteJsonFileErrorNotDirectory | WriteJsonFileErrorNoSpace | WriteJsonFileErrorReadOnly | WriteJsonFileErrorInvalidArgument | WriteJsonFileErrorTooManyOpenFiles | WriteJsonFileErrorBusy | WriteJsonFileError);
|
|
38
|
+
export type WriteJsonFileResult = (DEither.Right<"file-system-write-json-file", void> | DEither.Left<"file-system-write-json-file-error", WriteJsonFileErrors>);
|
|
39
|
+
declare module '../implementor' {
|
|
40
|
+
interface ServerFunction {
|
|
41
|
+
writeJsonFile(path: DPath.AnyPath, data: unknown, params?: WriteJsonFileParams): Promise<WriteJsonFileResult>;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export declare function writeJsonFile(data: unknown): (path: DPath.AnyPath) => Promise<WriteJsonFileResult>;
|
|
45
|
+
export declare function writeJsonFile(path: DPath.AnyPath, data: unknown, params?: WriteJsonFileParams): Promise<WriteJsonFileResult>;
|
|
46
|
+
export {};
|
|
@@ -0,0 +1,64 @@
|
|
|
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/writeJsonFile.ts
|
|
5
|
+
var WriteJsonFileErrorNotFound = class extends DCommon.DuploJSError.parentClass("file-system-write-json-file-not-found", Error) {};
|
|
6
|
+
var WriteJsonFileErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-write-json-file-permission-denied", Error) {};
|
|
7
|
+
var WriteJsonFileErrorIsDirectory = class extends DCommon.DuploJSError.parentClass("file-system-write-json-file-is-directory", Error) {};
|
|
8
|
+
var WriteJsonFileErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-write-json-file-not-directory", Error) {};
|
|
9
|
+
var WriteJsonFileErrorNoSpace = class extends DCommon.DuploJSError.parentClass("file-system-write-json-file-no-space", Error) {};
|
|
10
|
+
var WriteJsonFileErrorReadOnly = class extends DCommon.DuploJSError.parentClass("file-system-write-json-file-read-only", Error) {};
|
|
11
|
+
var WriteJsonFileErrorInvalidArgument = class extends DCommon.DuploJSError.parentClass("file-system-write-json-file-invalid-argument", Error) {};
|
|
12
|
+
var WriteJsonFileErrorTooManyOpenFiles = class extends DCommon.DuploJSError.parentClass("file-system-write-json-file-too-many-open-files", Error) {};
|
|
13
|
+
var WriteJsonFileErrorBusy = class extends DCommon.DuploJSError.parentClass("file-system-write-json-file-busy", Error) {};
|
|
14
|
+
var WriteJsonFileError = class extends DCommon.DuploJSError.parentClass("file-system-write-json-file-error", Error) {};
|
|
15
|
+
function handleNodeWriteJsonFileError(error) {
|
|
16
|
+
let writeJsonFileError = void 0;
|
|
17
|
+
if ("code" in error) {
|
|
18
|
+
if (error.code === "ENOENT") writeJsonFileError = new WriteJsonFileErrorNotFound(error);
|
|
19
|
+
else if (error.code === "EACCES" || error.code === "EPERM") writeJsonFileError = new WriteJsonFileErrorPermissionDenied(error);
|
|
20
|
+
else if (error.code === "EISDIR") writeJsonFileError = new WriteJsonFileErrorIsDirectory(error);
|
|
21
|
+
else if (error.code === "ENOTDIR") writeJsonFileError = new WriteJsonFileErrorNotDirectory(error);
|
|
22
|
+
else if (error.code === "ENOSPC") writeJsonFileError = new WriteJsonFileErrorNoSpace(error);
|
|
23
|
+
else if (error.code === "EROFS") writeJsonFileError = new WriteJsonFileErrorReadOnly(error);
|
|
24
|
+
else if (error.code === "EINVAL") writeJsonFileError = new WriteJsonFileErrorInvalidArgument(error);
|
|
25
|
+
else if (error.code === "EMFILE" || error.code === "ENFILE") writeJsonFileError = new WriteJsonFileErrorTooManyOpenFiles(error);
|
|
26
|
+
else if (error.code === "EBUSY") writeJsonFileError = new WriteJsonFileErrorBusy(error);
|
|
27
|
+
}
|
|
28
|
+
if (writeJsonFileError === void 0) writeJsonFileError = new WriteJsonFileError(error);
|
|
29
|
+
return DEither.left("file-system-write-json-file-error", writeJsonFileError);
|
|
30
|
+
}
|
|
31
|
+
function handleDenoWriteJsonFileError(error) {
|
|
32
|
+
let writeJsonFileError = void 0;
|
|
33
|
+
if (error instanceof Deno.errors.NotFound) writeJsonFileError = new WriteJsonFileErrorNotFound(error);
|
|
34
|
+
else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) writeJsonFileError = new WriteJsonFileErrorPermissionDenied(error);
|
|
35
|
+
else if (error instanceof Deno.errors.IsADirectory) writeJsonFileError = new WriteJsonFileErrorIsDirectory(error);
|
|
36
|
+
else if (error instanceof Deno.errors.NotADirectory) writeJsonFileError = new WriteJsonFileErrorNotDirectory(error);
|
|
37
|
+
else if (error instanceof Deno.errors.InvalidData) writeJsonFileError = new WriteJsonFileErrorInvalidArgument(error);
|
|
38
|
+
else if (error instanceof Deno.errors.Busy) writeJsonFileError = new WriteJsonFileErrorBusy(error);
|
|
39
|
+
if (writeJsonFileError === void 0) writeJsonFileError = new WriteJsonFileError(error);
|
|
40
|
+
return DEither.left("file-system-write-json-file-error", writeJsonFileError);
|
|
41
|
+
}
|
|
42
|
+
const writeJsonFileImplementation = implementFunction("writeJsonFile", {
|
|
43
|
+
NODE: async (path, data, params) => DCommon.pipe(DEither.safeCallback(() => JSON.stringify(data, null, params?.space)), DEither.matchInformation({
|
|
44
|
+
"safe-callback-error": (value) => DEither.left("file-system-write-json-file-error", new WriteJsonFileError(value)),
|
|
45
|
+
"safe-callback-success": (value) => nodeFileSystem.value.writeFile(path, value, { encoding: "utf-8" }).then(() => DEither.right("file-system-write-json-file")).catch(handleNodeWriteJsonFileError)
|
|
46
|
+
})),
|
|
47
|
+
DENO: async (path, data, params) => DCommon.pipe(DEither.safeCallback(() => JSON.stringify(data, null, params?.space)), DEither.matchInformation({
|
|
48
|
+
"safe-callback-error": (value) => DEither.left("file-system-write-json-file-error", new WriteJsonFileError(value)),
|
|
49
|
+
"safe-callback-success": (value) => Deno.writeTextFile(path, value).then(() => DEither.right("file-system-write-json-file")).catch(handleDenoWriteJsonFileError)
|
|
50
|
+
})),
|
|
51
|
+
BUN: async (path, data, params) => DCommon.pipe(DEither.safeCallback(() => JSON.stringify(data, null, params?.space)), DEither.matchInformation({
|
|
52
|
+
"safe-callback-error": (value) => DEither.left("file-system-write-json-file-error", new WriteJsonFileError(value)),
|
|
53
|
+
"safe-callback-success": (value) => Bun.file(path).write(value).then(() => DEither.right("file-system-write-json-file")).catch(handleNodeWriteJsonFileError)
|
|
54
|
+
}))
|
|
55
|
+
});
|
|
56
|
+
function writeJsonFile(...args) {
|
|
57
|
+
if (args.length === 1) {
|
|
58
|
+
const [data] = args;
|
|
59
|
+
return (path) => writeJsonFileImplementation(path, data);
|
|
60
|
+
}
|
|
61
|
+
return writeJsonFileImplementation(...args);
|
|
62
|
+
}
|
|
63
|
+
//#endregion
|
|
64
|
+
export { WriteJsonFileError, WriteJsonFileErrorBusy, WriteJsonFileErrorInvalidArgument, WriteJsonFileErrorIsDirectory, WriteJsonFileErrorNoSpace, WriteJsonFileErrorNotDirectory, WriteJsonFileErrorNotFound, WriteJsonFileErrorPermissionDenied, WriteJsonFileErrorReadOnly, WriteJsonFileErrorTooManyOpenFiles, writeJsonFile };
|
|
@@ -0,0 +1,68 @@
|
|
|
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/writeTextFile.ts
|
|
8
|
+
var WriteTextFileErrorNotFound = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-text-file-not-found", Error) {};
|
|
9
|
+
var WriteTextFileErrorPermissionDenied = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-text-file-permission-denied", Error) {};
|
|
10
|
+
var WriteTextFileErrorIsDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-text-file-is-directory", Error) {};
|
|
11
|
+
var WriteTextFileErrorNotDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-text-file-not-directory", Error) {};
|
|
12
|
+
var WriteTextFileErrorNoSpace = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-text-file-no-space", Error) {};
|
|
13
|
+
var WriteTextFileErrorReadOnly = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-text-file-read-only", Error) {};
|
|
14
|
+
var WriteTextFileErrorInvalidArgument = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-text-file-invalid-argument", Error) {};
|
|
15
|
+
var WriteTextFileErrorTooManyOpenFiles = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-text-file-too-many-open-files", Error) {};
|
|
16
|
+
var WriteTextFileErrorBusy = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-text-file-busy", Error) {};
|
|
17
|
+
var WriteTextFileError = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-write-text-file-error", Error) {};
|
|
18
|
+
function handleNodeWriteTextFileError(error) {
|
|
19
|
+
let writeTextFileError = void 0;
|
|
20
|
+
if ("code" in error) {
|
|
21
|
+
if (error.code === "ENOENT") writeTextFileError = new WriteTextFileErrorNotFound(error);
|
|
22
|
+
else if (error.code === "EACCES" || error.code === "EPERM") writeTextFileError = new WriteTextFileErrorPermissionDenied(error);
|
|
23
|
+
else if (error.code === "EISDIR") writeTextFileError = new WriteTextFileErrorIsDirectory(error);
|
|
24
|
+
else if (error.code === "ENOTDIR") writeTextFileError = new WriteTextFileErrorNotDirectory(error);
|
|
25
|
+
else if (error.code === "ENOSPC") writeTextFileError = new WriteTextFileErrorNoSpace(error);
|
|
26
|
+
else if (error.code === "EROFS") writeTextFileError = new WriteTextFileErrorReadOnly(error);
|
|
27
|
+
else if (error.code === "EINVAL") writeTextFileError = new WriteTextFileErrorInvalidArgument(error);
|
|
28
|
+
else if (error.code === "EMFILE" || error.code === "ENFILE") writeTextFileError = new WriteTextFileErrorTooManyOpenFiles(error);
|
|
29
|
+
else if (error.code === "EBUSY") writeTextFileError = new WriteTextFileErrorBusy(error);
|
|
30
|
+
}
|
|
31
|
+
if (writeTextFileError === void 0) writeTextFileError = new WriteTextFileError(error);
|
|
32
|
+
return _duplojs_lang_either.left("file-system-write-text-file-error", writeTextFileError);
|
|
33
|
+
}
|
|
34
|
+
function handleDenoWriteTextFileError(error) {
|
|
35
|
+
let writeTextFileError = void 0;
|
|
36
|
+
if (error instanceof Deno.errors.NotFound) writeTextFileError = new WriteTextFileErrorNotFound(error);
|
|
37
|
+
else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) writeTextFileError = new WriteTextFileErrorPermissionDenied(error);
|
|
38
|
+
else if (error instanceof Deno.errors.IsADirectory) writeTextFileError = new WriteTextFileErrorIsDirectory(error);
|
|
39
|
+
else if (error instanceof Deno.errors.NotADirectory) writeTextFileError = new WriteTextFileErrorNotDirectory(error);
|
|
40
|
+
else if (error instanceof Deno.errors.InvalidData) writeTextFileError = new WriteTextFileErrorInvalidArgument(error);
|
|
41
|
+
else if (error instanceof Deno.errors.Busy) writeTextFileError = new WriteTextFileErrorBusy(error);
|
|
42
|
+
if (writeTextFileError === void 0) writeTextFileError = new WriteTextFileError(error);
|
|
43
|
+
return _duplojs_lang_either.left("file-system-write-text-file-error", writeTextFileError);
|
|
44
|
+
}
|
|
45
|
+
const writeTextFileImplementation = require_implementor.implementFunction("writeTextFile", {
|
|
46
|
+
NODE: async (path, data) => require_implementor.nodeFileSystem.value.writeFile(path, data, { encoding: "utf-8" }).then(() => _duplojs_lang_either.right("file-system-write-text-file")).catch(handleNodeWriteTextFileError),
|
|
47
|
+
DENO: (path, data) => Deno.writeTextFile(path, data).then(() => _duplojs_lang_either.right("file-system-write-text-file")).catch(handleDenoWriteTextFileError),
|
|
48
|
+
BUN: (path, data) => Bun.file(path).write(data).then(() => _duplojs_lang_either.right("file-system-write-text-file")).catch(handleNodeWriteTextFileError)
|
|
49
|
+
});
|
|
50
|
+
function writeTextFile(...args) {
|
|
51
|
+
if (args.length === 1) {
|
|
52
|
+
const [data] = args;
|
|
53
|
+
return (path) => writeTextFileImplementation(path, data);
|
|
54
|
+
}
|
|
55
|
+
return writeTextFileImplementation(...args);
|
|
56
|
+
}
|
|
57
|
+
//#endregion
|
|
58
|
+
exports.WriteTextFileError = WriteTextFileError;
|
|
59
|
+
exports.WriteTextFileErrorBusy = WriteTextFileErrorBusy;
|
|
60
|
+
exports.WriteTextFileErrorInvalidArgument = WriteTextFileErrorInvalidArgument;
|
|
61
|
+
exports.WriteTextFileErrorIsDirectory = WriteTextFileErrorIsDirectory;
|
|
62
|
+
exports.WriteTextFileErrorNoSpace = WriteTextFileErrorNoSpace;
|
|
63
|
+
exports.WriteTextFileErrorNotDirectory = WriteTextFileErrorNotDirectory;
|
|
64
|
+
exports.WriteTextFileErrorNotFound = WriteTextFileErrorNotFound;
|
|
65
|
+
exports.WriteTextFileErrorPermissionDenied = WriteTextFileErrorPermissionDenied;
|
|
66
|
+
exports.WriteTextFileErrorReadOnly = WriteTextFileErrorReadOnly;
|
|
67
|
+
exports.WriteTextFileErrorTooManyOpenFiles = WriteTextFileErrorTooManyOpenFiles;
|
|
68
|
+
exports.writeTextFile = writeTextFile;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
2
|
+
import * as DEither from "@duplojs/lang/either";
|
|
3
|
+
import type * as DPath from "@duplojs/lang/path";
|
|
4
|
+
declare const WriteTextFileErrorNotFound_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-text-file-not-found", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-text-file-not-found", unknown>>, unknown>;
|
|
5
|
+
export declare class WriteTextFileErrorNotFound extends WriteTextFileErrorNotFound_base {
|
|
6
|
+
}
|
|
7
|
+
declare const WriteTextFileErrorPermissionDenied_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-text-file-permission-denied", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-text-file-permission-denied", unknown>>, unknown>;
|
|
8
|
+
export declare class WriteTextFileErrorPermissionDenied extends WriteTextFileErrorPermissionDenied_base {
|
|
9
|
+
}
|
|
10
|
+
declare const WriteTextFileErrorIsDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-text-file-is-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-text-file-is-directory", unknown>>, unknown>;
|
|
11
|
+
export declare class WriteTextFileErrorIsDirectory extends WriteTextFileErrorIsDirectory_base {
|
|
12
|
+
}
|
|
13
|
+
declare const WriteTextFileErrorNotDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-text-file-not-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-text-file-not-directory", unknown>>, unknown>;
|
|
14
|
+
export declare class WriteTextFileErrorNotDirectory extends WriteTextFileErrorNotDirectory_base {
|
|
15
|
+
}
|
|
16
|
+
declare const WriteTextFileErrorNoSpace_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-text-file-no-space", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-text-file-no-space", unknown>>, unknown>;
|
|
17
|
+
export declare class WriteTextFileErrorNoSpace extends WriteTextFileErrorNoSpace_base {
|
|
18
|
+
}
|
|
19
|
+
declare const WriteTextFileErrorReadOnly_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-text-file-read-only", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-text-file-read-only", unknown>>, unknown>;
|
|
20
|
+
export declare class WriteTextFileErrorReadOnly extends WriteTextFileErrorReadOnly_base {
|
|
21
|
+
}
|
|
22
|
+
declare const WriteTextFileErrorInvalidArgument_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-text-file-invalid-argument", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-text-file-invalid-argument", unknown>>, unknown>;
|
|
23
|
+
export declare class WriteTextFileErrorInvalidArgument extends WriteTextFileErrorInvalidArgument_base {
|
|
24
|
+
}
|
|
25
|
+
declare const WriteTextFileErrorTooManyOpenFiles_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-text-file-too-many-open-files", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-text-file-too-many-open-files", unknown>>, unknown>;
|
|
26
|
+
export declare class WriteTextFileErrorTooManyOpenFiles extends WriteTextFileErrorTooManyOpenFiles_base {
|
|
27
|
+
}
|
|
28
|
+
declare const WriteTextFileErrorBusy_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-text-file-busy", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-text-file-busy", unknown>>, unknown>;
|
|
29
|
+
export declare class WriteTextFileErrorBusy extends WriteTextFileErrorBusy_base {
|
|
30
|
+
}
|
|
31
|
+
declare const WriteTextFileError_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-write-text-file-error", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-write-text-file-error", unknown>>, unknown>;
|
|
32
|
+
export declare class WriteTextFileError extends WriteTextFileError_base {
|
|
33
|
+
}
|
|
34
|
+
export type WriteTextFileErrors = (WriteTextFileErrorNotFound | WriteTextFileErrorPermissionDenied | WriteTextFileErrorIsDirectory | WriteTextFileErrorNotDirectory | WriteTextFileErrorNoSpace | WriteTextFileErrorReadOnly | WriteTextFileErrorInvalidArgument | WriteTextFileErrorTooManyOpenFiles | WriteTextFileErrorBusy | WriteTextFileError);
|
|
35
|
+
export type WriteTextFileResult = (DEither.Right<"file-system-write-text-file", void> | DEither.Left<"file-system-write-text-file-error", WriteTextFileErrors>);
|
|
36
|
+
declare module '../implementor' {
|
|
37
|
+
interface ServerFunction {
|
|
38
|
+
writeTextFile(path: DPath.AnyPath, data: string): Promise<WriteTextFileResult>;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export declare function writeTextFile(data: string): (path: DPath.AnyPath) => Promise<WriteTextFileResult>;
|
|
42
|
+
export declare function writeTextFile(path: DPath.AnyPath, data: string): Promise<WriteTextFileResult>;
|
|
43
|
+
export {};
|
|
@@ -0,0 +1,55 @@
|
|
|
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/writeTextFile.ts
|
|
5
|
+
var WriteTextFileErrorNotFound = class extends DCommon.DuploJSError.parentClass("file-system-write-text-file-not-found", Error) {};
|
|
6
|
+
var WriteTextFileErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-write-text-file-permission-denied", Error) {};
|
|
7
|
+
var WriteTextFileErrorIsDirectory = class extends DCommon.DuploJSError.parentClass("file-system-write-text-file-is-directory", Error) {};
|
|
8
|
+
var WriteTextFileErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-write-text-file-not-directory", Error) {};
|
|
9
|
+
var WriteTextFileErrorNoSpace = class extends DCommon.DuploJSError.parentClass("file-system-write-text-file-no-space", Error) {};
|
|
10
|
+
var WriteTextFileErrorReadOnly = class extends DCommon.DuploJSError.parentClass("file-system-write-text-file-read-only", Error) {};
|
|
11
|
+
var WriteTextFileErrorInvalidArgument = class extends DCommon.DuploJSError.parentClass("file-system-write-text-file-invalid-argument", Error) {};
|
|
12
|
+
var WriteTextFileErrorTooManyOpenFiles = class extends DCommon.DuploJSError.parentClass("file-system-write-text-file-too-many-open-files", Error) {};
|
|
13
|
+
var WriteTextFileErrorBusy = class extends DCommon.DuploJSError.parentClass("file-system-write-text-file-busy", Error) {};
|
|
14
|
+
var WriteTextFileError = class extends DCommon.DuploJSError.parentClass("file-system-write-text-file-error", Error) {};
|
|
15
|
+
function handleNodeWriteTextFileError(error) {
|
|
16
|
+
let writeTextFileError = void 0;
|
|
17
|
+
if ("code" in error) {
|
|
18
|
+
if (error.code === "ENOENT") writeTextFileError = new WriteTextFileErrorNotFound(error);
|
|
19
|
+
else if (error.code === "EACCES" || error.code === "EPERM") writeTextFileError = new WriteTextFileErrorPermissionDenied(error);
|
|
20
|
+
else if (error.code === "EISDIR") writeTextFileError = new WriteTextFileErrorIsDirectory(error);
|
|
21
|
+
else if (error.code === "ENOTDIR") writeTextFileError = new WriteTextFileErrorNotDirectory(error);
|
|
22
|
+
else if (error.code === "ENOSPC") writeTextFileError = new WriteTextFileErrorNoSpace(error);
|
|
23
|
+
else if (error.code === "EROFS") writeTextFileError = new WriteTextFileErrorReadOnly(error);
|
|
24
|
+
else if (error.code === "EINVAL") writeTextFileError = new WriteTextFileErrorInvalidArgument(error);
|
|
25
|
+
else if (error.code === "EMFILE" || error.code === "ENFILE") writeTextFileError = new WriteTextFileErrorTooManyOpenFiles(error);
|
|
26
|
+
else if (error.code === "EBUSY") writeTextFileError = new WriteTextFileErrorBusy(error);
|
|
27
|
+
}
|
|
28
|
+
if (writeTextFileError === void 0) writeTextFileError = new WriteTextFileError(error);
|
|
29
|
+
return DEither.left("file-system-write-text-file-error", writeTextFileError);
|
|
30
|
+
}
|
|
31
|
+
function handleDenoWriteTextFileError(error) {
|
|
32
|
+
let writeTextFileError = void 0;
|
|
33
|
+
if (error instanceof Deno.errors.NotFound) writeTextFileError = new WriteTextFileErrorNotFound(error);
|
|
34
|
+
else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) writeTextFileError = new WriteTextFileErrorPermissionDenied(error);
|
|
35
|
+
else if (error instanceof Deno.errors.IsADirectory) writeTextFileError = new WriteTextFileErrorIsDirectory(error);
|
|
36
|
+
else if (error instanceof Deno.errors.NotADirectory) writeTextFileError = new WriteTextFileErrorNotDirectory(error);
|
|
37
|
+
else if (error instanceof Deno.errors.InvalidData) writeTextFileError = new WriteTextFileErrorInvalidArgument(error);
|
|
38
|
+
else if (error instanceof Deno.errors.Busy) writeTextFileError = new WriteTextFileErrorBusy(error);
|
|
39
|
+
if (writeTextFileError === void 0) writeTextFileError = new WriteTextFileError(error);
|
|
40
|
+
return DEither.left("file-system-write-text-file-error", writeTextFileError);
|
|
41
|
+
}
|
|
42
|
+
const writeTextFileImplementation = implementFunction("writeTextFile", {
|
|
43
|
+
NODE: async (path, data) => nodeFileSystem.value.writeFile(path, data, { encoding: "utf-8" }).then(() => DEither.right("file-system-write-text-file")).catch(handleNodeWriteTextFileError),
|
|
44
|
+
DENO: (path, data) => Deno.writeTextFile(path, data).then(() => DEither.right("file-system-write-text-file")).catch(handleDenoWriteTextFileError),
|
|
45
|
+
BUN: (path, data) => Bun.file(path).write(data).then(() => DEither.right("file-system-write-text-file")).catch(handleNodeWriteTextFileError)
|
|
46
|
+
});
|
|
47
|
+
function writeTextFile(...args) {
|
|
48
|
+
if (args.length === 1) {
|
|
49
|
+
const [data] = args;
|
|
50
|
+
return (path) => writeTextFileImplementation(path, data);
|
|
51
|
+
}
|
|
52
|
+
return writeTextFileImplementation(...args);
|
|
53
|
+
}
|
|
54
|
+
//#endregion
|
|
55
|
+
export { WriteTextFileError, WriteTextFileErrorBusy, WriteTextFileErrorInvalidArgument, WriteTextFileErrorIsDirectory, WriteTextFileErrorNoSpace, WriteTextFileErrorNotDirectory, WriteTextFileErrorNotFound, WriteTextFileErrorPermissionDenied, WriteTextFileErrorReadOnly, WriteTextFileErrorTooManyOpenFiles, writeTextFile };
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
const require_runtime = require("./_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
let _duplojs_lang_common = require("@duplojs/lang/common");
|
|
3
|
+
_duplojs_lang_common = require_runtime.__toESM(_duplojs_lang_common, 1);
|
|
4
|
+
let _duplojs_lang_pattern = require("@duplojs/lang/pattern");
|
|
5
|
+
_duplojs_lang_pattern = require_runtime.__toESM(_duplojs_lang_pattern, 1);
|
|
6
|
+
_duplojs_lang_common.createEnum([
|
|
7
|
+
"BUN",
|
|
8
|
+
"DENO",
|
|
9
|
+
"NODE",
|
|
10
|
+
"TEST"
|
|
11
|
+
]);
|
|
12
|
+
const SymbolEnvironmentStore = Symbol("environmentStore");
|
|
13
|
+
const environmentStoreHandler = _duplojs_lang_common.createGlobalStore(SymbolEnvironmentStore, _duplojs_lang_common.justExec(() => {
|
|
14
|
+
if (typeof Deno !== "undefined") return "DENO";
|
|
15
|
+
if (typeof Bun !== "undefined") return "BUN";
|
|
16
|
+
if (typeof process !== "undefined" && process.versions?.node) return "NODE";
|
|
17
|
+
return "NODE";
|
|
18
|
+
}));
|
|
19
|
+
function setEnvironment(environment) {
|
|
20
|
+
environmentStoreHandler.set(environment);
|
|
21
|
+
}
|
|
22
|
+
let TESTImplementation;
|
|
23
|
+
(function(_TESTImplementation) {
|
|
24
|
+
const store = /* @__PURE__ */ new Map();
|
|
25
|
+
function clear() {
|
|
26
|
+
store.clear();
|
|
27
|
+
}
|
|
28
|
+
_TESTImplementation.clear = clear;
|
|
29
|
+
function set(functionName, theFunction) {
|
|
30
|
+
store.set(functionName, theFunction);
|
|
31
|
+
return theFunction;
|
|
32
|
+
}
|
|
33
|
+
_TESTImplementation.set = set;
|
|
34
|
+
function get(functionName) {
|
|
35
|
+
return store.get(functionName);
|
|
36
|
+
}
|
|
37
|
+
_TESTImplementation.get = get;
|
|
38
|
+
})(TESTImplementation || (TESTImplementation = {}));
|
|
39
|
+
function implementFunction(functionName, theFunctions) {
|
|
40
|
+
const environmentFunctions = {
|
|
41
|
+
NODE: theFunctions.NODE,
|
|
42
|
+
BUN: theFunctions.BUN ||= theFunctions.NODE,
|
|
43
|
+
DENO: theFunctions.DENO ||= theFunctions.NODE,
|
|
44
|
+
get TEST() {
|
|
45
|
+
const theFunction = TESTImplementation.get(functionName);
|
|
46
|
+
if (!theFunction) throw new Error(`Missing function implementation "${functionName}" in TEST environment.`);
|
|
47
|
+
return theFunction;
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
return (...args) => environmentFunctions[environmentStoreHandler.value](...args);
|
|
51
|
+
}
|
|
52
|
+
const requireModule = _duplojs_lang_common.memo(() => _duplojs_lang_pattern.matchWithStringOtherwise(environmentStoreHandler.value, { BUN: () => require }, () => process.getBuiltinModule));
|
|
53
|
+
const nodeFileSystem = _duplojs_lang_common.memo(() => requireModule.value("node:fs/promises"));
|
|
54
|
+
const nodeCrypto = _duplojs_lang_common.memo(() => requireModule.value("node:crypto"));
|
|
55
|
+
const nodeOs = _duplojs_lang_common.memo(() => requireModule.value("node:os"));
|
|
56
|
+
//#endregion
|
|
57
|
+
Object.defineProperty(exports, "TESTImplementation", {
|
|
58
|
+
enumerable: true,
|
|
59
|
+
get: function() {
|
|
60
|
+
return TESTImplementation;
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
exports.implementFunction = implementFunction;
|
|
64
|
+
exports.nodeCrypto = nodeCrypto;
|
|
65
|
+
exports.nodeFileSystem = nodeFileSystem;
|
|
66
|
+
exports.nodeOs = nodeOs;
|
|
67
|
+
exports.setEnvironment = setEnvironment;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
2
|
+
export interface ServerFunction {
|
|
3
|
+
}
|
|
4
|
+
export declare const SupportedEnvironment: {
|
|
5
|
+
BUN: "BUN";
|
|
6
|
+
DENO: "DENO";
|
|
7
|
+
NODE: "NODE";
|
|
8
|
+
TEST: "TEST";
|
|
9
|
+
toTuple: () => readonly ["BUN", "DENO", "NODE", "TEST"];
|
|
10
|
+
has: <GenericValue extends string>(value: GenericValue) => value is GenericValue & ("BUN" | "DENO" | "NODE" | "TEST");
|
|
11
|
+
contract: <GenericContractValue extends string = "BUN" | "DENO" | "NODE" | "TEST">(...args: (Exclude<"BUN", GenericContractValue> | Exclude<"DENO", GenericContractValue> | Exclude<"NODE", GenericContractValue> | Exclude<"TEST", GenericContractValue> extends infer InferredMissingValue extends string ? DCommon.IsNever<InferredMissingValue> extends true ? unknown : DCommon.ComputedTypeError<`Enum contract is missing value "${InferredMissingValue}".`> : never) & (Exclude<GenericContractValue, "BUN" | "DENO" | "NODE" | "TEST"> extends infer InferredUnknownValue extends string ? DCommon.IsNever<InferredUnknownValue> extends true ? unknown : DCommon.ComputedTypeError<`Enum contract contains unknown value "${InferredUnknownValue}".`> : never) extends infer InferredRequirement ? DCommon.IsEqual<InferredRequirement, unknown> extends true ? [] : [] & InferredRequirement : never) => /*elided*/ any;
|
|
12
|
+
};
|
|
13
|
+
export type SupportedEnvironment = DCommon.GetEnumValue<typeof SupportedEnvironment>;
|
|
14
|
+
declare const SymbolEnvironmentStore: unique symbol;
|
|
15
|
+
type SymbolEnvironmentStore = typeof SymbolEnvironmentStore;
|
|
16
|
+
declare module "@duplojs/lang" {
|
|
17
|
+
interface GlobalStore {
|
|
18
|
+
[SymbolEnvironmentStore]: SupportedEnvironment;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export declare function setEnvironment(environment: SupportedEnvironment): void;
|
|
22
|
+
export declare namespace TESTImplementation {
|
|
23
|
+
function clear(): void;
|
|
24
|
+
function set<GenericFunctionName extends keyof ServerFunction>(functionName: GenericFunctionName, theFunction: ServerFunction[GenericFunctionName]): ServerFunction[GenericFunctionName];
|
|
25
|
+
function get<GenericFunctionName extends keyof ServerFunction>(functionName: GenericFunctionName): ServerFunction[GenericFunctionName] | undefined;
|
|
26
|
+
}
|
|
27
|
+
export declare function implementFunction<GenericFunctionName extends keyof ServerFunction>(functionName: GenericFunctionName, theFunctions: {
|
|
28
|
+
NODE: ServerFunction[GenericFunctionName];
|
|
29
|
+
BUN?: ServerFunction[GenericFunctionName];
|
|
30
|
+
DENO?: ServerFunction[GenericFunctionName];
|
|
31
|
+
}): ServerFunction[GenericFunctionName];
|
|
32
|
+
export declare const nodeFileSystem: DCommon.Memoized<typeof import("node:fs/promises")>;
|
|
33
|
+
export declare const nodeCrypto: DCommon.Memoized<typeof import("node:crypto")>;
|
|
34
|
+
export declare const nodeOs: DCommon.Memoized<typeof import("node:os")>;
|
|
35
|
+
export {};
|