Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
21bd1ad
Create napi safe wrap
dajimenezriv-internxt Aug 15, 2025
819a1f1
Extract create folder placeholder
dajimenezriv-internxt Aug 16, 2025
cc1b678
Extract create file placeholder
dajimenezriv-internxt Aug 16, 2025
444a2d5
Extract get file identity
dajimenezriv-internxt Aug 19, 2025
b5eff5e
Update package.json
dajimenezriv-internxt Aug 19, 2025
fe31746
Extract connect sync root
dajimenezriv-internxt Aug 27, 2025
32c5ea9
Extract hydrate file
dajimenezriv-internxt Sep 8, 2025
75681d6
Hydrate file thread safe
dajimenezriv-internxt Sep 8, 2025
205f2be
Improve safe wrap
dajimenezriv-internxt Sep 8, 2025
9648c94
Remove delete file from c++
dajimenezriv-internxt Sep 8, 2025
46ee84c
Extract convert to placeholder
dajimenezriv-internxt Sep 10, 2025
313dfbf
Refactor register sync root
dajimenezriv-internxt Sep 15, 2025
ff28084
Extract code
dajimenezriv-internxt Sep 15, 2025
d1a7164
Improve
dajimenezriv-internxt Sep 15, 2025
70d004e
Simplify providerId
dajimenezriv-internxt Sep 15, 2025
69ce991
Commit
dajimenezriv-internxt Sep 15, 2025
1020526
Commit
dajimenezriv-internxt Sep 15, 2025
e94646e
Commit
dajimenezriv-internxt Sep 15, 2025
0601df9
Update get_registered_sync_roots.cpp
dajimenezriv-internxt Sep 15, 2025
73a1c9e
Update addon.node
dajimenezriv-internxt Sep 15, 2025
ae38d77
Commt
dajimenezriv-internxt Sep 15, 2025
f7b6a44
Commit
dajimenezriv-internxt Sep 16, 2025
41028a0
Simplify unregister
dajimenezriv-internxt Sep 16, 2025
38a0e29
Fix wrapper
dajimenezriv-internxt Sep 16, 2025
4832626
Remove context
dajimenezriv-internxt Sep 16, 2025
d947054
Improve napi
dajimenezriv-internxt Sep 16, 2025
9d096c0
Template napi_extract_args
dajimenezriv-internxt Sep 16, 2025
249d71c
Extract dehydrate file wrapper
dajimenezriv-internxt Sep 17, 2025
2d39fb1
Refactor dehydrate file
dajimenezriv-internxt Sep 17, 2025
0a6216f
Throw exceptions
dajimenezriv-internxt Sep 17, 2025
4577789
Commit
dajimenezriv-internxt Sep 17, 2025
bc748b0
Extract disconnect sync root
dajimenezriv-internxt Sep 17, 2025
e17ca28
Extract get placeholder state
dajimenezriv-internxt Sep 17, 2025
a5e3dc7
Remove sync state
dajimenezriv-internxt Sep 17, 2025
18b57ba
Extract update sync status
dajimenezriv-internxt Sep 17, 2025
8d97f38
Update publish-npm.yml
dajimenezriv-internxt Sep 18, 2025
0fe50fb
Merge branch 'master' into extract-disconnect-sync-root
dajimenezriv-internxt Sep 18, 2025
20b0533
Merge branch 'master' into extract-disconnect-sync-root
dajimenezriv-internxt Sep 18, 2025
d65af96
Merge branch 'extract-disconnect-sync-root' into extract-get-placehol…
dajimenezriv-internxt Sep 18, 2025
71f1c31
Merge branch 'extract-get-placeholder-state' into extract-update-sync…
dajimenezriv-internxt Sep 18, 2025
5729e8e
Update addon.node
dajimenezriv-internxt Sep 18, 2025
394f12d
Merge branch 'master' into extract-get-placeholder-state
dajimenezriv-internxt Sep 19, 2025
470f12e
Merge branch 'extract-get-placeholder-state' into extract-update-sync…
dajimenezriv-internxt Sep 19, 2025
5bd5c36
Clean
dajimenezriv-internxt Sep 19, 2025
308f6a1
Merge branch 'master' into extract-update-sync-status
dajimenezriv-internxt Sep 19, 2025
0468c97
Update addon.node
dajimenezriv-internxt Sep 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions .github/workflows/publish-npm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,6 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 1

permissions:
contents: read
id-token: write
packages: write

