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