1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var PlatformTools_1 = require("../platform/PlatformTools");
|
4 | var index_1 = require("../index");
|
5 |
|
6 |
|
7 |
|
8 | function importClassesFromDirectories(directories, formats) {
|
9 | if (formats === void 0) { formats = [".js", ".ts"]; }
|
10 | function loadFileClasses(exported, allLoaded) {
|
11 | if (typeof exported === "function" || exported instanceof index_1.EntitySchema) {
|
12 | allLoaded.push(exported);
|
13 | }
|
14 | else if (Array.isArray(exported)) {
|
15 | exported.forEach(function (i) { return loadFileClasses(i, allLoaded); });
|
16 | }
|
17 | else if (typeof exported === "object" && exported !== null) {
|
18 | Object.keys(exported).forEach(function (key) { return loadFileClasses(exported[key], allLoaded); });
|
19 | }
|
20 | return allLoaded;
|
21 | }
|
22 | var allFiles = directories.reduce(function (allDirs, dir) {
|
23 | return allDirs.concat(PlatformTools_1.PlatformTools.load("glob").sync(PlatformTools_1.PlatformTools.pathNormalize(dir)));
|
24 | }, []);
|
25 | var dirs = allFiles
|
26 | .filter(function (file) {
|
27 | var dtsExtension = file.substring(file.length - 5, file.length);
|
28 | return formats.indexOf(PlatformTools_1.PlatformTools.pathExtname(file)) !== -1 && dtsExtension !== ".d.ts";
|
29 | })
|
30 | .map(function (file) { return PlatformTools_1.PlatformTools.load(PlatformTools_1.PlatformTools.pathResolve(file)); });
|
31 | return loadFileClasses(dirs, []);
|
32 | }
|
33 | exports.importClassesFromDirectories = importClassesFromDirectories;
|
34 |
|
35 |
|
36 |
|
37 | function importJsonsFromDirectories(directories, format) {
|
38 | if (format === void 0) { format = ".json"; }
|
39 | var allFiles = directories.reduce(function (allDirs, dir) {
|
40 | return allDirs.concat(PlatformTools_1.PlatformTools.load("glob").sync(PlatformTools_1.PlatformTools.pathNormalize(dir)));
|
41 | }, []);
|
42 | return allFiles
|
43 | .filter(function (file) { return PlatformTools_1.PlatformTools.pathExtname(file) === format; })
|
44 | .map(function (file) { return PlatformTools_1.PlatformTools.load(PlatformTools_1.PlatformTools.pathResolve(file)); });
|
45 | }
|
46 | exports.importJsonsFromDirectories = importJsonsFromDirectories;
|
47 |
|
48 |
|