执行过npm install命令的vue-element-admin源码
康凯
2022-05-20 aa4c235a8ca67ea8b731f90c951a465e92c0a865
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
"use strict";
/* eslint-disable no-process-exit */
const util = require("util");
const { JSDOM } = require("../../..");
const tough = require("tough-cookie");
const xhrSymbols = require("./xmlhttprequest-symbols.js");
 
const dom = new JSDOM();
const xhr = new dom.window.XMLHttpRequest();
 
const chunks = [];
 
process.stdin.on("data", chunk => {
  chunks.push(chunk);
});
 
process.stdin.on("end", () => {
  const buffer = Buffer.concat(chunks);
 
  const flag = JSON.parse(buffer.toString());
  if (flag.body && flag.body.type === "Buffer" && flag.body.data) {
    flag.body = Buffer.from(flag.body.data);
  }
  if (flag.cookieJar) {
    flag.cookieJar = tough.CookieJar.fromJSON(flag.cookieJar);
  }
 
  flag.synchronous = false;
  xhr[xhrSymbols.flag] = flag;
  const properties = xhr[xhrSymbols.properties];
  properties.readyState = xhr.OPENED;
  try {
    xhr.addEventListener("loadend", () => {
      if (properties.error) {
        properties.error = properties.error.stack || util.inspect(properties.error);
      }
      process.stdout.write(JSON.stringify({ properties }), () => {
        process.exit(0);
      });
    }, false);
    xhr.send(flag.body);
  } catch (error) {
    properties.error += error.stack || util.inspect(error);
    process.stdout.write(JSON.stringify({ properties }), () => {
      process.exit(0);
    });
  }
});