Using Dataset - dsriseah/ursys GitHub Wiki

work in progress, ursys library changes underway

To Initialize the Dataset system from an application, you can attach to it when the app starts up.

import { SNA, DATACLIENT } from 'ursys/web';
const datasetConfig = {
  dataURI: 'sri.org:bucket-123/sna-app/project-one',
  syncMode: 'sync'
}
SNA.SetAppConfig({ dataset: datasetConfig });
await SNA.Start();

This is the current way that the dataclient is configured to connect with a dataserver. After the SNA application lifecycle reaches APP_READY, other modules can access the DATACLIENT to perform queries.

Setting Data

const dummy_data = await fetch('./data.json');
let res: OpResult;
res = await DATACLIENT.SetDataFromObject(dummy_data);
if (res.error) throw Error(res.error);

Force Autosave

let res: OpResult;
res = await DATACLIENT.Persist();

Subscribe to Data Updates

let res: OpResult
res = await DATACLIENT.Subscribe('comment', ( evtName, data ) => {});
if (res.error) throw Error(res.error);

Configuring Dataclient Manually

Configure(dataURI, dataSyncOptions) - set dataURI and how local client will sync 
Activate() - initialized the local dataset, fetching from REMOTE if exists
SetDataFromObject(dataSetObj):Promise<OpResult> - initialize local dataset (no sync)
Persist() - if REMOTE exists, execDataset({dataURI, op: 'PERSIST'})

Working with Collections (called "bins")
```ts
Get(binID, ids[])
Add(binID, items[])
Update(binID, items[])
Write(binID, items[])
Delete(binID, items[])
DeleteIDs(binID, ids[])
Replace(binID, items)
Clear(binID)

Finding and Querying

Find(binID, searchCriteria) : Items[]
Query(binID, queryriteria) : RecordSet
⚠️ **GitHub.com Fallback** ⚠️