JSFiddle - React, Tailwind, and code Playground

by JayData

HTML

<script src="http://include.jaydata.org/jaydata.js"></script>

JavaScript

$data.Entity.extend("$de.offlineapp.DeviceConfig", {
    Id: { type: "int", key: true, computed: true },
    Name: { type: "string", required: true },
    Token: { type: "string" },
    Type: { type: "string" }
});

$data.EntityContext.extend("$de.offlineapp.DataContext", {
    DeviceConfig: { type: $data.EntitySet, elementType: $de.offlineapp.DeviceConfig }
});

var context = new $de.offlineapp.DataContext({
    name: "local", databaseName: "OfflineApp"
});

function AddDeviceConfig(deviceName, deviceToken, deviceTyp) {
    return context.DeviceConfig.toArray()
    .then(function (x) {
        if (x.length == 0) {
            var emp = new $de.offlineapp.DeviceConfig({ Name: deviceName, Token: deviceToken, Type: deviceTyp });
            context.DeviceConfig.add(emp);
            return context.saveChanges();
        }
    })
}
    
function IsDeviceConfigured() {
    return context.DeviceConfig.toArray()
    .then(function (x) {
        return x.length > 0;
    })
}
              
context.onReady()
.then(IsDeviceConfigured)
.then(console.log)
.then(function() { return AddDeviceConfig("DeviceName", "Token", "iPad"); })
.then(IsDeviceConfigured)
.then(console.log);