jdxcode/npm-register

View on GitHub
lib/config.js

Summary

Maintainability
A
0 mins
Test Coverage
'use strict'

let url = require('url')
let env = process.env
if (env.NODE_ENV === 'development') require('dotenv').config()

module.exports = {
  port: env.PORT || 3000,
  production: !!['production', 'staging'].find(e => e === env.NODE_ENV),
  timeout: parseInt(env.TIMEOUT) || 10000,
  uplink: url.parse(env.UPLINK || 'https://registry.npmjs.org'),
  redis: env.REDIS_URL,
  cloudfrontID: env.CLOUDFRONT_ID,
  cloudfrontHost: env.CLOUDFRONT_HOST,
  cache: {
    packageTTL: parseInt(env.CACHE_PACKAGE_TTL) || 60,
    tarballTTL: parseInt(env.CACHE_TARBALL_TTL) || (6 * 60 * 60)
  },
  fs: {directory: env.NPM_REGISTER_FS_DIRECTORY || 'tmp'},
  s3: {
    bucket: env.AWS_S3_BUCKET,
    region: env.AWS_DEFAULT_REGION,
    params: env.AWS_S3_PARAMS ? JSON.parse(env.AWS_S3_PARAMS) : {}
  },
  gcs: {
    bucket: env.GCS_BUCKET
  },
  npm: {
    basic: env.NPM_AUTH_BASIC,
    token: env.NPM_AUTH_TOKEN
  },
  auth: {
    write: (env.NPM_REGISTER_AUTH_WRITE || 'true') === 'true',
    read: (env.NPM_REGISTER_AUTH_READ || 'false') === 'true'
  },
  urlPrefix: env.NPM_REGISTER_URL_PREFIX || ''
}

let storageType = ((env.NPM_REGISTER_STORAGE && env.NPM_REGISTER_STORAGE.toLowerCase()) || 'fs')
let Storage = require('./storage/' + storageType)
module.exports.storage = new Storage()