333
schangxiang@126.com
2025-09-19 18966e02fb573c7e2bb0c6426ed792b38b910940
1
{"version":3,"sources":["../browser/src/connection/options-reader/ConnectionOptionsEnvReader.ts"],"names":[],"mappings":"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","file":"ConnectionOptionsEnvReader.js","sourcesContent":["import {ConnectionOptions} from \"../ConnectionOptions\";\nimport {PlatformTools} from \"../../platform/PlatformTools\";\nimport {OrmUtils} from \"../../util/OrmUtils\";\n\n/**\n * Reads connection options from environment variables.\n * Environment variables can have only a single connection.\n * Its strongly required to define TYPEORM_CONNECTION env variable.\n */\nexport class ConnectionOptionsEnvReader {\n\n    // -------------------------------------------------------------------------\n    // Public Methods\n    // -------------------------------------------------------------------------\n\n    /**\n     * Reads connection options from environment variables.\n     */\n    read(): ConnectionOptions {\n        return {\n            type: PlatformTools.getEnvVariable(\"TYPEORM_CONNECTION\") || (PlatformTools.getEnvVariable(\"TYPEORM_URL\") ? PlatformTools.getEnvVariable(\"TYPEORM_URL\").split(\"://\")[0] : undefined),\n            url: PlatformTools.getEnvVariable(\"TYPEORM_URL\"),\n            host: PlatformTools.getEnvVariable(\"TYPEORM_HOST\"),\n            port: PlatformTools.getEnvVariable(\"TYPEORM_PORT\"),\n            username: PlatformTools.getEnvVariable(\"TYPEORM_USERNAME\"),\n            password: PlatformTools.getEnvVariable(\"TYPEORM_PASSWORD\"),\n            database: PlatformTools.getEnvVariable(\"TYPEORM_DATABASE\"),\n            sid: PlatformTools.getEnvVariable(\"TYPEORM_SID\"),\n            schema: PlatformTools.getEnvVariable(\"TYPEORM_SCHEMA\"),\n            extra: PlatformTools.getEnvVariable(\"TYPEORM_DRIVER_EXTRA\") ? JSON.parse(PlatformTools.getEnvVariable(\"TYPEORM_DRIVER_EXTRA\")) : undefined,\n            synchronize: OrmUtils.toBoolean(PlatformTools.getEnvVariable(\"TYPEORM_SYNCHRONIZE\")),\n            dropSchema: OrmUtils.toBoolean(PlatformTools.getEnvVariable(\"TYPEORM_DROP_SCHEMA\")),\n            migrationsRun: OrmUtils.toBoolean(PlatformTools.getEnvVariable(\"TYPEORM_MIGRATIONS_RUN\")),\n            entities: this.stringToArray(PlatformTools.getEnvVariable(\"TYPEORM_ENTITIES\")),\n            migrations: this.stringToArray(PlatformTools.getEnvVariable(\"TYPEORM_MIGRATIONS\")),\n            migrationsTableName: PlatformTools.getEnvVariable(\"TYPEORM_MIGRATIONS_TABLE_NAME\"),\n            subscribers: this.stringToArray(PlatformTools.getEnvVariable(\"TYPEORM_SUBSCRIBERS\")),\n            logging: this.transformLogging(PlatformTools.getEnvVariable(\"TYPEORM_LOGGING\")),\n            logger: PlatformTools.getEnvVariable(\"TYPEORM_LOGGER\"),\n            entityPrefix: PlatformTools.getEnvVariable(\"TYPEORM_ENTITY_PREFIX\"),\n            maxQueryExecutionTime: PlatformTools.getEnvVariable(\"TYPEORM_MAX_QUERY_EXECUTION_TIME\"),\n            debug: PlatformTools.getEnvVariable(\"TYPEORM_DEBUG\"),\n            cli: {\n                entitiesDir: PlatformTools.getEnvVariable(\"TYPEORM_ENTITIES_DIR\"),\n                migrationsDir: PlatformTools.getEnvVariable(\"TYPEORM_MIGRATIONS_DIR\"),\n                subscribersDir: PlatformTools.getEnvVariable(\"TYPEORM_SUBSCRIBERS_DIR\"),\n            },\n            cache: this.transformCaching(),\n            uuidExtension: PlatformTools.getEnvVariable(\"TYPEORM_UUID_EXTENSION\")\n        };\n    }\n\n    // -------------------------------------------------------------------------\n    // Protected Methods\n    // -------------------------------------------------------------------------\n\n    /**\n     * Transforms logging string into real logging value connection requires.\n     */\n    protected transformLogging(logging: string): any {\n        if (logging === \"true\" || logging === \"TRUE\" || logging === \"1\")\n            return true;\n        if (logging === \"all\")\n            return \"all\";\n\n        return this.stringToArray(logging);\n    }\n\n    /**\n     * Transforms caching option into real caching value option requires.\n     */\n    protected transformCaching(): boolean | object | undefined {\n        const caching = PlatformTools.getEnvVariable(\"TYPEORM_CACHE\");\n        if (caching === \"true\" || caching === \"TRUE\" || caching === \"1\")\n            return true;\n        if (caching === \"false\" || caching === \"FALSE\" || caching === \"0\")\n            return false;\n        if (caching === \"redis\" || caching === \"database\")\n            return {\n                type: caching,\n                options: PlatformTools.getEnvVariable(\"TYPEORM_CACHE_OPTIONS\") ? JSON.parse(PlatformTools.getEnvVariable(\"TYPEORM_CACHE_OPTIONS\")) : undefined,\n                alwaysEnabled: PlatformTools.getEnvVariable(\"TYPEORM_CACHE_ALWAYS_ENABLED\"),\n                duration: parseInt(PlatformTools.getEnvVariable(\"TYPEORM_CACHE_DURATION\"))\n            };\n\n        return undefined;\n    }\n\n    /**\n     * Converts a string which contains multiple elements split by comma into a string array of strings.\n     */\n    protected stringToArray(variable?: string) {\n        if (!variable)\n            return [];\n        return variable.split(\",\").map(str => str.trim());\n    }\n\n}\n"],"sourceRoot":"../.."}