in packages/lowcode-plugin-inject/src/utils.tsx [56:105]
function getInjectUrls(resourceType, type = 'url', injectOptions?: InjectOptions): Promise<any> {
const filter = (_urls) => {
if (injectOptions?.filter) {
_urls = _urls.filter(url => injectOptions.filter(url));
}
if (!resourceType) {
return type === 'url' ? _urls.map(item => item.url || item) : _urls;
}
const filteredUrls = _urls.filter((item) => {
if (typeof item === 'string') {
return item.indexOf(`name=@ali/${resourceType}-`) >= 0;
}
if (item.type) {
return typeMap[resourceType].indexOf(item.type) >= 0;
}
return false;
})
return type === 'url' ? filteredUrls.map(item => item.url || item) : filteredUrls;
};
return new Promise((resolve) => {
if (!urlCache) {
const urlParams = queryString.parse(window.location.search);
let urls = urlParams[queryFlag] || [];
urls = Array.isArray(urls) ? urls : [urls];
const { type, injects } = window.injectConfig || {};
if (type === 'auto' || urlParams[injectTypeFlag] === 'auto' || urlParams[debugFlag] !== undefined) {
fetchJsonp(`http://${injectServerHost}:8899/apis/injectInfo`).then(res => res.json()).then((data) => {
urls = envFilter(data.content);
urlCache = urls;
resolve(filter(urlCache));
}).catch((err) => {
urlCache = [];
resolve([]);
console.error(err);
});
} else if (type === 'custom' && injects) {
urls = urls.concat(injects);
urlCache = urls;
resolve(filter(urlCache));
} else {
urlCache = urls;
resolve(filter(urlCache));
}
} else {
resolve(filter(urlCache));
}
});
}