@sanity/plugin-kit
7.0.28.0.0
dist/verify-common-cNJ4BLlQ.js−
dist/verify-common-cNJ4BLlQ.jsDeleted−161
Index: package/dist/verify-common-cNJ4BLlQ.js
===================================================================
--- package/dist/verify-common-cNJ4BLlQ.js
+++ package/dist/verify-common-cNJ4BLlQ.js
@@ -1,161 +0,0 @@
-import { a as urls } from "./constants-BDxElAZy.js";
-import { n as sharedFlags_default, t as log_default } from "./log-DgQL-Rv9.js";
-import { P as fileExists, W as mergedPackages } from "./package-YDElb3ND.js";
-import chalk from "chalk";
-import path from "path";
-import outdent from "outdent";
-import childProcess from "child_process";
-import { ESLint } from "eslint";
-import * as ts from "@typescript/typescript6";
-import npmRunPath from "npm-run-path";
-const removedImportSuffix = `imports where removed in Sanity v3. Please refer to the migration guide: ${urls.migrationGuideStudio}, or new API-reference docs: ${urls.refDocs}`;
-async function validateImports({ basePath }) {
- log_default.debug("Running ESLint with Sanity Studio import hints...");
- let eslintConfig = {
- ignorePatterns: ["node_modules"],
- parserOptions: {
- ecmaVersion: "latest",
- sourceType: "module"
- },
- rules: { "no-restricted-imports": ["error", { patterns: [
- ...mergedPackages.map((packageName) => ({
- group: [`${packageName}*`],
- message: `Use sanity instead of ${packageName}.`
- })),
- {
- group: ["config:*"],
- message: `config: imports are no longer supported. Please see the new plugin API for alternatives: ${urls.migrationGuideStudio}`
- },
- {
- group: ["part:*"],
- message: `part: ${removedImportSuffix}`
- },
- {
- group: ["all:part:*"],
- message: `all:part: ${removedImportSuffix}`
- },
- {
- group: ["sanity:*"],
- message: `sanity: ${removedImportSuffix}`
- }
- ] }] }
- }, eslint = new ESLint({
- cwd: basePath,
- overrideConfig: eslintConfig
- });
- try {
- let results;
- try {
- results = await eslint.lintFiles([path.join(basePath, "**/*.{js,jsx,ts,tsx}")]);
- } catch (error) {
- let message = error instanceof Error ? error.message : String(error);
- if (!(message.includes("@typescript-eslint") && message.includes("reading 'Cjs'"))) throw error;
- log_default.debug("Retrying ESLint import check without user config: %s", message), results = await new ESLint({
- cwd: basePath,
- useEslintrc: !1,
- overrideConfig: eslintConfig
- }).lintFiles([path.join(basePath, "**/*.{js,jsx,ts,tsx}")]);
- }
- let onlyImportErrors = results.map((r) => {
- let limitErrors = r.messages.filter((m) => m.ruleId === "no-restricted-imports");
- return {
- ...r,
- messages: limitErrors,
- errorCount: limitErrors.length
- };
- }).filter((r) => r.errorCount);
- if (onlyImportErrors.length) return [await (await eslint.loadFormatter("stylish")).format(onlyImportErrors) + outdent`
- ESLint detected Studio V2 imports that are no longer available.
- It is recommended configure @sanity/eslint-config-no-v2-imports for ESLint.
-
- Run:
- npm install --save-dev @sanity/eslint-config-no-v2-imports
-
- In .eslintrc add:
- "extends": ["@sanity/no-v2-imports"]
-
- This way, V2-imports can be identified directly in the IDE, or using eslint CLI.
- For more, see ${urls.linterPackage}
-
- If the plugin package does not use eslint, disable this check.
- `];
- } catch (e) {
- return log_default.error("Failed to run eslint check", e), [outdent`
- Failed to run ESLint. Is ESLint configured?
-
- If the package does not use eslint, disable this check.
- `];
- }
- return [];
-}
-async function readTSConfig(options) {
- let { basePath, filename } = options, filePath = path.resolve(basePath, filename);
- if (!await fileExists(filePath)) return;
- let { config } = ts.readConfigFile(filePath, ts.sys.readFile);
- if (config) return ts.parseJsonConfigFileContent(config, ts.sys, basePath);
-}
-function parseCommand(commandString) {
- let commandAndArg = commandString.replace(/ +/g, " ").split(" ");
- return {
- command: commandAndArg[0],
- args: commandAndArg.length > 1 ? commandAndArg.slice(1) : []
- };
-}
-async function runCommand(commandString) {
- log_default.info(`Running command: ${commandString}`);
- let { command, args } = parseCommand(commandString), options = {
- stdio: "inherit",
- env: npmRunPath.env()
- };
- return options = process.platform === "win32" ? {
- ...options,
- shell: !0
- } : options, new Promise((resolve, reject) => {
- childProcess.spawn(command, args, options).on("error", reject).on("close", (exitCode) => {
- resolve({ code: exitCode ?? 0 });
- });
- });
-}
-const verifyFlags = {
- ...sharedFlags_default,
- single: {
- default: !1,
- type: "boolean"
- }
-};
-function disableCheckText(checkKey) {
- return chalk.grey(outdent`
- To skip this validation add the following to your package.json:
- "sanityPlugin": {
- "verifyPackage": {
- "${checkKey}": false
- }
- }
- `.trimStart());
-}
-function createValidator(verifyConfig, flags, errors) {
- return async function(checkKey, task) {
- if (verifyConfig[checkKey] !== !1) {
- let result = await task();
- if (result?.length) {
- result.push(disableCheckText(checkKey));
- let errorMessage = result.join("\n\n");
- errors.push(errorMessage), log_default.error("\n" + errorMessage + "\n----------------------------------------------------------");
- }
- }
- if (flags.single && errors.length) throw Error(outdent`Detected outstanding upgrade issues.
-
- Fail-fast (--single) mode enabled, stopping validation here.
- `);
- };
-}
-async function runTscMaybe(verifyConfig, ts) {
- if (ts && verifyConfig.tsc !== !1) {
- log_default.info("All checks ok, running TypeScript compiler.");
- let { code } = await runCommand("tsc --build");
- if (code !== 0) throw Error("Compilation failed. See output above.\n\n" + disableCheckText("tsc"));
- }
-}
-export { validateImports as a, readTSConfig as i, runTscMaybe as n, verifyFlags as r, createValidator as t };
-
-//# sourceMappingURL=verify-common-cNJ4BLlQ.js.map
\ No newline at end of file