stratumn-agent-client
v3.0.2
Published
Stratumn Indigo agent client library
Downloads
6
Maintainers
Readme
Agent client for Javascript
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-agent-client.min.js"></script>
If you want a specific version, include https://libs.stratumn.com/stratumn-agent-client-{version}.min.js
instead (for instance https://libs.stratumn.com/stratumn-agent-client-1.0.2.min.js
).
Node.js
$ npm install stratumn-agent-client
var AgentClient = require('stratumn-agent-client');
Quickstart
AgentClient.getAgent('http://localhost:3000')
.then(function(agent) {
console.log(agent);
// { processes: {
// firstProcess: {
// name: "first",
// processInfo: {...}
// storeInfo: {...}
// },
// secondProcess: {
// ...
// }
// }
// }
// Create a new map, you can pass arguments to init
var firstProcess = agent.processes.firstProcess;
return firstProcess.createMap('My conversation');
})
.then(function(segment) {
// You can call an action like a regular function
return segment.addMessage('Hello, World');
})
.then(function(segment) {
console.log(segment.link);
console.log(segment.meta);
})
.catch(function(err) {
// Handle errors
});
Reference
AgentClient#getAgent(url)
Returns a promise that resolves with an agent client targetting the agent server available at url
.
AgentClient
.getAgent('http://localhost:3000')
.then(function(agent) {
console.log(agent);
})
.catch(function(err) {
// Handle errors
});
AgentClient#getAgent(obj)
Returns a promise that resolves with an agent client targetting the agent object created previously.
const agentObj = create();
AgentClient
.getAgent(agentObj)
.then(function(agent) {
console.log(agent);
})
.catch(function(err) {
// Handle errors
});
AgentClient#fromSegment(rawSegment)
Returns a promise that resolves with the agent and segment from a given raw object.
AgentClient
.fromSegment(someRawSegment)
.then(function(res) {
console.log(res.agent);
console.log(res.segment);
})
.catch(function(err) {
// Handle errors
});
Process#createMap(...args)
Returns a promise that resolves with a the first segment of a map.
AgentClient
.getAgent('http://localhost:3000')
.then(function(agent) {
const process = agent.processes.firstProcess;
return process.createMap('A new map');
})
.then(function(segment) {
console.log(segment);
})
.catch(function(err) {
// Handle errors
});
Process#getSegment(linkHash)
Returns a promise that resolves with an existing segment.
AgentClient
.getAgent('http://localhost:3000')
.then(function(agent) {
const process = agent.processes.firstProcess;
return process.getSegment('aee5427');
})
.then(function(segment) {
console.log(segment);
})
.catch(function(err) {
// Handle errors
});
Process#findSegments(opts)
Returns a promise that resolves with existing segments.
Available options are:
offset
: offset of first returned segmentslimit
: limit number of returned segments, if -1 load all segmentsbatchSize
: size of each batch when loading all segments (default 20)mapIds
: return segments with specified map IDprevLinkHash
: return segments with specified previous link hashtags
: return segments that contains all the tags (array)
AgentClient
.getAgent('http://localhost:3000')
.then(function(agent) {
const process = agent.processes.firstProcess;
return process.findSegments({ tags: ['tag1', 'tag2'], offset: 20, limit: 10 });
})
.then(function(segments) {
console.log(segments);
})
.catch(function(err) {
// Handle errors
});
Process#getMapIds(opts)
Returns a promise that resolves with existing map IDs.
Available options are:
offset
: offset of first returned map IDlimit
: limit number of returned map ID
AgentClient
.getAgent('http://localhost:3000')
.then(function(agent) {
const process = agent.processes.firstProcess;
return process.getMapIds({ offset: 20, limit: 10 });
})
.then(function(mapIDs) {
console.log(mapIDs);
})
.catch(function(err) {
// Handle errors
});
Segment#getPrev()
Returns a promise that resolves with the previous segment.
AgentClient
.getAgent('http://localhost:3000')
.then(function(agent) {
const process = agent.processes.firstProcess;
return process.getSegment('aee5427');
})
.then(function(segment) {
return segment.getPrev();
})
.then(function(segment) {
console.log(segment);
})
.catch(function(err) {
// Handle errors
});
Segment#:actionName(...args)
Executes an action and returns a promise that resolves with a new segment.
AgentClient
.getAgent('http://localhost:3000')
.then(function(agent) {
const process = agent.processes.firstProcess;
return process.getSegment('aee5427');
})
.then(function(segment) {
return segment.addMessage('Hello, World!');
})
.then(function(segment) {
console.log(segment);
})
.catch(function(err) {
// Handle errors
});
Development
Install dependencies:
$ npm install
Build:
$ npm run build
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