@gapi/ipfs
TypeScript icon, indicating that this package has built-in type declarations

1.8.117 • Public • Published

@Gapi Ipfs InterPlanetary File System 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

@gapi/ipfs hello world ipfs address:

https://ipfs.io/ipfs/QmPhYdx4dB6TwBU1KEbYmyET7HQJoLpyERvRD4kMWv3B3a

@Gapi was re-written with low level dependency injection with rxjs 6 more details

Installation and basic examples:

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

Consuming @gapi/ipfs

Without configuration

Import inside AppModule or CoreModule
import { Module } from '@rxdi/core';
import { IpfsModule } from '@gapi/ipfs';

@Module({
    imports: [
        IpfsModule.forRoot({
            repo: '/home/user/Desktop/ipfs-test',
            init: true,
            start: true,
            logging: true,
            config: {
                Addresses: {
                    API: '/ip4/127.0.0.1/tcp/5001',
                    Announce: [],
                    Gateway: '/ip4/127.0.0.1/tcp/8080',
                    NoAnnounce: [],
                    Swarm: [
                        '/ip4/0.0.0.0/tcp/4001',
                        '/ip6/::/tcp/4001'
                    ]
                },
            }
        }),
    ]
})
export class CoreModule { }

Interact with Ipfs

note: keep in mind that this is beta testing contribution is appreciated

import { Inject, Service } from '@rxdi/core';
import { IPFS } from '@gapi/ipfs';
import { Readable } from 'stream';
import { Observable } from 'rxjs/Observable';
import { Subject } from 'rxjs/Subject';

@Service()
export class IpfsTestService {

    constructor(
        @Inject(IPFS) private ipfs: IPFS
    ) {}

    async ipfsTest() {
        const content = new Readable();
        content.push('Hello world from @gapi/ipfs module');
        content.push(null);

        const file = await this.ipfs.files.add([
            { path: '/gapi-test-file.txt', content }
        ]);

        const catContentInsideIpfsNode = (await this.ipfs.files.cat(file[0].hash)).toString();
        // Cat content of file
        console.log(catContentInsideIpfsNode);

        // Will print 'Hello world from @gapi/ipfs module'

        // Get file based on hash
        // file[0].hash 'QmPhYdx4dB6TwBU1KEbYmyET7HQJoLpyERvRD4kMWv3B3a'
        const fileInsideIpfsNode = await this.ipfs.files.get(file[0].hash);

        // Print content of file
        console.log(fileInsideIpfsNode[0].content.toString());

        // will print 'Hello world from @gapi/ipfs module'

        return await Promise.resolve();
    }

}

TODO: Better documentation...

Enjoy ! :)

Readme

Keywords

Package Sidebar

Install

npm i @gapi/ipfs

Weekly Downloads

414

Version

1.8.117

License

MIT

Unpacked Size

36.9 kB

Total Files

19

Last publish

Collaborators

  • gapi