Skip to content

Commit cc8a340

Browse files
author
Justin McPherson
committed
Support Promises
1 parent 07016a2 commit cc8a340

4 files changed

Lines changed: 16 additions & 3 deletions

File tree

ReactUbuntu/runtime/src/reactmoduledata.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,8 @@ QVariant ReactModuleData::info() const
106106

107107
QVariantMap methodConfig;
108108
for (int i = 0; i < d->methods.size(); ++i) {
109-
// TODO: method type
110-
// @"type": method.functionType == RCTFunctionTypePromise ? @"remoteAsync" : @"remote",
111-
methodConfig.insert(d->methods.at(i)->name(), QVariantMap{ {"methodID", i} });
109+
methodConfig.insert(d->methods.at(i)->name(),
110+
QVariantMap{{"methodID", i}, {"type", d->methods.at(i)->type()}});
112111
}
113112
config.insert("methods", methodConfig);
114113

ReactUbuntu/runtime/src/reactmoduleinterface.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ class ReactPropertyHandler;
1212
class ReactModuleMethod;
1313

1414

15+
#ifndef Q_MOC_RUN
16+
#define REACT_PROMISE
17+
#endif
18+
1519
class ReactModuleInterface
1620
{
1721
public:

ReactUbuntu/runtime/src/reactmodulemethod.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,15 @@ QString ReactModuleMethod::name() const
2222
return m_metaMethod.name();
2323
}
2424

25+
QString ReactModuleMethod::type() const
26+
{
27+
QByteArray tag(m_metaMethod.tag());
28+
if (tag == "REACT_PROMISE")
29+
return "remoteAsync";
30+
31+
return "remote";
32+
}
33+
2534
// meh
2635
#define _R_ARG(argn) QGenericArgument(argn.typeName(), argn.data())
2736

ReactUbuntu/runtime/src/reactmodulemethod.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ class ReactModuleMethod
1919
~ReactModuleMethod();
2020

2121
QString name() const;
22+
QString type() const;
2223

2324
void invokeWithBridge(ReactBridge* bridge, const QVariantList& args);
2425

0 commit comments

Comments
 (0)