xiaokuaisong-xiaochengxu/uniapp04/node_modules/@dcloudio/uni-app/dist/mp.js
2025-04-11 14:42:29 +08:00

56 lines
1.9 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.init = void 0;
var vue_1 = require("vue");
function updateLifeCycle(lifecycles, setupLifecycles, fn) {
if (fn) {
if (fn.lifecycles) {
fn.lifecycles.forEach(function (item) {
if (!setupLifecycles.includes(item)) {
setupLifecycles.push(item);
}
});
}
else {
var fnString_1 = fn.toString();
lifecycles.forEach(function (item) {
if (!setupLifecycles.includes(item) && (new RegExp("\\b(".concat(item, ")\\b"))).test(fnString_1)) {
setupLifecycles.push(item);
}
});
}
}
}
function init(lifecycles) {
var setup = vue_1.default.config.optionMergeStrategies.setup;
var extend = vue_1.default.extend;
vue_1.default.extend = function () {
var extendedVue = extend.apply(this, arguments);
var newOptions = extendedVue.options;
var setup = newOptions.setup;
if (setup && setup.lifecycles) {
setup.lifecycles.forEach(function (item) {
newOptions[item] = newOptions[item] || [function noop() { }];
});
}
return extendedVue;
};
Object.defineProperty(vue_1.default.config.optionMergeStrategies, 'setup', {
set: function (fn) {
setup = fn;
},
get: function () {
return function (to, from) {
if (typeof setup === 'function') {
var newSetup = setup.apply(this, arguments);
newSetup.lifecycles = newSetup.lifecycles || [];
updateLifeCycle(lifecycles, newSetup.lifecycles, from);
updateLifeCycle(lifecycles, newSetup.lifecycles, to);
return newSetup;
}
};
}
});
}
exports.init = init;