summaryrefslogtreecommitdiffstats
path: root/node_modules/domain-browser/source
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/domain-browser/source')
-rw-r--r--node_modules/domain-browser/source/index.js70
1 files changed, 70 insertions, 0 deletions
diff --git a/node_modules/domain-browser/source/index.js b/node_modules/domain-browser/source/index.js
new file mode 100644
index 0000000..e06b3a1
--- /dev/null
+++ b/node_modules/domain-browser/source/index.js
@@ -0,0 +1,70 @@
+// This file should be ES5 compatible
+/* eslint prefer-spread:0, no-var:0, prefer-reflect:0, no-magic-numbers:0 */
+'use strict'
+
+module.exports = (function () {
+ // Import Events
+ var events = require('events')
+
+ // Export Domain
+ var domain = {}
+ domain.createDomain = domain.create = function () {
+ var d = new events.EventEmitter()
+
+ function emitError (e) {
+ d.emit('error', e)
+ }
+
+ d.add = function (emitter) {
+ emitter.on('error', emitError)
+ }
+ d.remove = function (emitter) {
+ emitter.removeListener('error', emitError)
+ }
+ d.bind = function (fn) {
+ return function () {
+ var args = Array.prototype.slice.call(arguments)
+ try {
+ fn.apply(null, args)
+ }
+ catch (err) {
+ emitError(err)
+ }
+ }
+ }
+ d.intercept = function (fn) {
+ return function (err) {
+ if ( err ) {
+ emitError(err)
+ }
+ else {
+ var args = Array.prototype.slice.call(arguments, 1)
+ try {
+ fn.apply(null, args)
+ }
+ catch (err) {
+ emitError(err)
+ }
+ }
+ }
+ }
+ d.run = function (fn) {
+ try {
+ fn()
+ }
+ catch (err) {
+ emitError(err)
+ }
+ return this
+ }
+ d.dispose = function () {
+ this.removeAllListeners()
+ return this
+ }
+ d.enter = d.exit = function () {
+ return this
+ }
+ return d
+ }
+ return domain
+}).call(this)