twing
Version:
First-class Twig engine for Node.js
38 lines (37 loc) • 1.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isIn = isIn;
const compare_1 = require("./compare");
const is_traversable_1 = require("./is-traversable");
const iterator_to_array_1 = require("./iterator-to-array");
const markup_1 = require("../markup");
const map_like_1 = require("./map-like");
function isIn(value, compare) {
let result = false;
if ((0, markup_1.isAMarkup)(value)) {
value = value.toString();
}
if ((0, markup_1.isAMarkup)(compare)) {
compare = compare.toString();
}
if ((0, map_like_1.isAMapLike)(compare)) {
for (let [, item] of compare) {
if ((0, compare_1.compare)(item, value)) {
result = true;
break;
}
}
}
else if (typeof compare === 'string' && (typeof value === 'string' || typeof value === 'number')) {
result = (value === '' || compare.includes('' + value));
}
else if ((0, is_traversable_1.isTraversable)(compare)) {
for (let item of (0, iterator_to_array_1.iteratorToArray)(compare)) {
if ((0, compare_1.compare)(item, value)) {
result = true;
break;
}
}
}
return result;
}