UNPKG

4.03 kBJavaScriptView Raw
1"use strict";
2const initialize_1 = require('./initialize/initialize');
3var recursiveReadDir = require('recursive-readdir-synchronous');
4const path = require('path');
5const Utils = require('./utils');
6const utils_1 = require('./metadata/utils');
7//import {PrincipalContext} from '../security/auth/principalContext';
8//var ns = PrincipalContext.getSession();
9var domain = require('../security/auth/domain');
10const constants_1 = require('./constants');
11//import linq = require('../typings/linq/linq');
12const Enumerable = require('linq');
13// Ignore .d.ts and all other non .ts files
14function ignoreFile(file) {
15 return !file.endsWith('.js') || file.endsWith('.spec.js');
16}
17// ignore node_modules or folders starting with '.', eg. '.git'
18function ignoreDirectory(file, stats) {
19 return path.basename(file) == "node_modules" || path.basename(file).startsWith('.') || path.basename(file) == "unit-test";
20}
21function readIgnore(file, stats) {
22 return (stats.isFile() && ignoreFile(file))
23 || (stats.isDirectory() && ignoreDirectory(file, stats));
24}
25let _appRoot = process.cwd();
26class Dynamic {
27 constructor(config, securityConfig, server) {
28 Utils.config(config);
29 Utils.securityConfig(securityConfig);
30 config = config;
31 securityConfig = securityConfig;
32 let ignorePaths = config.Config && config.Config.ignorePaths || [];
33 let internalIgnorePaths = config.Config && config.Config.internalIgnorePaths || [];
34 ignorePaths = [...ignorePaths, ...internalIgnorePaths];
35 var files = this.scanDirectories(ignorePaths);
36 this.loadComponents(files);
37 this.initialize(files, server);
38 }
39 scanDirectories(ignorePaths) {
40 ignorePaths.push(readIgnore);
41 return recursiveReadDir(_appRoot, ignorePaths);
42 //return Q.nfapply(recursiveReadDir, [_appRoot, [readIgnore]]);
43 }
44 loadComponents(files) {
45 Enumerable.from(files)
46 .forEach(x => {
47 try {
48 if (x.indexOf("gulpfile") > -1) {
49 return;
50 }
51 var route = path.resolve(x.substring(0, x.lastIndexOf('.')));
52 require(route);
53 }
54 catch (e) {
55 console.log(e);
56 throw e;
57 }
58 });
59 }
60 initialize(files, server) {
61 new initialize_1.Initalize(files, server);
62 }
63}
64module.exports = function (config, securityConfig, appRoot, entityServiceInst, sqlServerInst, server) {
65 // application root (where we scan the components) set priority:
66 // 1. User provided
67 // 2. Environment Variable
68 // 3. Current working directory
69 _appRoot = appRoot || process.env.APP_ROOT || process.cwd();
70 //Utils.entityService(entityServiceInst);
71 //Utils.sqlEntityService(sqlServerInst);
72 new Dynamic(config, securityConfig, server);
73 utils_1.MetaUtils.refreshDerivedObjectsMetadata(constants_1.Decorators.DOCUMENT);
74 utils_1.MetaUtils.refreshDerivedObjectsMetadata(constants_1.Decorators.ENTITY);
75};
76let components = [];
77function addComponent(comp) {
78 components.push(comp);
79}
80exports.addComponent = addComponent;
81function initialize(config, securityConfig, appRoot, entityServiceInst, sqlServerInst, server) {
82 // application root (where we scan the components) set priority:
83 // 1. User provided
84 // 2. Environment Variable
85 // 3. Current working directory
86 _appRoot = appRoot || process.env.APP_ROOT || process.cwd();
87 //Utils.entityService(entityServiceInst);
88 new Dynamic(config, securityConfig, server);
89 //Utils.sqlEntityService(sqlServerInst);
90 components.forEach(x => {
91 x.default();
92 });
93}
94exports.initialize = initialize;
95module.exports.register = function (app) {
96 app.use(domain.middleware('context'));
97 //app.use(function (req, res, next) {
98 // ns.bindEmitter(req);
99 // ns.bindEmitter(res);
100 // ns.run(function () {
101 // next();
102 // });
103 //});
104};
105
106//# sourceMappingURL=index.js.map