This commit is contained in:
2026-02-15 19:38:58 +03:00
parent f21144ae53
commit 08389f091b
15 changed files with 135 additions and 30 deletions
+61 -21
View File
@@ -9,7 +9,7 @@ kit.config = kit.config || {};
* @class kitConfig
*/
var defaultConfig = {
version: '2.0',
version: '2.1',
assetsPath: '',
requiredDependencies: [],
autoloadPluginList: [],
@@ -793,7 +793,7 @@ kit.config = kit.config || {};
* @param callback
* @param argArr
* @param context
* @returns {undefined}
* @return {Promise}
*/
PluginManager.prototype.exec = function (deps, callback, argArr = [], context = undefined) {
var self = this;
@@ -813,7 +813,7 @@ kit.config = kit.config || {};
argArr = [];
}
if(typeof callback !== 'function') {
return undefined;
callback = function(){};
}
if(global.config && global.config.requiredDependencies) {
@@ -823,11 +823,17 @@ kit.config = kit.config || {};
var depsPromiseCallback = self.__getDepsPromiseCallback(deps);
if(depsPromiseCallback) {
depsPromiseCallback().then(function(){
callback.apply(context, argArr);
return depsPromiseCallback().then(function(){
return new Promise(function(resolve, reject){
callback.apply(context, argArr)
resolve();
});
});
} else {
callback.apply(context, argArr)
return new Promise(function(resolve, reject){
callback.apply(context, argArr)
resolve();
});
}
};
@@ -836,11 +842,20 @@ kit.config = kit.config || {};
* @see https://requirejs.org/
* @param deps
* @param callback
* @return {Promise}
*/
__proto.define = function (deps, callback) {
var self = this;
var context = this;
if(typeof deps === 'string'){
deps = [deps];
}
if(typeof callback !== 'function') {
callback = function (){};
}
var depsPromiseCallback = self.__getDepsPromiseCallback(deps);
var getArgArr = function () {
@@ -857,11 +872,17 @@ kit.config = kit.config || {};
}.bind(self);
if(depsPromiseCallback) {
depsPromiseCallback().then(function(){
callback.apply(context, getArgArr());
return depsPromiseCallback().then(function(){
return new Promise(function(resolve, reject){
callback.apply(context, getArgArr());
resolve();
});
});
} else {
callback.apply(context, getArgArr())
return new Promise(function(resolve, reject){
callback.apply(context, getArgArr())
resolve();
});
}
};
@@ -870,8 +891,9 @@ kit.config = kit.config || {};
*
* @param {(string|string[])} deps
* @param {function} callback
* @return {Promise}
*/
__proto.ready = function(deps, callback = undefined) {
__proto.ready = function(deps = [], callback = undefined) {
var self = this;
if(typeof deps === 'function') {
callback = deps;
@@ -880,19 +902,28 @@ kit.config = kit.config || {};
if(typeof callback !== 'function') {
callback = function (){};
}
self.__ready(self.exec, [deps, callback], self);
return self.__ready(self.exec, [deps, callback], self);
};
__proto.__ready = function(fn, args = [], context = window) {
var promise;
var self = this;
context = context || this;
if (/complete|interactive|loaded/.test(document.readyState)) {
fn.apply(context, args);
} else {
document.addEventListener("DOMContentLoaded", function () {
promise = new Promise(function(resolve, reject){
fn.apply(context, args);
}.bind(this));
resolve();
});
} else {
promise = new Promise(function(resolve, reject){
document.addEventListener("DOMContentLoaded", function () {
resolve();
}.bind(this));
}).then(function(){
return fn.apply(context, args);
});
}
return promise;
};
/**
@@ -901,7 +932,7 @@ kit.config = kit.config || {};
* @param {(string|string[])} deps
* @param {function} callback
*/
__proto.loaded = function(deps, callback = undefined) {
__proto.loaded = function(deps = [], callback = undefined) {
var self = this;
if(typeof deps === 'function') {
callback = deps;
@@ -910,19 +941,28 @@ kit.config = kit.config || {};
if(typeof callback !== 'function') {
callback = function (){};
}
self.__loaded(self.exec, [deps, callback], self);
return self.__loaded(self.exec, [deps, callback], self);
};
__proto.__loaded = function(fn, args = [], context = window) {
var promise;
var self = this;
context = context || this;
if (/complete|interactive|loaded/.test(document.readyState)) {
fn.apply(context, args);
} else {
window.addEventListener("load", function () {
promise = new Promise(function(resolve, reject){
fn.apply(context, args);
}.bind(this));
resolve();
});
} else {
promise = new Promise(function(resolve, reject){
window.addEventListener("load", function () {
resolve();
}.bind(this));
}).then(function(){
return fn.apply(context, args);
});
}
return promise;
};
/**
+1 -1
View File
File diff suppressed because one or more lines are too long