diff options
author | Matt A. Tobin <email@mattatobin.com> | 2018-02-09 06:46:43 -0500 |
---|---|---|
committer | Matt A. Tobin <email@mattatobin.com> | 2018-02-09 06:46:43 -0500 |
commit | ac46df8daea09899ce30dc8fd70986e258c746bf (patch) | |
tree | 2750d3125fc253fd5b0671e4bd268eff1fd97296 /addon-sdk/source/lib/sdk/addon/events.js | |
parent | 8cecf8d5208f3945b35f879bba3015bb1a11bec6 (diff) | |
download | UXP-ac46df8daea09899ce30dc8fd70986e258c746bf.tar UXP-ac46df8daea09899ce30dc8fd70986e258c746bf.tar.gz UXP-ac46df8daea09899ce30dc8fd70986e258c746bf.tar.lz UXP-ac46df8daea09899ce30dc8fd70986e258c746bf.tar.xz UXP-ac46df8daea09899ce30dc8fd70986e258c746bf.zip |
Move Add-on SDK source to toolkit/jetpack
Diffstat (limited to 'addon-sdk/source/lib/sdk/addon/events.js')
-rw-r--r-- | addon-sdk/source/lib/sdk/addon/events.js | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/addon-sdk/source/lib/sdk/addon/events.js b/addon-sdk/source/lib/sdk/addon/events.js deleted file mode 100644 index 45bada6e1..000000000 --- a/addon-sdk/source/lib/sdk/addon/events.js +++ /dev/null @@ -1,56 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -'use strict'; - -module.metadata = { - 'stability': 'experimental' -}; - -var { request: hostReq, response: hostRes } = require('./host'); -var { defer: async } = require('../lang/functional'); -var { defer } = require('../core/promise'); -var { emit: emitSync, on, off } = require('../event/core'); -var { uuid } = require('../util/uuid'); -var emit = async(emitSync); - -// Map of IDs to deferreds -var requests = new Map(); - -// May not be necessary to wrap this in `async` -// once promises are async via bug 881047 -var receive = async(function ({data, id, error}) { - let request = requests.get(id); - if (request) { - if (error) request.reject(error); - else request.resolve(clone(data)); - requests.delete(id); - } -}); -on(hostRes, 'data', receive); - -/* - * Send is a helper to be used in client APIs to send - * a request to host - */ -function send (eventName, data) { - let id = uuid(); - let deferred = defer(); - requests.set(id, deferred); - emit(hostReq, 'data', { - id: id, - data: clone(data), - event: eventName - }); - return deferred.promise; -} -exports.send = send; - -/* - * Implement internal structured cloning algorithm in the future? - * http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#internal-structured-cloning-algorithm - */ -function clone (obj) { - return JSON.parse(JSON.stringify(obj || {})); -} |