activity-streams.js

A simple tool to facilitate handling and referencing activity streams and it's objects, cutting down on verbosity.
Designed to run in both node.js
and the browser
.
I am learning about JSON-LD and ActivityStreams2 as I write this library, so suggestions for improvement are very welcome.
Install
Node.js
$ npm install activity-streams
const ASFactory = require('activity-streams');
const ActivityStreams = ASFactory({
failOnUnkownObjectProperties: false
});
Browser
<script src="http://example.com/activity-streams.js"></script>
Once included in a web-page, the ActivityStreams
base object should be on the global scope, with the sub-properties ActivityStreams.Object
and ActivityStreams.Stream
.
Example
const ActivityStreams = ASFactory();
ActivityStreams.Object.create({
'@id': 'irc://exampleUser@irc.freenode.net',
'@type': "person",
displayName: 'Example User',
url: "http://activitystrea.ms",
image: {
url: "http://activitystrea.ms/avatar.jpg",
mediaType: "image/jpeg",
width: 250,
height: 250
}
});
ActivityStreams.on('activity-object-create', function (obj) {
console.log('this object was just created: ', obj);
});
ActivityStreams.Object.create({
'@id': 'irc://irc.freenode.net/activitystreams',
'@type': "chatroom",
displayName: '#activitystreams'
});
const exampleUser = ActivityStreams.Object.get('irc://exampleUser@irc.freenode.net');
ActivityStreams.Stream({
'@context': 'send',
actor: 'irc://exampleUser@irc.freenode.net',
object: {
'@type': "message",
content: "hello world!"
},
target: 'irc://irc.freenode.net/activitystreams'
});