Преглед изворни кода

decaffeinate: Convert settings.defaults.coffee to JS

decaffeinate пре 5 година
родитељ
комит
3acf183240
1 измењених фајлова са 102 додато и 79 уклоњено
  1. 102 79
      services/filestore/config/settings.defaults.js

+ 102 - 79
services/filestore/config/settings.defaults.js

@@ -1,95 +1,118 @@
-Path = require "path"
-
-# environment variables renamed for consistency
-# use AWS_ACCESS_KEY_ID-style going forward
-if process.env['AWS_KEY'] && !process.env['AWS_ACCESS_KEY_ID']
-	process.env['AWS_ACCESS_KEY_ID'] = process.env['AWS_KEY']
-if process.env['AWS_SECRET'] && !process.env['AWS_SECRET_ACCESS_KEY']
-	process.env['AWS_SECRET_ACCESS_KEY'] = process.env['AWS_SECRET']
-
-# pre-backend setting, fall back to old behaviour
-unless process.env['BACKEND']?
-	if process.env['AWS_ACCESS_KEY_ID']? or process.env['S3_BUCKET_CREDENTIALS']?
-		process.env['BACKEND'] = "s3"
-		process.env['USER_FILES_BUCKET_NAME'] = process.env['AWS_S3_USER_FILES_BUCKET_NAME']
-		process.env['TEMPLATE_FILES_BUCKET_NAME'] = process.env['AWS_S3_TEMPLATE_FILES_BUCKET_NAME']
-		process.env['PUBLIC_FILES_BUCKET_NAME'] = process.env['AWS_S3_PUBLIC_FILES_BUCKET_NAME']
-	else
-		process.env['BACKEND'] = "fs"
-		process.env['USER_FILES_BUCKET_NAME'] = Path.resolve(__dirname + "/../user_files")
-		process.env['TEMPLATE_FILES_BUCKET_NAME'] = Path.resolve(__dirname + "/../template_files")
-		process.env['PUBLIC_FILES_BUCKET_NAME'] = Path.resolve(__dirname + "/../public_files")
-
-settings =
-	internal:
-		filestore:
-			port: 3009
-			host: process.env['LISTEN_ADDRESS'] or "localhost"
-
-	filestore:
-		# Which backend persistor to use.
-		# Choices are
-		# s3 - Amazon S3
-		# fs - local filesystem
-		# gcs - Google Cloud Storage
-		backend: process.env['BACKEND']
-
-		gcs:
+/*
+ * decaffeinate suggestions:
+ * DS207: Consider shorter variations of null checks
+ * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
+ */
+const Path = require("path");
+
+// environment variables renamed for consistency
+// use AWS_ACCESS_KEY_ID-style going forward
+if (process.env['AWS_KEY'] && !process.env['AWS_ACCESS_KEY_ID']) {
+	process.env['AWS_ACCESS_KEY_ID'] = process.env['AWS_KEY'];
+}
+if (process.env['AWS_SECRET'] && !process.env['AWS_SECRET_ACCESS_KEY']) {
+	process.env['AWS_SECRET_ACCESS_KEY'] = process.env['AWS_SECRET'];
+}
+
+// pre-backend setting, fall back to old behaviour
+if (process.env['BACKEND'] == null) {
+	if ((process.env['AWS_ACCESS_KEY_ID'] != null) || (process.env['S3_BUCKET_CREDENTIALS'] != null)) {
+		process.env['BACKEND'] = "s3";
+		process.env['USER_FILES_BUCKET_NAME'] = process.env['AWS_S3_USER_FILES_BUCKET_NAME'];
+		process.env['TEMPLATE_FILES_BUCKET_NAME'] = process.env['AWS_S3_TEMPLATE_FILES_BUCKET_NAME'];
+		process.env['PUBLIC_FILES_BUCKET_NAME'] = process.env['AWS_S3_PUBLIC_FILES_BUCKET_NAME'];
+	} else {
+		process.env['BACKEND'] = "fs";
+		process.env['USER_FILES_BUCKET_NAME'] = Path.resolve(__dirname + "/../user_files");
+		process.env['TEMPLATE_FILES_BUCKET_NAME'] = Path.resolve(__dirname + "/../template_files");
+		process.env['PUBLIC_FILES_BUCKET_NAME'] = Path.resolve(__dirname + "/../public_files");
+	}
+}
+
+const settings = {
+	internal: {
+		filestore: {
+			port: 3009,
+			host: process.env['LISTEN_ADDRESS'] || "localhost"
+		}
+	},
+
+	filestore: {
+		// Which backend persistor to use.
+		// Choices are
+		// s3 - Amazon S3
+		// fs - local filesystem
+		// gcs - Google Cloud Storage
+		backend: process.env['BACKEND'],
+
+		gcs: {
 			endpoint:
-				if process.env['GCS_API_ENDPOINT']
-					apiEndpoint: process.env['GCS_API_ENDPOINT']
-					apiScheme: process.env['GCS_API_SCHEME']
+				process.env['GCS_API_ENDPOINT'] ?{
+					apiEndpoint: process.env['GCS_API_ENDPOINT'],
+					apiScheme: process.env['GCS_API_SCHEME'],
 					projectId: process.env['GCS_PROJECT_ID']
-			unlockBeforeDelete: process.env['GCS_UNLOCK_BEFORE_DELETE'] == "true"  # unlock an event-based hold before deleting. default false
-			deletedBucketSuffix: process.env['GCS_DELETED_BUCKET_SUFFIX']          # if present, copy file to another bucket on delete. default null
-			deleteConcurrency: parseInt(process.env['GCS_DELETE_CONCURRENCY']) || 50
+				} : undefined,
+			unlockBeforeDelete: process.env['GCS_UNLOCK_BEFORE_DELETE'] === "true",  // unlock an event-based hold before deleting. default false
+			deletedBucketSuffix: process.env['GCS_DELETED_BUCKET_SUFFIX'],          // if present, copy file to another bucket on delete. default null
+			deleteConcurrency: parseInt(process.env['GCS_DELETE_CONCURRENCY']) || 50,
 			signedUrlExpiryInMs: parseInt(process.env['LINK_EXPIRY_TIMEOUT'] || 60000)
+		},
 
 		s3:
-			if process.env['AWS_ACCESS_KEY_ID']? or process.env['S3_BUCKET_CREDENTIALS']?
-				key: process.env['AWS_ACCESS_KEY_ID']
-				secret: process.env['AWS_SECRET_ACCESS_KEY']
-				endpoint: process.env['AWS_S3_ENDPOINT']
-				pathStyle: process.env['AWS_S3_PATH_STYLE']
-				partSize: process.env['AWS_S3_PARTSIZE'] or (100 * 1024 * 1024)
-				bucketCreds: JSON.parse process.env['S3_BUCKET_CREDENTIALS'] if process.env['S3_BUCKET_CREDENTIALS']?
-
-		# GCS should be configured by the service account on the kubernetes pod. See GOOGLE_APPLICATION_CREDENTIALS,
-		# which will be picked up automatically.
-
-		stores:
-			user_files: process.env['USER_FILES_BUCKET_NAME']
-			template_files: process.env['TEMPLATE_FILES_BUCKET_NAME']
+			(process.env['AWS_ACCESS_KEY_ID'] != null) || (process.env['S3_BUCKET_CREDENTIALS'] != null) ?{
+				key: process.env['AWS_ACCESS_KEY_ID'],
+				secret: process.env['AWS_SECRET_ACCESS_KEY'],
+				endpoint: process.env['AWS_S3_ENDPOINT'],
+				pathStyle: process.env['AWS_S3_PATH_STYLE'],
+				partSize: process.env['AWS_S3_PARTSIZE'] || (100 * 1024 * 1024),
+				bucketCreds: ((process.env['S3_BUCKET_CREDENTIALS'] != null) ? JSON.parse(process.env['S3_BUCKET_CREDENTIALS']) : undefined)
+			} : undefined,
+
+		// GCS should be configured by the service account on the kubernetes pod. See GOOGLE_APPLICATION_CREDENTIALS,
+		// which will be picked up automatically.
+
+		stores: {
+			user_files: process.env['USER_FILES_BUCKET_NAME'],
+			template_files: process.env['TEMPLATE_FILES_BUCKET_NAME'],
 			public_files: process.env['PUBLIC_FILES_BUCKET_NAME']
+		},
 
 		fallback:
-			if process.env['FALLBACK_BACKEND']?
-				backend: process.env['FALLBACK_BACKEND']
-				# mapping of bucket names on the fallback, to bucket names on the primary.
-				# e.g. { myS3UserFilesBucketName: 'myGoogleUserFilesBucketName' }
-				buckets: JSON.parse(process.env['FALLBACK_BUCKET_MAPPING'] || '{}')
-				copyOnMiss: process.env['COPY_ON_MISS'] == 'true'
-
-		allowRedirects: if process.env['ALLOW_REDIRECTS'] == 'true' then true else false
-
-	path:
+			(process.env['FALLBACK_BACKEND'] != null) ?{
+				backend: process.env['FALLBACK_BACKEND'],
+				// mapping of bucket names on the fallback, to bucket names on the primary.
+				// e.g. { myS3UserFilesBucketName: 'myGoogleUserFilesBucketName' }
+				buckets: JSON.parse(process.env['FALLBACK_BUCKET_MAPPING'] || '{}'),
+				copyOnMiss: process.env['COPY_ON_MISS'] === 'true'
+			} : undefined,
+
+		allowRedirects: process.env['ALLOW_REDIRECTS'] === 'true' ? true : false
+	},
+
+	path: {
 		uploadFolder: Path.resolve(__dirname + "/../uploads")
+	},
 
-	commands:
-		# Any commands to wrap the convert utility in, for example ["nice"], or ["firejail", "--profile=/etc/firejail/convert.profile"]
+	commands: {
+		// Any commands to wrap the convert utility in, for example ["nice"], or ["firejail", "--profile=/etc/firejail/convert.profile"]
 		convertCommandPrefix: []
+	},
 
-	enableConversions: if process.env['ENABLE_CONVERSIONS'] == 'true' then true else false
+	enableConversions: process.env['ENABLE_CONVERSIONS'] === 'true' ? true : false,
 
-	sentry:
+	sentry: {
 		dsn: process.env.SENTRY_DSN
-
-# Filestore health check
-# ----------------------
-# Project and file details to check in persistor when calling /health_check
-if process.env['HEALTH_CHECK_PROJECT_ID']? and process.env['HEALTH_CHECK_FILE_ID']?
-	settings.health_check =
-		project_id: process.env['HEALTH_CHECK_PROJECT_ID']
+	}
+};
+
+// Filestore health check
+// ----------------------
+// Project and file details to check in persistor when calling /health_check
+if ((process.env['HEALTH_CHECK_PROJECT_ID'] != null) && (process.env['HEALTH_CHECK_FILE_ID'] != null)) {
+	settings.health_check = {
+		project_id: process.env['HEALTH_CHECK_PROJECT_ID'],
 		file_id: process.env['HEALTH_CHECK_FILE_ID']
+	};
+}
 
-module.exports = settings
+module.exports = settings;