routie dev init since i didn't adhere to any proper guidance up until now
This commit is contained in:
+9
@@ -0,0 +1,9 @@
|
||||
# Released under MIT License
|
||||
|
||||
Copyright (c) 2016-present Vuetify LLC
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
+131
@@ -0,0 +1,131 @@
|
||||
<div align="center">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://cdn.vuetifyjs.com/docs/images/one/logos/veslconfig-logo-dark.png">
|
||||
<img alt="Vuetify ESLint Config Logo" src="https://cdn.vuetifyjs.com/docs/images/one/logos/veslconfig-logo-light.png" height="100">
|
||||
</picture>
|
||||
</div>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://www.npmjs.com/package/eslint-config-vuetify"><img src="https://img.shields.io/npm/v/eslint-config-vuetify.svg" alt="npm version"></a>
|
||||
<a href="https://npm.chart.dev/eslint-config-vuetify"><img src="https://img.shields.io/npm/dm/eslint-config-vuetify?color=blue" alt="npm downloads"></a>
|
||||
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT"></a>
|
||||
<a href="https://community.vuetifyjs.com"><img src="https://discordapp.com/api/guilds/340160225338195969/widget.png" alt="Discord"></a>
|
||||
</p>
|
||||
|
||||
# eslint-config-vuetify
|
||||
|
||||
✨ An opinionated eslint config for Vuetify, crafted to keep your code clean and consistent!
|
||||
|
||||
### 💿 Install
|
||||
|
||||
<!-- automd:pm-install dev auto=false -->
|
||||
|
||||
```sh
|
||||
# npm
|
||||
npm install -D eslint-config-vuetify
|
||||
|
||||
# yarn
|
||||
yarn add -D eslint-config-vuetify
|
||||
|
||||
# pnpm
|
||||
pnpm install -D eslint-config-vuetify
|
||||
|
||||
# bun
|
||||
bun install -D eslint-config-vuetify
|
||||
|
||||
# deno
|
||||
deno install --dev eslint-config-vuetify
|
||||
```
|
||||
|
||||
<!-- /automd -->
|
||||
|
||||
### 🚀 Usage
|
||||
|
||||
Update your `eslint.config.js` flat config to _extend_ vuetify:
|
||||
|
||||
```js
|
||||
import vuetify from 'eslint-config-vuetify'
|
||||
|
||||
export default vuetify()
|
||||
```
|
||||
|
||||
Most features are automatically detected, but you can explicitly turn them on/off or customize them
|
||||
|
||||
```js
|
||||
import vuetify from 'eslint-config-vuetify'
|
||||
|
||||
export default vuetify({
|
||||
vue: true,
|
||||
ts: {
|
||||
preset: 'all',
|
||||
},
|
||||
})
|
||||
```
|
||||
|
||||
You can provide additional ESLint configurations after the options object, or directly specify them for simpler use cases where the default settings work fine:
|
||||
|
||||
```js
|
||||
import vuetify from 'eslint-config-vuetify'
|
||||
|
||||
export default vuetify(
|
||||
{
|
||||
pnpm: false,
|
||||
},
|
||||
{
|
||||
plugins: {
|
||||
sonarjs,
|
||||
},
|
||||
rules: {
|
||||
...sonarjs.configs.recommended.rules,
|
||||
},
|
||||
},
|
||||
)
|
||||
```
|
||||
|
||||
```js
|
||||
import vuetify from 'eslint-config-vuetify'
|
||||
|
||||
export default vuetify({
|
||||
rules: {
|
||||
'no-console': 'error',
|
||||
},
|
||||
})
|
||||
```
|
||||
|
||||
### 💪 Supporting Vuetify
|
||||
|
||||
<p>Vuetify is an open source MIT project that has been made possible due to the generous contributions by <a href="https://github.com/vuetifyjs/vuetify/blob/dev/BACKERS.md">community backers</a>. If you are interested in supporting this project, please consider:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a href="https://github.com/users/johnleider/sponsorship">Becoming a sponsor on Github</a>
|
||||
<strong><small>(supports John)</small></strong>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://opencollective.com/vuetify">Becoming a backer on OpenCollective</a>
|
||||
<strong><small>(supports the Dev team)</small></strong>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://tidelift.com/subscription/npm/vuetify?utm_source=vuetify&utm_medium=referral&utm_campaign=readme">Become a subscriber on Tidelift</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://paypal.me/vuetify">Make a one-time payment with Paypal</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://vuetifyjs.com/getting-started/consulting-and-support?ref=github">Book time with John</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
### 📑 License
|
||||
|
||||
[MIT](http://opensource.org/licenses/MIT)
|
||||
|
||||
Copyright (c) 2016-present Vuetify LLC
|
||||
|
||||
----
|
||||
|
||||
This project exists and thrives thanks to all the wonderful people who contribute 😍
|
||||
<br><br>
|
||||
<a href="https://github.com/vuetifyjs/eslint-config-vuetify/graphs/contributors">
|
||||
<img src="https://contrib.rocks/image?repo=vuetifyjs/eslint-config-vuetify" />
|
||||
</a>
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
import { main } from '../dist/cli.mjs'
|
||||
|
||||
main()
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
//#region src/cli.d.ts
|
||||
declare function main(): Promise<void>;
|
||||
//#endregion
|
||||
export { main };
|
||||
+122
@@ -0,0 +1,122 @@
|
||||
import { readFile, writeFile } from "node:fs/promises";
|
||||
import { relative, resolve } from "node:path";
|
||||
import { confirm, intro, log, outro, spinner } from "@clack/prompts";
|
||||
import { ansi256, link, underline } from "kolorist";
|
||||
import { addDevDependency } from "nypm";
|
||||
import { resolveCommand } from "package-manager-detector/commands";
|
||||
import { x } from "tinyexec";
|
||||
import { existsSync } from "node:fs";
|
||||
import { createResolver } from "exsolve";
|
||||
import { getPackageInfoSync, isPackageExists } from "local-pkg";
|
||||
import { detect } from "package-manager-detector";
|
||||
import { FlatCompat } from "@eslint/eslintrc";
|
||||
//#region src/constants/cli.ts
|
||||
const ESLINT = "eslint";
|
||||
const ESLINT_CONFIG = "eslint-config-vuetify";
|
||||
const VUETIFY = "vuetify";
|
||||
const LINKS = {
|
||||
[ESLINT]: link(ESLINT, "https://npmjs.org/package/eslint"),
|
||||
[ESLINT_CONFIG]: link(ESLINT_CONFIG, "https://npmjs.org/package/eslint-config-vuetify"),
|
||||
[VUETIFY]: link("Vuetify", "https://vuetifyjs.com/")
|
||||
};
|
||||
//#endregion
|
||||
//#region src/constants/config.ts
|
||||
const configData = `import vuetify from 'eslint-config-vuetify'
|
||||
|
||||
export default vuetify()
|
||||
`;
|
||||
new FlatCompat({});
|
||||
const { resolveModulePath: resolveModulePath$1 } = createResolver({ extensions: [".json"] });
|
||||
hasPackage("eslint-config-vuetify");
|
||||
function hasPackage(pkg, scope) {
|
||||
return isPackageExists(pkg, { paths: scope ? [scope] : [] });
|
||||
}
|
||||
function getPackageVersion(pkg) {
|
||||
return getPackageInfoSync(pkg, { paths: [currentScope] })?.version;
|
||||
}
|
||||
const currentScope = new URL(".", import.meta.url).pathname;
|
||||
process.cwd();
|
||||
function hasFile(file) {
|
||||
return existsSync(resolve(process.cwd(), file));
|
||||
}
|
||||
async function getPackageManager() {
|
||||
return detect({ cwd: process.cwd() });
|
||||
}
|
||||
const { resolveModulePath } = createResolver({ extensions: [
|
||||
".js",
|
||||
".mjs",
|
||||
".cjs",
|
||||
".ts",
|
||||
".mts",
|
||||
".cts"
|
||||
] });
|
||||
const configUrl = resolveModulePath("./eslint.config", { try: true });
|
||||
function isVersionAtLeast(version, targetVersion) {
|
||||
const [vMajor, vMinor, vPatch] = version.split(".").map(Number);
|
||||
const [major, minor, patch] = targetVersion.split(".").map(Number);
|
||||
return vMajor > major || vMajor === major && vMinor > minor || vMajor === major && vMinor === minor && vPatch >= patch;
|
||||
}
|
||||
//#endregion
|
||||
//#region src/cli.ts
|
||||
const blue = ansi256(33);
|
||||
const description = `Welcome to ${blue(ESLINT_CONFIG)} — an opinionated ESLint config by the ${blue(LINKS[VUETIFY])} team.`;
|
||||
const eslintVersion = getPackageVersion("eslint") ?? "0.0.0";
|
||||
const configVersion = getPackageVersion("eslint-config-vuetify") ?? "0.0.0";
|
||||
const hasEslint = hasPackage(ESLINT);
|
||||
const hasEslintConfig = hasPackage(ESLINT_CONFIG);
|
||||
const isEslintVersionValid = isVersionAtLeast(eslintVersion, "9.5.0");
|
||||
const isConfigVersionValid = isVersionAtLeast(configVersion, "4.0.0");
|
||||
const packagesToInstall = [...hasEslint ? [] : [ESLINT], ...hasEslintConfig ? [] : [ESLINT_CONFIG]];
|
||||
const packagesToUpgrade = [...isEslintVersionValid ? [] : [ESLINT], ...isConfigVersionValid ? [] : [ESLINT_CONFIG]];
|
||||
function getActionMessage() {
|
||||
const actions = [];
|
||||
if (packagesToInstall.length > 0) actions.push(`install ${packagesToInstall.map((pkg) => LINKS[pkg]).join(", ")}`);
|
||||
if (packagesToUpgrade.length > 0) {
|
||||
const upgradeAction = `upgrade ${packagesToUpgrade.map((pkg) => LINKS[pkg]).join(", ")}`;
|
||||
if (packagesToInstall.length > 0) actions.push(`and ${upgradeAction}`);
|
||||
else actions.push(upgradeAction);
|
||||
}
|
||||
if (hasEslint || hasEslintConfig) {
|
||||
actions.push("(Currently:");
|
||||
if (hasEslint) actions.push(` ${ESLINT}: ${eslintVersion}`);
|
||||
if (hasEslintConfig) actions.push(` ${ESLINT_CONFIG}: ${configVersion}`);
|
||||
actions.push(")");
|
||||
}
|
||||
return `We need to ${actions.join(" ")}.`;
|
||||
}
|
||||
async function main() {
|
||||
intro(description);
|
||||
if (packagesToInstall.length > 0 || packagesToUpgrade.length > 0) {
|
||||
log.info(getActionMessage());
|
||||
if (await confirm({ message: "Do you want to proceed?" }) === true) {
|
||||
const s = spinner();
|
||||
s.start("Installing dependencies...");
|
||||
if (packagesToInstall.length > 0) await addDevDependency(packagesToInstall);
|
||||
if (packagesToUpgrade.length > 0) {
|
||||
const upgradeCommand = resolveCommand((await getPackageManager()).agent, "upgrade", packagesToUpgrade);
|
||||
await x(upgradeCommand.command, upgradeCommand.args);
|
||||
}
|
||||
s.stop("Dependencies installed!");
|
||||
}
|
||||
} else log.info("All required dependencies are already installed.");
|
||||
let overwriteConfig = false;
|
||||
overwriteConfig = await (configUrl ? confirm({ message: `Found ${underline(relative(process.cwd(), configUrl))}. Do you want to overwrite it?` }) : confirm({ message: "No ESLint config found. Do you want to create one?" }));
|
||||
if (overwriteConfig === true) {
|
||||
const s = spinner();
|
||||
s.start("Setting up ESLint config...");
|
||||
await writeFile(configUrl ?? "eslint.config.mjs", configData);
|
||||
s.stop("ESLint config setup complete!");
|
||||
}
|
||||
if (hasFile("package.json")) {
|
||||
const packageJson = JSON.parse(await readFile("package.json", "utf8"));
|
||||
if (!packageJson.scripts) packageJson.scripts = {};
|
||||
if ((packageJson.scripts.lint && packageJson.scripts["lint:fix"] ? false : await confirm({ message: "Do you want to add lint scripts to package.json?" })) === true) {
|
||||
if (!packageJson.scripts.lint) packageJson.scripts.lint = "eslint";
|
||||
if (!packageJson.scripts["lint:fix"]) packageJson.scripts["lint:fix"] = "eslint --fix";
|
||||
await writeFile("package.json", JSON.stringify(packageJson, null, 2));
|
||||
}
|
||||
}
|
||||
outro("All done! Happy hacking!");
|
||||
}
|
||||
//#endregion
|
||||
export { main };
|
||||
+15580
File diff suppressed because one or more lines are too long
+1440
File diff suppressed because it is too large
Load Diff
+19
@@ -0,0 +1,19 @@
|
||||
Copyright OpenJS Foundation and other contributors, <www.openjsf.org>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
+103
@@ -0,0 +1,103 @@
|
||||
[](https://www.npmjs.com/package/@eslint/js)
|
||||
[](https://www.npmjs.com/package/@eslint/js)
|
||||
[](https://github.com/eslint/eslint/actions)
|
||||
<br>
|
||||
[](https://opencollective.com/eslint)
|
||||
[](https://opencollective.com/eslint)
|
||||
|
||||
# ESLint JavaScript Plugin
|
||||
|
||||
[Website](https://eslint.org) |
|
||||
[Configure ESLint](https://eslint.org/docs/latest/use/configure) |
|
||||
[Rules](https://eslint.org/docs/rules/) |
|
||||
[Contribute to ESLint](https://eslint.org/docs/latest/contribute) |
|
||||
[Report Bugs](https://eslint.org/docs/latest/contribute/report-bugs) |
|
||||
[Code of Conduct](https://eslint.org/conduct) |
|
||||
[X](https://x.com/geteslint) |
|
||||
[Discord](https://eslint.org/chat) |
|
||||
[Mastodon](https://fosstodon.org/@eslint) |
|
||||
[Bluesky](https://bsky.app/profile/eslint.org)
|
||||
|
||||
The beginnings of separating out JavaScript-specific functionality from ESLint.
|
||||
|
||||
Right now, this plugin contains two configurations:
|
||||
|
||||
- `recommended` - enables the rules recommended by the ESLint team (the replacement for `"eslint:recommended"`)
|
||||
- `all` - enables all ESLint rules (the replacement for `"eslint:all"`)
|
||||
|
||||
## Installation
|
||||
|
||||
You can install ESLint using npm or other package managers:
|
||||
|
||||
```shell
|
||||
npm install eslint -D
|
||||
# or
|
||||
yarn add eslint -D
|
||||
# or
|
||||
pnpm install eslint -D
|
||||
# or
|
||||
bun add eslint -D
|
||||
```
|
||||
|
||||
Then install this plugin:
|
||||
|
||||
```shell
|
||||
npm install @eslint/js -D
|
||||
# or
|
||||
yarn add @eslint/js -D
|
||||
# or
|
||||
pnpm install @eslint/js -D
|
||||
# or
|
||||
bun add @eslint/js -D
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
Use in your `eslint.config.js` file anytime you want to extend one of the configs:
|
||||
|
||||
```js
|
||||
import { defineConfig } from "eslint/config";
|
||||
import js from "@eslint/js";
|
||||
|
||||
export default defineConfig([
|
||||
// apply recommended rules to JS files
|
||||
{
|
||||
name: "your-project/recommended-rules",
|
||||
files: ["**/*.js"],
|
||||
plugins: {
|
||||
js,
|
||||
},
|
||||
extends: ["js/recommended"],
|
||||
},
|
||||
|
||||
// apply recommended rules to JS files with an override
|
||||
{
|
||||
name: "your-project/recommended-rules-with-override",
|
||||
files: ["**/*.js"],
|
||||
plugins: {
|
||||
js,
|
||||
},
|
||||
extends: ["js/recommended"],
|
||||
rules: {
|
||||
"no-unused-vars": "warn",
|
||||
},
|
||||
},
|
||||
|
||||
// apply all rules to JS files
|
||||
{
|
||||
name: "your-project/all-rules",
|
||||
files: ["**/*.js"],
|
||||
plugins: {
|
||||
js,
|
||||
},
|
||||
extends: ["js/all"],
|
||||
rules: {
|
||||
"no-unused-vars": "warn",
|
||||
},
|
||||
},
|
||||
]);
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"name": "@eslint/js",
|
||||
"version": "10.0.1",
|
||||
"description": "ESLint JavaScript language implementation",
|
||||
"funding": "https://eslint.org/donate",
|
||||
"main": "./src/index.js",
|
||||
"types": "./types/index.d.ts",
|
||||
"scripts": {
|
||||
"test:types": "tsc -p tests/types/tsconfig.json"
|
||||
},
|
||||
"files": [
|
||||
"LICENSE",
|
||||
"README.md",
|
||||
"src",
|
||||
"types"
|
||||
],
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/eslint/eslint.git",
|
||||
"directory": "packages/js"
|
||||
},
|
||||
"homepage": "https://eslint.org",
|
||||
"bugs": "https://github.com/eslint/eslint/issues/",
|
||||
"keywords": [
|
||||
"javascript",
|
||||
"eslint-plugin",
|
||||
"eslint"
|
||||
],
|
||||
"license": "MIT",
|
||||
"peerDependencies": {
|
||||
"eslint": "^10.0.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"eslint": {
|
||||
"optional": true
|
||||
}
|
||||
},
|
||||
"engines": {
|
||||
"node": "^20.19.0 || ^22.13.0 || >=24"
|
||||
}
|
||||
}
|
||||
Generated
Vendored
+210
@@ -0,0 +1,210 @@
|
||||
/*
|
||||
* WARNING: This file is autogenerated using the tools/update-eslint-all.js
|
||||
* script. Do not edit manually.
|
||||
*/
|
||||
"use strict";
|
||||
|
||||
module.exports = Object.freeze({
|
||||
name: "@eslint/js/all",
|
||||
rules: Object.freeze({
|
||||
"accessor-pairs": "error",
|
||||
"array-callback-return": "error",
|
||||
"arrow-body-style": "error",
|
||||
"block-scoped-var": "error",
|
||||
"camelcase": "error",
|
||||
"capitalized-comments": "error",
|
||||
"class-methods-use-this": "error",
|
||||
"complexity": "error",
|
||||
"consistent-return": "error",
|
||||
"consistent-this": "error",
|
||||
"constructor-super": "error",
|
||||
"curly": "error",
|
||||
"default-case": "error",
|
||||
"default-case-last": "error",
|
||||
"default-param-last": "error",
|
||||
"dot-notation": "error",
|
||||
"eqeqeq": "error",
|
||||
"for-direction": "error",
|
||||
"func-name-matching": "error",
|
||||
"func-names": "error",
|
||||
"func-style": "error",
|
||||
"getter-return": "error",
|
||||
"grouped-accessor-pairs": "error",
|
||||
"guard-for-in": "error",
|
||||
"id-denylist": "error",
|
||||
"id-length": "error",
|
||||
"id-match": "error",
|
||||
"init-declarations": "error",
|
||||
"logical-assignment-operators": "error",
|
||||
"max-classes-per-file": "error",
|
||||
"max-depth": "error",
|
||||
"max-lines": "error",
|
||||
"max-lines-per-function": "error",
|
||||
"max-nested-callbacks": "error",
|
||||
"max-params": "error",
|
||||
"max-statements": "error",
|
||||
"new-cap": "error",
|
||||
"no-alert": "error",
|
||||
"no-array-constructor": "error",
|
||||
"no-async-promise-executor": "error",
|
||||
"no-await-in-loop": "error",
|
||||
"no-bitwise": "error",
|
||||
"no-caller": "error",
|
||||
"no-case-declarations": "error",
|
||||
"no-class-assign": "error",
|
||||
"no-compare-neg-zero": "error",
|
||||
"no-cond-assign": "error",
|
||||
"no-console": "error",
|
||||
"no-const-assign": "error",
|
||||
"no-constant-binary-expression": "error",
|
||||
"no-constant-condition": "error",
|
||||
"no-constructor-return": "error",
|
||||
"no-continue": "error",
|
||||
"no-control-regex": "error",
|
||||
"no-debugger": "error",
|
||||
"no-delete-var": "error",
|
||||
"no-div-regex": "error",
|
||||
"no-dupe-args": "error",
|
||||
"no-dupe-class-members": "error",
|
||||
"no-dupe-else-if": "error",
|
||||
"no-dupe-keys": "error",
|
||||
"no-duplicate-case": "error",
|
||||
"no-duplicate-imports": "error",
|
||||
"no-else-return": "error",
|
||||
"no-empty": "error",
|
||||
"no-empty-character-class": "error",
|
||||
"no-empty-function": "error",
|
||||
"no-empty-pattern": "error",
|
||||
"no-empty-static-block": "error",
|
||||
"no-eq-null": "error",
|
||||
"no-eval": "error",
|
||||
"no-ex-assign": "error",
|
||||
"no-extend-native": "error",
|
||||
"no-extra-bind": "error",
|
||||
"no-extra-boolean-cast": "error",
|
||||
"no-extra-label": "error",
|
||||
"no-fallthrough": "error",
|
||||
"no-func-assign": "error",
|
||||
"no-global-assign": "error",
|
||||
"no-implicit-coercion": "error",
|
||||
"no-implicit-globals": "error",
|
||||
"no-implied-eval": "error",
|
||||
"no-import-assign": "error",
|
||||
"no-inline-comments": "error",
|
||||
"no-inner-declarations": "error",
|
||||
"no-invalid-regexp": "error",
|
||||
"no-invalid-this": "error",
|
||||
"no-irregular-whitespace": "error",
|
||||
"no-iterator": "error",
|
||||
"no-label-var": "error",
|
||||
"no-labels": "error",
|
||||
"no-lone-blocks": "error",
|
||||
"no-lonely-if": "error",
|
||||
"no-loop-func": "error",
|
||||
"no-loss-of-precision": "error",
|
||||
"no-magic-numbers": "error",
|
||||
"no-misleading-character-class": "error",
|
||||
"no-multi-assign": "error",
|
||||
"no-multi-str": "error",
|
||||
"no-negated-condition": "error",
|
||||
"no-nested-ternary": "error",
|
||||
"no-new": "error",
|
||||
"no-new-func": "error",
|
||||
"no-new-native-nonconstructor": "error",
|
||||
"no-new-wrappers": "error",
|
||||
"no-nonoctal-decimal-escape": "error",
|
||||
"no-obj-calls": "error",
|
||||
"no-object-constructor": "error",
|
||||
"no-octal": "error",
|
||||
"no-octal-escape": "error",
|
||||
"no-param-reassign": "error",
|
||||
"no-plusplus": "error",
|
||||
"no-promise-executor-return": "error",
|
||||
"no-proto": "error",
|
||||
"no-prototype-builtins": "error",
|
||||
"no-redeclare": "error",
|
||||
"no-regex-spaces": "error",
|
||||
"no-restricted-exports": "error",
|
||||
"no-restricted-globals": "error",
|
||||
"no-restricted-imports": "error",
|
||||
"no-restricted-properties": "error",
|
||||
"no-restricted-syntax": "error",
|
||||
"no-return-assign": "error",
|
||||
"no-script-url": "error",
|
||||
"no-self-assign": "error",
|
||||
"no-self-compare": "error",
|
||||
"no-sequences": "error",
|
||||
"no-setter-return": "error",
|
||||
"no-shadow": "error",
|
||||
"no-shadow-restricted-names": "error",
|
||||
"no-sparse-arrays": "error",
|
||||
"no-template-curly-in-string": "error",
|
||||
"no-ternary": "error",
|
||||
"no-this-before-super": "error",
|
||||
"no-throw-literal": "error",
|
||||
"no-unassigned-vars": "error",
|
||||
"no-undef": "error",
|
||||
"no-undef-init": "error",
|
||||
"no-undefined": "error",
|
||||
"no-underscore-dangle": "error",
|
||||
"no-unexpected-multiline": "error",
|
||||
"no-unmodified-loop-condition": "error",
|
||||
"no-unneeded-ternary": "error",
|
||||
"no-unreachable": "error",
|
||||
"no-unreachable-loop": "error",
|
||||
"no-unsafe-finally": "error",
|
||||
"no-unsafe-negation": "error",
|
||||
"no-unsafe-optional-chaining": "error",
|
||||
"no-unused-expressions": "error",
|
||||
"no-unused-labels": "error",
|
||||
"no-unused-private-class-members": "error",
|
||||
"no-unused-vars": "error",
|
||||
"no-use-before-define": "error",
|
||||
"no-useless-assignment": "error",
|
||||
"no-useless-backreference": "error",
|
||||
"no-useless-call": "error",
|
||||
"no-useless-catch": "error",
|
||||
"no-useless-computed-key": "error",
|
||||
"no-useless-concat": "error",
|
||||
"no-useless-constructor": "error",
|
||||
"no-useless-escape": "error",
|
||||
"no-useless-rename": "error",
|
||||
"no-useless-return": "error",
|
||||
"no-var": "error",
|
||||
"no-void": "error",
|
||||
"no-warning-comments": "error",
|
||||
"no-with": "error",
|
||||
"object-shorthand": "error",
|
||||
"one-var": "error",
|
||||
"operator-assignment": "error",
|
||||
"prefer-arrow-callback": "error",
|
||||
"prefer-const": "error",
|
||||
"prefer-destructuring": "error",
|
||||
"prefer-exponentiation-operator": "error",
|
||||
"prefer-named-capture-group": "error",
|
||||
"prefer-numeric-literals": "error",
|
||||
"prefer-object-has-own": "error",
|
||||
"prefer-object-spread": "error",
|
||||
"prefer-promise-reject-errors": "error",
|
||||
"prefer-regex-literals": "error",
|
||||
"prefer-rest-params": "error",
|
||||
"prefer-spread": "error",
|
||||
"prefer-template": "error",
|
||||
"preserve-caught-error": "error",
|
||||
"radix": "error",
|
||||
"require-atomic-updates": "error",
|
||||
"require-await": "error",
|
||||
"require-unicode-regexp": "error",
|
||||
"require-yield": "error",
|
||||
"sort-imports": "error",
|
||||
"sort-keys": "error",
|
||||
"sort-vars": "error",
|
||||
"strict": "error",
|
||||
"symbol-description": "error",
|
||||
"unicode-bom": "error",
|
||||
"use-isnan": "error",
|
||||
"valid-typeof": "error",
|
||||
"vars-on-top": "error",
|
||||
"yoda": "error"
|
||||
})
|
||||
});
|
||||
Generated
Vendored
+75
@@ -0,0 +1,75 @@
|
||||
/*
|
||||
* WARNING: This file is autogenerated using the tools/update-eslint-recommended.js
|
||||
* script. Do not edit manually.
|
||||
*/
|
||||
"use strict";
|
||||
|
||||
module.exports = Object.freeze({
|
||||
name: "@eslint/js/recommended",
|
||||
rules: Object.freeze({
|
||||
"constructor-super": "error",
|
||||
"for-direction": "error",
|
||||
"getter-return": "error",
|
||||
"no-async-promise-executor": "error",
|
||||
"no-case-declarations": "error",
|
||||
"no-class-assign": "error",
|
||||
"no-compare-neg-zero": "error",
|
||||
"no-cond-assign": "error",
|
||||
"no-const-assign": "error",
|
||||
"no-constant-binary-expression": "error",
|
||||
"no-constant-condition": "error",
|
||||
"no-control-regex": "error",
|
||||
"no-debugger": "error",
|
||||
"no-delete-var": "error",
|
||||
"no-dupe-args": "error",
|
||||
"no-dupe-class-members": "error",
|
||||
"no-dupe-else-if": "error",
|
||||
"no-dupe-keys": "error",
|
||||
"no-duplicate-case": "error",
|
||||
"no-empty": "error",
|
||||
"no-empty-character-class": "error",
|
||||
"no-empty-pattern": "error",
|
||||
"no-empty-static-block": "error",
|
||||
"no-ex-assign": "error",
|
||||
"no-extra-boolean-cast": "error",
|
||||
"no-fallthrough": "error",
|
||||
"no-func-assign": "error",
|
||||
"no-global-assign": "error",
|
||||
"no-import-assign": "error",
|
||||
"no-invalid-regexp": "error",
|
||||
"no-irregular-whitespace": "error",
|
||||
"no-loss-of-precision": "error",
|
||||
"no-misleading-character-class": "error",
|
||||
"no-new-native-nonconstructor": "error",
|
||||
"no-nonoctal-decimal-escape": "error",
|
||||
"no-obj-calls": "error",
|
||||
"no-octal": "error",
|
||||
"no-prototype-builtins": "error",
|
||||
"no-redeclare": "error",
|
||||
"no-regex-spaces": "error",
|
||||
"no-self-assign": "error",
|
||||
"no-setter-return": "error",
|
||||
"no-shadow-restricted-names": "error",
|
||||
"no-sparse-arrays": "error",
|
||||
"no-this-before-super": "error",
|
||||
"no-unassigned-vars": "error",
|
||||
"no-undef": "error",
|
||||
"no-unexpected-multiline": "error",
|
||||
"no-unreachable": "error",
|
||||
"no-unsafe-finally": "error",
|
||||
"no-unsafe-negation": "error",
|
||||
"no-unsafe-optional-chaining": "error",
|
||||
"no-unused-labels": "error",
|
||||
"no-unused-private-class-members": "error",
|
||||
"no-unused-vars": "error",
|
||||
"no-useless-assignment": "error",
|
||||
"no-useless-backreference": "error",
|
||||
"no-useless-catch": "error",
|
||||
"no-useless-escape": "error",
|
||||
"no-with": "error",
|
||||
"preserve-caught-error": "error",
|
||||
"require-yield": "error",
|
||||
"use-isnan": "error",
|
||||
"valid-typeof": "error"
|
||||
}),
|
||||
});
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
/**
|
||||
* @fileoverview Main package entrypoint.
|
||||
* @author Nicholas C. Zakas
|
||||
*/
|
||||
|
||||
"use strict";
|
||||
|
||||
const { name, version } = require("../package.json");
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Public Interface
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
module.exports = {
|
||||
meta: {
|
||||
name,
|
||||
version,
|
||||
},
|
||||
configs: {
|
||||
all: require("./configs/eslint-all"),
|
||||
recommended: require("./configs/eslint-recommended"),
|
||||
},
|
||||
};
|
||||
Generated
Vendored
+14
@@ -0,0 +1,14 @@
|
||||
import type { Linter } from "eslint";
|
||||
|
||||
declare const js: {
|
||||
readonly meta: {
|
||||
readonly name: string;
|
||||
readonly version: string;
|
||||
};
|
||||
readonly configs: {
|
||||
readonly recommended: { readonly rules: Readonly<Linter.RulesRecord> };
|
||||
readonly all: { readonly rules: Readonly<Linter.RulesRecord> };
|
||||
};
|
||||
};
|
||||
|
||||
export = js;
|
||||
+4093
File diff suppressed because it is too large
Load Diff
+4216
File diff suppressed because it is too large
Load Diff
+2
@@ -0,0 +1,2 @@
|
||||
'use strict';
|
||||
module.exports = require('./globals.json');
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
+121
@@ -0,0 +1,121 @@
|
||||
{
|
||||
"name": "globals",
|
||||
"version": "17.5.0",
|
||||
"description": "Global identifiers from different JavaScript environments",
|
||||
"license": "MIT",
|
||||
"repository": "sindresorhus/globals",
|
||||
"funding": "https://github.com/sponsors/sindresorhus",
|
||||
"author": {
|
||||
"name": "Sindre Sorhus",
|
||||
"email": "sindresorhus@gmail.com",
|
||||
"url": "https://sindresorhus.com"
|
||||
},
|
||||
"sideEffects": false,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "npm run build && xo && ava && tsd",
|
||||
"prepare": "npm run build",
|
||||
"update": "node scripts/update.mjs",
|
||||
"update:browser": "node scripts/update.mjs --job=browser",
|
||||
"update:builtin": "node scripts/update.mjs --job=builtin",
|
||||
"update:builtin-yearly": "node scripts/update.mjs --job=builtin-yearly",
|
||||
"update:nodeBuiltin": "node scripts/update.mjs --job=nodeBuiltin",
|
||||
"update:bunBuiltin": "node scripts/update.mjs --job=bunBuiltin",
|
||||
"update:denoBuiltin": "node scripts/update.mjs --job=denoBuiltin",
|
||||
"update:worker": "node scripts/update.mjs --job=worker",
|
||||
"update:serviceworker": "node scripts/update.mjs --job=serviceworker",
|
||||
"update:sharedWorker": "node scripts/update.mjs --job=sharedWorker",
|
||||
"update:audioWorklet": "node scripts/update.mjs --job=audioWorklet",
|
||||
"update:shelljs": "node scripts/update.mjs --job=shelljs",
|
||||
"update:jest": "node scripts/update.mjs --job=jest",
|
||||
"update:vitest": "node scripts/update.mjs --job=vitest",
|
||||
"build": "run-s build:data build:types",
|
||||
"build:data": "node scripts/generate-data.mjs",
|
||||
"build:types": "node scripts/generate-types.mjs"
|
||||
},
|
||||
"files": [
|
||||
"index.js",
|
||||
"index.d.ts",
|
||||
"globals.json"
|
||||
],
|
||||
"keywords": [
|
||||
"globals",
|
||||
"global",
|
||||
"identifiers",
|
||||
"variables",
|
||||
"vars",
|
||||
"jshint",
|
||||
"eslint",
|
||||
"environments"
|
||||
],
|
||||
"devDependencies": {
|
||||
"@vitest/eslint-plugin": "^1.1.44",
|
||||
"ava": "^6.3.0",
|
||||
"cheerio": "^1.0.0",
|
||||
"eslint-plugin-jest": "^28.11.0",
|
||||
"get-port": "^7.1.0",
|
||||
"is-identifier": "^1.0.1",
|
||||
"nano-spawn": "^0.2.0",
|
||||
"npm-run-all2": "^8.0.1",
|
||||
"outdent": "^0.8.0",
|
||||
"puppeteer": "^24.40.0",
|
||||
"shelljs": "^0.9.2",
|
||||
"tsd": "^0.32.0",
|
||||
"type-fest": "^4.41.0",
|
||||
"xo": "^0.60.0"
|
||||
},
|
||||
"xo": {
|
||||
"rules": {
|
||||
"unicorn/prefer-module": "off"
|
||||
},
|
||||
"overrides": [
|
||||
{
|
||||
"files": [
|
||||
"data/*.mjs"
|
||||
],
|
||||
"rules": {
|
||||
"import/no-anonymous-default-export": "off",
|
||||
"camelcase": "off",
|
||||
"unicorn/filename-case": [
|
||||
"error",
|
||||
{
|
||||
"cases": {
|
||||
"camelCase": true,
|
||||
"kebabCase": true
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"files": [
|
||||
"scripts/*.mjs"
|
||||
],
|
||||
"rules": {
|
||||
"n/no-unsupported-features/node-builtins": "off"
|
||||
}
|
||||
},
|
||||
{
|
||||
"files": [
|
||||
"scripts/browser/assets/**/*.mjs"
|
||||
],
|
||||
"envs": [
|
||||
"browser",
|
||||
"worker",
|
||||
"serviceworker"
|
||||
],
|
||||
"rules": {
|
||||
"n/no-unsupported-features/node-builtins": "off",
|
||||
"unicorn/prefer-add-event-listener": "off"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"tsd": {
|
||||
"compilerOptions": {
|
||||
"resolveJsonModule": true
|
||||
}
|
||||
}
|
||||
}
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
# globals
|
||||
|
||||
> Global identifiers from different JavaScript environments
|
||||
|
||||
It's just a [JSON file](globals.json), so you can use it in any environment.
|
||||
|
||||
This package is used by ESLint 8 and earlier. For ESLint 9 and later, you should depend on this package directly in [your ESLint config](https://eslint.org/docs/latest/use/configure/language-options#predefined-global-variables).
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
npm install globals
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```js
|
||||
import globals from 'globals';
|
||||
|
||||
console.log(globals.browser);
|
||||
/*
|
||||
{
|
||||
addEventListener: false,
|
||||
applicationCache: false,
|
||||
ArrayBuffer: false,
|
||||
atob: false,
|
||||
…
|
||||
}
|
||||
*/
|
||||
```
|
||||
|
||||
Each global is given a value of `true` or `false`. A value of `true` indicates that the variable may be overwritten. A value of `false` indicates that the variable should be considered read-only. This information is used by static analysis tools to flag incorrect behavior. We assume all variables should be `false` unless we hear otherwise.
|
||||
|
||||
For Node.js this package provides two sets of globals:
|
||||
|
||||
- `globals.nodeBuiltin`: Globals available to all code running in Node.js.
|
||||
These will usually be available as properties on the `globalThis` object and include `process`, `Buffer`, but not CommonJS arguments like `require`.
|
||||
See: https://nodejs.org/api/globals.html
|
||||
- `globals.node`: A combination of the globals from `nodeBuiltin` plus all CommonJS arguments ("CommonJS module scope").
|
||||
See: https://nodejs.org/api/modules.html#modules_the_module_scope
|
||||
|
||||
When analyzing code that is known to run outside of a CommonJS wrapper, for example, JavaScript modules, `nodeBuiltin` can find accidental CommonJS references.
|
||||
+110
@@ -0,0 +1,110 @@
|
||||
{
|
||||
"name": "eslint-config-vuetify",
|
||||
"version": "4.6.2",
|
||||
"description": "eslint config for vue.js projects",
|
||||
"type": "module",
|
||||
"bin": {
|
||||
"eslint-config-vuetify": "bin/cli.mjs"
|
||||
},
|
||||
"exports": {
|
||||
".": "./dist/index.mjs",
|
||||
"./cli": "./dist/cli.mjs",
|
||||
"./package.json": "./package.json"
|
||||
},
|
||||
"types": "./dist/index.d.ts",
|
||||
"files": [
|
||||
"dist"
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/vuetifyjs/eslint-config-vuetify.git"
|
||||
},
|
||||
"keywords": [
|
||||
"eslint",
|
||||
"config",
|
||||
"eslint-config",
|
||||
"vue",
|
||||
"vuetify"
|
||||
],
|
||||
"author": "John Leider <john@vuetifyjs.com>",
|
||||
"license": "MIT",
|
||||
"peerDependencies": {
|
||||
"@vitest/eslint-plugin": "^1.1.42",
|
||||
"eslint": "^9.5.0 || ^10.0.0",
|
||||
"eslint-plugin-jest": "^29.0.1",
|
||||
"eslint-plugin-no-only-tests": "^3.3.0",
|
||||
"eslint-plugin-vuejs-accessibility": "^2.0.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"eslint-plugin-import-x": {
|
||||
"optional": true
|
||||
},
|
||||
"eslint-plugin-jest": {
|
||||
"optional": true
|
||||
},
|
||||
"eslint-plugin-no-only-tests": {
|
||||
"optional": true
|
||||
},
|
||||
"@vitest/eslint-plugin": {
|
||||
"optional": true
|
||||
},
|
||||
"eslint-plugin-vuejs-accessibility": {
|
||||
"optional": true
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@clack/prompts": "^1.2.0",
|
||||
"@eslint/eslintrc": "^3.3.5",
|
||||
"@eslint/js": "^10.0.1",
|
||||
"@stylistic/eslint-plugin": "^5.10.0",
|
||||
"@typescript-eslint/parser": "^8.59.0",
|
||||
"eslint-config-flat-gitignore": "^2.3.0",
|
||||
"eslint-flat-config-utils": "^3.1.0",
|
||||
"eslint-plugin-antfu": "^3.2.2",
|
||||
"eslint-plugin-import-lite": "^0.6.0",
|
||||
"eslint-plugin-jsonc": "^3.1.2",
|
||||
"eslint-plugin-perfectionist": "^5.9.0",
|
||||
"eslint-plugin-pnpm": "^1.6.0",
|
||||
"eslint-plugin-regexp": "^3.1.0",
|
||||
"eslint-plugin-unicorn": "^64.0.0",
|
||||
"eslint-plugin-vue": "^10.9.0",
|
||||
"eslint-typegen": "^2.3.1",
|
||||
"exsolve": "^1.0.8",
|
||||
"globals": "^17.5.0",
|
||||
"jsonc-eslint-parser": "^3.1.0",
|
||||
"kolorist": "^1.8.0",
|
||||
"local-pkg": "^1.1.2",
|
||||
"nypm": "^0.6.5",
|
||||
"package-manager-detector": "^1.6.0",
|
||||
"tinyexec": "^1.1.1",
|
||||
"typescript-eslint": "^8.59.0",
|
||||
"vue-eslint-parser": "^10.4.0",
|
||||
"yaml-eslint-parser": "^2.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^25.6.0",
|
||||
"bumpp": "^11.0.1",
|
||||
"changelogithub": "^14.0.0",
|
||||
"eslint": "^10.2.1",
|
||||
"eslint-config-vuetify": "file:",
|
||||
"tsdown": "^0.21.9",
|
||||
"tsx": "^4.21.0",
|
||||
"typescript": "^6.0.3",
|
||||
"valibot": "^1.3.1",
|
||||
"vitest": "^4.1.5",
|
||||
"vue": "^3.5.32"
|
||||
},
|
||||
"inlinedDependencies": {
|
||||
"valibot": "1.3.1"
|
||||
},
|
||||
"scripts": {
|
||||
"typegen": "tsx scripts/typegen.ts",
|
||||
"build": "node --run typegen && tsdown",
|
||||
"lint": "eslint",
|
||||
"lint:fix": "eslint --fix",
|
||||
"test": "vitest run",
|
||||
"dev": "vitest",
|
||||
"dev:prepare": "node --run typegen",
|
||||
"release": "bumpp -r"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user