innomize-typeorm
Version:
Data-Mapper ORM for TypeScript, ES7, ES6, ES5. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, MongoDB databases.
213 lines (211 loc) • 6.87 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var path = require("path");
var fs = require("fs");
var cli_highlight_1 = require("cli-highlight");
var fs_1 = require("fs");
exports.ReadStream = fs_1.ReadStream;
var events_1 = require("events");
exports.EventEmitter = events_1.EventEmitter;
var stream_1 = require("stream");
exports.Readable = stream_1.Readable;
exports.Writable = stream_1.Writable;
var chalk = require("chalk");
/**
* Platform-specific tools.
*/
var PlatformTools = /** @class */ (function () {
function PlatformTools() {
}
/**
* Gets global variable where global stuff can be stored.
*/
PlatformTools.getGlobalVariable = function () {
return global;
};
/**
* Loads ("require"-s) given file or package.
* This operation only supports on node platform
*/
PlatformTools.load = function (name) {
// if name is not absolute or relative, then try to load package from the node_modules of the directory we are currently in
// this is useful when we are using typeorm package globally installed and it accesses drivers
// that are not installed globally
try {
// switch case to explicit require statements for webpack compatibility.
switch (name) {
/**
* mongodb
*/
case "mongodb":
return require("mongodb");
/**
* mysql
*/
case "mysql":
return require("mysql");
case "mysql2":
return require("mysql2");
/**
* oracle
*/
case "oracledb":
return require("oracledb");
/**
* postgres
*/
case "pg":
return require("pg");
case "pg-native":
return require("pg-native");
case "pg-query-stream":
return require("pg-query-stream");
/**
* redis
*/
case "redis":
return require("redis");
/**
* ioredis
*/
case "ioredis":
case "ioredis/cluster":
return require("ioredis");
/**
* sqlite
*/
case "sqlite3":
return require("sqlite3");
/**
* sql.js
*/
case "sql.js":
return require("sql.js");
/**
* sqlserver
*/
case "mssql":
return require("mssql");
/**
* other modules
*/
case "mkdirp":
return require("mkdirp");
case "path":
return require("path");
case "debug":
return require("debug");
case "app-root-path":
return require("app-root-path");
case "glob":
return require("glob");
/**
* default
*/
default:
return require(name);
}
}
catch (err) {
if (!path.isAbsolute(name) && name.substr(0, 2) !== "./" && name.substr(0, 3) !== "../") {
return require(path.resolve(process.cwd() + "/node_modules/" + name));
}
throw err;
}
};
/**
* Normalizes given path. Does "path.normalize".
*/
PlatformTools.pathNormalize = function (pathStr) {
return path.normalize(pathStr);
};
/**
* Gets file extension. Does "path.extname".
*/
PlatformTools.pathExtname = function (pathStr) {
return path.extname(pathStr);
};
/**
* Resolved given path. Does "path.resolve".
*/
PlatformTools.pathResolve = function (pathStr) {
return path.resolve(pathStr);
};
/**
* Synchronously checks if file exist. Does "fs.existsSync".
*/
PlatformTools.fileExist = function (pathStr) {
return fs.existsSync(pathStr);
};
PlatformTools.readFileSync = function (filename) {
return fs.readFileSync(filename);
};
PlatformTools.appendFileSync = function (filename, data) {
fs.appendFileSync(filename, data);
};
PlatformTools.writeFile = function (path, data) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
return [2 /*return*/, new Promise(function (ok, fail) {
fs.writeFile(path, data, function (err) {
if (err)
fail(err);
ok();
});
})];
});
});
};
/**
* Gets environment variable.
*/
PlatformTools.getEnvVariable = function (name) {
return process.env[name];
};
/**
* Highlights sql string to be print in the console.
*/
PlatformTools.highlightSql = function (sql) {
var theme = {
"keyword": chalk.blueBright,
"literal": chalk.blueBright,
"string": chalk.white,
"type": chalk.magentaBright,
"built_in": chalk.magentaBright,
"comment": chalk.gray,
};
return cli_highlight_1.highlight(sql, { theme: theme, language: "sql" });
};
/**
* Highlights json string to be print in the console.
*/
PlatformTools.highlightJson = function (json) {
return cli_highlight_1.highlight(json, { language: "json" });
};
/**
* Logging functions needed by AdvancedConsoleLogger
*/
PlatformTools.logInfo = function (prefix, info) {
console.log(chalk.gray.underline(prefix), info);
};
PlatformTools.logError = function (prefix, error) {
console.log(chalk.underline.red(prefix), error);
};
PlatformTools.logWarn = function (prefix, warning) {
console.log(chalk.underline.yellow(prefix), warning);
};
PlatformTools.log = function (message) {
console.log(chalk.underline(message));
};
PlatformTools.warn = function (message) {
return chalk.yellow(message);
};
/**
* Type of the currently running platform.
*/
PlatformTools.type = "node";
return PlatformTools;
}());
exports.PlatformTools = PlatformTools;
//# sourceMappingURL=PlatformTools.js.map