Son CV dans un terminal web en Javascript! https://terminal-cv.gregandev.fr
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

67 lines
1.3 KiB

2 years ago
// 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);