JSFiddle - React, Tailwind, and code Playground

by lid0

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/lovefield/2.1.12/lovefield.min.js"></script>
<pre>google/lovefield db js. (see console) </pre>

JavaScript

var schemaBuilder = lf.schema.create('todo', 1);

schemaBuilder.createTable('Item').
addColumn('id', lf.Type.INTEGER).
addColumn('color', lf.Type.STRING).
addColumn('age', lf.Type.INTEGER).
addPrimaryKey(['id']);



var todoDb;
var item;
var id = 1
getId = () => id++
schemaBuilder.connect().then(function(db) {
    todoDb = db;
    item = db.getSchema().table('Item');

    var rows = [
      item.createRow({
        'id': getId(),
        'color': 'red',
        "age": 10
      }),
      item.createRow({
        'id': getId(),
        'color': 'red',
        "age": 10
      }),
      item.createRow({
        'id': getId(),
        'color': 'red',
        "age": 30
      }),
      item.createRow({
        'id': getId(),
        'color': 'red',
        "age": 5
      }),
      item.createRow({
        'id': getId(),
        'color': 'red',
        "age": 7
      }),
      item.createRow({
        'id': getId(),
        'color': 'green',
        "age": 10
      }),
      item.createRow({
        'id': getId(),
        'color': 'green',
        "age": 20
      }),
      item.createRow({
        'id': getId(),
        'color': 'blue',
        "age": 15
      }),
      item.createRow({
        'id': getId(),
        'color': 'yellow',
        "age": 20
      }),
      item.createRow({
        'id': getId(),
        'color': 'yellow',
        "age": 5
      }),
      item.createRow({
        'id': getId(),
        'color': 'blue',
        "age": 5
      }),

    ];



    return db.insertOrReplace().into(item).values(rows).exec();
  })

  .then(function() {

    var excludeAges = [7]
    var ageNotIn = lf.op.not ( item.age.in(excludeAges) ) 
    var ageRanges = [
      [2, 6],
      [10, 15]
    ] // between 2..6 OR 10..15
    var colors = ["red", "blue"]
    //var ageWhere = ages.map((v) => item.age.eq(v))
    
    var ageBetweenWhere =
      lf.op.or(
        ...ageRanges.map(v => item.age.between(v[0], v[1]))
      )

    var colorWhere = item.color.in(colors)
    
  ...