Skip to content

Commit dc02843

Browse files
committed
try adding apis
1 parent 2be3d9b commit dc02843

File tree

8 files changed

+287
-9
lines changed

8 files changed

+287
-9
lines changed

windows/ReactNativeBlobUtil/ReactNativeBlobUtil.cpp

Lines changed: 76 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,82 @@ void ReactNativeBlobUtil::Initialize(React::ReactContext const &reactContext) no
1111
m_context = reactContext;
1212
}
1313

14-
double ReactNativeBlobUtil::multiply(double a, double b) noexcept {
15-
return a * b;
14+
// Constants method
15+
ReactNativeBlobUtilCodegen::Constants ReactNativeBlobUtil::getConstants() noexcept {
16+
return {
17+
.CacheDir = L"",
18+
.DocumentDir = L"",
19+
.DownloadDir = L"",
20+
.LibraryDir = L"",
21+
.MainBundleDir = L"",
22+
.MovieDir = L"",
23+
.MusicDir = L"",
24+
.PictureDir = L"",
25+
.ApplicationSupportDir = L"",
26+
.RingtoneDir = L"",
27+
.SDCardDir = L"",
28+
.SDCardApplicationDir = L"",
29+
.DCIMDir = L"",
30+
.LegacyDCIMDir = L"",
31+
.LegacyPictureDir = L"",
32+
.LegacyMusicDir = L"",
33+
.LegacyDownloadDir = L"",
34+
.LegacyMovieDir = L"",
35+
.LegacyRingtoneDir = L"",
36+
.LegacySDCardDir = L""
37+
};
1638
}
1739

40+
// Stub implementations for all methods
41+
42+
void ReactNativeBlobUtil::fetchBlobForm(JSValue const&, std::string const&, std::string const&, std::string const&, JSValue const&, JSValue const&, React::ReactCallback<const JSValue&> const&) noexcept {}
43+
void ReactNativeBlobUtil::fetchBlob(JSValue const&, std::string const&, std::string const&, std::string const&, JSValue const&, std::string const&, React::ReactCallback<const JSValue&> const&) noexcept {}
44+
fire_and_forget ReactNativeBlobUtil::createFile(std::string const&, std::string const&, std::string const&) noexcept { co_return; }
45+
fire_and_forget ReactNativeBlobUtil::createFileASCII(std::string const&, JSValue const&) noexcept { co_return; }
46+
fire_and_forget ReactNativeBlobUtil::pathForAppGroup(std::string const&, React::ReactPromise<std::string> const& result) noexcept { result.Reject("Not implemented"); co_return; }
47+
std::string ReactNativeBlobUtil::syncPathAppGroup(std::string const&) noexcept { return ""; }
48+
void ReactNativeBlobUtil::exists(std::string const&, React::ReactCallback<const JSValue&> const&) noexcept {}
49+
fire_and_forget ReactNativeBlobUtil::writeFile(std::string const&, std::string const&, std::string const&, bool, bool, React::ReactPromise<int32_t> const& result) noexcept { result.Resolve(0); co_return; }
50+
fire_and_forget ReactNativeBlobUtil::writeFileArray(std::string const&, JSValue const&, bool, React::ReactPromise<int32_t> const& result) noexcept { result.Resolve(0); co_return; }
51+
void ReactNativeBlobUtil::writeStream(std::string const&, std::string const&, bool, React::ReactCallback<const JSValue&> const&) noexcept {}
52+
void ReactNativeBlobUtil::writeArrayChunk(std::string const&, JSValue const&, React::ReactCallback<const JSValue&> const&) noexcept {}
53+
void ReactNativeBlobUtil::writeChunk(std::string const&, std::string const&, React::ReactCallback<const JSValue&> const&) noexcept {}
54+
void ReactNativeBlobUtil::closeStream(std::string const&, React::ReactCallback<const JSValue&> const&) noexcept {}
55+
void ReactNativeBlobUtil::unlink(std::string const&, React::ReactCallback<const JSValue&> const&) noexcept {}
56+
void ReactNativeBlobUtil::removeSession(JSValue const&, React::ReactCallback<const JSValue&> const&) noexcept {}
57+
fire_and_forget ReactNativeBlobUtil::ls(std::string const&, React::ReactPromise<JSValue> const& result) noexcept { result.Resolve(JSValueArray{}); co_return; }
58+
void ReactNativeBlobUtil::stat(std::string const&, React::ReactCallback<const JSValue&> const&) noexcept {}
59+
void ReactNativeBlobUtil::lstat(std::string const&, React::ReactCallback<const JSValue&> const&) noexcept {}
60+
void ReactNativeBlobUtil::cp(std::string const&, std::string const&, React::ReactCallback<const JSValue&> const&) noexcept {}
61+
void ReactNativeBlobUtil::mv(std::string const&, std::string const&, React::ReactCallback<const JSValue&> const&) noexcept {}
62+
fire_and_forget ReactNativeBlobUtil::mkdir(std::string const&, React::ReactPromise<bool> const& result) noexcept { result.Resolve(true); co_return; }
63+
fire_and_forget ReactNativeBlobUtil::readFile(std::string const&, std::string const&, bool, React::ReactPromise<JSValue> const& result) noexcept { result.Resolve(JSValueArray{}); co_return; }
64+
fire_and_forget ReactNativeBlobUtil::hash(std::string const&, std::string const&, React::ReactPromise<std::string> const& result) noexcept { result.Resolve(""); co_return; }
65+
void ReactNativeBlobUtil::readStream(std::string const&, std::string const&, int32_t, int32_t, std::string const&) noexcept {}
66+
void ReactNativeBlobUtil::getEnvironmentDirs(React::ReactCallback<const JSValue&> const&) noexcept {}
67+
void ReactNativeBlobUtil::cancelRequest(std::string const&, React::ReactCallback<const JSValue&> const&) noexcept {}
68+
void ReactNativeBlobUtil::enableProgressReport(std::string const&, int32_t, int32_t) noexcept {}
69+
void ReactNativeBlobUtil::enableUploadProgressReport(std::string const&, int32_t, int32_t) noexcept {}
70+
fire_and_forget ReactNativeBlobUtil::slice(std::string const&, std::string const&, int64_t, int64_t, React::ReactPromise<std::string> const& result) noexcept { result.Resolve(""); co_return; }
71+
fire_and_forget ReactNativeBlobUtil::presentOptionsMenu(std::string const&, std::string const&, React::ReactPromise<JSValue> const& result) noexcept { result.Resolve(JSValueArray{}); co_return; }
72+
fire_and_forget ReactNativeBlobUtil::presentOpenInMenu(std::string const&, std::string const&, React::ReactPromise<JSValue> const& result) noexcept { result.Resolve(JSValueArray{}); co_return; }
73+
fire_and_forget ReactNativeBlobUtil::presentPreview(std::string const&, std::string const&, React::ReactPromise<JSValue> const& result) noexcept { result.Resolve(JSValueArray{}); co_return; }
74+
fire_and_forget ReactNativeBlobUtil::excludeFromBackupKey(std::string const&, React::ReactPromise<JSValue> const& result) noexcept { result.Resolve(JSValueArray{}); co_return; }
75+
void ReactNativeBlobUtil::df(React::ReactCallback<const JSValue&> const&) noexcept {}
76+
void ReactNativeBlobUtil::emitExpiredEvent(React::ReactCallback<std::string const&> const&) noexcept {}
77+
fire_and_forget ReactNativeBlobUtil::actionViewIntent(std::string const&, std::string const&, std::string const&) noexcept { co_return; }
78+
fire_and_forget ReactNativeBlobUtil::addCompleteDownload(JSValue const&) noexcept { co_return; }
79+
fire_and_forget ReactNativeBlobUtil::copyToInternal(std::string const&, std::string const&, React::ReactPromise<std::string> const& result) noexcept { result.Resolve(""); co_return; }
80+
fire_and_forget ReactNativeBlobUtil::copyToMediaStore(JSValue const&, std::string const&, std::string const&, React::ReactPromise<std::string> const& result) noexcept { result.Resolve(""); co_return; }
81+
fire_and_forget ReactNativeBlobUtil::createMediaFile(JSValue const&, std::string const&, React::ReactPromise<std::string> const& result) noexcept { result.Resolve(""); co_return; }
82+
fire_and_forget ReactNativeBlobUtil::getBlob(std::string const&, std::string const&, React::ReactPromise<JSValue> const& result) noexcept { result.Resolve(JSValueArray{}); co_return; }
83+
fire_and_forget ReactNativeBlobUtil::getContentIntent(std::string const&, React::ReactPromise<std::string> const& result) noexcept { result.Resolve(""); co_return; }
84+
fire_and_forget ReactNativeBlobUtil::getSDCardDir(React::ReactPromise<std::string> const& result) noexcept { result.Resolve(""); co_return; }
85+
fire_and_forget ReactNativeBlobUtil::getSDCardApplicationDir(React::ReactPromise<std::string> const& result) noexcept { result.Resolve(""); co_return; }
86+
void ReactNativeBlobUtil::scanFile(JSValue const&, React::ReactCallback<const JSValue&> const&) noexcept {}
87+
fire_and_forget ReactNativeBlobUtil::writeToMediaFile(std::string const&, std::string const&, bool, React::ReactPromise<std::string> const& result) noexcept { result.Resolve(""); co_return; }
88+
89+
void ReactNativeBlobUtil::addListener(std::string const&) noexcept {}
90+
void ReactNativeBlobUtil::removeListeners(int32_t) noexcept {}
91+
1892
} // namespace winrt::ReactNativeBlobUtil

