text: /*
      MIT License http://www.opensource.org/licenses/mit-license.php
      Author Tobias Koppers @sokra
  */
  "use strict";
  const LocalModule = require("./LocalModule");
  const LocalModulesHelpers = exports;
  const lookup = (parent, mod) => {
      if (mod.charAt(0) !== ".")
          return mod;
      var path = parent.split("/");
      var segs = mod.split("/");
      path.pop();
      for (let i = 0; i < segs.length; i++) {
          const seg = segs[i];
          if (seg === "..") {
              path.pop();
          }
          else if (seg !== ".") {
              path.push(seg);
          }
      }
      return path.join("/");
  };
  LocalModulesHelpers.addLocalModule = (state, name) => {
      if (!state.localModules) {
          state.localModules = [];
      }
      const m = new LocalModule(state.module, name, state.localModules.length);
      state.localModules.push(m);
      return m;
  };
  LocalModulesHelpers.getLocalModule = (state, name, namedModule) => {
      if (!state.localModules)
          return null;
      if (namedModule) {
          // resolve dependency name relative to the defining named module
          name = lookup(namedModule, name);
      }
      for (let i = 0; i < state.localModules.length; i++) {
          if (state.localModules[i].name === name) {
              return state.localModules[i];
          }
      }
      return null;
  };
  module.exports = LocalModulesHelpers;
  //# sourceMappingURL=LocalModulesHelpers.js.map