steps:
- name: Checkout code
uses: actions/checkout@v4
Expand Down
6 changes: 4 additions & 2 deletions binding.gyp
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@
"native-src/virtual_drive/hydrate_file.cpp",
"native-src/virtual_drive/register_sync_root/register_sync_root.cpp",
"native-src/virtual_drive/register_sync_root/register_sync_root_wrapper.cpp",
"native-src/virtual_drive/unregister_sync_root_wrapper.cpp"
"native-src/virtual_drive/unregister_sync_root_wrapper.cpp",
"native-src/virtual_drive/update_sync_status/update_sync_status_wrapper.cpp"
],
"include_dirs": [
"include",
Expand All @@ -52,7 +53,8 @@
"include/virtual_drive",
"include/virtual_drive/get_placeholder_state",
"include/virtual_drive/get_registered_sync_roots",
"include/virtual_drive/register_sync_root"
"include/virtual_drive/register_sync_root",
"include/virtual_drive/update_sync_status"
],
"libraries": [
"-lCldApi.lib",
Expand Down
Binary file modified dist/addon.node
Binary file not shown.
1 change: 0 additions & 1 deletion include/placeholders_interface/PlaceHolderInfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,5 +59,4 @@ class FileHandle

FileHandle handleForPath(const std::wstring &path);

std::string pinStateToString(PinState state);
CF_PIN_STATE pinStateToCfPinState(PinState state);
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#pragma once

#include <node_api.h>

napi_value update_sync_status_wrapper(napi_env info, napi_callback_info args);
19 changes: 0 additions & 19 deletions native-src/placeholders_interface/PlaceHolderInfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,25 +44,6 @@ CF_PIN_STATE pinStateToCfPinState(PinState state)
}
}

std::string pinStateToString(PinState state)
{
switch (state)
{
case PinState::Inherited:
return "Inherited";
case PinState::AlwaysLocal:
return "AlwaysLocal";
case PinState::OnlineOnly:
return "OnlineOnly";
case PinState::Unspecified:
return "Unspecified";
case PinState::Excluded:
return "Excluded";
default:
return "Unknown";
}
}

PlaceHolderInfo::PlaceHolderInfo()
: _data(nullptr, [](CF_PLACEHOLDER_BASIC_INFO *) {})
{
Expand Down
26 changes: 0 additions & 26 deletions native-src/placeholders_interface/Planceholders.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -270,32 +270,6 @@ PlaceholderResult Placeholders::ConvertToPlaceholder(const std::wstring &fullPat
return result;
}

std::wstring GetErrorMessageFromHRESULT(HRESULT hr)
{
LPWSTR errorMessage = nullptr;
DWORD result = FormatMessageW(
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
nullptr,
hr,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
reinterpret_cast<LPWSTR>(&errorMessage),
0,
nullptr);

std::wstring message;
if (result > 0 && errorMessage)
{
message = errorMessage;
LocalFree(errorMessage);
}
else
{
message = L"Error desconocido";
}

return message;
}

/**
* @brief Mark a file or directory as synchronized
* @param filePath path to the file or directory
Expand Down
32 changes: 3 additions & 29 deletions native-src/virtual_drive/Wrappers.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#include "dehydrate_file.h"
#include "disconnect_sync_root.h"
#include "get_placeholder_state_wrapper.h"
#include "update_sync_status_wrapper.h"
#include "NAPI_SAFE_WRAP.h"

napi_value CreatePlaceholderFile(napi_env env, napi_callback_info args) {
Expand Down Expand Up @@ -94,35 +95,8 @@ napi_value addLoggerPathWrapper(napi_env env, napi_callback_info args)
return result;
}

napi_value UpdateSyncStatusWrapper(napi_env env, napi_callback_info args)
{
size_t argc = 3;
napi_value argv[3];

napi_get_cb_info(env, args, &argc, argv, nullptr, nullptr);
if (argc < 3)
{
napi_throw_error(env, nullptr, "Three arguments are required for UpdateSyncStatus");
return nullptr;
}

size_t pathLength;
napi_get_value_string_utf16(env, argv[0], nullptr, 0, &pathLength);

std::unique_ptr<wchar_t[]> widePath(new wchar_t[pathLength + 1]);
napi_get_value_string_utf16(env, argv[0], reinterpret_cast<char16_t *>(widePath.get()), pathLength + 1, nullptr);

bool inputSyncState;
napi_get_value_bool(env, argv[1], &inputSyncState);

bool isDirectory;
napi_get_value_bool(env, argv[2], &isDirectory);

Placeholders::UpdateSyncStatus(widePath.get(), inputSyncState, isDirectory);

napi_value result;
napi_get_boolean(env, true, &result);
return result;
napi_value UpdateSyncStatusWrapper(napi_env env, napi_callback_info args) {
return NAPI_SAFE_WRAP(env, args, update_sync_status_wrapper);
}

napi_value GetPlaceholderStateWrapper(napi_env env, napi_callback_info args) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#include <windows.h>
#include "Placeholders.h"

napi_value update_sync_status_wrapper(napi_env env, napi_callback_info info) {
size_t argc = 3;
napi_value argv[3];
napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);

size_t pathLength;
napi_get_value_string_utf16(env, argv[0], nullptr, 0, &pathLength);
std::unique_ptr<wchar_t[]> widePath(new wchar_t[pathLength + 1]);
napi_get_value_string_utf16(env, argv[0], reinterpret_cast<char16_t *>(widePath.get()), pathLength + 1, nullptr);

bool inputSyncState, isDirectory;
napi_get_value_bool(env, argv[1], &inputSyncState);
napi_get_value_bool(env, argv[2], &isDirectory);

Placeholders::UpdateSyncStatus(widePath.get(), inputSyncState, isDirectory);

return nullptr;
}