data

    0.6.1 • Public • Published

    Data.js

    Data.js is a data representation framework for Javascript. It's being developed in the context of Substance, an open publishing platform.

    For documentation, usage, and examples, see the offical documentation: http://substance.io/michael/data-js

    With Data.js you can:

    • Model your domain data using a simple graph-based object model that can be serialized to JSON.
    • Traverse your graph, including relationships using a simple API.
    • Manipulate and query data on the client (browser) or on the server (Node.js) by using exactly the same API.

    Features

    • Data.Graph (A data abstraction for all kinds of linked data)
    • Data.Collection (A simplified interface for tabular data)

    Getting Started

    Define a schema

    var schema = {
      "/type/person": {
        "type": "/type/type",
        "name": "Person",
        "properties": {
          "name": {"name": "Name", "type": "string", "required": true},
          "origin": {"name": "Origin", "type": "/type/location" }
        }
      },
      "/type/location": {
        "type": "/type/type",
        "name": "Location",
        "properties": {
          "name": { "name": "Name", "unique": true, "type": "string", "required": true },
          "citizens": {"name": "Citizens", "unique": false, "type": "/type/person"}
        }
      }
    };

    Create a new Data.Graph.

    var graph = new Data.Graph(schema);

    Add some objects.

    graph.set({
      _id: "/person/bart",
      type: "/type/person",
      name: "Bart Simpson"
    });
     
    graph.set({
      _id: "/location/springfield",
      name: "Springfield",
      type: "/type/location",
      citizens: ["/person/bart"]
    });

    Set properties (including relationships to other objects)

    graph.get('/person/bart')
         .set({origin: '/location/springfield'});

    Access your data.

    var citizens = graph.get('/location/springfield').get('citizens');
     
    _.each(citizens, function(person) {
      console.log(person.get('name'));
    });

    In The Wild

    • Substance - A web-based document authoring and publication platform that relies on Data.js for object persistence.
    • Déjàvis - A tool for analyzing and visualizing data. It uses Data.js for filtering and aggregating data
    • Dance.js Dance.js - A data-driven visualization library.

    Keywords

    none

    Install

    npm i data

    DownloadsWeekly Downloads

    2,215

    Version

    0.6.1

    License

    none

    Last publish

    Collaborators

    • pemrouz