activity-streams
v4.3.8
Published
A simple tool to facilitate handling and referencing activity streams without unnecessary verbosity
Downloads
37
Maintainers
Readme
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 // default
});
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://[email protected]',
'@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://[email protected]');
// ... returns:
// {
// '@id': 'irc://[email protected]',
// '@type': "person",
// displayName: 'Example User',
// url: "http://activitystrea.ms",
// image: {
// url: "http://activitystrea.ms/avatar.jpg",
// mediaType: "image/jpeg",
// width: 250,
// height: 250
// }
// }
ActivityStreams.Stream({
'@context': 'send',
actor: 'irc://[email protected]',
object: {
'@type': "message",
content: "hello world!"
},
target: 'irc://irc.freenode.net/activitystreams'
});
// ... returns:
// {
// '@context': 'send',
// actor: {
// '@id': 'irc://[email protected]',
// '@type': "person",
// displayName: 'Example User',
// url: "http://activitystrea.ms",
// image: {
// url: "http://activitystrea.ms/avatar.jpg",
// mediaType: "image/jpeg",
// width: 250,
// height: 250
// }
// },
// object: {
// '@type': "message",
// content: "hello world!"
// },
// target: {
// '@id': 'irc://irc.freenode.net/activitystreams',
// '@type': "chatroom",
// displayName: '#activitystreams'
// }
// }