PHP WebShell

Текущая директория: /opt/BitGoJS/node_modules/depcheck/dist/utils

Просмотр файла: cli-tools.js

"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.getCustomConfig = getCustomConfig;
exports.loadConfig = loadConfig;
exports.parse = parse;
var _jsYaml = _interopRequireDefault(require("js-yaml"));
var path = _interopRequireWildcard(require("path"));
var fs = _interopRequireWildcard(require("fs"));
var JSON5 = _interopRequireWildcard(require("json5"));
var _ = require(".");
var _getScripts = _interopRequireDefault(require("./get-scripts"));
var _file = require("./file");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const optionKeysForConfig = {
  babel: ['--config-file'],
  eslint: ['--config', '-c'],
  tslint: ['--config', '-c']
};
function parse(content) {
  try {
    return JSON.parse(content);
  } catch (error) {
    // not JSON format
  }
  try {
    return JSON5.parse(content);
  } catch (error) {
    // not JSON5 format
  }
  try {
    return _jsYaml.default.safeLoad(content);
  } catch (error) {
    // not YAML format
  }
  try {
    return (0, _.evaluate)(`module.exports = ${content}`);
  } catch (error) {
    // not valid JavaScript code
  }
  try {
    return (0, _.evaluate)(content);
  } catch (error) {
    // not valid JavaScript code
  }

  // parse fail, return nothing
  return null;
}
async function getCustomConfig(binName, filename, rootDir) {
  const scripts = await (0, _getScripts.default)(filename);
  if (scripts.length === 0) {
    return null;
  }
  const script = scripts.find(s => s.split(/\s+/).includes(binName));
  if (script) {
    const commands = script.split('&&');
    const command = commands.find(c => c.startsWith(binName));
    const optionsKeys = optionKeysForConfig[binName];
    if (command && optionsKeys) {
      const args = command.split(/\s+/);
      const configIdx = args.findIndex(arg => optionsKeys.includes(arg));
      if (configIdx !== -1 && args[configIdx + 1]) {
        const configFile = args[configIdx + 1];
        const configPath = path.resolve(rootDir, configFile);
        const configContent = fs.readFileSync(configPath);
        return parse(configContent);
      }
    }
  }
  return null;
}
async function loadConfig(binName, filenameRegex, filename, rootDir) {
  const basename = path.basename(filename);
  if (filenameRegex.test(basename)) {
    const requireConfig = (0, _.tryRequire)(filename);
    if (requireConfig) {
      return requireConfig;
    }
    const content = await (0, _file.getContent)(filename);
    const config = parse(content);
    return config;
  }
  const custom = await getCustomConfig(binName, filename, rootDir);
  if (custom) {
    return custom;
  }
  return null;
}

Выполнить команду


Для локальной разработки. Не используйте в интернете!