windows/ReactNativeBlobUtil/ReactNativeBlobUtil.h

Lines changed: 151 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
#include "pch.h"
44
#include "resource.h"
55

6-
#if __has_include("codegen/NativeReactNativeBlobUtilDataTypes.g.h")
7-
#include "codegen/NativeReactNativeBlobUtilDataTypes.g.h"
6+
#if __has_include("codegen/NativeBlobUtilsDataTypes.g.h")
7+
#include "codegen/NativeBlobUtilsDataTypes.g.h"
88
#endif
9-
#include "codegen/NativeReactNativeBlobUtilSpec.g.h"
109

10+
#include "codegen/NativeBlobUtilsSpec.g.h"
1111
#include "NativeModules.h"
1212

1313
namespace winrt::ReactNativeBlobUtil
@@ -16,13 +16,157 @@ namespace winrt::ReactNativeBlobUtil
1616
REACT_MODULE(ReactNativeBlobUtil)
1717
struct ReactNativeBlobUtil
1818
{
19-
using ModuleSpec = ReactNativeBlobUtilCodegen::ReactNativeBlobUtilSpec;
19+
using ModuleSpec = ReactNativeBlobUtilCodegen::BlobUtilsSpec;
2020

2121
REACT_INIT(Initialize)
22-
void Initialize(React::ReactContext const &reactContext) noexcept;
22+
void Initialize(React::ReactContext const& reactContext) noexcept;
2323

24-
REACT_SYNC_METHOD(multiply)
25-
double multiply(double a, double b) noexcept;
24+
REACT_METHOD(getConstants)
25+
ReactNativeBlobUtilCodegen::BlobUtilsSpec_Constants* getConstants();
26+
27+
REACT_METHOD(fetchBlobForm)
28+
void fetchBlobForm(JSValue options, std::string const& taskId, std::string const& method, std::string const& url, JSValue headers, JSValue form, std::function<void(JSValue)> const& callback);
29+
30+
REACT_METHOD(fetchBlob)
31+
void fetchBlob(JSValue options, std::string const& taskId, std::string const& method, std::string const& url, JSValue headers, std::string const& body, std::function<void(JSValue)> const& callback);
32+
33+
REACT_METHOD(createFile)
34+
winrt::Windows::Foundation::IAsyncAction createFile(std::string const& path, std::string const& data, std::string const& encoding);
35+
36+
REACT_METHOD(createFileASCII)
37+
winrt::Windows::Foundation::IAsyncAction createFileASCII(std::string const& path, JSValue data);
38+
39+
REACT_METHOD(pathForAppGroup)
40+
winrt::Windows::Foundation::IAsyncOperation<std::string> pathForAppGroup(std::string const& groupName);
41+
42+
REACT_METHOD(syncPathAppGroup)
43+
std::string syncPathAppGroup(std::string const& groupName);
44+
45+
REACT_METHOD(exists)
46+
void exists(std::string const& path, std::function<void(JSValue)> const& callback);
47+
48+
REACT_METHOD(writeFile)
49+
winrt::Windows::Foundation::IAsyncOperation<int> writeFile(std::string const& path, std::string const& encoding, std::string const& data, bool transformFile, bool append);
50+
51+
REACT_METHOD(writeFileArray)
52+
winrt::Windows::Foundation::IAsyncOperation<int> writeFileArray(std::string const& path, JSValue data, bool append);
53+
54+
REACT_METHOD(writeStream)
55+
void writeStream(std::string const& path, std::string const& withEncoding, bool appendData, std::function<void(JSValue)> const& callback);
56+
57+
REACT_METHOD(writeArrayChunk)
58+
void writeArrayChunk(std::string const& streamId, JSValue withArray, std::function<void(JSValue)> const& callback);
59+
60+
REACT_METHOD(writeChunk)
61+
void writeChunk(std::string const& streamId, std::string const& withData, std::function<void(JSValue)> const& callback);
62+
63+
REACT_METHOD(closeStream)
64+
void closeStream(std::string const& streamId, std::function<void(JSValue)> const& callback);
65+
66+
REACT_METHOD(unlink)
67+
void unlink(std::string const& path, std::function<void(JSValue)> const& callback);
68+
69+
REACT_METHOD(removeSession)
70+
void removeSession(JSValue paths, std::function<void(JSValue)> const& callback);
71+
72+
REACT_METHOD(ls)
73+
winrt::Windows::Foundation::IAsyncOperation<JSValue> ls(std::string const& path);
74+
75+
REACT_METHOD(stat)
76+
void stat(std::string const& target, std::function<void(JSValue)> const& callback);
77+
78+
REACT_METHOD(lstat)
79+
void lstat(std::string const& path, std::function<void(JSValue)> const& callback);
80+
81+
REACT_METHOD(cp)
82+
void cp(std::string const& src, std::string const& dest, std::function<void(JSValue)> const& callback);
83+
84+
REACT_METHOD(mv)
85+
void mv(std::string const& path, std::string const& dest, std::function<void(JSValue)> const& callback);
86+
87+
REACT_METHOD(mkdir)
88+
winrt::Windows::Foundation::IAsyncOperation<bool> mkdir(std::string const& path);
89+
90+
REACT_METHOD(readFile)
91+
winrt::Windows::Foundation::IAsyncOperation<JSValue> readFile(std::string const& path, std::string const& encoding, bool transformFile);
92+
93+
REACT_METHOD(hash)
94+
winrt::Windows::Foundation::IAsyncOperation<std::string> hash(std::string const& path, std::string const& algorithm);
95+
96+
REACT_METHOD(readStream)
97+
void readStream(std::string const& path, std::string const& encoding, int bufferSize, int tick, std::string const& streamId);
98+
99+
REACT_METHOD(getEnvironmentDirs)
100+
void getEnvironmentDirs(std::function<void(JSValue)> const& callback);
101+
102+
REACT_METHOD(cancelRequest)
103+
void cancelRequest(std::string const& taskId, std::function<void(JSValue)> const& callback);
104+
105+
REACT_METHOD(enableProgressReport)
106+
void enableProgressReport(std::string const& taskId, int interval, int count);
107+
108+
REACT_METHOD(enableUploadProgressReport)
109+
void enableUploadProgressReport(std::string const& taskId, int interval, int count);
110+
111+
REACT_METHOD(slice)
112+
winrt::Windows::Foundation::IAsyncOperation<std::string> slice(std::string const& src, std::string const& dest, int64_t start, int64_t end);
113+
114+
REACT_METHOD(presentOptionsMenu)
115+
winrt::Windows::Foundation::IAsyncOperation<JSValue> presentOptionsMenu(std::string const& uri, std::string const& scheme);
116+
117+
REACT_METHOD(presentOpenInMenu)
118+
winrt::Windows::Foundation::IAsyncOperation<JSValue> presentOpenInMenu(std::string const& uri, std::string const& scheme);
119+
120+
REACT_METHOD(presentPreview)
121+
winrt::Windows::Foundation::IAsyncOperation<JSValue> presentPreview(std::string const& uri, std::string const& scheme);
122+
123+
REACT_METHOD(excludeFromBackupKey)
124+
winrt::Windows::Foundation::IAsyncOperation<JSValue> excludeFromBackupKey(std::string const& url);
125+
126+
REACT_METHOD(df)
127+
void df(std::function<void(JSValue)> const& callback);
128+
129+
REACT_METHOD(emitExpiredEvent)
130+
void emitExpiredEvent(std::function<void(std::string)> const& callback);
131+
132+
REACT_METHOD(actionViewIntent)
133+
winrt::Windows::Foundation::IAsyncAction actionViewIntent(std::string const& path, std::string const& mime, std::string const& chooserTitle);
134+
135+
REACT_METHOD(addCompleteDownload)
136+
winrt::Windows::Foundation::IAsyncAction addCompleteDownload(JSValue config);
137+
138+
REACT_METHOD(copyToInternal)
139+
winrt::Windows::Foundation::IAsyncOperation<std::string> copyToInternal(std::string const& contentUri, std::string const& destPath);
140+
141+
REACT_METHOD(copyToMediaStore)
142+
winrt::Windows::Foundation::IAsyncOperation<std::string> copyToMediaStore(JSValue filedata, std::string const& mt, std::string const& path);
143+
144+
REACT_METHOD(createMediaFile)
145+
winrt::Windows::Foundation::IAsyncOperation<std::string> createMediaFile(JSValue filedata, std::string const& mt);
146+
147+
REACT_METHOD(getBlob)
148+
winrt::Windows::Foundation::IAsyncOperation<JSValue> getBlob(std::string const& contentUri, std::string const& encoding);
149+
150+
REACT_METHOD(getContentIntent)
151+
winrt::Windows::Foundation::IAsyncOperation<std::string> getContentIntent(std::string const& mime);
152+
153+
REACT_METHOD(getSDCardDir)
154+
winrt::Windows::Foundation::IAsyncOperation<std::string> getSDCardDir();
155+
156+
REACT_METHOD(getSDCardApplicationDir)
157+
winrt::Windows::Foundation::IAsyncOperation<std::string> getSDCardApplicationDir();
158+
159+
REACT_METHOD(scanFile)
160+
void scanFile(JSValue pairs, std::function<void(JSValue)> const& callback);
161+
162+
REACT_METHOD(writeToMediaFile)
163+
winrt::Windows::Foundation::IAsyncOperation<std::string> writeToMediaFile(std::string const& fileUri, std::string const& path, bool transformFile);
164+
165+
REACT_METHOD(addListener)
166+
void addListener(std::string const& eventName);
167+
168+
REACT_METHOD(removeListeners)
169+
void removeListeners(int count);
26170

27171
private:
28172
React::ReactContext m_context;
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"version": 1,
3+
"dependencies": {
4+
"native,Version=v0.0": {
5+
"Microsoft.Windows.CppWinRT": {
6+
"type": "Direct",
7+
"requested": "[2.0.200615.7, 2.0.200615.7]",
8+
"resolved": "2.0.200615.7",
9+
"contentHash": "v0eqkeeZkokrx3EsTe44wM8ZD+8yDJQDItGeA0WX2PpQrp2GYLGgiYlqc3f+XJqs/3DAGrKbxpRFFlcMivWJeQ=="
10+
}
11+
}
12+
}
13+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"version": 2,
3+
"contentHash": "v0eqkeeZkokrx3EsTe44wM8ZD+8yDJQDItGeA0WX2PpQrp2GYLGgiYlqc3f+XJqs/3DAGrKbxpRFFlcMivWJeQ=="
4+
}
Binary file not shown.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) Microsoft Corporation.
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
========================================================================
2+
The Microsoft.Windows.CppWinRT NuGet package automatically generates C++/WinRT projection headers,
3+
enabling you to both consume and produce Windows Runtime classes.
4+
========================================================================
5+
6+
C++/WinRT detects Windows metadata required by the project, from:
7+
* Platform winmd files in the SDK (both MSI and NuGet)
8+
* NuGet package references containing winmd files
9+
* Other project references producing winmd files
10+
* Raw winmd file references
11+
* Interface definition language (IDL) files in the project
12+
13+
For any winmd file discovered above, C++/WinRT creates reference (consuming) projection headers.
14+
Client code can simply #include these headers, which are created in the generated files directory (see below).
15+
16+
For any IDL file contained in the project, C++/WinRT creates component (producing) projection headers.
17+
In addition, C++/WinRT generates templates and skeleton implementations for each runtime class, under the Generated Files directory.
18+
19+
========================================================================
20+
For more information, visit:
21+
https://github.com/Microsoft/cppwinrt/tree/master/nuget
22+
========================================================================

0 commit comments

Comments
 (0)