1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var path_1 = require("path");
|
4 | var fs_extra_1 = require("fs-extra");
|
5 | var logger_1 = require("../logger/logger");
|
6 | var helpers_1 = require("./helpers");
|
7 | var file_cache_1 = require("./file-cache");
|
8 | var Constants = require("./constants");
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 | function generateContext(context) {
|
24 | if (!context) {
|
25 | context = {};
|
26 | }
|
27 | if (!context.fileCache) {
|
28 | context.fileCache = new file_cache_1.FileCache();
|
29 | }
|
30 | context.isProd = [
|
31 | context.isProd,
|
32 | hasArg('--prod')
|
33 | ].find(function (val) { return typeof val === 'boolean'; });
|
34 | setProcessEnvVar(Constants.ENV_VAR_IONIC_ENV, (context.isProd ? Constants.ENV_VAR_PROD : Constants.ENV_VAR_DEV));
|
35 |
|
36 | context.runAot = [
|
37 | context.runAot,
|
38 | context.isProd || hasArg('--aot'),
|
39 | ].find(function (val) { return typeof val === 'boolean'; });
|
40 | context.runMinifyJs = [
|
41 | context.runMinifyJs,
|
42 | context.isProd || hasArg('--minifyJs')
|
43 | ].find(function (val) { return typeof val === 'boolean'; });
|
44 | context.runMinifyCss = [
|
45 | context.runMinifyCss,
|
46 | context.isProd || hasArg('--minifyCss')
|
47 | ].find(function (val) { return typeof val === 'boolean'; });
|
48 | context.optimizeJs = [
|
49 | context.optimizeJs,
|
50 | context.isProd || hasArg('--optimizeJs')
|
51 | ].find(function (val) { return typeof val === 'boolean'; });
|
52 | if (typeof context.isWatch !== 'boolean') {
|
53 | context.isWatch = hasArg('--watch');
|
54 | }
|
55 | setProcessEnvVar(Constants.ENV_VAR_IONIC_AOT, "" + context.runAot);
|
56 | logger_1.Logger.debug(Constants.ENV_VAR_IONIC_AOT + " set to " + context.runAot);
|
57 | setProcessEnvVar(Constants.ENV_VAR_IONIC_MINIFY_JS, "" + context.runMinifyJs);
|
58 | logger_1.Logger.debug(Constants.ENV_VAR_IONIC_MINIFY_JS + " set to " + context.runMinifyJs);
|
59 | setProcessEnvVar(Constants.ENV_VAR_IONIC_MINIFY_CSS, "" + context.runMinifyCss);
|
60 | logger_1.Logger.debug(Constants.ENV_VAR_IONIC_MINIFY_CSS + " set to " + context.runMinifyCss);
|
61 | setProcessEnvVar(Constants.ENV_VAR_IONIC_OPTIMIZE_JS, "" + context.optimizeJs);
|
62 | logger_1.Logger.debug(Constants.ENV_VAR_IONIC_OPTIMIZE_JS + " set to " + context.optimizeJs);
|
63 | setProcessEnvVar(Constants.ENV_VAR_IONIC_MINIFY_JS, "" + context.runMinifyJs);
|
64 | logger_1.Logger.debug(Constants.ENV_VAR_IONIC_MINIFY_JS + " set to " + context.runMinifyJs);
|
65 | context.rootDir = path_1.resolve(context.rootDir || getConfigValue(context, '--rootDir', null, Constants.ENV_VAR_ROOT_DIR, Constants.ENV_VAR_ROOT_DIR.toLowerCase(), processCwd));
|
66 | setProcessEnvVar(Constants.ENV_VAR_ROOT_DIR, context.rootDir);
|
67 | logger_1.Logger.debug("rootDir set to " + context.rootDir);
|
68 | context.tmpDir = path_1.resolve(context.tmpDir || getConfigValue(context, '--tmpDir', null, Constants.ENV_VAR_TMP_DIR, Constants.ENV_VAR_TMP_DIR.toLowerCase(), path_1.join(context.rootDir, Constants.TMP_DIR)));
|
69 | setProcessEnvVar(Constants.ENV_VAR_TMP_DIR, context.tmpDir);
|
70 | logger_1.Logger.debug("tmpDir set to " + context.tmpDir);
|
71 | context.srcDir = path_1.resolve(context.srcDir || getConfigValue(context, '--srcDir', null, Constants.ENV_VAR_SRC_DIR, Constants.ENV_VAR_SRC_DIR.toLowerCase(), path_1.join(context.rootDir, Constants.SRC_DIR)));
|
72 | setProcessEnvVar(Constants.ENV_VAR_SRC_DIR, context.srcDir);
|
73 | logger_1.Logger.debug("srcDir set to " + context.srcDir);
|
74 | var deepLinksDir = path_1.resolve(getConfigValue(context, '--deepLinksDir', null, Constants.ENV_VAR_DEEPLINKS_DIR, Constants.ENV_VAR_DEEPLINKS_DIR.toLowerCase(), context.srcDir));
|
75 | setProcessEnvVar(Constants.ENV_VAR_DEEPLINKS_DIR, deepLinksDir);
|
76 | logger_1.Logger.debug("deepLinksDir set to " + deepLinksDir);
|
77 | context.wwwDir = path_1.resolve(context.wwwDir || getConfigValue(context, '--wwwDir', null, Constants.ENV_VAR_WWW_DIR, Constants.ENV_VAR_WWW_DIR.toLowerCase(), path_1.join(context.rootDir, Constants.WWW_DIR)));
|
78 | setProcessEnvVar(Constants.ENV_VAR_WWW_DIR, context.wwwDir);
|
79 | logger_1.Logger.debug("wwwDir set to " + context.wwwDir);
|
80 | context.wwwIndex = getConfigValue(context, '--wwwIndex', null, Constants.ENV_VAR_HTML_TO_SERVE, Constants.ENV_VAR_HTML_TO_SERVE.toLowerCase(), 'index.html');
|
81 | setProcessEnvVar(Constants.ENV_VAR_HTML_TO_SERVE, context.wwwIndex);
|
82 | logger_1.Logger.debug("wwwIndex set to " + context.wwwIndex);
|
83 | context.buildDir = path_1.resolve(context.buildDir || getConfigValue(context, '--buildDir', null, Constants.ENV_VAR_BUILD_DIR, Constants.ENV_VAR_BUILD_DIR.toLowerCase(), path_1.join(context.wwwDir, Constants.BUILD_DIR)));
|
84 | setProcessEnvVar(Constants.ENV_VAR_BUILD_DIR, context.buildDir);
|
85 | logger_1.Logger.debug("buildDir set to " + context.buildDir);
|
86 | var fontsDir = path_1.resolve(getConfigValue(context, '--fontsDir', null, Constants.ENV_VAR_FONTS_DIR, Constants.ENV_VAR_FONTS_DIR.toLowerCase(), path_1.join(context.wwwDir, 'assets', 'fonts')));
|
87 | setProcessEnvVar(Constants.ENV_VAR_FONTS_DIR, fontsDir);
|
88 | logger_1.Logger.debug("fontsDir set to " + fontsDir);
|
89 | context.sourcemapDir = path_1.resolve(context.sourcemapDir || getConfigValue(context, '--sourcemapDir', null, Constants.ENV_VAR_SOURCEMAP_DIR, Constants.ENV_VAR_SOURCEMAP_DIR.toLowerCase(), Constants.SOURCEMAP_DIR));
|
90 | setProcessEnvVar(Constants.ENV_VAR_SOURCEMAP_DIR, context.sourcemapDir);
|
91 | logger_1.Logger.debug("sourcemapDir set to " + context.sourcemapDir);
|
92 | context.pagesDir = path_1.resolve(context.pagesDir || getConfigValue(context, '--pagesDir', null, Constants.ENV_VAR_PAGES_DIR, Constants.ENV_VAR_PAGES_DIR.toLowerCase(), path_1.join(context.srcDir, 'pages')));
|
93 | setProcessEnvVar(Constants.ENV_VAR_PAGES_DIR, context.pagesDir);
|
94 | logger_1.Logger.debug("pagesDir set to " + context.pagesDir);
|
95 | context.componentsDir = path_1.resolve(context.componentsDir || getConfigValue(context, '--componentsDir', null, Constants.ENV_VAR_COMPONENTS_DIR, Constants.ENV_VAR_COMPONENTS_DIR.toLowerCase(), path_1.join(context.srcDir, 'components')));
|
96 | setProcessEnvVar(Constants.ENV_VAR_COMPONENTS_DIR, context.componentsDir);
|
97 | logger_1.Logger.debug("componentsDir set to " + context.componentsDir);
|
98 | context.directivesDir = path_1.resolve(context.directivesDir || getConfigValue(context, '--directivesDir', null, Constants.ENV_VAR_DIRECTIVES_DIR, Constants.ENV_VAR_DIRECTIVES_DIR.toLowerCase(), path_1.join(context.srcDir, 'directives')));
|
99 | setProcessEnvVar(Constants.ENV_VAR_DIRECTIVES_DIR, context.directivesDir);
|
100 | logger_1.Logger.debug("directivesDir set to " + context.directivesDir);
|
101 | context.pipesDir = path_1.resolve(context.pipesDir || getConfigValue(context, '--pipesDir', null, Constants.ENV_VAR_PIPES_DIR, Constants.ENV_VAR_PIPES_DIR.toLowerCase(), path_1.join(context.srcDir, 'pipes')));
|
102 | setProcessEnvVar(Constants.ENV_VAR_PIPES_DIR, context.pipesDir);
|
103 | logger_1.Logger.debug("pipesDir set to " + context.pipesDir);
|
104 | context.providersDir = path_1.resolve(context.providersDir || getConfigValue(context, '--providersDir', null, Constants.ENV_VAR_PROVIDERS_DIR, Constants.ENV_VAR_PROVIDERS_DIR.toLowerCase(), path_1.join(context.srcDir, 'providers')));
|
105 | setProcessEnvVar(Constants.ENV_VAR_PROVIDERS_DIR, context.providersDir);
|
106 | logger_1.Logger.debug("providersDir set to " + context.providersDir);
|
107 | context.nodeModulesDir = path_1.join(context.rootDir, Constants.NODE_MODULES);
|
108 | setProcessEnvVar(Constants.ENV_VAR_NODE_MODULES_DIR, context.nodeModulesDir);
|
109 | logger_1.Logger.debug("nodeModulesDir set to " + context.nodeModulesDir);
|
110 | context.ionicAngularDir = path_1.resolve(context.ionicAngularDir || getConfigValue(context, '--ionicAngularDir', null, Constants.ENV_VAR_IONIC_ANGULAR_DIR, Constants.ENV_VAR_IONIC_ANGULAR_DIR.toLowerCase(), path_1.join(context.nodeModulesDir, Constants.IONIC_ANGULAR)));
|
111 | setProcessEnvVar(Constants.ENV_VAR_IONIC_ANGULAR_DIR, context.ionicAngularDir);
|
112 | logger_1.Logger.debug("ionicAngularDir set to " + context.ionicAngularDir);
|
113 | var angularDir = path_1.resolve(getConfigValue(context, '--angularDir', null, Constants.ENV_VAR_ANGULAR_CORE_DIR, Constants.ENV_VAR_ANGULAR_CORE_DIR.toLowerCase(), path_1.join(context.nodeModulesDir, Constants.AT_ANGULAR, 'core')));
|
114 | setProcessEnvVar(Constants.ENV_VAR_ANGULAR_CORE_DIR, angularDir);
|
115 | logger_1.Logger.debug("angularDir set to " + angularDir);
|
116 | context.angularCoreDir = angularDir;
|
117 | var typescriptDir = path_1.resolve(getConfigValue(context, '--typescriptDir', null, Constants.ENV_VAR_TYPESCRIPT_DIR, Constants.ENV_VAR_TYPESCRIPT_DIR.toLowerCase(), path_1.join(context.nodeModulesDir, Constants.TYPESCRIPT)));
|
118 | setProcessEnvVar(Constants.ENV_VAR_TYPESCRIPT_DIR, typescriptDir);
|
119 | logger_1.Logger.debug("typescriptDir set to " + typescriptDir);
|
120 | context.typescriptDir = typescriptDir;
|
121 | var defaultCoreCompilerFilePath = path_1.join(context.ionicAngularDir, 'compiler');
|
122 | context.coreCompilerFilePath = path_1.resolve(context.coreCompilerFilePath || getConfigValue(context, '--coreCompilerFilePath', null, Constants.ENV_VAR_CORE_COMPILER_FILE_PATH, Constants.ENV_VAR_CORE_COMPILER_FILE_PATH.toLowerCase(), defaultCoreCompilerFilePath));
|
123 | setProcessEnvVar(Constants.ENV_VAR_CORE_COMPILER_FILE_PATH, context.coreCompilerFilePath);
|
124 | logger_1.Logger.debug("coreCompilerFilePath set to " + context.coreCompilerFilePath);
|
125 | var defaultCoreDir = context.ionicAngularDir;
|
126 | context.coreDir = path_1.resolve(context.coreDir || getConfigValue(context, '--coreDir', null, Constants.ENV_VAR_CORE_DIR, Constants.ENV_VAR_CORE_DIR.toLowerCase(), defaultCoreDir));
|
127 | setProcessEnvVar(Constants.ENV_VAR_CORE_DIR, context.coreDir);
|
128 | logger_1.Logger.debug("coreDir set to " + context.coreDir);
|
129 | var rxjsDir = path_1.resolve(getConfigValue(context, '--rxjsDir', null, Constants.ENV_VAR_RXJS_DIR, Constants.ENV_VAR_RXJS_DIR.toLowerCase(), path_1.join(context.nodeModulesDir, Constants.RXJS)));
|
130 | setProcessEnvVar(Constants.ENV_VAR_RXJS_DIR, rxjsDir);
|
131 | logger_1.Logger.debug("rxjsDir set to " + rxjsDir);
|
132 | var ionicAngularTemplatesDir = path_1.join(context.ionicAngularDir, 'templates');
|
133 | setProcessEnvVar(Constants.ENV_VAR_IONIC_ANGULAR_TEMPLATE_DIR, ionicAngularTemplatesDir);
|
134 | logger_1.Logger.debug("ionicAngularTemplatesDir set to " + ionicAngularTemplatesDir);
|
135 | context.platform = getConfigValue(context, '--platform', null, Constants.ENV_VAR_PLATFORM, null, null);
|
136 | setProcessEnvVar(Constants.ENV_VAR_PLATFORM, context.platform);
|
137 | logger_1.Logger.debug("platform set to " + context.platform);
|
138 | context.target = getConfigValue(context, '--target', null, Constants.ENV_VAR_TARGET, null, null);
|
139 | setProcessEnvVar(Constants.ENV_VAR_TARGET, context.target);
|
140 | logger_1.Logger.debug("target set to " + context.target);
|
141 | var ionicAngularEntryPoint = path_1.resolve(getConfigValue(context, '--ionicAngularEntryPoint', null, Constants.ENV_VAR_IONIC_ANGULAR_ENTRY_POINT, Constants.ENV_VAR_IONIC_ANGULAR_ENTRY_POINT.toLowerCase(), path_1.join(context.ionicAngularDir, 'index.js')));
|
142 | setProcessEnvVar(Constants.ENV_VAR_IONIC_ANGULAR_ENTRY_POINT, ionicAngularEntryPoint);
|
143 | logger_1.Logger.debug("ionicAngularEntryPoint set to " + ionicAngularEntryPoint);
|
144 | var appScriptsDir = path_1.join(__dirname, '..', '..');
|
145 | setProcessEnvVar(Constants.ENV_VAR_APP_SCRIPTS_DIR, appScriptsDir);
|
146 | logger_1.Logger.debug("appScriptsDir set to " + appScriptsDir);
|
147 | var generateSourceMap = getConfigValue(context, '--generateSourceMap', null, Constants.ENV_VAR_GENERATE_SOURCE_MAP, Constants.ENV_VAR_GENERATE_SOURCE_MAP.toLowerCase(), context.isProd || context.runMinifyJs ? null : 'true');
|
148 | setProcessEnvVar(Constants.ENV_VAR_GENERATE_SOURCE_MAP, generateSourceMap);
|
149 | logger_1.Logger.debug("generateSourceMap set to " + generateSourceMap);
|
150 | var sourceMapTypeValue = getConfigValue(context, '--sourceMapType', null, Constants.ENV_VAR_SOURCE_MAP_TYPE, Constants.ENV_VAR_SOURCE_MAP_TYPE.toLowerCase(), Constants.SOURCE_MAP_TYPE_EXPENSIVE);
|
151 | setProcessEnvVar(Constants.ENV_VAR_SOURCE_MAP_TYPE, sourceMapTypeValue);
|
152 | logger_1.Logger.debug("sourceMapType set to " + sourceMapTypeValue);
|
153 | var moveSourceMaps = getConfigValue(context, '--moveSourceMaps', null, Constants.ENV_VAR_MOVE_SOURCE_MAPS, Constants.ENV_VAR_MOVE_SOURCE_MAPS.toLowerCase(), 'true');
|
154 | setProcessEnvVar(Constants.ENV_VAR_MOVE_SOURCE_MAPS, moveSourceMaps);
|
155 | logger_1.Logger.debug("moveSourceMaps set to " + moveSourceMaps);
|
156 | var tsConfigPathValue = path_1.resolve(getConfigValue(context, '--tsconfig', null, Constants.ENV_TS_CONFIG, Constants.ENV_TS_CONFIG.toLowerCase(), path_1.join(context.rootDir, 'tsconfig.json')));
|
157 | setProcessEnvVar(Constants.ENV_TS_CONFIG, tsConfigPathValue);
|
158 | logger_1.Logger.debug("tsconfig set to " + tsConfigPathValue);
|
159 | var readConfigJson = getConfigValue(context, '--readConfigJson', null, Constants.ENV_READ_CONFIG_JSON, Constants.ENV_READ_CONFIG_JSON.toLowerCase(), 'true');
|
160 | setProcessEnvVar(Constants.ENV_READ_CONFIG_JSON, readConfigJson);
|
161 | logger_1.Logger.debug("readConfigJson set to " + readConfigJson);
|
162 | var appEntryPointPathValue = path_1.resolve(getConfigValue(context, '--appEntryPoint', null, Constants.ENV_APP_ENTRY_POINT, Constants.ENV_APP_ENTRY_POINT.toLowerCase(), path_1.join(context.srcDir, 'app', 'main.ts')));
|
163 | setProcessEnvVar(Constants.ENV_APP_ENTRY_POINT, appEntryPointPathValue);
|
164 | logger_1.Logger.debug("appEntryPoint set to " + appEntryPointPathValue);
|
165 | context.appNgModulePath = path_1.resolve(getConfigValue(context, '--appNgModulePath', null, Constants.ENV_APP_NG_MODULE_PATH, Constants.ENV_APP_NG_MODULE_PATH.toLowerCase(), path_1.join(context.srcDir, 'app', 'app.module.ts')));
|
166 | setProcessEnvVar(Constants.ENV_APP_NG_MODULE_PATH, context.appNgModulePath);
|
167 | logger_1.Logger.debug("appNgModulePath set to " + context.appNgModulePath);
|
168 | context.componentsNgModulePath = path_1.resolve(getConfigValue(context, '--componentsNgModulePath', null, Constants.ENV_COMPONENTS_NG_MODULE_PATH, Constants.ENV_COMPONENTS_NG_MODULE_PATH.toLowerCase(), path_1.join(context.srcDir, 'components', 'components.module.ts')));
|
169 | setProcessEnvVar(Constants.ENV_COMPONENTS_NG_MODULE_PATH, context.componentsNgModulePath);
|
170 | logger_1.Logger.debug("componentsNgModulePath set to " + context.componentsNgModulePath);
|
171 | context.pipesNgModulePath = path_1.resolve(getConfigValue(context, '--pipesNgModulePath', null, Constants.ENV_PIPES_NG_MODULE_PATH, Constants.ENV_PIPES_NG_MODULE_PATH.toLowerCase(), path_1.join(context.srcDir, 'pipes', 'pipes.module.ts')));
|
172 | setProcessEnvVar(Constants.ENV_PIPES_NG_MODULE_PATH, context.pipesNgModulePath);
|
173 | logger_1.Logger.debug("pipesNgModulePath set to " + context.pipesNgModulePath);
|
174 | context.directivesNgModulePath = path_1.resolve(getConfigValue(context, '--directivesNgModulePath', null, Constants.ENV_DIRECTIVES_NG_MODULE_PATH, Constants.ENV_DIRECTIVES_NG_MODULE_PATH.toLowerCase(), path_1.join(context.srcDir, 'directives', 'directives.module.ts')));
|
175 | setProcessEnvVar(Constants.ENV_DIRECTIVES_NG_MODULE_PATH, context.directivesNgModulePath);
|
176 | logger_1.Logger.debug("directivesNgModulePath set to " + context.directivesNgModulePath);
|
177 | var appNgModuleClass = getConfigValue(context, '--appNgModuleClass', null, Constants.ENV_APP_NG_MODULE_CLASS, Constants.ENV_APP_NG_MODULE_CLASS.toLowerCase(), 'AppModule');
|
178 | setProcessEnvVar(Constants.ENV_APP_NG_MODULE_CLASS, appNgModuleClass);
|
179 | logger_1.Logger.debug("appNgModuleClass set to " + appNgModuleClass);
|
180 | var pathToGlobUtil = path_1.join(getProcessEnvVar(Constants.ENV_VAR_APP_SCRIPTS_DIR), 'dist', 'util', 'glob-util.js');
|
181 | setProcessEnvVar(Constants.ENV_GLOB_UTIL, pathToGlobUtil);
|
182 | logger_1.Logger.debug("pathToGlobUtil set to " + pathToGlobUtil);
|
183 | var cleanBeforeCopy = getConfigValue(context, '--cleanBeforeCopy', null, Constants.ENV_CLEAN_BEFORE_COPY, Constants.ENV_CLEAN_BEFORE_COPY.toLowerCase(), null);
|
184 | setProcessEnvVar(Constants.ENV_CLEAN_BEFORE_COPY, cleanBeforeCopy);
|
185 | logger_1.Logger.debug("cleanBeforeCopy set to " + cleanBeforeCopy);
|
186 | context.outputJsFileName = getConfigValue(context, '--outputJsFileName', null, Constants.ENV_OUTPUT_JS_FILE_NAME, Constants.ENV_OUTPUT_JS_FILE_NAME.toLowerCase(), 'main.js');
|
187 | setProcessEnvVar(Constants.ENV_OUTPUT_JS_FILE_NAME, context.outputJsFileName);
|
188 | logger_1.Logger.debug("outputJsFileName set to " + context.outputJsFileName);
|
189 | context.outputCssFileName = getConfigValue(context, '--outputCssFileName', null, Constants.ENV_OUTPUT_CSS_FILE_NAME, Constants.ENV_OUTPUT_CSS_FILE_NAME.toLowerCase(), 'main.css');
|
190 | setProcessEnvVar(Constants.ENV_OUTPUT_CSS_FILE_NAME, context.outputCssFileName);
|
191 | logger_1.Logger.debug("outputCssFileName set to " + context.outputCssFileName);
|
192 | var webpackFactoryPath = path_1.join(getProcessEnvVar(Constants.ENV_VAR_APP_SCRIPTS_DIR), 'dist', 'webpack', 'ionic-webpack-factory.js');
|
193 | setProcessEnvVar(Constants.ENV_WEBPACK_FACTORY, webpackFactoryPath);
|
194 | logger_1.Logger.debug("webpackFactoryPath set to " + webpackFactoryPath);
|
195 | var webpackLoaderPath = path_1.join(getProcessEnvVar(Constants.ENV_VAR_APP_SCRIPTS_DIR), 'dist', 'webpack', 'loader.js');
|
196 | setProcessEnvVar(Constants.ENV_WEBPACK_LOADER, webpackLoaderPath);
|
197 | logger_1.Logger.debug("webpackLoaderPath set to " + webpackLoaderPath);
|
198 | var cacheLoaderPath = path_1.join(getProcessEnvVar(Constants.ENV_VAR_APP_SCRIPTS_DIR), 'dist', 'webpack', 'cache-loader.js');
|
199 | setProcessEnvVar(Constants.ENV_CACHE_LOADER, cacheLoaderPath);
|
200 | logger_1.Logger.debug("cacheLoaderPath set to " + cacheLoaderPath);
|
201 | var aotWriteToDisk = getConfigValue(context, '--aotWriteToDisk', null, Constants.ENV_AOT_WRITE_TO_DISK, Constants.ENV_AOT_WRITE_TO_DISK.toLowerCase(), null);
|
202 | setProcessEnvVar(Constants.ENV_AOT_WRITE_TO_DISK, aotWriteToDisk);
|
203 | logger_1.Logger.debug("aotWriteToDisk set to " + aotWriteToDisk);
|
204 | var printWebpackDependencyTree = getConfigValue(context, '--printWebpackDependencyTree', null, Constants.ENV_PRINT_WEBPACK_DEPENDENCY_TREE, Constants.ENV_PRINT_WEBPACK_DEPENDENCY_TREE.toLowerCase(), null);
|
205 | setProcessEnvVar(Constants.ENV_PRINT_WEBPACK_DEPENDENCY_TREE, printWebpackDependencyTree);
|
206 | logger_1.Logger.debug("printWebpackDependencyTree set to " + printWebpackDependencyTree);
|
207 | var typeCheckOnLint = getConfigValue(context, '--typeCheckOnLint', null, Constants.ENV_TYPE_CHECK_ON_LINT, Constants.ENV_TYPE_CHECK_ON_LINT.toLowerCase(), null);
|
208 | setProcessEnvVar(Constants.ENV_TYPE_CHECK_ON_LINT, typeCheckOnLint);
|
209 | logger_1.Logger.debug("typeCheckOnLint set to " + typeCheckOnLint);
|
210 | var bailOnLintError = getConfigValue(context, '--bailOnLintError', null, Constants.ENV_BAIL_ON_LINT_ERROR, Constants.ENV_BAIL_ON_LINT_ERROR.toLowerCase(), null);
|
211 | setProcessEnvVar(Constants.ENV_BAIL_ON_LINT_ERROR, bailOnLintError);
|
212 | logger_1.Logger.debug("bailOnLintError set to " + bailOnLintError);
|
213 | var enableLint = getConfigValue(context, '--enableLint', null, Constants.ENV_ENABLE_LINT, Constants.ENV_ENABLE_LINT.toLowerCase(), 'true');
|
214 | setProcessEnvVar(Constants.ENV_ENABLE_LINT, enableLint);
|
215 | logger_1.Logger.debug("enableLint set to " + enableLint);
|
216 | var disableLogging = getConfigValue(context, '--disableLogging', null, Constants.ENV_DISABLE_LOGGING, Constants.ENV_DISABLE_LOGGING.toLowerCase(), null);
|
217 | setProcessEnvVar(Constants.ENV_DISABLE_LOGGING, disableLogging);
|
218 | logger_1.Logger.debug("disableLogging set to " + disableLogging);
|
219 | var startWatchTimeout = getConfigValue(context, '--startWatchTimeout', null, Constants.ENV_START_WATCH_TIMEOUT, Constants.ENV_START_WATCH_TIMEOUT.toLowerCase(), '3000');
|
220 | setProcessEnvVar(Constants.ENV_START_WATCH_TIMEOUT, startWatchTimeout);
|
221 | logger_1.Logger.debug("startWatchTimeout set to " + startWatchTimeout);
|
222 | var ngModuleFileNameSuffix = getConfigValue(context, '--ngModuleFileNameSuffix', null, Constants.ENV_NG_MODULE_FILE_NAME_SUFFIX, Constants.ENV_NG_MODULE_FILE_NAME_SUFFIX.toLowerCase(), '.module.ts');
|
223 | setProcessEnvVar(Constants.ENV_NG_MODULE_FILE_NAME_SUFFIX, ngModuleFileNameSuffix);
|
224 | logger_1.Logger.debug("ngModuleFileNameSuffix set to " + ngModuleFileNameSuffix);
|
225 | var polyfillName = getConfigValue(context, '--polyfillFileName', null, Constants.ENV_POLYFILL_FILE_NAME, Constants.ENV_POLYFILL_FILE_NAME.toLowerCase(), 'polyfills.js');
|
226 | setProcessEnvVar(Constants.ENV_POLYFILL_FILE_NAME, polyfillName);
|
227 | logger_1.Logger.debug("polyfillName set to " + polyfillName);
|
228 | var purgeUnusedFonts = getConfigValue(context, '--purgeUnusedFonts', null, Constants.ENV_PURGE_UNUSED_FONTS, Constants.ENV_PURGE_UNUSED_FONTS.toLowerCase(), 'true');
|
229 | setProcessEnvVar(Constants.ENV_PURGE_UNUSED_FONTS, purgeUnusedFonts);
|
230 | logger_1.Logger.debug("purgeUnusedFonts set to " + purgeUnusedFonts);
|
231 |
|
232 | setProcessEnvVar(Constants.ENV_ACTION_SHEET_CONTROLLER_CLASSNAME, 'ActionSheetController');
|
233 | setProcessEnvVar(Constants.ENV_ACTION_SHEET_CONTROLLER_PATH, path_1.join(context.ionicAngularDir, 'components', 'action-sheet', 'action-sheet-controller.js'));
|
234 | setProcessEnvVar(Constants.ENV_ACTION_SHEET_VIEW_CONTROLLER_PATH, path_1.join(context.ionicAngularDir, 'components', 'action-sheet', 'action-sheet.js'));
|
235 | setProcessEnvVar(Constants.ENV_ACTION_SHEET_COMPONENT_PATH, path_1.join(context.ionicAngularDir, 'components', 'action-sheet', 'action-sheet-component.js'));
|
236 | setProcessEnvVar(Constants.ENV_ACTION_SHEET_COMPONENT_FACTORY_PATH, path_1.join(context.ionicAngularDir, 'components', 'action-sheet', 'action-sheet-component.ngfactory.js'));
|
237 | setProcessEnvVar(Constants.ENV_ALERT_CONTROLLER_CLASSNAME, 'AlertController');
|
238 | setProcessEnvVar(Constants.ENV_ALERT_CONTROLLER_PATH, path_1.join(context.ionicAngularDir, 'components', 'alert', 'alert-controller.js'));
|
239 | setProcessEnvVar(Constants.ENV_ALERT_VIEW_CONTROLLER_PATH, path_1.join(context.ionicAngularDir, 'components', 'alert', 'alert.js'));
|
240 | setProcessEnvVar(Constants.ENV_ALERT_COMPONENT_PATH, path_1.join(context.ionicAngularDir, 'components', 'alert', 'alert-component.js'));
|
241 | setProcessEnvVar(Constants.ENV_ALERT_COMPONENT_FACTORY_PATH, path_1.join(context.ionicAngularDir, 'components', 'alert', 'alert-component.ngfactory.js'));
|
242 | setProcessEnvVar(Constants.ENV_APP_ROOT_COMPONENT_PATH, path_1.join(context.ionicAngularDir, 'components', 'app', 'app-root.js'));
|
243 | setProcessEnvVar(Constants.ENV_LOADING_CONTROLLER_CLASSNAME, 'LoadingController');
|
244 | setProcessEnvVar(Constants.ENV_LOADING_CONTROLLER_PATH, path_1.join(context.ionicAngularDir, 'components', 'loading', 'loading-controller.js'));
|
245 | setProcessEnvVar(Constants.ENV_LOADING_VIEW_CONTROLLER_PATH, path_1.join(context.ionicAngularDir, 'components', 'loading', 'loading.js'));
|
246 | setProcessEnvVar(Constants.ENV_LOADING_COMPONENT_PATH, path_1.join(context.ionicAngularDir, 'components', 'loading', 'loading-component.js'));
|
247 | setProcessEnvVar(Constants.ENV_LOADING_COMPONENT_FACTORY_PATH, path_1.join(context.ionicAngularDir, 'components', 'loading', 'loading-component.ngfactory.js'));
|
248 | setProcessEnvVar(Constants.ENV_MODAL_CONTROLLER_CLASSNAME, 'ModalController');
|
249 | setProcessEnvVar(Constants.ENV_MODAL_CONTROLLER_PATH, path_1.join(context.ionicAngularDir, 'components', 'modal', 'modal-controller.js'));
|
250 | setProcessEnvVar(Constants.ENV_MODAL_VIEW_CONTROLLER_PATH, path_1.join(context.ionicAngularDir, 'components', 'modal', 'modal.js'));
|
251 | setProcessEnvVar(Constants.ENV_MODAL_COMPONENT_PATH, path_1.join(context.ionicAngularDir, 'components', 'modal', 'modal-component.js'));
|
252 | setProcessEnvVar(Constants.ENV_MODAL_COMPONENT_FACTORY_PATH, path_1.join(context.ionicAngularDir, 'components', 'modal', 'modal-component.ngfactory.js'));
|
253 | setProcessEnvVar(Constants.ENV_PICKER_CONTROLLER_CLASSNAME, 'PickerController');
|
254 | setProcessEnvVar(Constants.ENV_PICKER_CONTROLLER_PATH, path_1.join(context.ionicAngularDir, 'components', 'picker', 'picker-controller.js'));
|
255 | setProcessEnvVar(Constants.ENV_PICKER_VIEW_CONTROLLER_PATH, path_1.join(context.ionicAngularDir, 'components', 'picker', 'picker.js'));
|
256 | setProcessEnvVar(Constants.ENV_PICKER_COMPONENT_PATH, path_1.join(context.ionicAngularDir, 'components', 'picker', 'picker-component.js'));
|
257 | setProcessEnvVar(Constants.ENV_PICKER_COMPONENT_FACTORY_PATH, path_1.join(context.ionicAngularDir, 'components', 'picker', 'picker-component.ngfactory.js'));
|
258 | setProcessEnvVar(Constants.ENV_POPOVER_CONTROLLER_CLASSNAME, 'PopoverController');
|
259 | setProcessEnvVar(Constants.ENV_POPOVER_CONTROLLER_PATH, path_1.join(context.ionicAngularDir, 'components', 'popover', 'popover-controller.js'));
|
260 | setProcessEnvVar(Constants.ENV_POPOVER_VIEW_CONTROLLER_PATH, path_1.join(context.ionicAngularDir, 'components', 'popover', 'popover.js'));
|
261 | setProcessEnvVar(Constants.ENV_POPOVER_COMPONENT_PATH, path_1.join(context.ionicAngularDir, 'components', 'popover', 'popover-component.js'));
|
262 | setProcessEnvVar(Constants.ENV_POPOVER_COMPONENT_FACTORY_PATH, path_1.join(context.ionicAngularDir, 'components', 'popover', 'popover-component.ngfactory.js'));
|
263 | setProcessEnvVar(Constants.ENV_SELECT_POPOVER_CLASSNAME, 'SelectPopover');
|
264 | setProcessEnvVar(Constants.ENV_SELECT_POPOVER_COMPONENT_PATH, path_1.join(context.ionicAngularDir, 'components', 'select', 'select-popover-component.js'));
|
265 | setProcessEnvVar(Constants.ENV_SELECT_POPOVER_COMPONENT_FACTORY_PATH, path_1.join(context.ionicAngularDir, 'components', 'select', 'select-popover-component.ngfactory.js'));
|
266 | setProcessEnvVar(Constants.ENV_TOAST_CONTROLLER_CLASSNAME, 'ToastController');
|
267 | setProcessEnvVar(Constants.ENV_TOAST_CONTROLLER_PATH, path_1.join(context.ionicAngularDir, 'components', 'toast', 'toast-controller.js'));
|
268 | setProcessEnvVar(Constants.ENV_TOAST_VIEW_CONTROLLER_PATH, path_1.join(context.ionicAngularDir, 'components', 'toast', 'toast.js'));
|
269 | setProcessEnvVar(Constants.ENV_TOAST_COMPONENT_PATH, path_1.join(context.ionicAngularDir, 'components', 'toast', 'toast-component.js'));
|
270 | setProcessEnvVar(Constants.ENV_TOAST_COMPONENT_FACTORY_PATH, path_1.join(context.ionicAngularDir, 'components', 'toast', 'toast-component.ngfactory.js'));
|
271 | var parseDeepLinks = getConfigValue(context, '--parseDeepLinks', null, Constants.ENV_PARSE_DEEPLINKS, Constants.ENV_PARSE_DEEPLINKS.toLowerCase(), 'true');
|
272 | setProcessEnvVar(Constants.ENV_PARSE_DEEPLINKS, parseDeepLinks);
|
273 | logger_1.Logger.debug("parseDeepLinks set to " + parseDeepLinks);
|
274 | var skipReadIonicAngular = getConfigValue(context, '--skipIonicAngularVersion', null, Constants.ENV_SKIP_IONIC_ANGULAR_VERSION, Constants.ENV_SKIP_IONIC_ANGULAR_VERSION.toLowerCase(), 'false');
|
275 | setProcessEnvVar(Constants.ENV_SKIP_IONIC_ANGULAR_VERSION, skipReadIonicAngular);
|
276 | logger_1.Logger.debug("skipReadIonicAngular set to " + skipReadIonicAngular);
|
277 | if (!isValidBundler(context.bundler)) {
|
278 | context.bundler = bundlerStrategy(context);
|
279 | logger_1.Logger.debug("bundler set to " + context.bundler);
|
280 | }
|
281 | context.inlineTemplates = true;
|
282 | checkDebugMode();
|
283 | if (helpers_1.getBooleanPropertyValue(Constants.ENV_DISABLE_LOGGING)) {
|
284 | console.debug = function () { };
|
285 | console.error = function () { };
|
286 | console.info = function () { };
|
287 | console.log = function () { };
|
288 | console.trace = function () { };
|
289 | console.warn = function () { };
|
290 | }
|
291 | return context;
|
292 | }
|
293 | exports.generateContext = generateContext;
|
294 | function getUserConfigFile(context, task, userConfigFile) {
|
295 | if (!context) {
|
296 | context = generateContext(context);
|
297 | }
|
298 | if (userConfigFile) {
|
299 | return path_1.resolve(userConfigFile);
|
300 | }
|
301 | var defaultConfig = getConfigValue(context, task.fullArg, task.shortArg, task.envVar, task.packageConfig, null);
|
302 | if (defaultConfig) {
|
303 | return path_1.join(context.rootDir, defaultConfig);
|
304 | }
|
305 | return null;
|
306 | }
|
307 | exports.getUserConfigFile = getUserConfigFile;
|
308 | function fillConfigDefaults(userConfigFile, defaultConfigFile) {
|
309 | var userConfig = null;
|
310 | if (userConfigFile) {
|
311 | try {
|
312 |
|
313 |
|
314 | fs_extra_1.statSync(userConfigFile);
|
315 |
|
316 | userConfig = require(userConfigFile);
|
317 |
|
318 | if (typeof userConfig === 'function') {
|
319 | userConfig = userConfig();
|
320 | }
|
321 | }
|
322 | catch (e) {
|
323 | if (e.code === 'ENOENT') {
|
324 | console.error("Config file \"" + userConfigFile + "\" not found. Using defaults instead.");
|
325 | }
|
326 | else {
|
327 | console.error("There was an error in config file \"" + userConfigFile + "\". Using defaults instead.");
|
328 | console.error(e);
|
329 | }
|
330 | }
|
331 | }
|
332 | var defaultConfig = require(path_1.join('..', '..', 'config', defaultConfigFile));
|
333 |
|
334 |
|
335 | return helpers_1.objectAssign({}, defaultConfig, userConfig);
|
336 | }
|
337 | exports.fillConfigDefaults = fillConfigDefaults;
|
338 | function bundlerStrategy(context) {
|
339 | return Constants.BUNDLER_WEBPACK;
|
340 | }
|
341 | exports.bundlerStrategy = bundlerStrategy;
|
342 | function isValidBundler(bundler) {
|
343 | return bundler === Constants.BUNDLER_WEBPACK;
|
344 | }
|
345 | function getConfigValue(context, argFullName, argShortName, envVarName, packageConfigProp, defaultValue) {
|
346 | if (!context) {
|
347 | context = generateContext(context);
|
348 | }
|
349 |
|
350 | var argVal = getArgValue(argFullName, argShortName);
|
351 | if (argVal !== null) {
|
352 | return argVal;
|
353 | }
|
354 |
|
355 |
|
356 | var envVar = getProcessEnvVar(envVarName);
|
357 | if (envVar !== null) {
|
358 | return envVar;
|
359 | }
|
360 | var packageConfig = getPackageJsonConfig(context, packageConfigProp);
|
361 | if (packageConfig !== null) {
|
362 | return packageConfig;
|
363 | }
|
364 |
|
365 | return defaultValue;
|
366 | }
|
367 | exports.getConfigValue = getConfigValue;
|
368 | function getArgValue(fullName, shortName) {
|
369 | for (var i = 2; i < processArgv.length; i++) {
|
370 | var arg = processArgv[i];
|
371 | if (arg === fullName || (shortName && arg === shortName)) {
|
372 | var val = processArgv[i + 1];
|
373 | if (val !== undefined && val !== '') {
|
374 | return val;
|
375 | }
|
376 | }
|
377 | }
|
378 | return null;
|
379 | }
|
380 | function hasConfigValue(context, argFullName, argShortName, envVarName, defaultValue) {
|
381 | if (!context) {
|
382 | context = generateContext(context);
|
383 | }
|
384 | if (hasArg(argFullName, argShortName)) {
|
385 | return true;
|
386 | }
|
387 |
|
388 |
|
389 | var envVar = getProcessEnvVar(envVarName);
|
390 | if (envVar !== null) {
|
391 | return true;
|
392 | }
|
393 | var packageConfig = getPackageJsonConfig(context, envVarName);
|
394 | if (packageConfig !== null) {
|
395 | return true;
|
396 | }
|
397 |
|
398 | return defaultValue;
|
399 | }
|
400 | exports.hasConfigValue = hasConfigValue;
|
401 | function hasArg(fullName, shortName) {
|
402 | if (shortName === void 0) { shortName = null; }
|
403 | return !!(processArgv.some(function (a) { return a.toLowerCase() === fullName.toLowerCase(); }) ||
|
404 | (shortName !== null && processArgv.some(function (a) { return a.toLowerCase() === shortName.toLowerCase(); })));
|
405 | }
|
406 | exports.hasArg = hasArg;
|
407 | function replacePathVars(context, filePath) {
|
408 | if (Array.isArray(filePath)) {
|
409 | return filePath.map(function (f) { return replacePathVars(context, f); });
|
410 | }
|
411 | if (typeof filePath === 'object') {
|
412 | var clonedFilePaths = Object.assign({}, filePath);
|
413 | for (var key in clonedFilePaths) {
|
414 | clonedFilePaths[key] = replacePathVars(context, clonedFilePaths[key]);
|
415 | }
|
416 | return clonedFilePaths;
|
417 | }
|
418 | return filePath.replace('{{SRC}}', context.srcDir)
|
419 | .replace('{{WWW}}', context.wwwDir)
|
420 | .replace('{{TMP}}', context.tmpDir)
|
421 | .replace('{{ROOT}}', context.rootDir)
|
422 | .replace('{{BUILD}}', context.buildDir);
|
423 | }
|
424 | exports.replacePathVars = replacePathVars;
|
425 | function getNodeBinExecutable(context, cmd) {
|
426 | var cmdPath = path_1.join(context.rootDir, 'node_modules', '.bin', cmd);
|
427 | try {
|
428 | fs_extra_1.accessSync(cmdPath);
|
429 | }
|
430 | catch (e) {
|
431 | cmdPath = null;
|
432 | }
|
433 | return cmdPath;
|
434 | }
|
435 | exports.getNodeBinExecutable = getNodeBinExecutable;
|
436 | var checkedDebug = false;
|
437 | function checkDebugMode() {
|
438 | if (!checkedDebug) {
|
439 | if (hasArg('--debug') || getProcessEnvVar('ionic_debug_mode') === 'true') {
|
440 | processEnv.ionic_debug_mode = 'true';
|
441 | }
|
442 | checkedDebug = true;
|
443 | }
|
444 | }
|
445 | function isDebugMode() {
|
446 | return (processEnv.ionic_debug_mode === 'true');
|
447 | }
|
448 | exports.isDebugMode = isDebugMode;
|
449 | var processArgv;
|
450 | function setProcessArgs(argv) {
|
451 | processArgv = argv;
|
452 | }
|
453 | exports.setProcessArgs = setProcessArgs;
|
454 | setProcessArgs(process.argv);
|
455 | function addArgv(value) {
|
456 | processArgv.push(value);
|
457 | }
|
458 | exports.addArgv = addArgv;
|
459 | var processEnv;
|
460 | function setProcessEnv(env) {
|
461 | processEnv = env;
|
462 | }
|
463 | exports.setProcessEnv = setProcessEnv;
|
464 | setProcessEnv(process.env);
|
465 | function setProcessEnvVar(key, value) {
|
466 | if (key && value) {
|
467 | processEnv[key] = value;
|
468 | }
|
469 | }
|
470 | exports.setProcessEnvVar = setProcessEnvVar;
|
471 | function getProcessEnvVar(key) {
|
472 | var val = processEnv[key];
|
473 | if (val !== undefined) {
|
474 | if (val === 'true') {
|
475 | return true;
|
476 | }
|
477 | if (val === 'false') {
|
478 | return false;
|
479 | }
|
480 | return val;
|
481 | }
|
482 | return null;
|
483 | }
|
484 | exports.getProcessEnvVar = getProcessEnvVar;
|
485 | var processCwd;
|
486 | function setCwd(cwd) {
|
487 | processCwd = cwd;
|
488 | }
|
489 | exports.setCwd = setCwd;
|
490 | setCwd(process.cwd());
|
491 | function getPackageJsonConfig(context, key) {
|
492 | var packageJsonData = getAppPackageJsonData(context);
|
493 | if (packageJsonData && packageJsonData.config) {
|
494 | var val = packageJsonData.config[key];
|
495 | if (val !== undefined) {
|
496 | if (val === 'true') {
|
497 | return true;
|
498 | }
|
499 | if (val === 'false') {
|
500 | return false;
|
501 | }
|
502 | return val;
|
503 | }
|
504 | }
|
505 | return null;
|
506 | }
|
507 | exports.getPackageJsonConfig = getPackageJsonConfig;
|
508 | var appPackageJsonData = null;
|
509 | function setAppPackageJsonData(data) {
|
510 | appPackageJsonData = data;
|
511 | }
|
512 | exports.setAppPackageJsonData = setAppPackageJsonData;
|
513 | function getAppPackageJsonData(context) {
|
514 | if (!appPackageJsonData) {
|
515 | try {
|
516 | appPackageJsonData = fs_extra_1.readJSONSync(path_1.join(context.rootDir, 'package.json'));
|
517 | }
|
518 | catch (e) { }
|
519 | }
|
520 | return appPackageJsonData;
|
521 | }
|