JSPM

@gapi/ipfs-pubsub

1.0.10
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 4
  • Score
    100M100P100Q155093F
  • License MIT

Package Exports

  • @gapi/ipfs-pubsub

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@gapi/ipfs-pubsub) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@Gapi Ipfs InterPlanetary File System Pub Sub Module (Beta)

More information about IPFS system can be find here IPFS-WIKI
For questions/issues you can write ticket here
This module is intended to be used with Gapi or rxdi

@gapi/ipfs hello world ipfs address:

https://ipfs.io/ipfs/QmPhYdx4dB6TwBU1KEbYmyET7HQJoLpyERvRD4kMWv3B3a

Installation and basic examples:

To install this module, run:
$ npm install @gapi/ipfs-pubsub --save

Consuming @gapi/ipfs-pubsub

Import inside AppModule or CoreModule
import { Module, Service } from '@rxdi/core';
import { IpfsPubSubModule, IpfsPubSubRoom } from '@gapi/ipfs-pubsub';


@Module({
    imports: [
        IpfsPubSubModule.forRoot({
            rooms: [
                { topic: 'test-topic'},
                { topic: 'test-topic2'},
                { topic: 'test-topic3'},
            ],
            logging: true
        }),
    ]
})
export class CoreModule { }

TODO: Later releases

import { Module, Service } from '@rxdi/core';
import { IpfsPubSubModule, IpfsPubSubRoom } from '@gapi/ipfs-pubsub';

@Service()
export class TestRoom implements IpfsPubSubRoom {
    name?: string = 'TestRoom'; // optional if not provided it will take class name as topic

    constructor(
        @Inject(OrbitDb) private orbitdb: Promise<OrbitDb>
        @Inject(IpfsPubSubRoom) private ipfsPubSubRoom: IpfsPubSubRoom
        @Inject(IPFS) private ipfs: IPFS
    ) {

    }
}

@Module({
    imports: [
        IpfsPubSubModule.forRoot({
            rooms: [TestRoom],
            logging: true
        }),
    ]
})
export class CoreModule { }

TODO: Better documentation...

Enjoy ! :)