Skip to content

Commit 55978ab

Browse files
committed
fix: remove redundant ipfs configing code
1 parent e825a0b commit 55978ab

File tree

6 files changed

+91
-152
lines changed

6 files changed

+91
-152
lines changed

src/core/commands/start-ipfs.js

Lines changed: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,22 @@ const IpfsApi = require('ipfs-http-client')
44
const ipfsdCtrl = require('ipfsd-ctl')
55
const which = require('which-promise')
66
const promisify = require('util').promisify
7+
const request = require('ipfs-registry-mirror-common/utils/retry-request')
8+
const timeout = require('ipfs-registry-mirror-common/utils/timeout-promise')
9+
10+
const cleanUpOps = []
11+
12+
const cleanUp = () => {
13+
Promise.all(
14+
cleanUpOps.map(op => op())
15+
)
16+
.then(() => {
17+
process.exit(0)
18+
})
19+
}
20+
21+
process.on('SIGTERM', cleanUp)
22+
process.on('SIGINT', cleanUp)
723

824
const spawn = (createArgs, spawnArgs = { init: true }) => {
925
return new Promise((resolve, reject) => {
@@ -72,4 +88,50 @@ const startIpfs = async (config) => {
7288
}
7389
}
7490

75-
module.exports = startIpfs
91+
const createIpfs = options => {
92+
return async () => {
93+
const ipfs = await startIpfs(options)
94+
95+
cleanUpOps.push(() => {
96+
return new Promise((resolve) => {
97+
if (options.ipfs.node !== 'proc') {
98+
return resolve()
99+
}
100+
101+
ipfs.stop(() => {
102+
console.info('😈 IPFS node stopped') // eslint-disable-line no-console
103+
104+
resolve()
105+
})
106+
})
107+
})
108+
109+
console.info('🗂️ Loading registry index from', options.registry) // eslint-disable-line no-console
110+
111+
try {
112+
const mirror = await request(Object.assign({}, options.request, {
113+
uri: options.registry,
114+
json: true
115+
}))
116+
117+
console.info('☎️ Dialling registry mirror', mirror.ipfs.addresses.join(',')) // eslint-disable-line no-console
118+
119+
await timeout(
120+
Promise.race(
121+
mirror.ipfs.addresses.map(addr => {
122+
return ipfs.api.swarm.connect(mirror.ipfs.addresses[0])
123+
})
124+
),
125+
options.registryConnectTimeout
126+
)
127+
128+
console.info('📱️ Connected to registry') // eslint-disable-line no-console
129+
} catch (error) {
130+
console.info('📴 Not connected to registry') // eslint-disable-line no-console
131+
}
132+
133+
return ipfs
134+
}
135+
}
136+
137+
module.exports = createIpfs

src/core/commands/start-server.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const favicon = require('ipfs-registry-mirror-common/handlers/favicon')
99
const root = require('../handlers/root')
1010
const tarball = require('../handlers/tarball')
1111
const manifest = require('../handlers/manifest')
12-
const getIpfs = require('../middleware/get-ipfs')
12+
const startIpfs = require('./start-ipfs')
1313

1414
const startServer = (config) => {
1515
const app = express()
@@ -19,11 +19,11 @@ const startServer = (config) => {
1919
app.get('/favicon.ico', favicon(config, app))
2020
app.get('/favicon.png', favicon(config, app))
2121

22-
app.get('/', getIpfs(config), root(config, app))
22+
app.get('/', root(config, app))
2323

2424
// intercept requests for tarballs and manifests
25-
app.get('/*.tgz', getIpfs(config), tarball(config, app))
26-
app.get('/*', getIpfs(config), manifest(config, app))
25+
app.get('/*.tgz', tarball(config, app))
26+
app.get('/*', manifest(config, app))
2727

2828
// everything else should just proxy for the registry
2929
const registry = proxy(config.registry, {
@@ -36,6 +36,8 @@ const startServer = (config) => {
3636

3737
app.use(errorLog)
3838

39+
app.locals.ipfs = startIpfs(config)
40+
3941
return new Promise((resolve, reject) => {
4042
const callback = once((error) => {
4143
if (error) {

src/core/commands/update.js

Lines changed: 20 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,97 +1,43 @@
11
'use strict'
22

3+
const request = require('ipfs-registry-mirror-common/utils/retry-request')
34
const config = require('../config')
45
const startIpfs = require('./start-ipfs')
5-
const request = require('ipfs-registry-mirror-common/utils/retry-request')
6-
const timeout = require('ipfs-registry-mirror-common/utils/timeout-promise')
7-
8-
const cleanUpOps = []
9-
10-
const cleanUp = () => {
11-
Promise.all(
12-
cleanUpOps.map(op => op())
13-
)
14-
.then(() => {
15-
process.exit(0)
16-
})
17-
}
18-
19-
process.on('SIGTERM', cleanUp)
20-
process.on('SIGINT', cleanUp)
216

227
module.exports = async (options) => {
238
options = config(options)
249

25-
const ipfs = await startIpfs(options)
26-
27-
cleanUpOps.push(() => {
28-
return new Promise((resolve) => {
29-
if (options.ipfs.node !== 'proc') {
30-
return resolve()
31-
}
32-
33-
ipfs.stop(() => {
34-
console.info('👿 IPFS node stopped') // eslint-disable-line no-console
35-
resolve()
36-
})
37-
})
38-
})
39-
40-
console.info('🗂️ Loading registry index from', options.registry) // eslint-disable-line no-console
10+
const ipfs = await startIpfs(options)()
4111

4212
const mirror = await request(Object.assign({}, options.request, {
4313
uri: options.registry,
4414
json: true
4515
}))
4616

47-
console.info('☎️ Dialling registry mirror', mirror.ipfs.addresses.join(',')) // eslint-disable-line no-console
17+
const tempPath = `${options.ipfs.prefix}-${Date.now()}`
4818

49-
let connected
19+
console.info('📠 Copying registry index', mirror.root, 'to', tempPath) // eslint-disable-line no-console
5020

51-
await timeout(
52-
Promise.race(
53-
mirror.ipfs.addresses.map(addr => {
54-
return ipfs.api.swarm.connect(mirror.ipfs.addresses[0])
55-
})
56-
),
57-
options.registryConnectTimeout
58-
)
59-
.then(() => {
60-
connected = true
61-
})
62-
.catch(() => {
63-
connected = false
21+
try {
22+
await ipfs.api.files.rm(tempPath, {
23+
recursive: true
6424
})
25+
} catch (e) {
26+
// ignore
27+
}
6528

66-
if (connected) {
67-
const tempPath = `${options.ipfs.prefix}-${Date.now()}`
68-
69-
console.info('📠 Copying registry index', mirror.root, 'to', tempPath) // eslint-disable-line no-console
70-
71-
try {
72-
await ipfs.api.files.rm(tempPath, {
73-
recursive: true
74-
})
75-
} catch (e) {
76-
// ignore
77-
}
78-
79-
await ipfs.api.files.cp(mirror.root, tempPath)
80-
81-
console.info('💌 Copied registry index', mirror.root, 'to', tempPath) // eslint-disable-line no-console
82-
83-
console.info('🗑️ Replacing old registry index if it exists') // eslint-disable-line no-console
29+
await ipfs.api.files.cp(mirror.root, tempPath)
8430

85-
try {
86-
await ipfs.api.files.rm(options.ipfs.prefix, {
87-
recursive: true
88-
})
89-
} catch (e) {
90-
// ignore
91-
}
31+
console.info('💌 Copied registry index', mirror.root, 'to', tempPath) // eslint-disable-line no-console
32+
console.info('🗑️ Replacing old registry index if it exists') // eslint-disable-line no-console
9233

93-
await ipfs.api.files.mv(tempPath, options.ipfs.prefix)
34+
try {
35+
await ipfs.api.files.rm(options.ipfs.prefix, {
36+
recursive: true
37+
})
38+
} catch (e) {
39+
// ignore
9440
}
9541

96-
await cleanUp()
42+
await ipfs.api.files.mv(tempPath, options.ipfs.prefix)
9743
}

src/core/handlers/manifest.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ module.exports = (config, app) => {
3030

3131
log(`Loading manifest for ${moduleName}`)
3232

33-
const ipfs = await request.app.locals.ipfs
33+
const ipfs = await request.app.locals.ipfs()
3434

3535
try {
3636
const manifest = await loadManifest(config, ipfs.api, moduleName)

src/core/handlers/tarball.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ module.exports = (config, app) => {
1313

1414
log(`Loading ${file}`)
1515

16-
const ipfs = await request.app.locals.ipfs
16+
const ipfs = await request.app.locals.ipfs()
1717

1818
try {
1919
const readStream = await loadTarball(config, ipfs.api, file)

src/core/middleware/get-ipfs.js

Lines changed: 0 additions & 71 deletions
This file was deleted.

0 commit comments

Comments
 (0)