typeorm 0.2.42-dev.ce69228 → 0.2.42-dev.ece0da0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -0
- package/browser/common/RelationType.d.ts +14 -0
- package/browser/common/RelationType.js +3 -0
- package/browser/common/RelationType.js.map +1 -0
- package/browser/connection/Connection.d.ts +1 -1
- package/browser/connection/Connection.js +45 -30
- package/browser/connection/Connection.js.map +1 -1
- package/browser/connection/ConnectionMetadataBuilder.d.ts +3 -3
- package/browser/connection/ConnectionMetadataBuilder.js +54 -22
- package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
- package/browser/connection/ConnectionOptionsReader.js +33 -28
- package/browser/connection/ConnectionOptionsReader.js.map +1 -1
- package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +1 -1
- package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
- package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +7 -5
- package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachQueryRunner.js +1 -1
- package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/browser/driver/mysql/MysqlQueryRunner.js +1 -1
- package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/browser/driver/oracle/OracleQueryRunner.js +1 -1
- package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.js +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/browser/driver/sap/SapQueryRunner.js +1 -1
- package/browser/driver/sap/SapQueryRunner.js.map +1 -1
- package/browser/driver/sqlite/SqliteDriver.js +11 -10
- package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/browser/find-options/FindOneOptions.d.ts +6 -0
- package/browser/find-options/FindOneOptions.js.map +1 -1
- package/browser/find-options/FindOptionsUtils.js +4 -0
- package/browser/find-options/FindOptionsUtils.js.map +1 -1
- package/browser/find-options/operator/Like.d.ts +1 -1
- package/browser/find-options/operator/Like.js +1 -1
- package/browser/find-options/operator/Like.js.map +1 -1
- package/browser/globals.js +34 -7
- package/browser/globals.js.map +1 -1
- package/browser/index.d.ts +2 -0
- package/browser/index.js +2 -0
- package/browser/index.js.map +1 -1
- package/browser/migration/MigrationExecutor.js +1 -1
- package/browser/migration/MigrationExecutor.js.map +1 -1
- package/browser/query-builder/DeleteQueryBuilder.d.ts +3 -1
- package/browser/query-builder/DeleteQueryBuilder.js +3 -1
- package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/browser/query-builder/NotBrackets.d.ts +7 -0
- package/browser/query-builder/NotBrackets.js +16 -0
- package/browser/query-builder/NotBrackets.js.map +1 -0
- package/browser/query-builder/QueryBuilder.d.ts +2 -1
- package/browser/query-builder/QueryBuilder.js +2 -1
- package/browser/query-builder/QueryBuilder.js.map +1 -1
- package/browser/query-builder/RelationLoader.js +11 -6
- package/browser/query-builder/RelationLoader.js.map +1 -1
- package/browser/query-builder/UpdateQueryBuilder.d.ts +3 -1
- package/browser/query-builder/UpdateQueryBuilder.js +3 -1
- package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/browser/query-builder/WhereExpressionBuilder.d.ts +3 -1
- package/browser/query-builder/WhereExpressionBuilder.js.map +1 -1
- package/browser/repository/TreeRepository.js +1 -1
- package/browser/repository/TreeRepository.js.map +1 -1
- package/browser/util/DirectoryExportedClassesLoader.d.ts +1 -1
- package/browser/util/DirectoryExportedClassesLoader.js +55 -31
- package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
- package/browser/util/ImportUtils.d.ts +1 -0
- package/browser/util/ImportUtils.js +90 -0
- package/browser/util/ImportUtils.js.map +1 -0
- package/commands/InitCommand.d.ts +9 -7
- package/commands/InitCommand.js +72 -43
- package/commands/InitCommand.js.map +1 -1
- package/common/RelationType.d.ts +14 -0
- package/common/RelationType.js +4 -0
- package/common/RelationType.js.map +1 -0
- package/connection/Connection.d.ts +1 -1
- package/connection/Connection.js +45 -30
- package/connection/Connection.js.map +1 -1
- package/connection/ConnectionMetadataBuilder.d.ts +3 -3
- package/connection/ConnectionMetadataBuilder.js +53 -21
- package/connection/ConnectionMetadataBuilder.js.map +1 -1
- package/connection/ConnectionOptionsReader.js +32 -27
- package/connection/ConnectionOptionsReader.js.map +1 -1
- package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +1 -1
- package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
- package/driver/better-sqlite3/BetterSqlite3Driver.js +7 -5
- package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
- package/driver/cockroachdb/CockroachQueryRunner.js +1 -1
- package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/driver/mysql/MysqlQueryRunner.js +1 -1
- package/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/driver/oracle/OracleQueryRunner.js +1 -1
- package/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/driver/postgres/PostgresQueryRunner.js +1 -1
- package/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/driver/sap/SapQueryRunner.js +1 -1
- package/driver/sap/SapQueryRunner.js.map +1 -1
- package/driver/sqlite/SqliteDriver.js +11 -10
- package/driver/sqlite/SqliteDriver.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +1 -1
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/find-options/FindOneOptions.d.ts +6 -0
- package/find-options/FindOneOptions.js.map +1 -1
- package/find-options/FindOptionsUtils.js +4 -0
- package/find-options/FindOptionsUtils.js.map +1 -1
- package/find-options/operator/Like.d.ts +1 -1
- package/find-options/operator/Like.js +1 -1
- package/find-options/operator/Like.js.map +1 -1
- package/globals.js +33 -6
- package/globals.js.map +1 -1
- package/index.d.ts +2 -0
- package/index.js +4 -1
- package/index.js.map +1 -1
- package/index.mjs +352 -0
- package/migration/MigrationExecutor.js +1 -1
- package/migration/MigrationExecutor.js.map +1 -1
- package/package.json +1 -1
- package/query-builder/DeleteQueryBuilder.d.ts +3 -1
- package/query-builder/DeleteQueryBuilder.js +3 -1
- package/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/query-builder/NotBrackets.d.ts +7 -0
- package/query-builder/NotBrackets.js +19 -0
- package/query-builder/NotBrackets.js.map +1 -0
- package/query-builder/QueryBuilder.d.ts +2 -1
- package/query-builder/QueryBuilder.js +2 -1
- package/query-builder/QueryBuilder.js.map +1 -1
- package/query-builder/RelationLoader.js +11 -6
- package/query-builder/RelationLoader.js.map +1 -1
- package/query-builder/UpdateQueryBuilder.d.ts +3 -1
- package/query-builder/UpdateQueryBuilder.js +3 -1
- package/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/query-builder/WhereExpressionBuilder.d.ts +3 -1
- package/query-builder/WhereExpressionBuilder.js.map +1 -1
- package/repository/TreeRepository.js +1 -1
- package/repository/TreeRepository.js.map +1 -1
- package/util/DirectoryExportedClassesLoader.d.ts +1 -1
- package/util/DirectoryExportedClassesLoader.js +54 -31
- package/util/DirectoryExportedClassesLoader.js.map +1 -1
- package/util/ImportUtils.d.ts +1 -0
- package/util/ImportUtils.js +94 -0
- package/util/ImportUtils.js.map +1 -0
|
@@ -5,42 +5,65 @@ var tslib_1 = require("tslib");
|
|
|
5
5
|
var glob_1 = (0, tslib_1.__importDefault)(require("glob"));
|
|
6
6
|
var PlatformTools_1 = require("../platform/PlatformTools");
|
|
7
7
|
var EntitySchema_1 = require("../entity-schema/EntitySchema");
|
|
8
|
+
var ImportUtils_1 = require("./ImportUtils");
|
|
8
9
|
/**
|
|
9
10
|
* Loads all exported classes from the given directory.
|
|
10
11
|
*/
|
|
11
12
|
function importClassesFromDirectories(logger, directories, formats) {
|
|
12
|
-
if (formats === void 0) { formats = [".js", ".cjs", ".ts"]; }
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
if (formats === void 0) { formats = [".js", ".mjs", ".cjs", ".ts", ".mts", ".cts"]; }
|
|
14
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
15
|
+
function loadFileClasses(exported, allLoaded) {
|
|
16
|
+
if (typeof exported === "function" || exported instanceof EntitySchema_1.EntitySchema) {
|
|
17
|
+
allLoaded.push(exported);
|
|
18
|
+
}
|
|
19
|
+
else if (Array.isArray(exported)) {
|
|
20
|
+
exported.forEach(function (i) { return loadFileClasses(i, allLoaded); });
|
|
21
|
+
}
|
|
22
|
+
else if (typeof exported === "object" && exported !== null) {
|
|
23
|
+
Object.keys(exported).forEach(function (key) { return loadFileClasses(exported[key], allLoaded); });
|
|
24
|
+
}
|
|
25
|
+
return allLoaded;
|
|
19
26
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
27
|
+
var logLevel, classesNotFoundMessage, classesFoundMessage, allFiles, dirPromises, dirs;
|
|
28
|
+
var _this = this;
|
|
29
|
+
return (0, tslib_1.__generator)(this, function (_a) {
|
|
30
|
+
switch (_a.label) {
|
|
31
|
+
case 0:
|
|
32
|
+
logLevel = "info";
|
|
33
|
+
classesNotFoundMessage = "No classes were found using the provided glob pattern: ";
|
|
34
|
+
classesFoundMessage = "All classes found using provided glob pattern";
|
|
35
|
+
allFiles = directories.reduce(function (allDirs, dir) {
|
|
36
|
+
return allDirs.concat(glob_1.default.sync(PlatformTools_1.PlatformTools.pathNormalize(dir)));
|
|
37
|
+
}, []);
|
|
38
|
+
if (directories.length > 0 && allFiles.length === 0) {
|
|
39
|
+
logger.log(logLevel, classesNotFoundMessage + " \"" + directories + "\"");
|
|
40
|
+
}
|
|
41
|
+
else if (allFiles.length > 0) {
|
|
42
|
+
logger.log(logLevel, classesFoundMessage + " \"" + directories + "\" : \"" + allFiles + "\"");
|
|
43
|
+
}
|
|
44
|
+
dirPromises = allFiles
|
|
45
|
+
.filter(function (file) {
|
|
46
|
+
var dtsExtension = file.substring(file.length - 5, file.length);
|
|
47
|
+
return formats.indexOf(PlatformTools_1.PlatformTools.pathExtname(file)) !== -1 && dtsExtension !== ".d.ts";
|
|
48
|
+
})
|
|
49
|
+
.map(function (file) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
|
|
50
|
+
var _a, importOrRequireResult;
|
|
51
|
+
return (0, tslib_1.__generator)(this, function (_b) {
|
|
52
|
+
switch (_b.label) {
|
|
53
|
+
case 0: return [4 /*yield*/, (0, ImportUtils_1.importOrRequireFile)(PlatformTools_1.PlatformTools.pathResolve(file))];
|
|
54
|
+
case 1:
|
|
55
|
+
_a = tslib_1.__read.apply(void 0, [_b.sent(), 1]), importOrRequireResult = _a[0];
|
|
56
|
+
return [2 /*return*/, importOrRequireResult];
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}); });
|
|
60
|
+
return [4 /*yield*/, Promise.all(dirPromises)];
|
|
61
|
+
case 1:
|
|
62
|
+
dirs = _a.sent();
|
|
63
|
+
return [2 /*return*/, loadFileClasses(dirs, [])];
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
});
|
|
44
67
|
}
|
|
45
68
|
exports.importClassesFromDirectories = importClassesFromDirectories;
|
|
46
69
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/DirectoryExportedClassesLoader.ts"],"names":[],"mappings":";;;;AAAA,2DAAwB;AACxB,2DAAwD;AACxD,8DAA2D;AAE3D;;GAEG;AACH,
|
|
1
|
+
{"version":3,"sources":["../../src/util/DirectoryExportedClassesLoader.ts"],"names":[],"mappings":"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","file":"DirectoryExportedClassesLoader.js","sourcesContent":["import glob from \"glob\";\nimport {PlatformTools} from \"../platform/PlatformTools\";\nimport {EntitySchema} from \"../entity-schema/EntitySchema\";\nimport {Logger} from \"../logger/Logger\";\nimport {importOrRequireFile} from \"./ImportUtils\";\n/**\n * Loads all exported classes from the given directory.\n */\nexport async function importClassesFromDirectories(logger: Logger, directories: string[], formats = [\".js\", \".mjs\", \".cjs\", \".ts\", \".mts\", \".cts\"]): Promise<Function[]> {\n\n const logLevel = \"info\";\n const classesNotFoundMessage = \"No classes were found using the provided glob pattern: \";\n const classesFoundMessage = \"All classes found using provided glob pattern\";\n function loadFileClasses(exported: any, allLoaded: Function[]) {\n if (typeof exported === \"function\" || exported instanceof EntitySchema) {\n allLoaded.push(exported);\n\n } else if (Array.isArray(exported)) {\n exported.forEach((i: any) => loadFileClasses(i, allLoaded));\n\n } else if (typeof exported === \"object\" && exported !== null) {\n Object.keys(exported).forEach(key => loadFileClasses(exported[key], allLoaded));\n\n }\n return allLoaded;\n }\n\n const allFiles = directories.reduce((allDirs, dir) => {\n return allDirs.concat(glob.sync(PlatformTools.pathNormalize(dir)));\n }, [] as string[]);\n\n if (directories.length > 0 && allFiles.length === 0) {\n logger.log(logLevel, `${classesNotFoundMessage} \"${directories}\"`);\n } else if (allFiles.length > 0) {\n logger.log(logLevel, `${classesFoundMessage} \"${directories}\" : \"${allFiles}\"`);\n }\n const dirPromises = allFiles\n .filter(file => {\n const dtsExtension = file.substring(file.length - 5, file.length);\n return formats.indexOf(PlatformTools.pathExtname(file)) !== -1 && dtsExtension !== \".d.ts\";\n })\n .map(async file => {\n const [importOrRequireResult] = await importOrRequireFile(PlatformTools.pathResolve(file));\n return importOrRequireResult;\n });\n\n const dirs = await Promise.all(dirPromises);\n\n return loadFileClasses(dirs, []);\n}\n\n/**\n * Loads all json files from the given directory.\n */\nexport function importJsonsFromDirectories(directories: string[], format = \".json\"): any[] {\n\n const allFiles = directories.reduce((allDirs, dir) => {\n return allDirs.concat(glob.sync(PlatformTools.pathNormalize(dir)));\n }, [] as string[]);\n\n return allFiles\n .filter(file => PlatformTools.pathExtname(file) === format)\n .map(file => require(PlatformTools.pathResolve(file)));\n}\n"],"sourceRoot":".."}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function importOrRequireFile(filePath: string): Promise<[result: any, moduleType: "esm" | "commonjs"]>;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.importOrRequireFile = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var fs_1 = (0, tslib_1.__importDefault)(require("fs"));
|
|
6
|
+
var path_1 = (0, tslib_1.__importDefault)(require("path"));
|
|
7
|
+
function importOrRequireFile(filePath) {
|
|
8
|
+
var _a;
|
|
9
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
10
|
+
var tryToImport, tryToRequire, extension, packageJson, isModule;
|
|
11
|
+
var _this = this;
|
|
12
|
+
return (0, tslib_1.__generator)(this, function (_b) {
|
|
13
|
+
switch (_b.label) {
|
|
14
|
+
case 0:
|
|
15
|
+
tryToImport = function () { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
|
|
16
|
+
return (0, tslib_1.__generator)(this, function (_a) {
|
|
17
|
+
switch (_a.label) {
|
|
18
|
+
case 0: return [4 /*yield*/, Function("return filePath => import(filePath)")()(filePath)];
|
|
19
|
+
case 1:
|
|
20
|
+
// `Function` is required to make sure the `import` statement wil stay `import` after
|
|
21
|
+
// transpilation and won't be converted to `require`
|
|
22
|
+
return [2 /*return*/, [_a.sent(), "esm"]];
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}); };
|
|
26
|
+
tryToRequire = function () { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
|
|
27
|
+
return (0, tslib_1.__generator)(this, function (_a) {
|
|
28
|
+
return [2 /*return*/, [require(filePath), "commonjs"]];
|
|
29
|
+
});
|
|
30
|
+
}); };
|
|
31
|
+
extension = filePath.substring(filePath.lastIndexOf(".") + ".".length);
|
|
32
|
+
if (!(extension === "mjs" || extension === "mts")) return [3 /*break*/, 1];
|
|
33
|
+
return [2 /*return*/, tryToImport()];
|
|
34
|
+
case 1:
|
|
35
|
+
if (!(extension === "cjs" || extension === "cts")) return [3 /*break*/, 2];
|
|
36
|
+
return [2 /*return*/, tryToRequire()];
|
|
37
|
+
case 2:
|
|
38
|
+
if (!(extension === "js" || extension === "ts")) return [3 /*break*/, 4];
|
|
39
|
+
return [4 /*yield*/, getNearestPackageJson(filePath)];
|
|
40
|
+
case 3:
|
|
41
|
+
packageJson = _b.sent();
|
|
42
|
+
if (packageJson != null) {
|
|
43
|
+
isModule = ((_a = packageJson) === null || _a === void 0 ? void 0 : _a.type) === "module";
|
|
44
|
+
if (isModule)
|
|
45
|
+
return [2 /*return*/, tryToImport()];
|
|
46
|
+
else
|
|
47
|
+
return [2 /*return*/, tryToRequire()];
|
|
48
|
+
}
|
|
49
|
+
else
|
|
50
|
+
return [2 /*return*/, tryToRequire()];
|
|
51
|
+
_b.label = 4;
|
|
52
|
+
case 4: return [2 /*return*/, tryToRequire()];
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
exports.importOrRequireFile = importOrRequireFile;
|
|
58
|
+
function getNearestPackageJson(filePath) {
|
|
59
|
+
return new Promise(function (accept) {
|
|
60
|
+
var currentPath = filePath;
|
|
61
|
+
function searchPackageJson() {
|
|
62
|
+
var nextPath = path_1.default.dirname(currentPath);
|
|
63
|
+
if (currentPath === nextPath) // the top of the file tree is reached
|
|
64
|
+
accept(null);
|
|
65
|
+
else {
|
|
66
|
+
currentPath = nextPath;
|
|
67
|
+
var potentialPackageJson_1 = path_1.default.join(currentPath, "package.json");
|
|
68
|
+
fs_1.default.stat(potentialPackageJson_1, function (err, stats) {
|
|
69
|
+
if (err != null)
|
|
70
|
+
searchPackageJson();
|
|
71
|
+
else if (stats.isFile()) {
|
|
72
|
+
fs_1.default.readFile(potentialPackageJson_1, "utf8", function (err, data) {
|
|
73
|
+
if (err != null)
|
|
74
|
+
accept(null);
|
|
75
|
+
else {
|
|
76
|
+
try {
|
|
77
|
+
accept(JSON.parse(data));
|
|
78
|
+
}
|
|
79
|
+
catch (err) {
|
|
80
|
+
accept(null);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
else
|
|
86
|
+
searchPackageJson();
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
searchPackageJson();
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
//# sourceMappingURL=ImportUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/util/ImportUtils.ts"],"names":[],"mappings":";;;;AAAA,uDAAoB;AACpB,2DAAwB;AAExB,SAAsB,mBAAmB,CAAC,QAAgB;;;;;;;;oBAChD,WAAW,GAAG;;;wCAGR,qBAAM,QAAQ,CAAC,qCAAqC,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAA;;gCAFzE,qFAAqF;gCACrF,oDAAoD;gCACpD,uBAAQ,SAAiE,EAAE,KAAK,GAAE;;;yBACrF,CAAC;oBACI,YAAY,GAAG;;4BACjB,sBAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,EAAC;;yBAC1C,CAAC;oBAEI,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;yBAEzE,CAAA,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,KAAK,CAAA,EAA1C,wBAA0C;oBAC1C,sBAAO,WAAW,EAAE,EAAC;;yBAChB,CAAA,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,KAAK,CAAA,EAA1C,wBAA0C;oBAC/C,sBAAO,YAAY,EAAE,EAAC;;yBACjB,CAAA,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI,CAAA,EAAxC,wBAAwC;oBACzB,qBAAM,qBAAqB,CAAC,QAAQ,CAAC,EAAA;;oBAAnD,WAAW,GAAG,SAAqC;oBAEzD,IAAI,WAAW,IAAI,IAAI,EAAE;wBACf,QAAQ,GAAG,CAAA,MAAC,WAAmB,0CAAE,IAAI,MAAK,QAAQ,CAAC;wBAEzD,IAAI,QAAQ;4BACR,sBAAO,WAAW,EAAE,EAAC;;4BAErB,sBAAO,YAAY,EAAE,EAAC;qBAC7B;;wBACG,sBAAO,YAAY,EAAE,EAAC;;wBAG9B,sBAAO,YAAY,EAAE,EAAC;;;;CACzB;AA/BD,kDA+BC;AAED,SAAS,qBAAqB,CAAC,QAAgB;IAC3C,OAAO,IAAI,OAAO,CAAC,UAAC,MAAM;QACtB,IAAI,WAAW,GAAG,QAAQ,CAAC;QAE3B,SAAS,iBAAiB;YACtB,IAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAE3C,IAAI,WAAW,KAAK,QAAQ,EAAE,sCAAsC;gBAChE,MAAM,CAAC,IAAI,CAAC,CAAC;iBACZ;gBACD,WAAW,GAAG,QAAQ,CAAC;gBACvB,IAAM,sBAAoB,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;gBAEpE,YAAE,CAAC,IAAI,CAAC,sBAAoB,EAAE,UAAC,GAAG,EAAE,KAAK;oBACrC,IAAI,GAAG,IAAI,IAAI;wBACX,iBAAiB,EAAE,CAAC;yBACnB,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;wBACrB,YAAE,CAAC,QAAQ,CAAC,sBAAoB,EAAE,MAAM,EAAE,UAAC,GAAG,EAAE,IAAI;4BAChD,IAAI,GAAG,IAAI,IAAI;gCACX,MAAM,CAAC,IAAI,CAAC,CAAC;iCACZ;gCACD,IAAI;oCACA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;iCAC5B;gCAAC,OAAO,GAAG,EAAE;oCACV,MAAM,CAAC,IAAI,CAAC,CAAC;iCAChB;6BACJ;wBACL,CAAC,CAAC,CAAC;qBACN;;wBACG,iBAAiB,EAAE,CAAC;gBAC5B,CAAC,CAAC,CAAC;aACN;QACL,CAAC;QAED,iBAAiB,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;AACP,CAAC","file":"ImportUtils.js","sourcesContent":["import fs from \"fs\";\nimport path from \"path\";\n\nexport async function importOrRequireFile(filePath: string): Promise<[result: any, moduleType: \"esm\" | \"commonjs\"]> {\n const tryToImport = async (): Promise<[any, \"esm\"]> => {\n // `Function` is required to make sure the `import` statement wil stay `import` after\n // transpilation and won't be converted to `require`\n return [await Function(\"return filePath => import(filePath)\")()(filePath), \"esm\"];\n };\n const tryToRequire = async (): Promise<[any, \"commonjs\"]> => {\n return [require(filePath), \"commonjs\"];\n };\n\n const extension = filePath.substring(filePath.lastIndexOf(\".\") + \".\".length);\n\n if (extension === \"mjs\" || extension === \"mts\")\n return tryToImport();\n else if (extension === \"cjs\" || extension === \"cts\")\n return tryToRequire();\n else if (extension === \"js\" || extension === \"ts\") {\n const packageJson = await getNearestPackageJson(filePath);\n\n if (packageJson != null) {\n const isModule = (packageJson as any)?.type === \"module\";\n\n if (isModule)\n return tryToImport();\n else\n return tryToRequire();\n } else\n return tryToRequire();\n }\n\n return tryToRequire();\n}\n\nfunction getNearestPackageJson(filePath: string): Promise<object | null> {\n return new Promise((accept) => {\n let currentPath = filePath;\n\n function searchPackageJson() {\n const nextPath = path.dirname(currentPath);\n\n if (currentPath === nextPath) // the top of the file tree is reached\n accept(null);\n else {\n currentPath = nextPath;\n const potentialPackageJson = path.join(currentPath, \"package.json\");\n\n fs.stat(potentialPackageJson, (err, stats) => {\n if (err != null)\n searchPackageJson();\n else if (stats.isFile()) {\n fs.readFile(potentialPackageJson, \"utf8\", (err, data) => {\n if (err != null)\n accept(null);\n else {\n try {\n accept(JSON.parse(data));\n } catch (err) {\n accept(null);\n }\n }\n });\n } else\n searchPackageJson();\n });\n }\n }\n\n searchPackageJson();\n });\n}\n"],"sourceRoot":".."}
|