xlist

Multi purposes list: immutable, filterable, sortable

Usage no npm install needed!

<script type="module">
  import xlist from 'https://cdn.skypack.dev/xlist';
</script>

README

XList

Samples:

import xlist from 'xlist';

const todos = xlist(
  { name: 'task 2', done: true },
  { name: 'task 1', done: false },
  { name: 'task 3', done: true }
);

todos.define('orderByName', { order: { by: x => x.name } });
todos.define('active', { filter: x => !x.done });
todos.define('completed', { filter: x => x.done });

console.log('default', todos.get());

console.log('orderByName', todos.get('orderByName'));

console.log('active', todos.get('active'));

console.log('completed', todos.get('completed'));

// remove completed
todos.remove(x => x.done);
console.log('completed', todos.get('completed'));

// add task 5
todos.push({ name: 'task 5', done: true });
console.log('orderByName', todos.get('orderByName'));