UNPKG

@darwino/darwino

Version:

A set of Javascript classes and utilities

92 lines (76 loc) 1.49 kB
/* * (c) Copyright Darwino Inc. 2014-2017. */ import queryString from 'query-string'; import { fetchJson } from './Fetch'; /* * JSON store query builder */ export default class Jsql { constructor() { this._params = {}; } _stringify(s) { return typeof s === 'object' ? JSON.stringify(s) : s; } database(database) { this.database = database; return this; } queryParams(params) { if (params) { for (var k in params) { if (params.hasOwnProperty(k)) { if (params[k]) { this._params[k] = this._stringify(params[k]); } else { delete this._params[k]; } } } } return this; } name(name) { return this.queryParams({ name }); } format(format) { return this.queryParams({ format }); } query(query) { return this.queryParams({ query }); } skip(skip) { return this.queryParams({ skip }); } limit(limit) { return this.queryParams({ limit }); } params(params) { return this.queryParams({ params }); } fetch() { var url = "$darwino-jstore"; if (this.database) { url += "/databases/".concat(encodeURIComponent(this.database)); } url += '/jsql'; // Use POST to not have length constraints return fetchJson(url, { method: 'POST', body: JSON.stringify(this._params || {}) }); } } //# sourceMappingURL=Jsql.js.map