Convert lib/constants module to typescript

Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
This commit is contained in:
Cameron Diver 2018-04-30 10:53:00 +01:00
parent 67b9ec6ca7
commit c1fbc2dc21
No known key found for this signature in database
GPG Key ID: 69264F9C923F55C1
2 changed files with 48 additions and 43 deletions

View File

@ -1,43 +0,0 @@
{ checkString } = require './validation'
bootMountPointFromEnv = checkString(process.env.BOOT_MOUNTPOINT)
rootMountPoint = checkString(process.env.ROOT_MOUNTPOINT) ? '/mnt/root'
supervisorNetworkInterface = 'supervisor0'
module.exports =
rootMountPoint: rootMountPoint
databasePath: checkString(process.env.DATABASE_PATH) ? '/data/database.sqlite'
dockerSocket: process.env.DOCKER_SOCKET ? '/var/run/docker.sock'
supervisorImage: checkString(process.env.SUPERVISOR_IMAGE) ? 'resin/rpi-supervisor'
ledFile: checkString(process.env.LED_FILE) ? '/sys/class/leds/led0/brightness'
forceSecret: # Only used for development
api: checkString(process.env.RESIN_SUPERVISOR_SECRET) ? null
logsChannel: checkString(process.env.RESIN_SUPERVISOR_LOGS_CHANNEL) ? null
vpnStatusPath: checkString(process.env.VPN_STATUS_PATH) ? "#{rootMountPoint}/run/openvpn/vpn_status"
hostOSVersionPath: checkString(process.env.HOST_OS_VERSION_PATH) ? "#{rootMountPoint}/etc/os-release"
privateAppEnvVars: [
'RESIN_SUPERVISOR_API_KEY'
'RESIN_API_KEY'
]
dataPath: checkString(process.env.RESIN_DATA_PATH) ? '/resin-data'
bootMountPointFromEnv: bootMountPointFromEnv
bootMountPoint: bootMountPointFromEnv ? '/boot'
configJsonPathOnHost: checkString(process.env.CONFIG_JSON_PATH)
proxyvisorHookReceiver: checkString(process.env.RESIN_PROXYVISOR_HOOK_RECEIVER) ? 'http://0.0.0.0:1337'
apiEndpointFromEnv: checkString(process.env.API_ENDPOINT)
configJsonNonAtomicPath: '/boot/config.json'
defaultPubnubSubscribeKey: process.env.DEFAULT_PUBNUB_SUBSCRIBE_KEY
defaultPubnubPublishKey: process.env.DEFAULT_PUBNUB_PUBLISH_KEY
defaultMixpanelToken: process.env.DEFAULT_MIXPANEL_TOKEN
supervisorNetworkInterface: supervisorNetworkInterface
allowedInterfaces: ['resin-vpn', 'tun0', 'docker0', 'lo', supervisorNetworkInterface]
appsJsonPath: process.env.APPS_JSON_PATH ? '/boot/apps.json'
ipAddressUpdateInterval: 30 * 1000
imageCleanupErrorIgnoreTimeout: 3600 * 1000
maxDeltaDownloads: 3
defaultVolumeLabels: {
'io.resin.supervised': 'true'
}
process.env.DOCKER_HOST ?= "unix://#{module.exports.dockerSocket}"

48
src/lib/constants.ts Normal file
View File

@ -0,0 +1,48 @@
import { checkString } from './validation';
const bootMountPointFromEnv = checkString(process.env.BOOT_MOUNTPOINT);
const rootMountPoint = checkString(process.env.ROOT_MOUNTPOINT) || '/mnt/root';
const supervisorNetworkInterface = 'supervisor0';
const constants = {
rootMountPoint,
databasePath: checkString(process.env.DATABASE_PATH) || '/data/database.sqlite',
dockerSocket: process.env.DOCKER_SOCKET || '/var/run/docker.sock',
supervisorImage: checkString(process.env.SUPERVISOR_IMAGE) || 'resin/rpi-supervisor',
ledFile: checkString(process.env.LED_FILE) || '/sys/class/leds/led0/brightness',
vpnStatusPath:
checkString(process.env.VPN_STATUS_PATH) || `${rootMountPoint}/run/openvpn/vpn_status`,
hostOSVersionPath:
checkString(process.env.HOST_OS_VERSION_PATH) || `${rootMountPoint}/etc/os-release`,
privateAppEnvVars: [
'RESIN_SUPERVISOR_API_KEY',
'RESIN_API_KEY',
],
dataPath: checkString(process.env.RESIN_DATA_PATH) || '/resin-data',
bootMountPointFromEnv,
bootMountPoint: bootMountPointFromEnv || '/boot',
configJsonPathOnHost: checkString(process.env.CONFIG_JSON_PATH),
proxyvisorHookReceiver:
checkString(process.env.RESIN_PROXYVISOR_HOOK_RECEIVER) || 'http://0.0.0.0:1337',
apiEndpointFromEnv: checkString(process.env.API_ENDPOINT),
configJsonNonAtomicPath: '/boot/config.json',
defaultPubnubSubscribeKey: process.env.DEFAULT_PUBNUB_SUBSCRIBE_KEY,
defaultPubnubPublishKey: process.env.DEFAULT_PUBNUB_PUBLISH_KEY,
defaultMixpanelToken: process.env.DEFAULT_MIXPANEL_TOKEN,
supervisorNetworkInterface: supervisorNetworkInterface,
allowedInterfaces: [ 'resin-vpn', 'tun0', 'docker0', 'lo', supervisorNetworkInterface ],
appsJsonPath: process.env.APPS_JSON_PATH || '/boot/apps.json',
ipAddressUpdateInterval: 30 * 1000,
imageCleanupErrorIgnoreTimeout: 3600 * 1000,
maxDeltaDownloads: 3,
defaultVolumeLabels: {
'io.resin.supervised': 'true',
},
};
if (process.env.DOCKER_HOST == null) {
process.env.DOCKER_HOST = `unix://${constants.dockerSocket}`;
}
export = constants;