Skip to content

Commit 544d388

Browse files
committed
Make rules work w/ cds 9
1 parent d11fd08 commit 544d388

File tree

5 files changed

+14
-18
lines changed

5 files changed

+14
-18
lines changed

tools/cds-lint/components/PlaygroundBadge.vue

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,14 @@ import { data } from '../examples/examples.data.ts';
1616
const configFileName = "eslint.config.js";
1717
const packageJsonFileName = "package.json";
1818
19-
const defaultConfig: string = `import cds from '@sap/eslint-plugin-cds'
19+
const defaultConfig: string = `import cds from '@sap/cds/eslint.config.mjs'
20+
import cdsPlugin from '@sap/eslint-plugin-cds'
2021
2122
export default [
22-
cds.configs.recommended,
23-
{
24-
plugins: {
25-
'@sap/cds': cds
26-
},
27-
rules: {
28-
// ...cds.configs.recommended.rules,
29-
}
30-
}
23+
...cds.recommended,
24+
cdsPlugin.configs.js.all,
25+
cdsPlugin.configs.recommended,
26+
// %RULES%
3127
]
3228
`
3329
@@ -50,11 +46,11 @@ function link(name: Props['name'] = "", kind: Props['kind'], rules?: Props['rule
5046
rulesList.push(`"${key}": ${JSON.stringify(value)}`);
5147
}
5248
sources[configFileName] = defaultConfig.replace(
53-
/\/\/\s*...cds.configs.recommended.rules,/,
54-
`// ...cds.configs.recommended.rules,\n ${rulesList.join(',\n')}`
49+
/\/\/ %RULES%/,
50+
`{\n rules: {\n ${rulesList.join(',\n')}\n }\n }`
5551
);
5652
} else{
57-
sources[configFileName] = defaultConfig;
53+
sources[configFileName] = defaultConfig.replace(/\/\/ %RULES%/, '');
5854
}
5955
if (packages) {
6056
json = merge(defaultPackageJson, packages);

tools/cds-lint/examples/examples.data.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ let data: Record<string, string> = {};
88

99
export default {
1010
// Watch files in <rule>/<type>/
11-
watch: ['./**/*.cds', './**/*.csv', './**/*.json'],
11+
watch: ['./**/*.cds', './**/*.csv', './**/*.json', './**/*.js'],
1212
load(watchedFiles: string[]) {
1313
watchedFiles.forEach((file) => {
1414
if (__filename.includes(file) || file.match(/@cds-models/)) return

tools/cds-lint/examples/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
"version": "1.0.0",
44
"type": "module",
55
"dependencies": {
6-
"@sap/cds": "^8"
6+
"@sap/cds": "^9"
77
},
88
"devDependencies": {
9-
"@sap/eslint-plugin-cds": "^3",
9+
"@sap/eslint-plugin-cds": "^4",
1010
"eslint": "^9"
1111
}
1212
}

tools/cds-lint/rules/no-db-keywords.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ In the next example, the reserved SQL keyword `Order` is used as an entity name,
4646
kind="incorrect"
4747
:rules="{'@sap/cds/no-db-keywords': ['warn', 'show']}"
4848
:files="['db/schema.cds']"
49-
:packages="{'devDependencies': { '@cap-js/sqlite': '^1' } }"
49+
:packages="{'devDependencies': { '@cap-js/sqlite': '^2' } }"
5050
/>
5151

5252
## Version

tools/cds-lint/rules/no-java-keywords.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ In the next example, the reserved SQL keyword `new` is used as an element name,
4747
kind="incorrect"
4848
:rules="{'@sap/cds/no-java-keywords': ['warn', 'show']}"
4949
:files="['db/schema.cds']"
50-
:packages="{'devDependencies': { '@cap-js/sqlite': '^1' } }"
50+
:packages="{'devDependencies': { '@cap-js/sqlite': '^2' } }"
5151
/>
5252

5353
## Version

0 commit comments

Comments
 (0)