Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including g3n1us_elementary_model with all npm packages installed. Try it out:

var g3n1usElementaryModel = require("g3n1us_elementary_model")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

g3n1us_elementary_model v0.1.10

Import APIs into a local PouchDB and provide querying and models

G3N1US Elementary Model

Get Started

class Animal extends g3n1us.Model{
  constructor(){
    super(arguments[0]);
    this.connection.endpoint = '//example.com/api/files.json';
  }
}

About

G3N1US Elementary Model lets you keep your application's logic separate from your API's schema. API's go away, change, sometimes don't work. Keep your app untethered from your API.

class Animal extends g3n1us.Model{
  constructor(){
    super(arguments[0]);
    this.connection.endpoint = '//example.com/api/files.json';
    // Add headers to the api request
    this.headers = {'Api-Key': '8675309-90210'}
    // filterResponse is called on the raw output from the API. 
    // You can modify each response object, or get a nested object in the response. 
    // Each model must have an 'id' attribute! This is a great place to add this if needed.
    this.filterResponse = function(response){
      return response.map(function(v){
        v.id = v.specied_id
        return v;
      });
    }
  }
}

// After declaring a model, call add_model to add it to the application container
g3n1us.Container.add_model(Animal);

Querying

Querying is done against a static instance of your model

Find an item by it's id

Animal.find('187').then(animal => {
  console.log('I found the animal! ' + animal);
});

Query for items by attribute

Animal.where('has_fur', true).then((response) => {
  console.log('Animals are now inside the plural form of the model name: response.animals = ', response.animals);
});
Animal.where('legs', '>=', 4).then((response) => {
  console.log('Only four or more legs: response.animals = ', response.animals);
});

Other operators

'='equals
'>'greater than
'<'less than
'>='greater than or equal to
'<='less than or equal to
'exists'exists/not null
'!='not equal to
'<>'not equal to
'in'in array
'!in'not in array
'out'not in array
'regex'matches regular expression

Note, this is always the operator if a regex is provided as the query argument


Don't like Promises?! All query methods can also accept a callback as the last argument

Animal.find('187', function(animal){
  console.log('I found the animal! ' + animal);
});

Relations

TODO

Saving Models

TODO

Metadata

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free