4.4.0-alpha.3 • Published 2 years ago
@sockethub/activity-streams v4.4.0-alpha.3
@sockethub/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 @sockethub/activity-streams
const ASFactory = require('@sockethub/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://exampleUser@irc.freenode.net',
type: "person",
name: '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",
name: '#activitystreams'
});
const exampleUser = ActivityStreams.Object.get('irc://exampleUser@irc.freenode.net');
// ... returns:
// {
// id: 'irc://exampleUser@irc.freenode.net',
// type: "person",
// name: '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://exampleUser@irc.freenode.net',
object: {
type: "message",
content: "hello world!"
},
target: 'irc://irc.freenode.net/activitystreams'
});
// ... returns:
// {
// '@context': 'send',
// actor: {
// id: 'irc://exampleUser@irc.freenode.net',
// type: "person",
// name: '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",
// name: '#activitystreams'
// }
// }
4.4.0-alpha.4
2 years ago
4.4.0-alpha.3
2 years ago