filecoin-pin
Version:
IPFS Pinning Service API implementation that pins to Filecoin's PDP service
34 lines • 1.38 kB
JavaScript
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