UNPKG

wadjet

Version:

The your birth date is based on statistical psychology and will expose your personality. This package as a mocule does its calculations.

62 lines (54 loc) 1.86 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.createComparator = undefined; require('../type'); /** * Evaluation function used for sorting in affinity order. * @param {Wadjet.NatureVector} a Personality type. * @param {Wadjet.NatureVector} b Personality type. * @return {-1|1} Comparison result. */ var cmpA = function cmpA(a, b) { return a === 'E' && b === 'A' || a === 'A' && b === 'H' || a === 'E' && b === 'H' ? 1 : -1; }; /** * Evaluation function used for sorting in affinity order. * @param {Wadjet.NatureVector} a Personality type. * @param {Wadjet.NatureVector} b Personality type. * @return {-1|1} Comparison result. */ var cmpE = function cmpE(a, b) { return a === 'H' && b === 'E' || a === 'E' && b === 'A' || a === 'H' && b === 'A' ? 1 : -1; }; /** * Evaluation function used for sorting in affinity order. * @param {Wadjet.NatureVector} a Personality type. * @param {Wadjet.NatureVector} b Personality type. * @return {-1|1} Comparison result. */ var cmpH = function cmpH(a, b) { return a === 'A' && b === 'H' || a === 'H' && b === 'E' || a === 'A' && b === 'E' ? 1 : -1; }; /** Collection of comparator. */ var cmp = { A: cmpA, E: cmpE, H: cmpH }; /** * Create evaluation function used for sorting in affinity order. * @param {string} type Personality type. */ var createComparator = exports.createComparator = function createComparator(type) { return ( /** * @param {string} a Personality type. * @param {string} b Personality type. * @returns {-1|0|1} */ function (a, b) { return function (x, y, t, p) { return x === y || p.test(x) || p.test(y) || p.test(t) ? 0 : cmp[t](x, y); }(a.charAt().toUpperCase(), b.charAt().toUpperCase(), type.charAt().toUpperCase(), /[^EAH]/); } ); }; exports.default = createComparator;