function gen(type, call, option) {
return {type, call, allow: option.allow, isPre: option.isPre};
}
/**
* sets and gets rendering procedures.
* @memberOf Core#
* @function
* @param {string} [type]
* @param {function} [call]
* @param {object} [option]
* @param {string} option.after
* @param {function} option.allow
* @return {process|process[]|Core}
*/
function process(type, call, option={}) {
if (!this.__process__) this.__process__ = [];
if (!arguments.length) return this.__process__;
const process = this.__process__;
if (call && typeof call === 'function') {
const existing = process.findIndex(p => p.type === type);
if (existing >=0) { //renew existing
process[existing] = gen(type, call, option);
} else {
process.splice(process.length, 0, gen(type, call, option)); //insert new proc
}
return this;
} else {
return process.find(p => p.type === type);
}
}
export default process;