@shayanthenerd/eslint-config
Version:
A modern, flexible ESLint configuration for enforcing best practices and maintaining a consistent coding style
158 lines (157 loc) • 4.77 kB
JavaScript
//#region src/rules/packageJson.ts
const packageJsonRules = {
"package-json/bin-name-casing": "warn",
"package-json/exports-subpaths-style": ["warn", { prefer: "implicit" }],
"package-json/no-empty-fields": "error",
"package-json/no-local-dependencies": "error",
"package-json/no-redundant-files": "error",
"package-json/no-redundant-publishConfig": "error",
"package-json/order-properties": "warn",
"package-json/repository-shorthand": "warn",
"package-json/require-attribution": ["warn", { ignorePrivate: true }],
"package-json/require-bugs": "warn",
"package-json/require-description": ["warn", { ignorePrivate: true }],
"package-json/require-devEngines": "warn",
"package-json/require-engines": ["warn", { ignorePrivate: true }],
"package-json/require-exports": ["error", { ignorePrivate: true }],
"package-json/require-files": ["error", { ignorePrivate: true }],
"package-json/require-homepage": "warn",
"package-json/require-keywords": "warn",
"package-json/require-license": ["error", { ignorePrivate: true }],
"package-json/require-name": "error",
"package-json/require-repository": "warn",
"package-json/require-type": "warn",
"package-json/require-types": ["error", { ignorePrivate: true }],
"package-json/require-version": "error",
"package-json/restrict-dependency-ranges": ["warn", [{
forDependencyTypes: ["dependencies", "devDependencies"],
rangeType: "pin"
}, {
forDependencyTypes: ["peerDependencies", "optionalDependencies"],
rangeType: ["caret", "tilde"]
}]],
"package-json/restrict-private-properties": ["error", { blockedProperties: [
"files",
"publishConfig",
"keywords",
"funding"
] }],
"package-json/restrict-top-level-properties": ["warn", { ban: [
{
property: "bun",
message: "use bunfig.toml."
},
{
property: "pnpm",
message: "use pnpm-workspace.yaml."
},
{
property: "commitlint",
message: "use a dedicated config file."
},
{
property: "stylelint",
message: "use a dedicated config file."
},
{
property: "prettier",
message: "use a dedicated config file."
},
{
property: "renovate",
message: "use a dedicated config file."
}
] }],
"package-json/scripts-name-casing": "warn",
"package-json/sort-collections": ["warn", [
{
key: "author",
order: [
"name",
"email",
"url"
]
},
{
key: "bugs",
order: ["email", "url"]
},
"config",
"dependencies",
"devEngines",
"devDependencies",
"directories",
{
key: "dist",
order: ["shasum", "tarball"]
},
"engines",
"exports",
"husky",
"husky.hooks",
"lint-staged",
"nano-staged",
"optionalDependencies",
"overrides",
"peerDependencies",
"peerDependenciesMeta",
{
key: "repository",
order: [
"type",
"url",
"directory"
]
},
"release",
"simple-git-hooks"
]],
"package-json/specify-peers-locally": "warn",
"package-json/unique-dependencies": "error",
"package-json/valid-author": "error",
"package-json/valid-bin": "error",
"package-json/valid-browser": "error",
"package-json/valid-bugs": "error",
"package-json/valid-bundleDependencies": "error",
"package-json/valid-config": "error",
"package-json/valid-contributors": "error",
"package-json/valid-cpu": "error",
"package-json/valid-dependencies": "error",
"package-json/valid-description": "error",
"package-json/valid-devDependencies": "error",
"package-json/valid-devEngines": "error",
"package-json/valid-directories": "error",
"package-json/valid-engines": "error",
"package-json/valid-exports": "error",
"package-json/valid-files": "error",
"package-json/valid-funding": "error",
"package-json/valid-gypfile": "error",
"package-json/valid-homepage": "error",
"package-json/valid-keywords": "error",
"package-json/valid-libc": "error",
"package-json/valid-license": "error",
"package-json/valid-main": "error",
"package-json/valid-man": "error",
"package-json/valid-module": "error",
"package-json/valid-name": "error",
"package-json/valid-optionalDependencies": "error",
"package-json/valid-os": "error",
"package-json/valid-packageManager": "error",
"package-json/valid-peerDependencies": "error",
"package-json/valid-peerDependenciesMeta": "error",
"package-json/valid-peerDependenciesMeta-relationship": "error",
"package-json/valid-private": "error",
"package-json/valid-publishConfig": "error",
"package-json/valid-repository": "error",
"package-json/valid-repository-directory": "error",
"package-json/valid-scripts": "error",
"package-json/valid-sideEffects": "error",
"package-json/valid-type": "error",
"package-json/valid-version": "error",
"package-json/valid-workspaces": "error"
};
function getPackageJsonRules() {
return packageJsonRules;
}
//#endregion
export { getPackageJsonRules };