sepia-search-motore-di-rice.../server/initializers/constants.ts

96 lines
2.5 KiB
TypeScript
Raw Normal View History

2020-02-13 11:49:03 +01:00
import * as config from 'config'
import { isTestInstance } from '../helpers/core-utils'
const API_VERSION = 'v1'
const CONFIG = {
LISTEN: {
PORT: config.get<number>('listen.port')
},
2020-06-05 11:19:50 +02:00
WEBSERVER: {
SCHEME: config.get<boolean>('webserver.https') === true ? 'https' : 'http',
HOSTNAME: config.get<string>('webserver.hostname'),
PORT: config.get<number>('webserver.port')
},
2020-02-13 11:49:03 +01:00
ELASTIC_SEARCH: {
HOSTNAME: config.get<string>('elastic_search.hostname'),
PORT: config.get<number>('elastic_search.port'),
INDEXES: {
2020-02-19 15:39:35 +01:00
VIDEOS: config.get<string>('elastic_search.indexes.videos'),
CHANNELS: config.get<string>('elastic_search.indexes.channels')
2020-02-13 11:49:03 +01:00
}
},
LOG: {
LEVEL: config.get<string>('log.level')
},
2020-08-27 14:44:21 +02:00
SEARCH_INSTANCE: {
2020-09-02 14:07:22 +02:00
NAME: config.get<string>('search-instance.name'),
DESCRIPTION: config.get<string>('search-instance.description'),
LEGAL_NOTICES_URL: config.get<string>('search-instance.legal_notices_url')
2020-08-27 14:44:21 +02:00
},
2020-02-14 14:09:31 +01:00
INSTANCES_INDEX: {
2020-06-11 11:04:00 +02:00
URL: config.get<string>('instances-index.url'),
2020-09-02 10:17:50 +02:00
PUBLIC_URL: config.get<string>('instances-index.public_url'),
2020-06-11 11:04:00 +02:00
WHITELIST: {
ENABLED: config.get<boolean>('instances-index.whitelist.enabled'),
HOSTS: config.get<string[]>('instances-index.whitelist.hosts')
}
2020-05-28 15:00:37 +02:00
},
2020-06-11 11:04:00 +02:00
API: {
BLACKLIST: {
ENABLED: config.get<boolean>('api.blacklist.enabled'),
HOSTS: config.get<string[]>('api.blacklist.hosts')
}
2020-02-13 11:49:03 +01:00
}
}
const SORTABLE_COLUMNS = {
2020-05-29 09:28:48 +02:00
VIDEOS_SEARCH: [ 'name', 'duration', 'createdAt', 'publishedAt', 'originallyPublishedAt', 'views', 'likes', 'match' ],
2020-02-19 15:39:35 +01:00
CHANNELS_SEARCH: [ 'match', 'displayName', 'createdAt' ]
2020-02-13 11:49:03 +01:00
}
const PAGINATION_COUNT_DEFAULT = 20
2020-02-13 16:06:52 +01:00
const SCHEDULER_INTERVALS_MS = {
2020-02-20 14:17:55 +01:00
videosIndexer: 60000 * 60 * 24 // 24 hours
2020-02-13 16:06:52 +01:00
}
const INDEXER_COUNT = {
2020-02-14 14:09:31 +01:00
VIDEOS: 10
2020-02-13 16:06:52 +01:00
}
2020-02-13 11:49:03 +01:00
2020-03-04 15:32:39 +01:00
const INDEXER_CONCURRENCY = 3
const INDEXER_QUEUE_CONCURRENCY = 3
const REQUESTS = {
MAX_RETRIES: 10,
WAIT: 10000 // 10 seconds
}
2020-09-02 16:24:25 +02:00
function getWebserverUrl () {
if (CONFIG.WEBSERVER.PORT === 80 || CONFIG.WEBSERVER.PORT === 443) {
return CONFIG.WEBSERVER.SCHEME + '://' + CONFIG.WEBSERVER.HOSTNAME
}
return CONFIG.WEBSERVER.SCHEME + '://' + CONFIG.WEBSERVER.HOSTNAME + ':' + CONFIG.WEBSERVER.PORT
}
2020-02-13 11:49:03 +01:00
if (isTestInstance()) {
2020-05-29 16:16:55 +02:00
SCHEDULER_INTERVALS_MS.videosIndexer = 1000 * 60 * 5 // 5 minutes
2020-02-13 11:49:03 +01:00
}
export {
2020-09-02 16:24:25 +02:00
getWebserverUrl,
2020-02-13 11:49:03 +01:00
CONFIG,
API_VERSION,
PAGINATION_COUNT_DEFAULT,
SORTABLE_COLUMNS,
2020-03-04 15:32:39 +01:00
INDEXER_QUEUE_CONCURRENCY,
2020-02-13 16:06:52 +01:00
SCHEDULER_INTERVALS_MS,
2020-03-04 15:32:39 +01:00
INDEXER_CONCURRENCY,
INDEXER_COUNT,
REQUESTS
2020-02-13 11:49:03 +01:00
}