Skip to content

Commit 7d6498c

Browse files
authored
feat: add rslint template mapping (#134)
1 parent 69f128b commit 7d6498c

13 files changed

Lines changed: 186 additions & 36 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
"@clack/prompts": "^1.2.0",
4646
"@microsoft/api-extractor": "^7.58.7",
4747
"@rslib/core": "0.21.3",
48-
"@rslint/core": "^0.5.0",
48+
"@rslint/core": "^0.5.1",
4949
"@rstest/core": "0.9.9",
5050
"@types/fs-extra": "^11.0.4",
5151
"@types/minimist": "^1.2.5",

pnpm-lock.yaml

Lines changed: 53 additions & 30 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/index.ts

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,12 @@ export type ESLintTemplateName =
333333
| 'svelte-js'
334334
| 'svelte-ts';
335335

336+
export type RslintTemplateName =
337+
| 'vanilla-js'
338+
| 'vanilla-ts'
339+
| 'react-js'
340+
| 'react-ts';
341+
336342
const readJSON = async (path: string) =>
337343
JSON.parse(await fs.promises.readFile(path, 'utf-8'));
338344

@@ -533,6 +539,7 @@ export async function create({
533539
skipFiles,
534540
getTemplateName,
535541
mapESLintTemplate,
542+
mapRslintTemplate,
536543
version,
537544
noteInformation,
538545
extraTools,
@@ -552,6 +559,14 @@ export async function create({
552559
templateName: string,
553560
context: { distFolder: string },
554561
) => ESLintTemplateName | null;
562+
/**
563+
* Map the template name to the Rslint template name.
564+
* If not provided, reuses mapESLintTemplate and falls back to 'vanilla-ts'.
565+
*/
566+
mapRslintTemplate?: (
567+
templateName: string,
568+
context: { distFolder: string },
569+
) => RslintTemplateName | null;
555570
version?: Record<string, string> | string;
556571
noteInformation?: string[];
557572
/**
@@ -771,6 +786,30 @@ export async function create({
771786
continue;
772787
}
773788

789+
if (tool === 'rslint') {
790+
const rslintTemplateName = mapRslintTemplate
791+
? mapRslintTemplate(templateName, { distFolder })
792+
: 'vanilla-ts';
793+
794+
if (!rslintTemplateName) {
795+
continue;
796+
}
797+
798+
const subFolder = path.join(toolFolder, rslintTemplateName);
799+
copyFolder({
800+
from: subFolder,
801+
to: distFolder,
802+
version,
803+
skipFiles,
804+
templateParameters,
805+
isMergePackageJson: true,
806+
});
807+
808+
agentsMdSearchDirs.push(toolFolder);
809+
agentsMdSearchDirs.push(subFolder);
810+
continue;
811+
}
812+
774813
copyFolder({
775814
from: toolFolder,
776815
to: distFolder,
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{
2-
"name": "rslint",
2+
"name": "rslint-react-js",
33
"private": true,
44
"version": "1.0.0",
55
"scripts": {
66
"lint": "rslint"
77
},
88
"devDependencies": {
9-
"@rslint/core": "^0.5.0"
9+
"@rslint/core": "^0.5.1"
1010
}
1111
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { defineConfig, js, reactHooksPlugin, reactPlugin } from '@rslint/core';
2+
3+
export default defineConfig([
4+
js.configs.recommended,
5+
reactPlugin.configs.recommended,
6+
reactHooksPlugin.configs.recommended,
7+
]);
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"name": "rslint-react-ts",
3+
"private": true,
4+
"version": "1.0.0",
5+
"scripts": {
6+
"lint": "rslint"
7+
},
8+
"devDependencies": {
9+
"@rslint/core": "^0.5.1"
10+
}
11+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import {
2+
defineConfig,
3+
js,
4+
ts,
5+
reactPlugin,
6+
reactHooksPlugin,
7+
} from '@rslint/core';
8+
9+
export default defineConfig([
10+
js.configs.recommended,
11+
ts.configs.recommended,
12+
reactPlugin.configs.recommended,
13+
reactHooksPlugin.configs.recommended,
14+
]);

template-rslint/rslint.config.ts

Lines changed: 0 additions & 3 deletions
This file was deleted.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"name": "rslint-vanilla-js",
3+
"private": true,
4+
"version": "1.0.0",
5+
"scripts": {
6+
"lint": "rslint"
7+
},
8+
"devDependencies": {
9+
"@rslint/core": "^0.5.1"
10+
}
11+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { defineConfig, js } from '@rslint/core';
2+
3+
export default defineConfig([js.configs.recommended]);

0 commit comments

Comments
 (0)