manifest
Version:
The backend for AI code editors
92 lines (91 loc) • 3.76 kB
JavaScript
;
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
};
}