Blame view

天文台pc/tianwentai-ui/node_modules/@babel/helpers/lib/index.js 3.55 KB
bc518174   王天杨   提交两个项目文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
  "use strict";
  
  Object.defineProperty(exports, "__esModule", {
    value: true
  });
  exports.default = void 0;
  exports.get = get;
  exports.getDependencies = getDependencies;
  exports.isInternal = isInternal;
  exports.list = void 0;
  exports.minVersion = minVersion;
  var _t = require("@babel/types");
  var _helpersGenerated = require("./helpers-generated.js");
  const {
    cloneNode,
    identifier
  } = _t;
  function deep(obj, path, value) {
    try {
      const parts = path.split(".");
      let last = parts.shift();
      while (parts.length > 0) {
        obj = obj[last];
        last = parts.shift();
      }
      if (arguments.length > 2) {
        obj[last] = value;
      } else {
        return obj[last];
      }
    } catch (e) {
      e.message += ` (when accessing ${path})`;
      throw e;
    }
  }
  function permuteHelperAST(ast, metadata, bindingName, localBindings, getDependency, adjustAst) {
    const {
      locals,
      dependencies,
      exportBindingAssignments,
      exportName
    } = metadata;
    const bindings = new Set(localBindings || []);
    if (bindingName) bindings.add(bindingName);
    for (const [name, paths] of (Object.entries || (o => Object.keys(o).map(k => [k, o[k]])))(locals)) {
      let newName = name;
      if (bindingName && name === exportName) {
        newName = bindingName;
      } else {
        while (bindings.has(newName)) newName = "_" + newName;
      }
      if (newName !== name) {
        for (const path of paths) {
          deep(ast, path, identifier(newName));
        }
      }
    }
    for (const [name, paths] of (Object.entries || (o => Object.keys(o).map(k => [k, o[k]])))(dependencies)) {
      const ref = typeof getDependency === "function" && getDependency(name) || identifier(name);
      for (const path of paths) {
        deep(ast, path, cloneNode(ref));
      }
    }
    adjustAst == null || adjustAst(ast, exportName, map => {
      exportBindingAssignments.forEach(p => deep(ast, p, map(deep(ast, p))));
    });
  }
  const helperData = Object.create(null);
  function loadHelper(name) {
    if (!helperData[name]) {
      const helper = _helpersGenerated.default[name];
      if (!helper) {
        throw Object.assign(new ReferenceError(`Unknown helper ${name}`), {
          code: "BABEL_HELPER_UNKNOWN",
          helper: name
        });
      }
      helperData[name] = {
        minVersion: helper.minVersion,
        build(getDependency, bindingName, localBindings, adjustAst) {
          const ast = helper.ast();
          permuteHelperAST(ast, helper.metadata, bindingName, localBindings, getDependency, adjustAst);
          return {
            nodes: ast.body,
            globals: helper.metadata.globals
          };
        },
        getDependencies() {
          return Object.keys(helper.metadata.dependencies);
        }
      };
    }
    return helperData[name];
  }
  function get(name, getDependency, bindingName, localBindings, adjustAst) {
    if (typeof bindingName === "object") {
      const id = bindingName;
      if ((id == null ? void 0 : id.type) === "Identifier") {
        bindingName = id.name;
      } else {
        bindingName = undefined;
      }
    }
    return loadHelper(name).build(getDependency, bindingName, localBindings, adjustAst);
  }
  function minVersion(name) {
    return loadHelper(name).minVersion;
  }
  function getDependencies(name) {
    return loadHelper(name).getDependencies();
  }
  function isInternal(name) {
    var _helpers$name;
    return (_helpers$name = _helpersGenerated.default[name]) == null ? void 0 : _helpers$name.metadata.internal;
  }
  exports.ensure = name => {
    loadHelper(name);
  };
  const list = exports.list = Object.keys(_helpersGenerated.default).map(name => name.replace(/^_/, ""));
  var _default = exports.default = get;
  
  //# sourceMappingURL=index.js.map