GitHub

JS Client for Graphiti similar to ActiveRecord.

Written in Typescript but works in plain old ES5 as well. This library is isomorphic - use it from the browser, or from the server with NodeJS.

Sample Usage

Please see our documentation page for full usage. Below is a Typescript sample:

import { SpraypaintBase, Model, Attr, HasMany } from "spraypaint"
@Model()
class ApplicationRecord extends SpraypaintBase {
  static baseUrl = "http://localhost:3000"
  static apiNamespace = "/api/v1"
}
@Model()
class Person extends ApplicationRecord {
  static jsonapiType = "people"
  @Attr() firstName: string
  @Attr() lastName: string
  @HasMany() pets: Pet[]
  get fullName() {
    return `${this.firstName} ${this.lastName}`
  }
}
@Model()
class Pet extends ApplicationRecord {
  static jsonapiType = "pets"
  @Attr() name: string
}
let { data } = await Person
  .where({ name: 'Joe' })
  .page(2).per(10)
  .sort('name')
  .includes("pets")
  .all()
let names = data.map((p) => { return p.fullName })
console.log(names) // ['Joe Blow', 'Joe DiMaggio', ...]
console.log(data[0].pets[0].name) // "Fido"

Read the original on github.com ↗