UNPKG

filecoin-pin

Version:

IPFS Pinning Service API implementation that pins to Filecoin's PDP service

37 lines 1.56 kB
import { createConfig } from './config.js'; import { createLogger } from './logger.js'; import { createFilecoinPinningServer } from './filecoin-pinning-server.js'; export async function daemon(serviceInfo) { const config = createConfig(); const logger = createLogger(config); logger.info(`Starting ${serviceInfo.service} v${serviceInfo.version} daemon...`); try { const { server, pinStore } = await createFilecoinPinningServer(config, logger, serviceInfo); process.on('SIGINT', () => { void (async () => { logger.info('Received SIGINT, shutting down gracefully...'); await server.close(); await pinStore.stop(); process.exit(0); })(); }); process.on('SIGTERM', () => { void (async () => { logger.info('Received SIGTERM, shutting down gracefully...'); await server.close(); await pinStore.stop(); process.exit(0); })(); }); // Get the actual port the server is listening on const address = server.server.address(); const port = typeof address === 'string' ? address : address?.port; logger.info({ port }, `${serviceInfo.service} daemon started successfully`); logger.info(`Pinning service listening on http://${config.host}:${String(port)}`); } catch (error) { logger.error({ error }, 'Failed to start daemon'); process.exit(1); } } //# sourceMappingURL=index.js.map