@forestadmin/datasource-toolkit
Version:
37 lines • 3.61 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
function likes(getPattern, caseSensitive) {
const operator = caseSensitive ? 'Like' : 'ILike';
return {
dependsOn: [operator],
forTypes: ['String'],
replacer: leaf => leaf.override({ operator, value: getPattern(leaf.value) }),
};
}
function match(caseSensitive) {
return {
dependsOn: ['Match'],
forTypes: ['String'],
replacer: leaf => {
let regexp = leaf.value;
// eslint-disable-next-line no-useless-escape
regexp = regexp.replace(/([\.\\\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:\-])/g, '\\$1');
regexp = regexp.replace(/%/g, '.*').replace(/_/g, '.');
return leaf.override({
operator: 'Match',
value: RegExp(`^${regexp}$`, caseSensitive ? 'g' : 'gi'),
});
},
};
}
exports.default = () => ({
Contains: [likes(value => `%${value}%`, true)],
StartsWith: [likes(value => `${value}%`, true)],
EndsWith: [likes(value => `%${value}`, true)],
IContains: [likes(value => `%${value}%`, false)],
IStartsWith: [likes(value => `${value}%`, false)],
IEndsWith: [likes(value => `%${value}`, false)],
ILike: [match(false)],
Like: [match(true)],
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0dGVybi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9pbnRlcmZhY2VzL3F1ZXJ5L2NvbmRpdGlvbi10cmVlL3RyYW5zZm9ybXMvcGF0dGVybi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBLFNBQVMsS0FBSyxDQUFDLFVBQXVDLEVBQUUsYUFBc0I7SUFDNUUsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUVsRCxPQUFPO1FBQ0wsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO1FBQ3JCLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQztRQUNwQixRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQWUsQ0FBQyxFQUFFLENBQUM7S0FDdkYsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLEtBQUssQ0FBQyxhQUFzQjtJQUNuQyxPQUFPO1FBQ0wsU0FBUyxFQUFFLENBQUMsT0FBTyxDQUFDO1FBQ3BCLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQztRQUNwQixRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDZixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBZSxDQUFDO1lBRWxDLDZDQUE2QztZQUM3QyxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQywrQ0FBK0MsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNqRixNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztZQUV2RCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQ25CLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksTUFBTSxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzthQUN6RCxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxrQkFBZSxHQUE2QyxFQUFFLENBQUMsQ0FBQztJQUM5RCxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlDLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0MsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3QyxTQUFTLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2hELFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDakQsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMvQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0NBQ3BCLENBQUMsQ0FBQyJ9
;