UNPKG

mingo

Version:

MongoDB query language for in-memory objects

19 lines (18 loc) 524 B
import { computeValue } from "../../../core/_internal"; import { assert, isEqual, isNil, isString } from "../../../util"; const $strcasecmp = (obj, expr, options) => { const args = computeValue(obj, expr, null, options); let a = args[0]; let b = args[1]; if (isEqual(a, b) || args.every(isNil)) return 0; assert( args.every(isString), "$strcasecmp must resolve to array(2) of strings" ); a = a.toUpperCase(); b = b.toUpperCase(); return a > b && 1 || a < b && -1 || 0; }; export { $strcasecmp };