333
schangxiang@126.com
2025-09-19 18966e02fb573c7e2bb0c6426ed792b38b910940
1
{"version":3,"sources":["../../src/platform/PlatformTools.ts"],"names":[],"mappings":"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","file":"PlatformTools.js","sourcesContent":["import * as path from \"path\";\nimport * as fs from \"fs\";\nimport {highlight, Theme} from \"cli-highlight\";\nexport {ReadStream} from \"fs\";\nexport {EventEmitter} from \"events\";\nexport {Readable, Writable} from \"stream\";\n\nconst chalk = require(\"chalk\");\n\n/**\n * Platform-specific tools.\n */\nexport class PlatformTools {\n\n    /**\n     * Type of the currently running platform.\n     */\n    static type: \"browser\"|\"node\" = \"node\";\n\n    /**\n     * Gets global variable where global stuff can be stored.\n     */\n    static getGlobalVariable(): any {\n        return global;\n    }\n\n    /**\n     * Loads (\"require\"-s) given file or package.\n     * This operation only supports on node platform\n     */\n    static load(name: string): any {\n\n        // if name is not absolute or relative, then try to load package from the node_modules of the directory we are currently in\n        // this is useful when we are using typeorm package globally installed and it accesses drivers\n        // that are not installed globally\n\n        try {\n\n            // switch case to explicit require statements for webpack compatibility.\n\n            switch (name) {\n\n                /**\n                * mongodb\n                */\n                case \"mongodb\":\n                    return require(\"mongodb\");\n\n                /**\n                * mysql\n                */\n                case \"mysql\":\n                    return require(\"mysql\");\n\n                case \"mysql2\":\n                    return require(\"mysql2\");\n\n                /**\n                * oracle\n                */\n                case \"oracledb\":\n                    return require(\"oracledb\");\n\n                /**\n                * postgres\n                */\n                case \"pg\":\n                    return require(\"pg\");\n\n                case \"pg-native\":\n                    return require(\"pg-native\");\n\n                case \"pg-query-stream\":\n                    return require(\"pg-query-stream\");\n\n                /**\n                * redis\n                */\n                case \"redis\":\n                    return require(\"redis\");\n\n                /**\n                 * ioredis\n                 */\n                case \"ioredis\":\n                case \"ioredis/cluster\":\n                    return require(\"ioredis\");\n\n                /**\n                * sqlite\n                */\n                case \"sqlite3\":\n                    return require(\"sqlite3\");\n\n                /**\n                * sql.js\n                */\n                case \"sql.js\":\n                    return require(\"sql.js\");\n\n                /**\n                * sqlserver\n                */\n                case \"mssql\":\n                    return require(\"mssql\");\n\n                /**\n                * other modules\n                */\n                case \"mkdirp\":\n                    return require(\"mkdirp\");\n\n                case \"path\":\n                    return require(\"path\");\n\n                case \"debug\":\n                    return require(\"debug\");\n\n                case \"app-root-path\":\n                    return require(\"app-root-path\");\n\n                case \"glob\":\n                    return require(\"glob\");\n\n                /**\n                * default\n                */\n                default:\n                    return require(name);\n\n            }\n\n        } catch (err) {\n            if (!path.isAbsolute(name) && name.substr(0, 2) !== \"./\" && name.substr(0, 3) !== \"../\") {\n                return require(path.resolve(process.cwd() + \"/node_modules/\" + name));\n            }\n\n            throw err;\n        }\n    }\n\n    /**\n     * Normalizes given path. Does \"path.normalize\".\n     */\n    static pathNormalize(pathStr: string): string {\n        return path.normalize(pathStr);\n    }\n\n    /**\n     * Gets file extension. Does \"path.extname\".\n     */\n    static pathExtname(pathStr: string): string {\n        return path.extname(pathStr);\n    }\n\n    /**\n     * Resolved given path. Does \"path.resolve\".\n     */\n    static pathResolve(pathStr: string): string {\n        return path.resolve(pathStr);\n    }\n\n    /**\n     * Synchronously checks if file exist. Does \"fs.existsSync\".\n     */\n    static fileExist(pathStr: string): boolean {\n        return fs.existsSync(pathStr);\n    }\n\n    static readFileSync(filename: string): Buffer {\n        return fs.readFileSync(filename);\n    }\n\n    static appendFileSync(filename: string, data: any): void {\n        fs.appendFileSync(filename, data);\n    }\n\n    static async writeFile(path: string, data: any): Promise<void> {\n        return new Promise<void>((ok, fail) => {\n            fs.writeFile(path, data, (err) => {\n                if (err) fail(err);\n                ok();\n            });\n        });\n    }\n\n    /**\n     * Gets environment variable.\n     */\n    static getEnvVariable(name: string): any {\n        return process.env[name];\n    }\n\n    /**\n     * Highlights sql string to be print in the console.\n     */\n    static highlightSql(sql: string) {\n        const theme: Theme = {\n            \"keyword\": chalk.blueBright,\n            \"literal\": chalk.blueBright,\n            \"string\": chalk.white,\n            \"type\": chalk.magentaBright,\n            \"built_in\": chalk.magentaBright,\n            \"comment\": chalk.gray,\n        };\n        return highlight(sql, { theme: theme, language: \"sql\" });\n    }\n\n    /**\n     * Highlights json string to be print in the console.\n     */\n    static highlightJson(json: string) {\n        return highlight(json, { language: \"json\" });\n    }\n\n    /**\n     * Logging functions needed by AdvancedConsoleLogger\n     */\n    static logInfo(prefix: string, info: any) {\n        console.log(chalk.gray.underline(prefix), info);\n    }\n\n    static logError(prefix: string, error: any) {\n        console.log(chalk.underline.red(prefix), error);\n    }\n\n    static logWarn(prefix: string, warning: any) {\n        console.log(chalk.underline.yellow(prefix), warning);\n    }\n\n    static log(message: string) {\n        console.log(chalk.underline(message));\n    }\n\n    static warn(message: string) {\n        return chalk.yellow(message);\n    }\n}\n"],"sourceRoot":".."}