@ambassify/aql-memory-filter

AQL memory filter

Usage no npm install needed!

<script type="module">
  import ambassifyAqlMemoryFilter from 'https://cdn.skypack.dev/@ambassify/aql-memory-filter';
</script>

README

aql-memory-filter

Run AQL conditions agains datasets in memory. This is an implementation of the AQL condition filtering that can be run against an array in memory. You can find database-specific implementations in various Ambassify projects, in the future we hope to be able to provide these implementations here as well.

A list of all operators should be available in the spec.

Usage

npm install --save @ambassify/aql-memory-filter
const aqlFilter = require('@ambassify/aql-memory-filter');

const dataset = [
    { id: 1, type: 'post', title: 'Hello', likes: 5 },
    { id: 2, type: 'post', title: 'World', likes: 10 },
    { id: 3, type: 'article', title: 'This', likes: 32 },
    { id: 4, type: 'post', title: 'Is', likes: 4 },
    { id: 5, type: 'image', title: 'Me', likes: 100 },
];

const condition = {
    operator: 'and',
    value: [
        { key: 'type', operator: 'in', value: [ 'post', 'image' ] },
        { key: 'likes', operator: 'gte', value: 10 },
    ]
};

// filtered array includes ids 2 and 5
const filtered = aqlFilter(dataset, condition);

// test will return `true`
const ok = aqlFilter.test(dataset[1], condition);

// test will return `false`
const notOk = aqlFilter.test(dataset[0], condition);