universql
v0.3.9
Published
Universal database query language
Downloads
22
Readme
UniversQL
A JavaScript implementation of the UniversQL spec.
Installation
$ npm install universql
Example
var UniversQL = require("universql");
UniversQL.addAdapter(require("universql-json"));
API
UniversQL
.adapters
.addAdapter ⇒ UniversQL
.removeAdapter ⇒ UniversQL
.getDefaultAdapter ⇒ Adapter
.setDefaultAdapter ⇒ UniversQL
.templateRE
.getAdapter([name]) ⇒ Adapter
.setAdapter(The) ⇒ UniversQL
.compile([name], [recompile]) ⇒ *
.translate([name], [context]) ⇒ *
.run([name], data, [context]) ⇒ *
UniversQL
The UniversQL class: parses a query string and attaches to this.query.
| Param | Type | Description | | --- | --- | --- | | queryString | String | The query string to parse. |
UniversQL.adapters
Adapters allow conversion between a UniversQL JSON-object, and their
specific language. An Adapter should contain name
, translate
and
optionally run
.
The prototypes share a common adapter list. Furthermore, we make #addAdapter both an Instance and Static method (to facilitate additions).
UniversQL.addAdapter ⇒ UniversQL
Adds an adapter: sets as default if no current default.
Returns: UniversQL - The instance (for chaining).
| Param | Type | Description | | --- | --- | --- | | adapter | Adapter | The adapter to be added. |
UniversQL.removeAdapter ⇒ UniversQL
Removes an adapter.
Returns: UniversQL - The adapter that was removed.
| Param | Type | Description | | --- | --- | --- | | adapter | Adapter | The adapter to be removed. |
UniversQL.getDefaultAdapter ⇒ Adapter
Gets the default adapter.
Returns: Adapter - The default adapter.
UniversQL.setDefaultAdapter ⇒ UniversQL
Sets the default adapter.
Returns: UniversQL - The instance (for chaining).
| Param | Type | Description | | --- | --- | --- | | The | Adapter | String | default adapter (or name of installed adapter). |
UniversQL.templateRE
Basic templating, inspired by doT.js. Only includes basic interpolation.
UniversQL.getAdapter([name]) ⇒ Adapter
Gets the adapter.
Returns: Adapter - The adapter.
| Param | Type | Description | | --- | --- | --- | | [name] | String | Optional name of adapter to get. |
UniversQL.setAdapter(The) ⇒ UniversQL
Sets the adapter.
Returns: UniversQL - The instance (for chaining).
| Param | Type | Description | | --- | --- | --- | | The | Adapter | String | adapter (or name of installed adapter). |
UniversQL.compile([name], [recompile]) ⇒ *
Compiles the query into another query language. Stores into compiled.
Returns: * - Translated form of query.
| Param | Type | Default | Description | | --- | --- | --- | --- | | [name] | String | | Name of the adapter to use (falls back to default). | | [recompile] | Boolean | false | If true, forces re-translation. |
UniversQL.translate([name], [context]) ⇒ *
Translate query using context (and compiles if necessary).
Returns: * - Query with templates compiled.
| Param | Type | Default | Description | | --- | --- | --- | --- | | [name] | String | | Name of the adapter to use (falls back to default). | | [context] | Object | {} | Context for templating. |
UniversQL.run([name], data, [context]) ⇒ *
Runs query (translates, templatizes and compiles if necessary).
Returns: * - Query with templates compiled.
| Param | Type | Default | Description | | --- | --- | --- | --- | | [name] | String | | Name of the adapter to use (falls back to default). | | data | Array | | The data on which to run the query. | | [context] | Object | {} | Context for templating. |
createTemplate(str, pattern) ⇒ function
Creates a template function (that renders when called with context).
Returns: function - Template function: fn(context)
| Param | Type | Description | | --- | --- | --- | | str | String | The template to precompile. | | pattern | RegExp | The template pattern to replace. |
templater(data, fn)
Runs data through template engine, then calls fn with results.
| Param | Type | Description | | --- | --- | --- | | data | * | The data to preprocess. | | fn | function | The subsequent function to call. |
License
MIT Licensed