UNPKG

eslint-seatbelt

Version:

Gradually tighten ESLint rules in your codebase

1 lines 7.09 kB
{"version":3,"sources":["../src/command.ts"],"sourcesContent":["#!/usr/bin/env -S pnpm exec tsx\n\nimport {\n FallbackEnv,\n logStderr,\n SeatbeltConfig,\n SeatbeltEnv,\n} from \"./SeatbeltConfig\"\nimport { parse } from \"ts-command-line-args\"\nimport { SeatbeltConfigSchema } from \"./jsonSchema/SeatbeltConfigSchema\"\nimport { name, version } from \"../package.json\"\n\nexport interface SeatbeltCliConfig extends SeatbeltConfig {\n /** Paths are relative to this directory. Default: `process.cwd()` */\n pwd?: string\n /** Print the version and exit */\n version?: boolean\n /** Command to execute. Default: `eslint` */\n exec?: string\n /** Show help and exit */\n help?: boolean\n}\n\nconst ZERO_WIDTH_SPACE = \"\\u200B\"\n\nfunction parseArgs() {\n const fallback = SeatbeltConfig.fromFallbackEnv(process.env as unknown as FallbackEnv)\n const overrides = SeatbeltConfig.fromEnvOverrides(process.env as unknown as SeatbeltEnv)\n const env = { ...fallback, ...overrides }\n const escapeForChalk = (s: string) =>\n s\n .replaceAll(\"{\", \"\\\\{\")\n .replaceAll(\"}\", \"\\\\}\")\n .replaceAll(/^(\\s)/gm, (match) => `${ZERO_WIDTH_SPACE}${match}`)\n return parse<SeatbeltCliConfig>(\n {\n pwd: {\n type: String,\n defaultValue: env.pwd ?? process.cwd(),\n description: `Paths are relative to this directory`,\n optional: true,\n },\n seatbeltFile: {\n type: String,\n alias: \"f\",\n description: escapeForChalk(\n SeatbeltConfigSchema.properties.seatbeltFile.description,\n ),\n defaultValue: env.seatbeltFile,\n optional: true,\n },\n keepRules: {\n type: String,\n description: escapeForChalk(\n SeatbeltConfigSchema.properties.keepRules.description,\n ),\n defaultValue: env.keepRules,\n multiple: true,\n optional: true,\n },\n allowIncreaseRules: {\n alias: \"r\",\n type: String,\n description: escapeForChalk(\n SeatbeltConfigSchema.properties.allowIncreaseRules.description,\n ),\n defaultValue: env.allowIncreaseRules,\n multiple: true,\n optional: true,\n },\n frozen: {\n type: Boolean,\n description: escapeForChalk(\n SeatbeltConfigSchema.properties.frozen.description,\n ),\n defaultValue: env.frozen,\n optional: true,\n },\n disable: {\n type: Boolean,\n description: escapeForChalk(\n SeatbeltConfigSchema.properties.disable.description,\n ),\n defaultValue: env.disable,\n optional: true,\n },\n threadsafe: {\n type: Boolean,\n description: escapeForChalk(\n SeatbeltConfigSchema.properties.threadsafe.description,\n ),\n defaultValue: env.threadsafe,\n optional: true,\n },\n verbose: {\n type: Boolean,\n description: escapeForChalk(\n SeatbeltConfigSchema.properties.verbose.description,\n ),\n defaultValue: env.verbose,\n optional: true,\n },\n root: {\n type: String,\n description: escapeForChalk(\n SeatbeltConfigSchema.properties.root.description,\n ),\n defaultValue: env.root,\n optional: true,\n },\n version: {\n type: Boolean,\n description: \"Print the version and exit\",\n optional: true,\n alias: \"v\",\n },\n exec: {\n type: String,\n description: \"Command to execute\",\n optional: true,\n defaultValue: \"eslint\",\n },\n help: {\n type: Boolean,\n description: \"Show help and exit\",\n optional: true,\n alias: \"h\",\n },\n },\n {\n processExitCode: 2,\n showHelpWhenArgsMissing: true,\n helpArg: \"help\",\n headerContentSections: [\n {\n header: name,\n content: `Turns command-line arguments into ${name} environment variables, then call 'eslint' or another command with them.`,\n },\n ],\n },\n )\n}\n\n// eslint-disable-next-line no-console\nconst stdout = (...args: unknown[]) => console.log(...args)\n// eslint-disable-next-line no-console\nconst stderr = (...args: unknown[]) => console.error(...args)\n\nfunction main() {\n const argsConfig = parseArgs()\n\n if (argsConfig.version) {\n stdout(`v${version}`)\n return\n }\n\n if (argsConfig.verbose) {\n stderr(\"Parsed config:\", argsConfig)\n }\n // const args = SeatbeltArgs.fromConfig(argsConfig)\n logStderr(\"command not implemented\")\n process.exit(1)\n}\n\nif (require.main === module) {\n main()\n}\n"],"mappings":"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","names":[]}