UNPKG

manifest

Version:

The backend for AI code editors

92 lines (91 loc) 3.76 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const constants_1 = require("../constants"); const path_1 = __importDefault(require("path")); exports.default = () => { const projectRoot = process.env.NODE_ENV === 'contribution' ? `${process.cwd()}/manifest` : process.env.NODE_ENV === 'test' ? `${process.cwd()}/e2e/manifest` : process.cwd(); const generatedFolder = path_1.default.join(projectRoot, constants_1.GENERATED_FOLDER_PATH); return { port: process.env.PORT || constants_1.DEFAULT_PORT, nodeEnv: process.env.NODE_ENV || 'development', tokenSecretKey: process.env.TOKEN_SECRET_KEY || constants_1.DEFAULT_TOKEN_SECRET_KEY, baseUrl: process.env.BASE_URL || `http://localhost:${process.env.PORT || constants_1.DEFAULT_PORT}`, showOpenApiDocs: process.env.OPEN_API_DOCS === 'true' || process.env.NODE_ENV !== 'production', paths: { adminPanelFolder: process.env.NODE_ENV === 'contribution' ? path_1.default.join(process.cwd(), '..', 'admin', 'dist') : `${process.cwd()}/node_modules/manifest/dist/admin`, publicFolder: process.env.PUBLIC_FOLDER || `${projectRoot}/public`, projectRoot: projectRoot, generatedFolder: generatedFolder, manifestFile: process.env.MANIFEST_FILE_PATH || `${projectRoot}/manifest.yml`, handlersFolder: process.env.MANIFEST_HANDLERS_FOLDER || path_1.default.join(projectRoot, 'handlers') }, database: { sqlite: getSqliteConnectionOptions(generatedFolder), postgres: getPostgresConnectionOptions(), mysql: getMysqlConnectionOptions() }, storage: { s3Bucket: process.env.S3_BUCKET, s3Endpoint: process.env.S3_ENDPOINT, s3Region: process.env.S3_REGION, s3AccessKeyId: process.env.S3_ACCESS_KEY_ID, s3SecretAccessKey: process.env.S3_SECRET_ACCESS_KEY } }; }; function getSqliteConnectionOptions(generatedFolder) { return { type: 'sqlite', database: process.env.DB_PATH || `${generatedFolder}/db.sqlite`, dropSchema: process.env.DB_DROP_SCHEMA === 'true' || false, synchronize: true }; } function getPostgresConnectionOptions() { return { type: 'postgres', host: process.env.DB_HOST || 'localhost', port: parseInt(process.env.DB_PORT, 10) || 5432, username: process.env.DB_USERNAME || 'postgres', password: process.env.DB_PASSWORD || 'postgres', database: process.env.DB_DATABASE || 'manifest', dropSchema: process.env.DB_DROP_SCHEMA === 'true' || false, ssl: process.env.DB_SSL === 'true' ? { rejectUnauthorized: false, requestCert: true } : false, synchronize: true }; } function getMysqlConnectionOptions() { return { type: 'mysql', host: process.env.DB_HOST || 'localhost', port: parseInt(process.env.DB_PORT, 10) || 3306, username: process.env.DB_USERNAME || 'root', password: process.env.DB_PASSWORD || 'password', database: process.env.DB_DATABASE || 'manifest', dropSchema: process.env.DB_DROP_SCHEMA === 'true' || false, ssl: process.env.DB_SSL === 'true' ? { rejectUnauthorized: false, requestCert: true } : false, synchronize: true }; }