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

This commit is contained in:
Milan Burda 2023-09-25 13:17:24 +02:00 committed by GitHub
parent 18f517d8a6
commit d75a852743
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
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);