debut des details de la page. Vu que c'est le troisieme (euh quatrieme?) composant, c'etait un peu plus rapide, mais heureusement que claude est la pour repasser derriere mes erreurs prcq en solo je n'y arriverais pas du tout!
This commit is contained in:
+40
@@ -0,0 +1,40 @@
|
||||
'use strict';
|
||||
|
||||
var checks = require('./checks.cjs');
|
||||
require('./constants.cjs');
|
||||
|
||||
// does simply nothing
|
||||
function noop() {
|
||||
return this
|
||||
}
|
||||
|
||||
/**
|
||||
* Autobind the methods of a source object to itself
|
||||
* @param {object} source - probably a riot tag instance
|
||||
* @param {Array<string>} methods - list of the methods to autobind
|
||||
* @returns {object} the original object received
|
||||
*/
|
||||
function autobindMethods(source, methods) {
|
||||
methods.forEach((method) => {
|
||||
source[method] = source[method].bind(source);
|
||||
});
|
||||
|
||||
return source
|
||||
}
|
||||
|
||||
/**
|
||||
* Call the first argument received only if it's a function otherwise return it as it is
|
||||
* @param {*} source - anything
|
||||
* @returns {*} anything
|
||||
*/
|
||||
function callOrAssign(source) {
|
||||
return checks.isFunction(source)
|
||||
? source.prototype && source.prototype.constructor
|
||||
? new source()
|
||||
: source()
|
||||
: source
|
||||
}
|
||||
|
||||
exports.autobindMethods = autobindMethods;
|
||||
exports.callOrAssign = callOrAssign;
|
||||
exports.noop = noop;
|
||||
Reference in New Issue
Block a user