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(logger, directories, formats) {
|
9 | if (formats === void 0) { formats = [".js", ".ts"]; }
|
10 | var logLevel = "info";
|
11 | var classesNotFoundMessage = "No classes were found using the provided glob pattern: ";
|
12 | var classesFoundMessage = "All classes found using provided glob pattern";
|
13 | function loadFileClasses(exported, allLoaded) {
|
14 | if (typeof exported === "function" || exported instanceof index_1.EntitySchema) {
|
15 | allLoaded.push(exported);
|
16 | }
|
17 | else if (Array.isArray(exported)) {
|
18 | exported.forEach(function (i) { return loadFileClasses(i, allLoaded); });
|
19 | }
|
20 | else if (typeof exported === "object" && exported !== null) {
|
21 | Object.keys(exported).forEach(function (key) { return loadFileClasses(exported[key], allLoaded); });
|
22 | }
|
23 | return allLoaded;
|
24 | }
|
25 | var allFiles = directories.reduce(function (allDirs, dir) {
|
26 | return allDirs.concat(PlatformTools_1.PlatformTools.load("glob").sync(PlatformTools_1.PlatformTools.pathNormalize(dir)));
|
27 | }, []);
|
28 | if (directories.length > 0 && allFiles.length === 0) {
|
29 | logger.log(logLevel, classesNotFoundMessage + " \"" + directories + "\"");
|
30 | }
|
31 | else if (allFiles.length > 0) {
|
32 | logger.log(logLevel, classesFoundMessage + " \"" + directories + "\" : \"" + allFiles + "\"");
|
33 | }
|
34 | var dirs = allFiles
|
35 | .filter(function (file) {
|
36 | var dtsExtension = file.substring(file.length - 5, file.length);
|
37 | return formats.indexOf(PlatformTools_1.PlatformTools.pathExtname(file)) !== -1 && dtsExtension !== ".d.ts";
|
38 | })
|
39 | .map(function (file) { return PlatformTools_1.PlatformTools.load(PlatformTools_1.PlatformTools.pathResolve(file)); });
|
40 | return loadFileClasses(dirs, []);
|
41 | }
|
42 | exports.importClassesFromDirectories = importClassesFromDirectories;
|
43 |
|
44 |
|
45 |
|
46 | function importJsonsFromDirectories(directories, format) {
|
47 | if (format === void 0) { format = ".json"; }
|
48 | var allFiles = directories.reduce(function (allDirs, dir) {
|
49 | return allDirs.concat(PlatformTools_1.PlatformTools.load("glob").sync(PlatformTools_1.PlatformTools.pathNormalize(dir)));
|
50 | }, []);
|
51 | return allFiles
|
52 | .filter(function (file) { return PlatformTools_1.PlatformTools.pathExtname(file) === format; })
|
53 | .map(function (file) { return PlatformTools_1.PlatformTools.load(PlatformTools_1.PlatformTools.pathResolve(file)); });
|
54 | }
|
55 | exports.importJsonsFromDirectories = importJsonsFromDirectories;
|
56 |
|
57 |
|