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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | 2 2 2 28 28 28 188 188 28 2 2 188 188 134 134 174 188 2 | // A list of all the synonyms of assert methods. // In addition to these, multi-word camelCase are also synonymized to // all lowercase and snake_case module.exports = multiword({ ok: ['true', 'assert'], notOk: ['false', 'assertNot'], error: ['ifError', 'ifErr'], throws: ['throw'], doesNotThrow: ['notThrow'], // exactly the same. === equal: [ 'equals', 'isEqual', 'is', 'strictEqual', 'strictEquals', 'strictIs', 'isStrict', 'isStrictly' ], // not equal. !== not: [ 'inequal', 'notEqual', 'notEquals', 'notStrictEqual', 'notStrictEquals', 'isNotEqual', 'isNot', 'doesNotEqual', 'isInequal' ], // deep equivalence. == for scalars same: [ 'equivalent', 'looseEqual', 'looseEquals', 'deepEqual', 'deepEquals', 'isLoose', 'looseIs', 'isEquivalent' ], // deep inequivalence. != for scalars notSame: [ 'inequivalent', 'looseInequal', 'notDeep', 'deepInequal', 'notLoose', 'looseNot', 'notEquivalent', 'isNotDeepEqual', 'isNotDeeply', 'notDeepEqual', 'isInequivalent', 'isNotEquivalent' ], // deep equivalence, === for scalars strictSame: [ 'strictEquivalent', 'strictDeepEqual', 'sameStrict', 'deepIs', 'isDeeply', 'isDeep', 'strictDeepEquals' ], // deep inequivalence, !== for scalars strictNotSame: [ 'strictInequivalent', 'strictDeepInequal', 'notSameStrict', 'deepNot', 'notDeeply', 'strictDeepInequals', 'notStrictSame' ], // found has the fields in wanted, string matches regexp match: [ 'has', 'hasFields', 'matches', 'similar', 'like', 'isLike', 'includes', 'include', 'isSimilar' ], notMatch: [ 'dissimilar', 'unsimilar', 'notSimilar', 'unlike', 'isUnlike', 'notLike', 'isNotLike', 'doesNotHave', 'isNotSimilar', 'isDissimilar' ], type: [ 'isa', 'isA' ] }) function multiword (obj) { for (var i in obj) { var list = obj[i] var res = [ multiword_(i) ].concat(list.map(multiword_)) res = res.reduce(function (set, i) { set.push.apply(set, i) return set }, []) obj[i] = res } return obj } function multiword_ (str) { var res = [ str ] if (str.match(/[A-Z]/)) { res.push(str.toLowerCase()) res.push(str.replace(/[A-Z]/g, function ($0) { return '_' + $0.toLowerCase() })) } return res } Iif (require.main === module) console.log(module.exports) |