UNPKG

liqe

Version:

Lightweight and performant Lucene-like parser, serializer and search engine.

72 lines (71 loc) 2.83 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const Liqe_1 = require("../src/Liqe"); const benny_1 = require("benny"); const faker_1 = __importDefault(require("faker")); const randomInRange = (min, max) => { return Math.floor(Math.random() * (Math.ceil(max) - Math.floor(min) + 1) + min); }; const persons = []; let size = 10000; while (size--) { persons.push({ email: faker_1.default.internet.email(), foo: { bar: { baz: faker_1.default.name.findName(), }, }, height: randomInRange(160, 220), name: faker_1.default.name.findName(), }); } void (0, benny_1.suite)('liqe', (0, benny_1.add)('filters list by the "name" field using simple strict equality check', () => { const query = (0, Liqe_1.parse)('name:"Gajus"'); return () => { (0, Liqe_1.filter)(query, persons); }; }), (0, benny_1.add)('filters list by the "name" field using regex check', () => { const query = (0, Liqe_1.parse)('name:/Gajus/ui'); return () => { (0, Liqe_1.filter)(query, persons); }; }), (0, benny_1.add)('filters list by the "name" field using loose inclusion check', () => { const query = (0, Liqe_1.parse)('name:Gajus'); return () => { (0, Liqe_1.filter)(query, persons); }; }), (0, benny_1.add)('filters list by the "name" field using star (*) wildcard check', () => { const query = (0, Liqe_1.parse)('name:Ga*'); return () => { (0, Liqe_1.filter)(query, persons); }; }), (0, benny_1.add)('filters list by the "name" field using question mark (?) wildcard check', () => { const query = (0, Liqe_1.parse)('name:Gaju?'); return () => { (0, Liqe_1.filter)(query, persons); }; }), (0, benny_1.add)('filters list by any field using loose inclusion check', () => { const query = (0, Liqe_1.parse)('Gajus'); return () => { (0, Liqe_1.filter)(query, persons); }; }), (0, benny_1.add)('filters list by the "height" field using strict equality check', () => { const query = (0, Liqe_1.parse)('height:180'); return () => { (0, Liqe_1.filter)(query, persons); }; }), (0, benny_1.add)('filters list by the "height" field using range check', () => { const query = (0, Liqe_1.parse)('height:[160 TO 180]'); return () => { (0, Liqe_1.filter)(query, persons); }; }), (0, benny_1.add)('filters list by the "foo.bar.baz" field using simple strict equality check', () => { const query = (0, Liqe_1.parse)('foo.bar.baz:"Gajus"'); return () => { (0, Liqe_1.filter)(query, persons); }; }), (0, benny_1.cycle)(), (0, benny_1.complete)());