sentences-crud/src/config/index.ts
2021-07-24 01:37:17 +02:00

51 lines
No EOL
1.9 KiB
TypeScript

import dotenv from 'dotenv'
import convict from 'convict'
dotenv.config()
const {
NODE_ENV = "development",
PORT = 8080,
FB_CERT_TYPE,
FB_CERT_PROJECT_ID,
FB_CERT_PRIVATE_KEY_ID,
FB_CERT_PRIVATE_KEY,
FB_CERT_CLIENT_EMAIL,
FB_CERT_CLIENT_ID,
FB_CERT_AUTH_URI,
FB_CERT_TOKEN_URI,
FB_CERT_AUTH_PROVIDER_X_509_CERT_URL,
FB_CERT_CLIENT_X_509_CERT_URL
} = process.env;
if(!FB_CERT_TYPE) throw new Error(`FB_CERT_TYPE required but not found`)
if(!FB_CERT_PROJECT_ID) throw new Error(`FB_CERT_PROJECT_ID required but not found`)
if(!FB_CERT_PRIVATE_KEY_ID) throw new Error(`FB_CERT_PRIVATE_KEY_ID required but not found`)
if(!FB_CERT_PRIVATE_KEY) throw new Error(`FB_CERT_PRIVATE_KEY required but not found`)
if(!FB_CERT_CLIENT_EMAIL) throw new Error(`FB_CERT_CLIENT_EMAIL required but not found`)
if(!FB_CERT_CLIENT_ID) throw new Error(`FB_CERT_CLIENT_ID required but not found`)
if(!FB_CERT_AUTH_URI) throw new Error(`FB_CERT_AUTH_URI required but not found`)
if(!FB_CERT_TOKEN_URI) throw new Error(`FB_CERT_TOKEN_URI required but not found`)
if(!FB_CERT_AUTH_PROVIDER_X_509_CERT_URL) throw new Error(`FB_CERT_AUTH_PROVIDER_X_509_CERT_URL required but not found`)
if(!FB_CERT_CLIENT_X_509_CERT_URL) throw new Error(`FB_CERT_CLIENT_X_509_CERT_URL required but not found`)
const config = {
env: NODE_ENV,
port: PORT,
firebase: {
certConfig: {
type: FB_CERT_TYPE,
project_id: FB_CERT_PROJECT_ID,
private_key_id: FB_CERT_PRIVATE_KEY_ID,
private_key: FB_CERT_PRIVATE_KEY.replace(/\\n/g, '\n'),
client_email: FB_CERT_CLIENT_EMAIL,
client_id: FB_CERT_CLIENT_ID,
auth_uri: FB_CERT_AUTH_URI,
token_uri: FB_CERT_TOKEN_URI,
auth_provider_x509_cert_url: FB_CERT_AUTH_PROVIDER_X_509_CERT_URL,
client_x509_cert_url: FB_CERT_CLIENT_X_509_CERT_URL,
}
}
};
export default config;