Dive into secure and efficient coding practices with our curated list of the top 10 examples showcasing 'ipfs-repo' in functional components in JavaScript. Our advanced machine learning engine meticulously scans each line of code, cross-referencing millions of open source libraries to ensure your implementation is not just functional, but also robust and secure. Elevate your React applications to new heights by mastering the art of handling side effects, API calls, and asynchronous operations with confidence and precision.
/* eslint max-nested-callbacks: ["error", 5] */
/* eslint-env mocha */
'use strict'
const os = require('os')
const { expect } = require('interface-ipfs-core/src/utils/mocha')
const repoVersion = require('ipfs-repo').repoVersion
const pkgversion = require('../../package.json').version
const runOnAndOff = require('../utils/on-and-off')
describe('version', () => runOnAndOff((thing) => {
let ipfs
before(() => {
ipfs = thing.ipfs
})
it('get the version', async () => {
const out = await ipfs('version')
expect(out).to.eql(`js-ipfs version: ${pkgversion}\n`)
})
it('handles --number', async () => {
/* eslint-env mocha */
'use strict'
const { expect } = require('interface-ipfs-core/src/utils/mocha')
const repoVersion = require('ipfs-repo').repoVersion
const runOnAndOff = require('../utils/on-and-off')
describe('repo', () => runOnAndOff((thing) => {
let ipfs
before(() => {
ipfs = thing.ipfs
})
it('get repo stats', async () => {
const stats = await ipfs('repo stat')
expect(stats).to.match(/^NumObjects:\s\d+$/m)
expect(stats).to.match(/^RepoSize:\s\d+$/m)
expect(stats).to.match(/^StorageMax:\s\d+$/m)
expect(stats).to.match(/^RepoPath:\s.+$/m)
expect(stats).to.match(/^Version:\s\d+$/m)
'use strict'
const repoVersion = require('ipfs-repo').repoVersion
const callbackify = require('callbackify')
module.exports = function repo (self) {
return {
init: callbackify(async (bits, empty) => {
// 1. check if repo already exists
}),
/**
* If the repo has been initialized, report the current version.
* Otherwise report the version that would be initialized.
*
* @param {function(Error, Number)} [callback]
* @returns {undefined}
*/
version: callbackify(async () => {
'use strict'
const RepoErrors = require('ipfs-repo').errors
// Boot an IPFS node depending on the options set
module.exports = async (self) => {
self.log('booting')
const options = self._options
const doInit = options.init
const doStart = options.start
// Checks if a repo exists, and if so opens it
// Will return callback with a bool indicating the existence
// of the repo
async function repoOpened () {
// nothing to do
if (!self._repo.closed) {
return true
}
function isRepoUninitializedError (err) {
// If the error is that no repo exists,
// which happens when the version file is not found
// we just want to signal that no repo exist, not
// fail the whole process.
// Use standardized errors as much as possible
if (err.code === RepoErrors.ERR_REPO_NOT_INITIALIZED) {
return true
}
// TODO: As error codes continue to be standardized, this logic can be phase out;
// it is here to maintain compatibility
if (err.message.match(/not found/) || // indexeddb
err.message.match(/ENOENT/) || // fs
err.message.match(/No value/) // memory
) {
return true
}
return false
}
const NoKeychain = require('../components/no-keychain')
const GCLock = require('../components/pin/gc-lock')
const { DAGNode } = require('ipld-dag-pb')
const UnixFs = require('ipfs-unixfs')
const multicodec = require('multicodec')
const multiaddr = require('multiaddr')
const {
AlreadyInitializingError,
AlreadyInitializedError,
NotStartedError
} = require('../../errors')
const BlockService = require('ipfs-block-service')
const Ipld = require('ipld')
const getDefaultIpldOptions = require('../runtime/ipld-nodejs')
const createPreloader = require('./preload')
const { ERR_REPO_NOT_INITIALIZED } = require('ipfs-repo').errors
const IPNS = require('../ipns')
const OfflineDatastore = require('../ipns/routing/offline-datastore')
const initAssets = require('../runtime/init-assets-nodejs')
const Components = require('.')
const PinManager = require('../components/pin/pin-manager')
module.exports = ({
apiManager,
print,
constructorOptions
}) => async function init (options) {
const { cancel } = apiManager.update({ init: () => { throw new AlreadyInitializingError() } })
try {
options = mergeOptions({}, options, constructorOptions.init)
const removeBlock = async ({ key: k }) => {
blocksCount++
try {
const cid = Repo.utils.blockstore.keyToCid(k)
const b32 = cid.toV1().toString('base32')
if (markedSet.has(b32)) return null
const res = { cid }
try {
await repo.blocks.delete(cid)
removedBlocksCount++
} catch (err) {
res.err = new Error(`Could not delete block with CID ${cid}: ${err.message}`)
}
return res
} catch (err) {
const msg = `Could not convert block with key '${k}' to CID`
log(msg, err)
return { err: new Error(msg + `: ${err.message}`) }