1 | ;
|
2 | // tslint:disable:no-any
|
3 | // tslint:disable:no-unsafe-any
|
4 | Object.defineProperty(exports, "__esModule", { value: true });
|
5 | // tslint:disable:max-func-body-length
|
6 | function normalizeEnvironment(rawEnvironment, prod) {
|
7 | let environment = {};
|
8 | if (!rawEnvironment) {
|
9 | return environment;
|
10 | }
|
11 | if (typeof rawEnvironment === 'string') {
|
12 | environment[rawEnvironment] = true;
|
13 | }
|
14 | else if (typeof rawEnvironment === 'object') {
|
15 | environment = Object.assign({}, rawEnvironment);
|
16 | }
|
17 | const normalizedEnv = {};
|
18 | Object.keys(environment).forEach((key) => {
|
19 | const normalizedKey = normalizeEnvName(key);
|
20 | normalizedEnv[normalizedKey] = environment[key];
|
21 | if (typeof normalizedEnv[normalizedKey] === 'string' &&
|
22 | normalizedEnv[normalizedKey].toLowerCase() === 'true') {
|
23 | normalizedEnv[normalizedKey] = true;
|
24 | }
|
25 | else if (typeof normalizedEnv[normalizedKey] === 'string' &&
|
26 | normalizedEnv[normalizedKey].toLowerCase() === 'false') {
|
27 | normalizedEnv[normalizedKey] = false;
|
28 | }
|
29 | });
|
30 | environment = Object.assign({}, normalizedEnv);
|
31 | // dll
|
32 | if (environment.dll != null) {
|
33 | if (environment.dll) {
|
34 | environment.dll = true;
|
35 | }
|
36 | else {
|
37 | delete environment.dll;
|
38 | }
|
39 | }
|
40 | // aot
|
41 | if (environment.aot != null) {
|
42 | if (environment.aot) {
|
43 | environment.aot = true;
|
44 | }
|
45 | else {
|
46 | delete environment.aot;
|
47 | }
|
48 | }
|
49 | // prod
|
50 | if (prod) {
|
51 | environment.prod = true;
|
52 | }
|
53 | if (environment.prod != null) {
|
54 | if (environment.prod) {
|
55 | environment.prod = true;
|
56 | environment.production = true;
|
57 | }
|
58 | else {
|
59 | delete environment.prod;
|
60 | if (typeof environment.production != null) {
|
61 | delete environment.production;
|
62 | }
|
63 | }
|
64 | }
|
65 | else if (environment.production != null) {
|
66 | if (environment.production) {
|
67 | environment.prod = true;
|
68 | environment.production = true;
|
69 | }
|
70 | else {
|
71 | delete environment.production;
|
72 | if (environment.prod != null) {
|
73 | delete environment.prod;
|
74 | }
|
75 | }
|
76 | }
|
77 | else {
|
78 | if (environment.prod != null) {
|
79 | delete environment.prod;
|
80 | }
|
81 | if (environment.production != null) {
|
82 | delete environment.production;
|
83 | }
|
84 | }
|
85 | // dev
|
86 | if (environment.prod) {
|
87 | if (environment.dev != null) {
|
88 | delete environment.dev;
|
89 | }
|
90 | if (environment.development != null) {
|
91 | delete environment.development;
|
92 | }
|
93 | }
|
94 | else {
|
95 | if (environment.dev == null &&
|
96 | environment.development == null) {
|
97 | environment.dev = true;
|
98 | environment.development = true;
|
99 | }
|
100 | else if (environment.dev != null) {
|
101 | if (environment.dev) {
|
102 | environment.dev = true;
|
103 | environment.development = true;
|
104 | }
|
105 | else {
|
106 | delete environment.dev;
|
107 | if (environment.development != null) {
|
108 | delete environment.development;
|
109 | }
|
110 | }
|
111 | }
|
112 | else if (environment.development != null) {
|
113 | if (environment.development) {
|
114 | environment.dev = true;
|
115 | environment.development = true;
|
116 | }
|
117 | else {
|
118 | delete environment.development;
|
119 | if (environment.dev != null) {
|
120 | delete environment.dev;
|
121 | }
|
122 | }
|
123 | }
|
124 | }
|
125 | return environment;
|
126 | }
|
127 | exports.normalizeEnvironment = normalizeEnvironment;
|
128 | function normalizeEnvName(envName) {
|
129 | const envLower = envName.toLowerCase();
|
130 | switch (envLower) {
|
131 | case 'prod':
|
132 | case 'production':
|
133 | return 'prod';
|
134 | case 'dev':
|
135 | case 'development':
|
136 | return 'dev';
|
137 | case 'dll':
|
138 | return 'dll';
|
139 | case 'hot':
|
140 | return 'hot';
|
141 | case 'test':
|
142 | return 'test';
|
143 | case 'aot':
|
144 | return 'aot';
|
145 | default:
|
146 | return envName;
|
147 | }
|
148 | }
|
149 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLWVudmlyb25tZW50LmpzIiwic291cmNlUm9vdCI6IkM6L3Byb2plY3RzL2FuZ3VsYXItYnVpbGQvIiwic291cmNlcyI6WyJzcmMvaGVscGVycy9ub3JtYWxpemUtZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdCQUF3QjtBQUN4QiwrQkFBK0I7O0FBRS9CLHNDQUFzQztBQUN0Qyw4QkFBcUMsY0FBbUIsRUFBRSxJQUFjO0lBQ3BFLElBQUksV0FBVyxHQUF3QyxFQUFFLENBQUM7SUFDMUQsSUFBSSxDQUFDLGNBQWMsRUFBRTtRQUNqQixPQUFPLFdBQVcsQ0FBQztLQUN0QjtJQUVELElBQUksT0FBTyxjQUFjLEtBQUssUUFBUSxFQUFFO1FBQ3BDLFdBQVcsQ0FBQyxjQUFjLENBQUMsR0FBRyxJQUFJLENBQUM7S0FDdEM7U0FBTSxJQUFJLE9BQU8sY0FBYyxLQUFLLFFBQVEsRUFBRTtRQUMzQyxXQUFXLHFCQUFRLGNBQWMsQ0FBRSxDQUFDO0tBQ3ZDO0lBRUQsTUFBTSxhQUFhLEdBQXdDLEVBQUUsQ0FBQztJQUM5RCxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFO1FBQzdDLE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLGFBQWEsQ0FBQyxhQUFhLENBQUMsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEQsSUFBSSxPQUFRLGFBQXFCLENBQUMsYUFBYSxDQUFDLEtBQUssUUFBUTtZQUN2RCxhQUFxQixDQUFDLGFBQWEsQ0FBWSxDQUFDLFdBQVcsRUFBRSxLQUFLLE1BQU0sRUFBRTtZQUMzRSxhQUFxQixDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQztTQUNoRDthQUFNLElBQUksT0FBUSxhQUFxQixDQUFDLGFBQWEsQ0FBQyxLQUFLLFFBQVE7WUFDOUQsYUFBcUIsQ0FBQyxhQUFhLENB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QUMsR0FBRyxDQUFDO2dCQUN2QixJQUFLLFdBQW1CLENBQUMsV0FBVyxJQUFJLElBQUksRUFBRTtvQkFDMUMsT0FBUSxXQUFtQixDQUFDLFdBQVcsQ0FBQztpQkFDM0M7YUFDSjtTQUNKO2FBQU0sSUFBSyxXQUFtQixDQUFDLFdBQVcsSUFBSSxJQUFJLEVBQUU7WUFDakQsSUFBSyxXQUFtQixDQUFDLFdBQVcsRUFBRTtnQkFDbEMsV0FBVyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUM7Z0JBQ3RCLFdBQW1CLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQzthQUMzQztpQkFBTTtnQkFDSCxPQUFRLFdBQW1CLENBQUMsV0FBVyxDQUFDO2dCQUN4QyxJQUFJLFdBQVcsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFFO29CQUN6QixPQUFPLFdBQVcsQ0FBQyxHQUFHLENBQUM7aUJBQzFCO2FBQ0o7U0FDSjtLQUNKO0lBRUQsT0FBTyxXQUFXLENBQUM7QUFDdkIsQ0FBQztBQXBIRCxvREFvSEM7QUFFRCwwQkFBMEIsT0FBZTtJQUNyQyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkMsUUFBUSxRQUFRLEVBQUU7UUFDZCxLQUFLLE1BQU0sQ0FBQztRQUNaLEtBQUssWUFBWTtZQUNiLE9BQU8sTUFBTSxDQUFDO1FBQ2xCLEtBQUssS0FBSyxDQUFDO1FBQ1gsS0FBSyxhQUFhO1lBQ2QsT0FBTyxLQUFLLENBQUM7UUFDakIsS0FBSyxLQUFLO1lBQ04sT0FBTyxLQUFLLENBQUM7UUFDakIsS0FBSyxLQUFLO1lBQ04sT0FBTyxLQUFLLENBQUM7UUFDakIsS0FBSyxNQUFNO1lBQ1AsT0FBTyxNQUFNLENBQUM7UUFDbEIsS0FBSyxLQUFLO1lBQ04sT0FBTyxLQUFLLENBQUM7UUFDakI7WUFDSSxPQUFPLE9BQU8sQ0FBQztLQUN0QjtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZTpuby1hbnlcbi8vIHRzbGludDpkaXNhYmxlOm5vLXVuc2FmZS1hbnlcblxuLy8gdHNsaW50OmRpc2FibGU6bWF4LWZ1bmMtYm9keS1sZW5ndGhcbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVFbnZpcm9ubWVudChyYXdFbnZpcm9ubWVudDogYW55LCBwcm9kPzogYm9vbGVhbik6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB8IHN0cmluZyB9IHtcbiAgICBsZXQgZW52aXJvbm1lbnQ6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB8IHN0cmluZyB9ID0ge307XG4gICAgaWYgKCFyYXdFbnZpcm9ubWVudCkge1xuICAgICAgICByZXR1cm4gZW52aXJvbm1lbnQ7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiByYXdFbnZpcm9ubWVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgZW52aXJvbm1lbnRbcmF3RW52aXJvbm1lbnRdID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiByYXdFbnZpcm9ubWVudCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgZW52aXJvbm1lbnQgPSB7IC4uLnJhd0Vudmlyb25tZW50IH07XG4gICAgfVxuXG4gICAgY29uc3Qgbm9ybWFsaXplZEVudjogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIHwgc3RyaW5nIH0gPSB7fTtcbiAgICBPYmplY3Qua2V5cyhlbnZpcm9ubWVudCkuZm9yRWFjaCgoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZEtleSA9IG5vcm1hbGl6ZUVudk5hbWUoa2V5KTtcbiAgICAgICAgbm9ybWFsaXplZEVudltub3JtYWxpemVkS2V5XSA9IGVudmlyb25tZW50W2tleV07XG4gICAgICAgIGlmICh0eXBlb2YgKG5vcm1hbGl6ZWRFbnYgYXMgYW55KVtub3JtYWxpemVkS2V5XSA9PT0gJ3N0cmluZycgJiZcbiAgICAgICAgICAgICgobm9ybWFsaXplZEVudiBhcyBhbnkpW25vcm1hbGl6ZWRLZXldIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnKSB7XG4gICAgICAgICAgICAobm9ybWFsaXplZEVudiBhcyBhbnkpW25vcm1hbGl6ZWRLZXldID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgKG5vcm1hbGl6ZWRFbnYgYXMgYW55KVtub3JtYWxpemVkS2V5XSA9PT0gJ3N0cmluZycgJiZcbiAgICAgICAgICAgICgobm9ybWFsaXplZEVudiBhcyBhbnkpW25vcm1hbGl6ZWRLZXldIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhbHNlJykge1xuICAgICAgICAgICAgKG5vcm1hbGl6ZWRFbnYgYXMgYW55KVtub3JtYWxpemVkS2V5XSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBlbnZpcm9ubWVudCA9IHsgLi4ubm9ybWFsaXplZEVudiB9O1xuXG4gICAgLy8gZGxsXG4gICAgaWYgKGVudmlyb25tZW50LmRsbCAhPSBudWxsKSB7XG4gICAgICAgIGlmIChlbnZpcm9ubWVudC5kbGwpIHtcbiAgICAgICAgICAgIGVudmlyb25tZW50LmRsbCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkZWxldGUgZW52aXJvbm1lbnQuZGxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gYW90XG4gICAgaWYgKGVudmlyb25tZW50LmFvdCAhPSBudWxsKSB7XG4gICAgICAgIGlmIChlbnZpcm9ubWVudC5hb3QpIHtcbiAgICAgICAgICAgIGVudmlyb25tZW50LmFvdCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkZWxldGUgZW52aXJvbm1lbnQuYW90O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gcHJvZFxuICAgIGlmIChwcm9kKSB7XG4gICAgICAgIGVudmlyb25tZW50LnByb2QgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChlbnZpcm9ubWVudC5wcm9kICE9IG51bGwpIHtcbiAgICAgICAgaWYgKGVudmlyb25tZW50LnByb2QpIHtcbiAgICAgICAgICAgIGVudmlyb25tZW50LnByb2QgPSB0cnVlO1xuICAgICAgICAgICAgKGVudmlyb25tZW50IGFzIGFueSkucHJvZHVjdGlvbiA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkZWxldGUgZW52aXJvbm1lbnQucHJvZDtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgKGVudmlyb25tZW50IGFzIGFueSkucHJvZHVjdGlvbiAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIChlbnZpcm9ubWVudCBhcyBhbnkpLnByb2R1Y3Rpb247XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYgKChlbnZpcm9ubWVudCBhcyBhbnkpLnByb2R1Y3Rpb24gIT0gbnVsbCkge1xuICAgICAgICBpZiAoKGVudmlyb25tZW50IGFzIGFueSkucHJvZHVjdGlvbikge1xuICAgICAgICAgICAgZW52aXJvbm1lbnQucHJvZCA9IHRydWU7XG4gICAgICAgICAgICAoZW52aXJvbm1lbnQgYXMgYW55KS5wcm9kdWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRlbGV0ZSAoZW52aXJvbm1lbnQgYXMgYW55KS5wcm9kdWN0aW9uO1xuICAgICAgICAgICAgaWYgKGVudmlyb25tZW50LnByb2QgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBlbnZpcm9ubWVudC5wcm9kO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGVudmlyb25tZW50LnByb2QgIT0gbnVsbCkge1xuICAgICAgICAgICAgZGVsZXRlIGVudmlyb25tZW50LnByb2Q7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKChlbnZpcm9ubWVudCBhcyBhbnkpLnByb2R1Y3Rpb24gIT0gbnVsbCkge1xuICAgICAgICAgICAgZGVsZXRlIChlbnZpcm9ubWVudCBhcyBhbnkpLnByb2R1Y3Rpb247XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBkZXZcbiAgICBpZiAoZW52aXJvbm1lbnQucHJvZCkge1xuICAgICAgICBpZiAoZW52aXJvbm1lbnQuZGV2ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBlbnZpcm9ubWVudC5kZXY7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKChlbnZpcm9ubWVudCBhcyBhbnkpLmRldmVsb3BtZW50ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGRlbGV0ZSAoZW52aXJvbm1lbnQgYXMgYW55KS5kZXZlbG9wbWVudDtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChlbnZpcm9ubWVudC5kZXYgPT0gbnVsbCAmJlxuICAgICAgICAgICAgKGVudmlyb25tZW50IGFzIGFueSkuZGV2ZWxvcG1lbnQgPT0gbnVsbCkge1xuICAgICAgICAgICAgZW52aXJvbm1lbnQuZGV2ID0gdHJ1ZTtcbiAgICAgICAgICAgIChlbnZpcm9ubWVudCBhcyBhbnkpLmRldmVsb3BtZW50ID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChlbnZpcm9ubWVudC5kZXYgIT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKGVudmlyb25tZW50LmRldikge1xuICAgICAgICAgICAgICAgIGVudmlyb25tZW50LmRldiA9IHRydWU7XG4gICAgICAgICAgICAgICAgKGVudmlyb25tZW50IGFzIGFueSkuZGV2ZWxvcG1lbnQgPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgZW52aXJvbm1lbnQuZGV2O1xuICAgICAgICAgICAgICAgIGlmICgoZW52aXJvbm1lbnQgYXMgYW55KS5kZXZlbG9wbWVudCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSAoZW52aXJvbm1lbnQgYXMgYW55KS5kZXZlbG9wbWVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoKGVudmlyb25tZW50IGFzIGFueSkuZGV2ZWxvcG1lbnQgIT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKChlbnZpcm9ubWVudCBhcyBhbnkpLmRldmVsb3BtZW50KSB7XG4gICAgICAgICAgICAgICAgZW52aXJvbm1lbnQuZGV2ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAoZW52aXJvbm1lbnQgYXMgYW55KS5kZXZlbG9wbWVudCA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSAoZW52aXJvbm1lbnQgYXMgYW55KS5kZXZlbG9wbWVudDtcbiAgICAgICAgICAgICAgICBpZiAoZW52aXJvbm1lbnQuZGV2ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGVudmlyb25tZW50LmRldjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZW52aXJvbm1lbnQ7XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUVudk5hbWUoZW52TmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBlbnZMb3dlciA9IGVudk5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBzd2l0Y2ggKGVudkxvd2VyKSB7XG4gICAgICAgIGNhc2UgJ3Byb2QnOlxuICAgICAgICBjYXNlICdwcm9kdWN0aW9uJzpcbiAgICAgICAgICAgIHJldHVybiAncHJvZCc7XG4gICAgICAgIGNhc2UgJ2Rldic6XG4gICAgICAgIGNhc2UgJ2RldmVsb3BtZW50JzpcbiAgICAgICAgICAgIHJldHVybiAnZGV2JztcbiAgICAgICAgY2FzZSAnZGxsJzpcbiAgICAgICAgICAgIHJldHVybiAnZGxsJztcbiAgICAgICAgY2FzZSAnaG90JzpcbiAgICAgICAgICAgIHJldHVybiAnaG90JztcbiAgICAgICAgY2FzZSAndGVzdCc6XG4gICAgICAgICAgICByZXR1cm4gJ3Rlc3QnO1xuICAgICAgICBjYXNlICdhb3QnOlxuICAgICAgICAgICAgcmV0dXJuICdhb3QnO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGVudk5hbWU7XG4gICAgfVxufVxuIl19 |
\ | No newline at end of file |