I downloaded source code from GitHub and try to run it. It ran but then came the issue with “ipfs-api” so then I install the latest version of “iphs-http-client” now it pops up a lot of error relating to

PLEASE TELL ME IF THIS CAN BE SOLVE IF CANT TELL ME THE REASON TOO, I'm new to this

error  in ./node_modules/ipfs-http-client/src/add-all.js

Module parse failed: C:\Users\lione\Sample\Document-verification-on-Blockchain\node_modules\ipfs-http-client\src\add-all.js Unexpected token (16:17)
You may need an appropriate loader to handle this file type.
|    * @type {import('../../ipfs/src/core/components/add-all').AddAll<import('.').HttpOptions>}
|    */
|   async function * addAll (input, options = {}) {
|     const progressFn = options.progress
|

 @ ./node_modules/ipfs-http-client/src/index.js 32:12-32
 @ ./ethereum/ipfs.js
 @ ./pages/Org/show.js?entry
 @ multi ./pages/Org/show.js?entry
this is the error log

add-all.js

'use strict'

const CID = require('cids')
const toCamel = require('./lib/object-to-camel')
const configure = require('./lib/configure')
const multipartRequest = require('./lib/multipart-request')
const toUrlSearchParams = require('./lib/to-url-search-params')
const anySignal = require('any-signal')
const AbortController = require('abort-controller').default

module.exports = configure((api) => {
  // eslint-disable-next-line valid-jsdoc
  /**
   * @type {import('../../ipfs/src/core/components/add-all').AddAll<import('.').HttpOptions>}
   */
  async function * addAll (input, options = {}) {
    const progressFn = options.progress

    // allow aborting requests on body errors
    const controller = new AbortController()
    const signal = anySignal([controller.signal, options.signal])

    const res = await api.post('add', {
      searchParams: toUrlSearchParams({
        'stream-channels': true,
        ...options,
        progress: Boolean(progressFn)
      }),
      timeout: options.timeout,
      signal,
      ...(
        await multipartRequest(input, controller, options.headers)
      )
    })

    for await (let file of res.ndjson()) {
      file = toCamel(file)

      if (file.hash !== undefined) {
        yield toCoreInterface(file)
      } else if (progressFn) {
        progressFn(file.bytes || 0)
      }
    }
  }
  return addAll
})

/**
 * @typedef {import('../../ipfs/src/core/components/add-all').UnixFSEntry} UnixFSEntry
 */

/**
 * @returns {UnixFSEntry}
 */
function toCoreInterface ({ name, hash, size, mode, mtime, mtimeNsecs }) {
  const output = {
    path: name,
    cid: new CID(hash),
    size: parseInt(size)
  }

  if (mode != null) {
    output.mode = parseInt(mode, 8)
  }

  if (mtime != null) {
    output.mtime = {
      secs: mtime,
      nsecs: mtimeNsecs || 0
    }
  }

  // @ts-ignore
  return output
}

index.js

'use strict'
/* eslint-env browser */

const CID = require('cids')
const multiaddr = require('multiaddr')
const multibase = require('multibase')
const multicodec = require('multicodec')
const multihash = require('multihashes')
const globSource = require('ipfs-utils/src/files/glob-source')
const urlSource = require('ipfs-utils/src/files/url-source')

/**
 * @typedef { import("./lib/core").ClientOptions } ClientOptions
 */

/**
 * @typedef {object} HttpOptions
 * @property {Headers | Record<string, string>} [headers] - An object or [Headers](https://developer.mozilla.org/en-US/docs/Web/API/Headers) instance that can be used to set custom HTTP headers. Note that this option can also be [configured globally](#custom-headers) via the constructor options.
 * @property {URLSearchParams | Record<string, string>} [searchParams] - An object or [`URLSearchParams`](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams) instance that can be used to add additional query parameters to the query string sent with each request.
 * @property {object} [ipld]
 * @property {any[]} [ipld.formats] - An array of additional [IPLD formats](https://github.com/ipld/interface-ipld-format) to support
 * @property {(format: string) => Promise<any>} [ipld.loadFormat] - an async function that takes the name of an [IPLD format](https://github.com/ipld/interface-ipld-format) as a string and should return the implementation of that codec
 */

// eslint-disable-next-line valid-jsdoc
/**
 * @param {ClientOptions} options
 */
function ipfsClient (options = {}) {
  return {
    add: require('./add')(options),
    addAll: require('./add-all')(options),
    bitswap: require('./bitswap')(options),
    block: require('./block')(options),
    bootstrap: require('./bootstrap')(options),
    cat: require('./cat')(options),
    commands: require('./commands')(options),
    config: require('./config')(options),
    dag: require('./dag')(options),
    dht: require('./dht')(options),
    diag: require('./diag')(options),
    dns: require('./dns')(options),
    files: require('./files')(options),
    get: require('./get')(options),
    getEndpointConfig: require('./get-endpoint-config')(options),
    id: require('./id')(options),
    key: require('./key')(options),
    log: require('./log')(options),
    ls: require('./ls')(options),
    mount: require('./mount')(options),
    name: require('./name')(options),
    object: require('./object')(options),
    pin: require('./pin')(options),
    ping: require('./ping')(options),
    pubsub: require('./pubsub')(options),
    refs: require('./refs')(options),
    repo: require('./repo')(options),
    resolve: require('./resolve')(options),
    stats: require('./stats')(options),
    stop: require('./stop')(options),
    shutdown: require('./stop')(options),
    swarm: require('./swarm')(options),
    version: require('./version')(options)
  }
}

Object.assign(ipfsClient, { CID, multiaddr, multibase, multicodec, multihash, globSource, urlSource })

module.exports = ipfsClient
1

There are 1 best solutions below

0
achingbrain On BEST ANSWER

It looks like you're using babel via webpack to transpile the source code and it's failing to parse the async generator function syntax. You may need to add a plugin or otherwise fix your config.