Skip to content

Commit a3453e2

Browse files
committed
fix: most tests except copy tests passing for electron
1 parent f28935c commit a3453e2

11 files changed

Lines changed: 164 additions & 125 deletions

dist/virtualfs-debug.js

Lines changed: 30 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -16571,6 +16571,7 @@ var $983f70f1027f6cfd$exports = {};
1657116571
*/ // jshint ignore: start
1657216572
/*eslint no-console: 0*/ /*eslint strict: ["error", "global"]*/ /* jshint ignore:start */ const $2ef5299e07961cfe$var$Constants = {
1657316573
MOUNT_DEVICE_NAME: "nativeFsAccess",
16574+
ELECTRON_DEVICE_NAME: "electron",
1657416575
TAURI_DEVICE_NAME: "tauri",
1657516576
TAURI_WS_DEVICE_NAME: "tauriWS",
1657616577
KIND_FILE: "file",
@@ -17149,7 +17150,7 @@ const $659ab4db13967c07$var$createFromTauriStat = function(vfsPath, stats) {
1714917150
};
1715017151
return new $659ab4db13967c07$var$Stats(vfsPath, fileDetails, `${$659ab4db13967c07$require$Constants.TAURI_DEVICE_NAME}_${stats.dev}`);
1715117152
};
17152-
const $659ab4db13967c07$var$createFromNodeStat = function(vfsPath, stats) {
17153+
const $659ab4db13967c07$var$createFromNodeStat = function(vfsPath, stats, deviceNamePrefix) {
1715317154
let type = $659ab4db13967c07$require$Constants.NODE_TYPE_DIRECTORY;
1715417155
if (stats.isFile) type = $659ab4db13967c07$require$Constants.NODE_TYPE_FILE;
1715517156
else if (stats.isSymbolicLink) type = $659ab4db13967c07$require$Constants.NODE_TYPE_SYMBOLIC_LINK;
@@ -17164,23 +17165,7 @@ const $659ab4db13967c07$var$createFromNodeStat = function(vfsPath, stats) {
1716417165
mtime: stats.mtimeMs,
1716517166
nlinks: stats.nlink
1716617167
};
17167-
return new $659ab4db13967c07$var$Stats(vfsPath, fileDetails, `${$659ab4db13967c07$require$Constants.TAURI_WS_DEVICE_NAME}_${stats.dev}`);
17168-
};
17169-
const $659ab4db13967c07$var$createFromElectronStat = function(vfsPath, stats) {
17170-
let type = $659ab4db13967c07$require$Constants.NODE_TYPE_DIRECTORY;
17171-
if (stats.isFile) type = $659ab4db13967c07$require$Constants.NODE_TYPE_FILE;
17172-
else if (stats.isSymbolicLink) type = $659ab4db13967c07$require$Constants.NODE_TYPE_SYMBOLIC_LINK;
17173-
let fileDetails = {
17174-
type: type,
17175-
size: stats.size,
17176-
mode: stats.mode,
17177-
readonly: false,
17178-
ctime: stats.ctimeMs,
17179-
atime: stats.atimeMs,
17180-
mtime: stats.mtimeMs,
17181-
nlinks: stats.nlink
17182-
};
17183-
return new $659ab4db13967c07$var$Stats(vfsPath, fileDetails, `${$659ab4db13967c07$require$Constants.TAURI_DEVICE_NAME}_${stats.dev}`);
17168+
return new $659ab4db13967c07$var$Stats(vfsPath, fileDetails, `${deviceNamePrefix}_${stats.dev}`);
1718417169
};
1718517170
function $659ab4db13967c07$var$validateFileOptions(options, enc, fileMode) {
1718617171
if (!options || typeof options === "function") options = {
@@ -17385,7 +17370,6 @@ const $659ab4db13967c07$var$Utils = {
1738517370
createDummyStatObject: $659ab4db13967c07$var$createDummyStatObject,
1738617371
createFromTauriStat: $659ab4db13967c07$var$createFromTauriStat,
1738717372
createFromNodeStat: $659ab4db13967c07$var$createFromNodeStat,
17388-
createFromElectronStat: $659ab4db13967c07$var$createFromElectronStat,
1738917373
isTauriSubPath: $659ab4db13967c07$var$isTauriSubPath,
1739017374
isTauriPath: $659ab4db13967c07$var$isTauriPath,
1739117375
getTauriPlatformPath: $659ab4db13967c07$var$getTauriPlatformPath,
@@ -18138,7 +18122,7 @@ function $17476582ace0b2bc$var$readdir(path, options, callback) {
1813818122
if (metadata.data.contents) callback(null, metadata.data.contents);
1813918123
else if (metadata.data.contentStats) {
1814018124
let stats = [];
18141-
for (let contentStat of metadata.data.contentStats)stats.push($17476582ace0b2bc$require$Utils.createFromNodeStat(`${path}/${contentStat.name}`, contentStat));
18125+
for (let contentStat of metadata.data.contentStats)stats.push($17476582ace0b2bc$require$Utils.createFromNodeStat(`${path}/${contentStat.name}`, contentStat, $17476582ace0b2bc$require$Constants.TAURI_WS_DEVICE_NAME));
1814218126
callback(null, stats);
1814318127
} else callback(new $17476582ace0b2bc$require$Errors.EIO("Failed readdir as node ws connector returned empty", path));
1814418128
}).catch((err)=>{
@@ -18150,7 +18134,7 @@ function $17476582ace0b2bc$var$stat(path, callback) {
1815018134
$17476582ace0b2bc$var$_execCommand($17476582ace0b2bc$var$WS_COMMAND.STAT, {
1815118135
path: platformPath
1815218136
}).then(({ metadata: metadata })=>{
18153-
callback(null, $17476582ace0b2bc$require$Utils.createFromNodeStat(`${path}/${metadata.data.stat.name}`, metadata.data.stat));
18137+
callback(null, $17476582ace0b2bc$require$Utils.createFromNodeStat(`${path}/${metadata.data.stat.name}`, metadata.data.stat, $17476582ace0b2bc$require$Constants.TAURI_WS_DEVICE_NAME));
1815418138
}).catch((err)=>{
1815518139
callback($17476582ace0b2bc$var$mapNodeTauriErrorMessage(err, path, "Failed to get stat: "));
1815618140
});
@@ -18829,6 +18813,20 @@ var $f1a90a4a391136ce$require$Utils = $659ab4db13967c07$exports.Utils;
1882918813
var $f1a90a4a391136ce$require$NodeTauriFS = $17476582ace0b2bc$exports.NodeTauriFS;
1883018814
const $f1a90a4a391136ce$var$IS_WINDOWS = navigator.userAgent.includes("Windows");
1883118815
let $f1a90a4a391136ce$var$preferNodeWs = false, $f1a90a4a391136ce$var$forceNodeWs = false;
18816+
/**
18817+
* Electron IPC strips Error.code during serialization (both main→preload and preload→renderer
18818+
* via contextBridge). FS handlers in main.js return {__fsError, code, message} plain objects
18819+
* on failure instead of throwing. This helper unwraps those into rejected promises.
18820+
*/ function $f1a90a4a391136ce$var$unwrapFsResult(promise) {
18821+
return promise.then((result)=>{
18822+
if (result && result.__fsError) {
18823+
const err = new Error(result.message);
18824+
err.code = result.code;
18825+
throw err;
18826+
}
18827+
return result;
18828+
});
18829+
}
1883218830
/**
1883318831
* Maps Node.js error codes to Phoenix FS errors.
1883418832
* @param {Error} err - The Node.js error
@@ -18929,8 +18927,8 @@ let $f1a90a4a391136ce$var$preferNodeWs = false, $f1a90a4a391136ce$var$forceNodeW
1892918927
}
1893018928
async function $f1a90a4a391136ce$var$_getElectronStat(vfsPath) {
1893118929
const platformPath = globalObject.fs.getTauriPlatformPath(vfsPath);
18932-
const stats = await window.electronAPI.fsStat(platformPath);
18933-
return $f1a90a4a391136ce$require$Utils.createFromElectronStat(vfsPath, stats);
18930+
const stats = await $f1a90a4a391136ce$var$unwrapFsResult(window.electronAPI.fsStat(platformPath));
18931+
return $f1a90a4a391136ce$require$Utils.createFromNodeStat(vfsPath, stats, $f1a90a4a391136ce$require$Constants.ELECTRON_DEVICE_NAME);
1893418932
}
1893518933
function $f1a90a4a391136ce$var$_readDirHelper(entries, path, options, callback, useDummyStats) {
1893618934
let children = [];
@@ -18962,7 +18960,7 @@ function $f1a90a4a391136ce$var$_readDirHelper(entries, path, options, callback,
1896218960
return;
1896318961
}
1896418962
const platformPath = $f1a90a4a391136ce$require$Utils.getTauriPlatformPath(path);
18965-
window.electronAPI.fsReaddir(platformPath).then((entries)=>{
18963+
$f1a90a4a391136ce$var$unwrapFsResult(window.electronAPI.fsReaddir(platformPath)).then((entries)=>{
1896618964
$f1a90a4a391136ce$var$_readDirHelper(entries, path, options, callback);
1896718965
}).catch((err)=>{
1896818966
callback($f1a90a4a391136ce$var$mapNodeErrorMessage(err, path, "Failed to read directory: "));
@@ -18986,10 +18984,10 @@ function $f1a90a4a391136ce$var$_readDirHelper(entries, path, options, callback,
1898618984
return;
1898718985
}
1898818986
const platformPath = $f1a90a4a391136ce$require$Utils.getTauriPlatformPath(path);
18989-
window.electronAPI.fsMkdir(platformPath, {
18987+
$f1a90a4a391136ce$var$unwrapFsResult(window.electronAPI.fsMkdir(platformPath, {
1899018988
recursive: recursive,
1899118989
mode: mode
18992-
}).then(()=>{
18990+
})).then(()=>{
1899318991
callback(null);
1899418992
}).catch((err)=>{
1899518993
callback($f1a90a4a391136ce$var$mapNodeErrorMessage(err, path, "Failed to create directory: "));
@@ -19014,12 +19012,12 @@ function $f1a90a4a391136ce$var$unlink(path, callback) {
1901419012
}
1901519013
$f1a90a4a391136ce$var$_getElectronStat(path).then((stat)=>{
1901619014
const platformPath = $f1a90a4a391136ce$require$Utils.getTauriPlatformPath(path);
19017-
if (stat.isDirectory()) window.electronAPI.fsRmdir(platformPath, {
19015+
if (stat.isDirectory()) $f1a90a4a391136ce$var$unwrapFsResult(window.electronAPI.fsRmdir(platformPath, {
1901819016
recursive: true
19019-
}).then(()=>{
19017+
})).then(()=>{
1902019018
callback(null);
1902119019
}).catch(errCallback);
19022-
else window.electronAPI.fsUnlink(platformPath).then(()=>{
19020+
else $f1a90a4a391136ce$var$unwrapFsResult(window.electronAPI.fsUnlink(platformPath)).then(()=>{
1902319021
callback(null);
1902419022
}).catch(errCallback);
1902519023
}).catch(errCallback);
@@ -19033,7 +19031,7 @@ function $f1a90a4a391136ce$var$rename(oldPath, newPath, callback) {
1903319031
}
1903419032
const oldPlatformPath = $f1a90a4a391136ce$require$Utils.getTauriPlatformPath(oldPath);
1903519033
const newPlatformPath = $f1a90a4a391136ce$require$Utils.getTauriPlatformPath(newPath);
19036-
window.electronAPI.fsRename(oldPlatformPath, newPlatformPath).then(()=>{
19034+
$f1a90a4a391136ce$var$unwrapFsResult(window.electronAPI.fsRename(oldPlatformPath, newPlatformPath)).then(()=>{
1903719035
callback(null);
1903819036
}).catch((err)=>{
1903919037
callback($f1a90a4a391136ce$var$mapNodeErrorMessage(err, oldPath, `Failed to rename ${oldPath} to ${newPath}`));
@@ -19075,7 +19073,7 @@ function $f1a90a4a391136ce$var$rename(oldPath, newPath, callback) {
1907519073
return;
1907619074
}
1907719075
const platformPath = $f1a90a4a391136ce$require$Utils.getTauriPlatformPath(path);
19078-
window.electronAPI.fsReadFile(platformPath).then((contents)=>{
19076+
$f1a90a4a391136ce$var$unwrapFsResult(window.electronAPI.fsReadFile(platformPath)).then((contents)=>{
1907919077
// Electron returns a Buffer, convert to ArrayBuffer
1908019078
let arrayBuffer;
1908119079
if (contents instanceof ArrayBuffer) arrayBuffer = contents;
@@ -19117,7 +19115,7 @@ function $f1a90a4a391136ce$var$rename(oldPath, newPath, callback) {
1911719115
const platformPath = $f1a90a4a391136ce$require$Utils.getTauriPlatformPath(path);
1911819116
// Convert ArrayBuffer to Uint8Array for IPC transfer
1911919117
const uint8Array = new Uint8Array(arrayBuffer);
19120-
window.electronAPI.fsWriteFile(platformPath, Array.from(uint8Array)).then(()=>{
19118+
$f1a90a4a391136ce$var$unwrapFsResult(window.electronAPI.fsWriteFile(platformPath, Array.from(uint8Array))).then(()=>{
1912119119
callback(null);
1912219120
}).catch((err)=>{
1912319121
callback($f1a90a4a391136ce$var$mapNodeErrorMessage(err, path, `Failed to write File at path ${path}`));

dist/virtualfs-debug.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)