astro-ghostcms/.pnpm-store/v3/files/1c/66caf5a9af67e11409cab23345d...

103 lines
3.0 KiB
Plaintext

'use strict';
const eslint = require('eslint');
const semver = require('semver');
const module$1 = require('module');
function _interopNamespaceCompat(e) {
if (e && typeof e === 'object' && 'default' in e) return e;
const n = Object.create(null);
if (e) {
for (const k in e) {
n[k] = e[k];
}
}
n.default = e;
return n;
}
const eslint__namespace = /*#__PURE__*/_interopNamespaceCompat(eslint);
const semver__namespace = /*#__PURE__*/_interopNamespaceCompat(semver);
function safeRequire(name) {
try {
return module$1.createRequire(`${process.cwd()}/__placeholder__.js`)(name);
} catch {
return void 0;
}
}
function safeRequireResolve(name) {
try {
return module$1.createRequire(`${process.cwd()}/__placeholder__.js`).resolve(name);
} catch {
return name;
}
}
function convertConfigToRc(config, linter) {
var _a, _b;
if (Array.isArray(config)) {
throw new Error("Array config is not supported.");
}
const {
languageOptions: originalLanguageOptions,
plugins,
...newConfig
} = config;
if (originalLanguageOptions) {
const {
parser,
globals,
parserOptions,
ecmaVersion,
sourceType,
...languageOptions
} = originalLanguageOptions;
newConfig.parserOptions = {
...!ecmaVersion || ecmaVersion === "latest" ? { ecmaVersion: getLatestEcmaVersion() } : { ecmaVersion },
...sourceType ? { sourceType } : { sourceType: "module" },
...languageOptions,
...parserOptions,
...newConfig.parserOptions
};
if (globals) {
newConfig.globals = {
...globals,
...newConfig.globals
};
}
if (parser && !newConfig.parser) {
const parserName = getParserName(parser);
newConfig.parser = parserName;
(_a = linter == null ? void 0 : linter.defineParser) == null ? void 0 : _a.call(linter, parserName, parser);
}
}
if (plugins) {
for (const [pluginName, plugin] of Object.entries(plugins)) {
for (const [ruleName, rule] of Object.entries(plugin.rules || {})) {
(_b = linter == null ? void 0 : linter.defineRule) == null ? void 0 : _b.call(linter, `${pluginName}/${ruleName}`, rule);
}
}
}
newConfig.env = {
es6: true,
...newConfig.env
};
return newConfig;
}
function getParserName(parser) {
var _a;
const name = ((_a = parser.meta) == null ? void 0 : _a.name) || parser.name;
if (name === "typescript-eslint/parser") {
return safeRequireResolve("@typescript-eslint/parser");
} else if (name == null && parser === safeRequire("@typescript-eslint/parser"))
return safeRequireResolve("@typescript-eslint/parser");
return safeRequireResolve(name);
}
function getLatestEcmaVersion() {
const eslintVersion = eslint__namespace.Linter.version;
return semver__namespace.gte(eslintVersion, "8.0.0") ? "latest" : semver__namespace.gte(eslintVersion, "7.8.0") ? 2021 : semver__namespace.gte(eslintVersion, "6.2.0") ? 2020 : semver__namespace.gte(eslintVersion, "5.0.0") ? 2019 : 2018;
}
exports.convertConfigToRc = convertConfigToRc;