/**
* @module 필터 소스
*/
'./obj'에서 {isObject} 가져오기;
'./mimetypes'에서 {getMimetype} 가져오기;
/**
* 하나의 잘못된 소스 개체 또는 여러 소스 개체를 필터링합니다.
* 배열. 또한 중첩된 소스 객체 배열을 1차원으로 평면화합니다.
* 소스 객체의 배열.
*
* @param {Tech~SourceObject|Tech~SourceObject[]} src
* 필터링할 src 객체
*
* @return {Tech~SourceObject[]}
* 유효한 소스만 포함하는 소스 객체의 배열
*
* @사적인
*/
const filterSource = 함수(src) {
// 배열을 트래버스
if (Array.isArray(src)) {
let newsrc = [];
src.forEach(함수(srcobj) {
srcobj = 필터소스(srcobj);
if (Array.isArray(srcobj)) {
newsrc = newsrc.concat(srcobj);
} 그렇지 않으면 (isObject(srcobj)) {
newsrc.push(srcobj);
}
});
src = 뉴스RC;
} 그렇지 않으면 (typeof src === '문자열' && src.trim()) {
// 문자열을 객체로 변환
src = [fixSource({src})];
} 그렇지 않으면 (isObject(src) && typeof src.src === '문자열' && src.src && src.src.trim()) {
// src는 이미 유효합니다.
src = [수정소스(src)];
} else {
// 유효하지 않은 소스, 빈 배열로 바꿉니다.
소스 = [];
}
src를 반환합니다.
};
/**
* src mimetype 확인, 가능한 경우 추가
*
* @param {Tech~SourceObject} src
* 확인할 src 객체
* @return {기술~소스 객체}
* 알려진 유형의 src 객체
*/
함수 수정소스(src) {
if (!src.type) {
const mimetype = getMimetype(src.src);
if (마임타입) {
src.type = mimetype;
}
}
src를 반환합니다.
}
기본 filterSource 내보내기;