@jigx/mdk
Version:
Jigx Mobile Development Kit - SDK for building Jigx applications
27 lines • 3.03 kB
JavaScript
/**
* Configures expense data provider with offline-capable sync.
* Extracts JSON fields for efficient querying while preserving document storage.
* @param app - Application builder instance
* @returns Configured datasource for expense records
*/
export function dataExpenses(app) {
return app.addDatasource.sqlite('data-expenses', 'dynamic')
.entity('default/expenses')
.query(/* sql */ `
SELECT
id,
-- Either, use data directly as JSON document
exp.data,
-- Or, extract specific fields
json_extract(exp.data, '$.title') AS title,
json_extract(exp.data, '$.amount') AS amount,
json_extract(exp.data, '$.category') AS category,
json_extract(exp.data, '$.date') AS date,
json_extract(exp.data, '$.description') AS description
FROM [default/expenses] AS exp
ORDER BY json_extract(exp.data, '$.date') DESC
`)
// If using `data` directly
.isDocument();
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1leHBlbnNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RlbXBsYXRlLWFwcC0xL2RhdGFzb3VyY2VzL2RhdGEtZXhwZW5zZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLEdBQXVCO0lBQ2xELE9BQU8sR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQztTQUN4RCxNQUFNLENBQUMsa0JBQWtCLENBQUM7U0FDMUIsS0FBSyxDQUFDLFNBQVMsQ0FBQTs7Ozs7Ozs7Ozs7OztLQWFmLENBQUM7UUFDRiwyQkFBMkI7U0FDMUIsVUFBVSxFQUFFLENBQUE7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFzb3VyY2VCdWlsZGVyLCBBcHBsaWNhdGlvbkJ1aWxkZXIgfSBmcm9tICcuLi8uLi9zcmMnXG5cbi8qKlxuICogQ29uZmlndXJlcyBleHBlbnNlIGRhdGEgcHJvdmlkZXIgd2l0aCBvZmZsaW5lLWNhcGFibGUgc3luYy5cbiAqIEV4dHJhY3RzIEpTT04gZmllbGRzIGZvciBlZmZpY2llbnQgcXVlcnlpbmcgd2hpbGUgcHJlc2VydmluZyBkb2N1bWVudCBzdG9yYWdlLlxuICogQHBhcmFtIGFwcCAtIEFwcGxpY2F0aW9uIGJ1aWxkZXIgaW5zdGFuY2VcbiAqIEByZXR1cm5zIENvbmZpZ3VyZWQgZGF0YXNvdXJjZSBmb3IgZXhwZW5zZSByZWNvcmRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkYXRhRXhwZW5zZXMoYXBwOiBBcHBsaWNhdGlvbkJ1aWxkZXIpOiBEYXRhc291cmNlQnVpbGRlciB7XG4gIHJldHVybiBhcHAuYWRkRGF0YXNvdXJjZS5zcWxpdGUoJ2RhdGEtZXhwZW5zZXMnLCAnZHluYW1pYycpXG4gICAgLmVudGl0eSgnZGVmYXVsdC9leHBlbnNlcycpXG4gICAgLnF1ZXJ5KC8qIHNxbCAqL2BcbiAgICAgIFNFTEVDVCBcbiAgICAgICAgaWQsXG4gICAgICAgIC0tIEVpdGhlciwgdXNlIGRhdGEgZGlyZWN0bHkgYXMgSlNPTiBkb2N1bWVudFxuICAgICAgICBleHAuZGF0YSxcbiAgICAgICAgLS0gT3IsIGV4dHJhY3Qgc3BlY2lmaWMgZmllbGRzXG4gICAgICAgIGpzb25fZXh0cmFjdChleHAuZGF0YSwgJyQudGl0bGUnKSBBUyB0aXRsZSxcbiAgICAgICAganNvbl9leHRyYWN0KGV4cC5kYXRhLCAnJC5hbW91bnQnKSBBUyBhbW91bnQsXG4gICAgICAgIGpzb25fZXh0cmFjdChleHAuZGF0YSwgJyQuY2F0ZWdvcnknKSBBUyBjYXRlZ29yeSxcbiAgICAgICAganNvbl9leHRyYWN0KGV4cC5kYXRhLCAnJC5kYXRlJykgQVMgZGF0ZSxcbiAgICAgICAganNvbl9leHRyYWN0KGV4cC5kYXRhLCAnJC5kZXNjcmlwdGlvbicpIEFTIGRlc2NyaXB0aW9uXG4gICAgICBGUk9NIFtkZWZhdWx0L2V4cGVuc2VzXSBBUyBleHBcbiAgICAgIE9SREVSIEJZIGpzb25fZXh0cmFjdChleHAuZGF0YSwgJyQuZGF0ZScpIERFU0NcbiAgICBgKVxuICAgIC8vIElmIHVzaW5nIGBkYXRhYCBkaXJlY3RseVxuICAgIC5pc0RvY3VtZW50KClcbn0iXX0=