refactor: use type enum in file stats for asar archive (#39968)

refactor: use type enum in file stats for asar archive (#39889)

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Milan Burda <milan.burda@gmail.com>
This commit is contained in:
trop[bot]
2023-09-25 11:14:05 -04:00
committed by GitHub
parent 70236258cf
commit 175cd9111e
5 changed files with 31 additions and 40 deletions

View File

@@ -121,9 +121,7 @@ class Archive : public node::ObjectWrap {
gin_helper::Dictionary dict(isolate, v8::Object::New(isolate));
dict.Set("size", stats.size);
dict.Set("offset", stats.offset);
dict.Set("isFile", stats.is_file);
dict.Set("isDirectory", stats.is_directory);
dict.Set("isLink", stats.is_link);
dict.Set("type", static_cast<int>(stats.type));
args.GetReturnValue().Set(dict.GetHandle());
}

View File

@@ -311,14 +311,12 @@ bool Archive::Stat(const base::FilePath& path, Stats* stats) const {
return false;
if (node->Find("link")) {
stats->is_file = false;
stats->is_link = true;
stats->type = FileType::kLink;
return true;
}
if (node->Find("files")) {
stats->is_file = false;
stats->is_directory = true;
stats->type = FileType::kDirectory;
return true;
}

View File

@@ -10,6 +10,8 @@
#include <unordered_map>
#include <vector>
#include <uv.h>
#include "base/files/file.h"
#include "base/files/file_path.h"
#include "base/synchronization/lock.h"
@@ -49,11 +51,14 @@ class Archive {
absl::optional<IntegrityPayload> integrity;
};
enum class FileType {
kFile = UV_DIRENT_FILE,
kDirectory = UV_DIRENT_DIR,
kLink = UV_DIRENT_LINK,
};
struct Stats : public FileInfo {
Stats() : is_file(true), is_directory(false), is_link(false) {}
bool is_file;
bool is_directory;
bool is_link;
FileType type = FileType::kFile;
};
explicit Archive(const base::FilePath& path);