/**
* @module 過濾源
*/
從 './obj' 導入 {isObject};
從 './mimetypes' 導入 {getMimetype};
/**
* 過濾掉單個壞源對像或多個源對象
* 大批。還將嵌套的源對像數組展平為一維
* 源對像數組。
*
* @param {Tech~SourceObject|Tech~SourceObject[]} 源
* 要過濾的src對象
*
* @return {Tech~SourceObject[]}
* 僅包含有效源的源對像數組
*
* @私人的
*/
const filterSource = function(src) {
// 遍歷數組
如果 (Array.isArray(src)) {
讓 newsrc = [];
src.forEach(函數(srcobj) {
srcobj = filterSource(srcobj);
如果(Array.isArray(srcobj)){
newsrc = newsrc.concat(srcobj);
} else if (isObject(srcobj)) {
newsrc.push(srcobj);
}
});
src = newsrc;
} else if (typeof src === 'string' && src.trim()) {
// 將字符串轉換為對象
src = [fixSource({src})];
} else if (isObject(src) && typeof src.src === 'string' && src.src && src.src.trim()) {
// src 已經有效
src = [fixSource(src)];
}其他{
// 無效源,將其轉為空數組
來源 = [];
}
返回源碼;
};
/**
* 檢查 src mimetype,盡可能添加
*
* @param {Tech~SourceObject} 源
* 要檢查的 src 對象
* @return {Tech~SourceObject}
* 已知類型的 src 對象
*/
函數 fixSource(src) {
如果(!src.type){
const mimetype = getMimetype(src.src);
如果(模仿類型){
src.type = mimetype;
}
}
返回源碼;
}
導出默認過濾器源;