dsl-framework
Version:
Easy function chaining.
36 lines (35 loc) • 1.57 kB
JavaScript
var module = {
exports: {}
};
var exports = module.exports;
/* eslint-disable block-spacing */
/* eslint-disable brace-style */
/* eslint-disable indent */
function _extractCallbackData(...args) {
let baseKindArguments = Array.from(args);
const argumentsLastIndex = baseKindArguments.length >= 2 ? baseKindArguments.length - 1 : false;
const argumentsOneBeforeLastIndex = baseKindArguments.length >= 3 ? argumentsLastIndex - 1 : false;
let trueCaseFunction = false;
let falseCaseFunction = false;
if (argumentsLastIndex) {
if (argumentsOneBeforeLastIndex) {
falseCaseFunction = argumentsLastIndex ? typeof args[argumentsLastIndex] === 'function' ? args[argumentsLastIndex] : false : false;
trueCaseFunction = argumentsOneBeforeLastIndex ? typeof args[argumentsOneBeforeLastIndex] === 'function' ? args[argumentsOneBeforeLastIndex] : false : false;
} else {
trueCaseFunction = argumentsLastIndex ? typeof args[argumentsLastIndex] === 'function' ? args[argumentsLastIndex] : false : false;
falseCaseFunction = false;
}
}
trueCaseFunction && (() => baseKindArguments = baseKindArguments.slice(0, -1))();
falseCaseFunction && (() => baseKindArguments = baseKindArguments.slice(0, -1))();
const havingCaseFunction = !!trueCaseFunction || !!falseCaseFunction;
return {
baseKindArguments,
havingCaseFunction,
trueCaseFunction,
falseCaseFunction
};
}
exports.extractCallbackData = _extractCallbackData;
export let extractCallbackData = exports.extractCallbackData;
export default module.exports;