pussy-ts/src/utils/ipfs/helpers.ts

import Unixfs from 'ipfs-unixfs';
import { DAGNode, util as DAGUtil } from 'ipld-dag-pb';
import { isString } from 'lodash';
import { IpfsApi } from 'src/services/backend/workers/background/worker';
import { IpfsApi } from 'src/services/backend/workers/background/worker';
import { ParticleCid } from 'src/types/base';
import { PATTERN_IPFS_HASH } from 'src/constants/app';

// eslint-disable-next-line import/prefer-default-export
export const getIpfsHash = (string: string): Promise<ParticleCid> =>
  new Promise((resolve, reject) => {
    const unixFsFile = new Unixfs('file', Buffer.from(string));

    const buffer = unixFsFile.marshal();
    DAGNode.create(buffer, (err, dagNode) => {
      if (err) {
        reject(new Error('Cannot create ipfs DAGNode'));
      }

      DAGUtil.cid(dagNode, (error, cid) => {
        resolve(cid.toBaseEncodedString());
      });
    });
  });
export const addIfpsMessageOrCid = async (
  message: string | ParticleCid | File,
  { ipfsApi }: { ipfsApi: IpfsApi | null }
) => {
  if (!ipfsApi) {
    throw Error('IpfsApi is not initialized');
  }

  return (
    isString(message) && message.match(PATTERN_IPFS_HASH)
      ? message
      : ((await ipfsApi!.addContent(message)) as string)
  ) as ParticleCid;
};

Synonyms

pussy-ts/src/utils/helpers.ts
cyb/src/utils/exceptions/helpers.ts
cyber-ts/packages/cyber-ts/src/helpers.ts
cyb/src/utils/rxjs/helpers.ts
pussy-ts/src/utils/exceptions/helpers.ts
cyb/src/services/scripting/helpers.ts
cyb/src/utils/ipfs/helpers.ts

Neighbours