Do not add JS wrapper for setFeedURL

When possible we should avoid adding wrappers in JS, it usually makes
code more difficult to mantain
This commit is contained in:
Cheng Zhao 2016-06-13 09:32:24 +09:00
parent e2442fb052
commit a3786f66c9
4 changed files with 10 additions and 6 deletions

View file

@ -79,6 +79,12 @@ void AutoUpdater::OnWindowAllClosed() {
QuitAndInstall();
}
void AutoUpdater::SetFeedURL(const std::string& url, mate::Arguments* args) {
auto_updater::AutoUpdater::HeaderMap headers;
args->GetNext(&headers);
auto_updater::AutoUpdater::SetFeedURL(url, headers);
}
void AutoUpdater::QuitAndInstall() {
// If we don't have any window then quitAndInstall immediately.
WindowList* window_list = WindowList::GetInstance();
@ -102,8 +108,8 @@ mate::Handle<AutoUpdater> AutoUpdater::Create(v8::Isolate* isolate) {
void AutoUpdater::BuildPrototype(
v8::Isolate* isolate, v8::Local<v8::ObjectTemplate> prototype) {
mate::ObjectTemplateBuilder(isolate, prototype)
.SetMethod("_setFeedURL", &auto_updater::AutoUpdater::SetFeedURL)
.SetMethod("checkForUpdates", &auto_updater::AutoUpdater::CheckForUpdates)
.SetMethod("setFeedURL", &AutoUpdater::SetFeedURL)
.SetMethod("quitAndInstall", &AutoUpdater::QuitAndInstall);
}

View file

@ -10,6 +10,7 @@
#include "atom/browser/api/event_emitter.h"
#include "atom/browser/auto_updater.h"
#include "atom/browser/window_list_observer.h"
#include "native_mate/arguments.h"
#include "native_mate/handle.h"
namespace atom {
@ -43,6 +44,7 @@ class AutoUpdater : public mate::EventEmitter<AutoUpdater>,
void OnWindowAllClosed() override;
private:
void SetFeedURL(const std::string& url, mate::Arguments* args);
void QuitAndInstall();
DISALLOW_COPY_AND_ASSIGN(AutoUpdater);

View file

@ -97,7 +97,7 @@ The `autoUpdater` object has the following methods:
### `autoUpdater.setFeedURL(url[, requestHeaders])`
* `url` String
* `requestHeaders` Object - HTTP request headers (_OS X_)
* `requestHeaders` Object _OS X_ - HTTP request headers.
Sets the `url` and initialize the auto updater.

View file

@ -3,8 +3,4 @@ const autoUpdater = process.atomBinding('auto_updater').autoUpdater
Object.setPrototypeOf(autoUpdater, EventEmitter.prototype)
autoUpdater.setFeedURL = function (url, headers) {
return autoUpdater._setFeedURL(url, headers || {})
}
module.exports = autoUpdater