Wondering what’s next for npm?Check out our public roadmap! »

    vetus

    0.9.0 • Public • Published

    vetus

    A versioned json object store based on git (Currently in development)

    Terms

    • name: the name of the collection, allows you to have multiple object stores one is always required
    • user: the name of the user accessing the document, if none is supplied a default user is used
    • branch: the branch to perform the operation on, if none is supplied the default master is used

    npm install vetus

    Require vetus

    var vetus = require('vetus')({path: './localDirectory'})
    • the path is the local folder to use for disk storage

    Save objects

    vetus.collection({name: 'collection', user: 'user', branch: 'branch'}, function(collection) {
      // data object can have as many properties as you like, each property is saved as separate document
      collection.data.myObject = obj
     
      collection.save('Updated my object', function() {
        res.send('OK')
      })
    })

    Load objects

    vetus.collection({ name: 'collection', user: 'user', branch: 'branch' }, function(collection) {
      collection.load(function() {
        res.json(collection.data.myObject)
      })
    })

    Branches

    Branches are designed to be used globally rather than local/remote

    Create a branch

    Where master is the branch to create from

    vetus.collection({name: 'collection', user: 'user', branch: 'master'}, function(collection) {
      collection.createBranch('my_branch', function() {
        res.send('OK')
      })
    })

    Get a list of branches

    vetus.collection({name: 'collection', user:'user'}, function(collection) {
      collection.branchList(function(list) {
        res.json(list)
      })
    })

    Delete a branchList

    vetus.collection({name: 'collection', user: 'user', branch: 'master'}, function(collection) {
      collection.deleteBranch('my_branch', function() {
        res.send('OK')
      })
    })
    • Make sure collection branch is not the branch you want to delete
    • May be some issues with this currently as other users branches are removed when they load next (via fetch --prune)

    Get History (beta)

      vetus.collection({name: 'collection', user: 'user', branch: 'master'}, function(collection) {
        collection.history(function(graph) {
          res.json(graph)
        })
      })
    • Returns an object graph that contains additional $history properties to show details of last update on each property/item

    Planned Features

    • Object Graph History
    • Object Merge Resolution
    • Diff Branches
    • Better Logging (:D)

    Things to maybe look at

    • Document Indexing (in collection?)
    • Merge of collections
    • Split collection
    • Cross collection search (maybe use index stuff? O_o)
    • Better define what collections are supposed to be used for

    Collections

    A collection is used to store multiple documents that version together, possibly later there should be a higher abstraction for documents that should be searchable together, this would allow for different document types to be stored. Don't really have to worry about this until search is implemented. This could just be a seperate vetus path tbh.

    Contributors

    • Jamie Mahoney (https://github.com/mahoneyj2)
    • Isak Falk (https://github.com/IsakFalk)
    • Robert Gill (https://github.com/envman)

    Changelog

    0.9.0

    • Add Revert Hard command

    0.8.1

    • Fix command callback getting stuck

    0.8.0

    • Add command logs and error callback

    0.5.3

    • Load collection version by tag #46

    0.5.2

    • Collection versions tag against base repo, not user repo #45

    0.5.1

    • Added collection allVersions() function #44

    0.5.0

    • Versioning support using git tags #43

    Install

    npm i vetus

    DownloadsWeekly Downloads

    70

    Version

    0.9.0

    License

    MIT

    Unpacked Size

    46.1 kB

    Total Files

    19

    Last publish

    Collaborators

    • avatar
    • avatar