| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | 'use strict';var jsTokens = require('js-tokens').default;var processEnvRe = /\bprocess\.env\.[_$a-zA-Z][$\w]+\b/;var spaceOrCommentRe = /^(?:\s|\/[/*])/;function replace(src, envs) {  if (!processEnvRe.test(src)) {    return src;  }  var out = [];  var purge = envs.some(function(env) {    return env._ && env._.indexOf('purge') !== -1;  });  jsTokens.lastIndex = 0  var parts = src.match(jsTokens);  for (var i = 0; i < parts.length; i++) {    if (parts[i    ] === 'process' &&        parts[i + 1] === '.' &&        parts[i + 2] === 'env' &&        parts[i + 3] === '.') {      var prevCodeToken = getAdjacentCodeToken(-1, parts, i);      var nextCodeToken = getAdjacentCodeToken(1, parts, i + 4);      var replacement = getReplacementString(envs, parts[i + 4], purge);      if (prevCodeToken !== '.' &&          nextCodeToken !== '.' &&          nextCodeToken !== '=' &&          typeof replacement === 'string') {        out.push(replacement);        i += 4;        continue;      }    }    out.push(parts[i]);  }  return out.join('');}function getAdjacentCodeToken(dir, parts, i) {  while (true) {    var part = parts[i += dir];    if (!spaceOrCommentRe.test(part)) {      return part;    }  }}function getReplacementString(envs, name, purge) {  for (var j = 0; j < envs.length; j++) {    var env = envs[j];    if (typeof env[name] !== 'undefined') {      return JSON.stringify(env[name]);    }  }  if (purge) {    return 'undefined';  }}module.exports = replace;
 |