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
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);
|