dsl-framework
Version:
Easy function chaining.
28 lines • 987 B
JavaScript
import { extractCallbackData } from "././extractCallbackData.mjs";
/* eslint-disable block-spacing */
/* eslint-disable brace-style */
/* eslint-disable indent */
var module = {
exports: {}
};
var exports = module.exports;
module.exports = (baseObject, returnObject) => {
return kind => function (...args) {
const {
baseKindArguments,
havingCaseFunction,
trueCaseFunction,
falseCaseFunction
} = extractCallbackData(...args);
const command = args[0];
const returnValue = Array.isArray(command) || baseKindArguments.length > 1 ? baseObject[`${kind === 'some' ? 'has' : 'get'}`].more(command) : returnObject.data.returnArrayChunks[kind](argumentArray => argumentArray[0] === command);
if (!havingCaseFunction) {
return returnValue;
}
if (havingCaseFunction) {
returnValue && trueCaseFunction && trueCaseFunction();
returnValue || falseCaseFunction && falseCaseFunction();
}
};
};
export default module.exports;