file-cms
Version:
File based Content Management System, easy to use with content stored in native file system
48 lines (47 loc) • 1.55 kB
JavaScript
export var EqFilterProvider = function (data, arg) {
return data == arg;
};
export var StartsWithFilterProvider = function (data, arg) {
return typeof data == "string" && data.startsWith(arg);
};
export var EndsWithFilterProvider = function (data, arg) {
return typeof data == "string" && data.endsWith(arg);
};
export var ContainsFilterProvider = function (data, arg) {
return (typeof data == "string" &&
data.toLocaleLowerCase().includes((arg + "").toLocaleLowerCase()));
};
export var GtFilterProvider = function (data, arg) {
return data > arg;
};
export var LtFilterProvider = function (data, arg) {
return data < arg;
};
export var GteFilterProvider = function (data, arg) {
return data >= arg;
};
export var LteFilterProvider = function (data, arg) {
return data <= arg;
};
export var BetweenFilterProvider = function (data, arg) {
return arg[0] < data && data < arg[1];
};
export var BetweenInclusiveFilterProvider = function (data, arg) {
return arg[0] <= data && data <= arg[1];
};
export var HasFilterProvider = function (data, arg) {
return Array.isArray(data) && data.includes(arg);
};
export var defaultProviders = {
eq: EqFilterProvider,
startsWith: StartsWithFilterProvider,
endsWith: EndsWithFilterProvider,
contains: ContainsFilterProvider,
gt: GtFilterProvider,
lt: LtFilterProvider,
gte: GteFilterProvider,
lte: LteFilterProvider,
between: BetweenFilterProvider,
betweenInclusive: BetweenInclusiveFilterProvider,
has: HasFilterProvider
};