eslint-plugin-better-cap-config
v0.0.3
Published
ESLint plugin to detect deprecated SAP CAP configurations
Maintainers
Readme
ESLint Plugin Better CAP Config
An ESLint plugin for improving SAP CAP (Cloud Application Programming Model) configuration patterns in JSON files.
Features
- Detects deprecated SAP CAP configuration patterns
- Works with
package.json,.cdsrc.json, and other CDS configuration files - Modern ESLint v9+ support with flat config
Installation
npm install --save-dev eslint @eslintjson eslint-plugin-better-cap-configRules
cds-fiori-draft-compat
Disallows the deprecated cds.fiori.draft_compat configuration.
❌ Incorrect:
{
"cds": {
"fiori": {
"draft_compat": true
}
}
}✅ Correct:
{
"cds": {
"fiori": {
"preview": true
}
}
}cds-features-odata-new-adapter
Disallows setting cds.features.odata_new_adapter to false (deprecated behavior).
❌ Incorrect:
{
"cds": {
"features": {
"odata_new_adapter": false
}
}
}✅ Correct:
{
"cds": {
"features": {
"odata_new_adapter": true
}
}
}cds-features-cds-validate
Disallows setting cds.features.cds_validate to false (deprecated behavior).
❌ Incorrect:
{
"cds": {
"features": {
"cds_validate": false
}
}
}✅ Correct:
{
"cds": {
"features": {
"cds_validate": true
}
}
}Configuration
Add the plugin to your ESLint configuration:
ESLint v9+ (Flat Config)
import json from "@eslint/json";
import capConfig from "eslint-plugin-better-cap-config";
export default [
{
files: ["**/*.json"],
plugins: {
json,
"cap-config": capConfig,
},
language: "json/json",
rules: {
"cap-config/cds-fiori-draft-compat": "error",
"cap-config/cds-features-odata-new-adapter": "error",
"cap-config/cds-features-cds-validate": "error",
},
},
];Using the Recommended Configuration
import { defineConfig } from "eslint/config";
import json from "@eslint/json";
import capConfig from "eslint-plugin-better-cap-config";
export default defineConfig([
{
files: ["**/*.json"],
plugins: {
json,
},
language: "json/json",
extends: [capConfig.configs.recommended],
},
]);Prerequisites
This plugin requires:
- ESLint v9.0.0 or higher
- Node.js v18.0.0 or higher
@eslint/jsonfor JSON language support
Supported Files
The plugin works with:
package.jsonfiles.cdsrc.jsonfiles- Any JSON files containing CDS configuration
- JSON files in
cap-cds/directories
Development
Building
pnpm buildTesting
pnpm test
pnpm test:watch
pnpm test:coverageLinting
pnpm lint
pnpm lint:fixLicense
MIT License
