0.7.0 • Published 9 years ago

stratumn-sdk v0.7.0

Weekly downloads
4
License
MIT
Repository
github
Last release
9 years ago

Stratumn SDK for Javascript

npm version Bower version build status

Installation

Browser

<!-- Polyfill for browser compatibility -->
<script src="https://libs.stratumn.com/babel-polyfill.min.js"></script>
<!-- Actual Stratumn SDK -->
<script src="https://libs.stratumn.com/stratumn-sdk.min.js"></script>

If you want a specific version, include https://libs.stratumn.com/stratumn-sdk-{version}.min.js instead (for instance https://libs.stratumn.com/stratumn-sdk-0.4.1.min.js).

Node.js

$ npm install stratumn-sdk
var StratumnSDK = require('stratumn-sdk');

Quickstart

StratumnSDK.getApplication('quickstart')
  .then(function(app) {
    console.log(app);
    // Create a new map, you can pass arguments to init
    return app.createMap('My message map');
  })
  .then(function(res) {
    // You can call a transition function like a regular function
    return res.addMessage('Hello, World');
  })
  .then(function(res) {
    console.log(res.link);
    console.log(res.meta);
  })
  .catch(function(err) {
    // Handle errors
  });

Reference

StratumnSDK#getApplication(appName)

Returns a promise that resolves with an application.

StratumnSDK
  .getApplication('quickstart')
  .then(function(app) {
    console.log(app.id);
  })
  .catch(function(err) {
    // Handle errors
  });

Application#createMap(...args)

Returns a promise that resolves with a new map.

StratumnSDK
  .getApplication('quickstart')
  .then(function(app) {
    return app.createMap('A new map');
  })
  .then(function(res) {
    console.log(res);
  })
  .catch(function(err) {
    // Handle errors
  });

Application#getLink(hash)

Returns a promise that resolves with an existing link.

StratumnSDK
  .getApplication('quickstart')
  .then(function(app) {
    return app.getLink('aee5427');
  })
  .then(function(res) {
    console.log(res);
  })
  .catch(function(err) {
    // Handle errors
  });

Application#getMap(mapId, tags)

Returns a promise that resolves with the meta data of the links in a map, optionally filters by tags.

StratumnSDK
  .getApplication('quickstart')
  .then(function(app) {
    return app.getMap('56ef33', ['tag1', 'tag2']);
  })
  .then(function(res) {
    console.log(res);
  })
  .catch(function(err) {
    // Handle errors
  });

Application#getBranches(linkHash, tags)

Returns a promise that resolves with the meta data of the links whose previous hashes are the given hash, optionally filters by tags.

StratumnSDK
  .getApplication('quickstart')
  .then(function(app) {
    return app.getBranches('abcdef', ['tag1', 'tag2']);
  })
  .then(function(res) {
    console.log(res);
  })
  .catch(function(err) {
    // Handle errors
  });

Application#getMapIds()

Returns a promise that resolves with all the map ids in this application.

StratumnSDK
  .getApplication('quickstart')
  .then(function(app) {
    return app.getMapIds();
  })
  .then(function(res) {
    console.log(res);
  })
  .catch(function(err) {
    // Handle errors
  });

Link#getPrev()

Returns a promise that resolves with the previous link of a link.

StratumnSDK
  .getApplication('quickstart')
  .then(function(app) {
    return app.getLink('aee5427');
  })
  .then(function(res) {
    return res.getPrev();
  })
  .then(function(res) {
    console.log(res);
  })
  .catch(function(err) {
    // Handle errors
  });

Link#load()

Returns a promise that resolves with the full link. Can be useful when you only have the meta data of links.

StratumnSDK
  .getApplication('quickstart')
  .then(function(app) {
    return app.getBranches('aee5427');
  })
  .then(function(res) {
    return Promise.all(res.map(function(link) { return link.load(); }));
  })
  .then(function(res) {
    console.log(res);
  })
  .catch(function(err) {
    // Handle errors
  });

Link#getBranches(tags)

Returns a promise that resolves with the meta data of the links whose previous hashes are the hash of the link, optionally filters by tags.

StratumnSDK
  .getApplication('quickstart')
  .then(function(app) {
    return app.getLink('aee5427');
  })
  .then(function(res) {
    return res.getBranches(['tag1']);
  })
  .then(function(res) {
    console.log(res);
  })
  .catch(function(err) {
    // Handle errors
  });

Link#:transitionFunction(...args)

Executes a transition function and returns a promise that resolves with a new link.

StratumnSDK
  .getApplication('quickstart')
  .then(function(app) {
    return app.getLink('aee5427');
  })
  .then(function(res) {
    return res.addMessage('Hello, World!');
  })
  .then(function(res) {
    console.log(res);
  })
  .catch(function(err) {
    // Handle errors
  });

Development

Install dependencies:

$ npm install

Build:

$ npm run build:all

Test:

$ npm test

Test coverage:

$ npm run test:cov
$ open coverage/lcov-report/index.html

Lint:

$ npm run lint

Lint and test:

$ npm run check

Bump version:

$ npm version major|minor|patch

Publish:

$ npm publish
0.7.0

9 years ago

1.5.0

9 years ago

0.6.0

9 years ago

1.4.0

9 years ago

1.3.2

10 years ago

1.3.1

10 years ago

1.3.0

10 years ago

1.2.3

10 years ago

1.2.2

10 years ago

1.2.1

10 years ago

1.0.2

10 years ago

1.0.2-alpha

10 years ago

1.0.1-alpha

10 years ago

1.0.0-alpha

10 years ago

1.0.0

10 years ago

0.5.0

10 years ago

0.4.2

10 years ago

0.4.1

10 years ago

0.3.1

10 years ago

0.2.0

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago