_fsMissFns.mjs

/**
 * 檢查注入之fs物件是否提供指定函數(內部用),回傳缺少者之名稱陣列;fs不是物件(含null)時視為全部缺少,讀取成員拋錯者視為缺少
 *
 * @param {*} fs 輸入fs物件
 * @param {Array} names 輸入需要之函數名稱陣列
 * @returns {Array} 回傳缺少之函數名稱陣列,空陣列代表齊全
 */
function fsMissFns(fs, names) {
    let ok = fs !== null && (typeof fs === 'object' || typeof fs === 'function')
    return names.filter((name) => {
        if (!ok) {
            return true
        }
        try {
            return typeof fs[name] !== 'function'
        }
        catch (err) {
            return true
        }
    })
}


export default fsMissFns