all files / filters/ index.js

100% Statements 24/24
78.57% Branches 11/14
100% Functions 6/6
100% Lines 24/24
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65                      20× 20× 20× 21× 21× 21× 21× 21× 21×       20×                                                      
import {
    avalon
} from '../seed/core'
 
import { numberFilter } from "./number"
import { sanitizeFilter } from "./sanitize"
import { dateFilter } from "./date"
import { filterBy, orderBy, selectBy, limitBy } from "./array"
import { eventFilters } from "./event"
import { escapeFilter } from "./escape"
var filters = avalon.filters = {}
 
avalon.composeFilters = function() {
    var args = arguments
    return function(value) {
        for (var i = 0, arr; arr = args[i++];) {
            var name = arr[0]
            var filter = avalon.filters[name]
            Eif (typeof filter === 'function') {
                arr[0] = value
                try {
                    value = filter.apply(0, arr)
                } catch (e) {}
            }
        }
        return value
    }
}
 
avalon.escapeHtml = escapeFilter
 
avalon.mix(filters, {
    uppercase(str) {
        return String(str).toUpperCase()
    },
    lowercase(str) {
        return String(str).toLowerCase()
    },
    truncate(str, length, end) {
        //length,新字符串长度,truncation,新字符串的结尾的字段,返回新字符串
        if (!str) {
            return ''
        }
        str = String(str)
        if (isNaN(length)) {
            length = 30
        }
        end = typeof end === "string" ? end : "..."
        return str.length > length ?
            str.slice(0, length - end.length) + end : /* istanbul ignore else*/
            str
    },
    camelize: avalon.camelize,
    date: dateFilter,
    escape: escapeFilter,
    sanitize: sanitizeFilter,
    number: numberFilter,
    currency(amount, symbol, fractionSize) {
        return (symbol || '\u00a5') +
            numberFilter(amount,
                isFinite(fractionSize) ? /* istanbul ignore else*/ fractionSize : 2)
    }
}, { filterBy, orderBy, selectBy, limitBy }, eventFilters)
 
export { avalon }