UNPKG

filecoin-pin

Version:

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

34 lines 1.38 kB
import { homedir, platform } from 'node:os'; import { join } from 'node:path'; function getDataDirectory() { const home = homedir(); const plat = platform(); // Follow XDG Base Directory Specification on Linux if (plat === 'linux') { return process.env.XDG_DATA_HOME ?? join(home, '.local', 'share', 'filecoin-pin'); } // macOS uses ~/Library/Application Support (same as config) if (plat === 'darwin') { return join(home, 'Library', 'Application Support', 'filecoin-pin'); } // Windows uses %APPDATA% if (plat === 'win32') { return join(process.env.APPDATA ?? join(home, 'AppData', 'Roaming'), 'filecoin-pin'); } // Fallback for other platforms return join(home, '.filecoin-pin'); } export function createConfig() { const dataDir = getDataDirectory(); return { port: parseInt(process.env.PORT ?? '3456'), host: process.env.HOST ?? 'localhost', privateKey: process.env.PRIVATE_KEY, rpcUrl: process.env.RPC_URL ?? 'https://api.calibration.node.glif.io/rpc/v1', databasePath: process.env.DATABASE_PATH ?? join(dataDir, 'pins.db'), carStoragePath: process.env.CAR_STORAGE_PATH ?? join(dataDir, 'cars'), logLevel: process.env.LOG_LEVEL ?? 'info', pandoraAddress: process.env.PANDORA_ADDRESS }; } //# sourceMappingURL=config.js.map