@vue-async/module-loader
Version:
Module Loader Core.
86 lines • 3.22 kB
JavaScript
var __read = (this && this.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
};
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
import { hasOwn } from '@ace-util/core';
import POHook from '../utils/hook';
var globalFilters = POHook.buildPreinitializedHook({});
function hook(tag, functionToAdd, priority, acceptedArgs) {
if (functionToAdd) {
if (!hasOwn(globalFilters, tag)) {
globalFilters[tag] = new POHook();
}
globalFilters[tag].addFilter(functionToAdd, priority, acceptedArgs);
}
else {
return {
has: function (functionToCheck) {
if (!hasOwn(globalFilters, tag)) {
return false;
}
return globalFilters[tag].hasFilter(functionToCheck);
},
remove: function (functionToRemove, priority) {
if (priority === void 0) { priority = 10; }
var removed = false;
if (hasOwn(globalFilters, tag)) {
removed = globalFilters[tag].removeFilter(functionToRemove, priority);
}
return removed;
},
removeAll: function (priority) {
if (hasOwn(globalFilters, tag)) {
globalFilters[tag].removeAllFilters(priority);
}
},
filter: function (value) {
var _a;
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
if (hasOwn(globalFilters, 'all')) {
// todo:apply tag "all" filter
}
if (hasOwn(globalFilters, tag)) {
return (_a = globalFilters[tag]).applyFilters.apply(_a, __spreadArray([value], __read(args), false));
}
return Promise.resolve(value);
},
exec: function () {
var _a;
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
if (hasOwn(globalFilters, tag)) {
return (_a = globalFilters[tag]).doAction.apply(_a, __spreadArray([], __read(args), false));
}
return Promise.resolve();
},
};
}
}
export default hook;
//# sourceMappingURL=hooks.js.map