UNPKG

814 BJavaScriptView Raw
1"use strict";
2
3const types = require('@babel/types');
4
5module.exports = {
6 MemberExpression(node, asset) {
7 // Inline environment variables accessed on process.env
8 if (types.matchesPattern(node.object, 'process.env')) {
9 let key = types.toComputedKey(node);
10
11 if (types.isStringLiteral(key)) {
12 let prop = process.env[key.value];
13
14 if (typeof prop !== 'function') {
15 let value = types.valueToNode(prop);
16 morph(node, value);
17 asset.isAstDirty = true;
18 asset.cacheData.env[key.value] = process.env[key.value];
19 }
20 }
21 }
22 }
23
24}; // replace object properties
25
26function morph(object, newProperties) {
27 for (let key in object) {
28 delete object[key];
29 }
30
31 for (let key in newProperties) {
32 object[key] = newProperties[key];
33 }
34}
\No newline at end of file