mirror of
https://github.com/Karaka-Management/jsOMS.git
synced 2026-01-11 09:58:39 +00:00
60 lines
1.7 KiB
JavaScript
60 lines
1.7 KiB
JavaScript
(function (jsOMS, undefined) {
|
|
jsOMS.Autoloader = {};
|
|
jsOMS.Autoloader.loaded = [];
|
|
jsOMS.Autoloader.namespaced = [];
|
|
|
|
jsOMS.Autoloader.defineNamespace = function(namespace)
|
|
{
|
|
if(jsOMS.Autoloader.namespaced.indexOf(namespace) === -1) {
|
|
let paths = namespace.split('.');
|
|
paths.splice(0, 1);
|
|
|
|
let length = paths.length,
|
|
current = jsOMS;
|
|
|
|
for(let i = 0; i < length; i++) {
|
|
if(typeof current[paths[i]] === 'undefined') {
|
|
current[paths[i]] = {};
|
|
}
|
|
|
|
current = current[paths[i]];
|
|
}
|
|
|
|
jsOMS.Autoloader.namespaced.push(namespace);
|
|
}
|
|
};
|
|
|
|
jsOMS.Autoloader.initPreloaded = function()
|
|
{
|
|
let scripts = document.getElementsByTagName('script'),
|
|
length = scripts.length;
|
|
|
|
for(let i = 0; i < length; i++) {
|
|
scripts[i].src.replace(URL + '/', '');
|
|
|
|
if(jsOMS.Autoloader.loaded.indexOf(scripts[i].src) === -1) {
|
|
jsOMS.Autoloader.loaded.push(scripts[i].src);
|
|
}
|
|
}
|
|
};
|
|
|
|
jsOMS.Autoloader.setPreloaded = function(file)
|
|
{
|
|
if(jsOMS.Autoloader.loaded.indexOf(file) === -1) {
|
|
jsOMS.Autoloader.loaded.push(file);
|
|
}
|
|
};
|
|
|
|
jsOMS.Autoloader.include = function(file, callback)
|
|
{
|
|
let length = file.length;
|
|
|
|
for(let i = 0; i < length; i++) {
|
|
if(jsOMS.Autoloader.loaded.indexOf(file) === -1) {
|
|
// todo: implement asset loading and pass callback
|
|
|
|
jsOMS.Autoloader.loaded.push(file);
|
|
}
|
|
}
|
|
};
|
|
}(window.jsOMS = window.jsOMS || {})); |