create-typescript-app 2.51.0 → 2.52.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/blocks/blockAllContributors.d.ts +2 -2
- package/lib/blocks/blockAreTheTypesWrong.d.ts +2 -2
- package/lib/blocks/blockCSpell.d.ts +2 -2
- package/lib/blocks/blockCSpell.d.ts.map +1 -1
- package/lib/blocks/blockCTATransitions.d.ts +2 -2
- package/lib/blocks/blockCTATransitions.d.ts.map +1 -1
- package/lib/blocks/blockCodecov.d.ts +2 -2
- package/lib/blocks/blockContributingDocs.d.ts +2 -2
- package/lib/blocks/blockContributorCovenant.d.ts +2 -2
- package/lib/blocks/blockContributorCovenant.d.ts.map +1 -1
- package/lib/blocks/blockDevelopmentDocs.d.ts +3 -3
- package/lib/blocks/blockESLint.d.ts +14 -19
- package/lib/blocks/blockESLint.d.ts.map +1 -1
- package/lib/blocks/blockESLint.js +23 -27
- package/lib/blocks/blockESLint.js.map +1 -1
- package/lib/blocks/blockESLintComments.d.ts.map +1 -1
- package/lib/blocks/blockESLintComments.js +6 -2
- package/lib/blocks/blockESLintComments.js.map +1 -1
- package/lib/blocks/blockESLintJSDoc.d.ts +2 -2
- package/lib/blocks/blockESLintJSDoc.d.ts.map +1 -1
- package/lib/blocks/blockESLintJSDoc.js +10 -6
- package/lib/blocks/blockESLintJSDoc.js.map +1 -1
- package/lib/blocks/blockESLintJSONC.d.ts +2 -2
- package/lib/blocks/blockESLintJSONC.d.ts.map +1 -1
- package/lib/blocks/blockESLintJSONC.js +4 -1
- package/lib/blocks/blockESLintJSONC.js.map +1 -1
- package/lib/blocks/blockESLintMarkdown.d.ts +2 -2
- package/lib/blocks/blockESLintMarkdown.d.ts.map +1 -1
- package/lib/blocks/blockESLintMarkdown.js +4 -1
- package/lib/blocks/blockESLintMarkdown.js.map +1 -1
- package/lib/blocks/blockESLintMoreStyling.d.ts +2 -2
- package/lib/blocks/blockESLintMoreStyling.d.ts.map +1 -1
- package/lib/blocks/blockESLintMoreStyling.js +17 -13
- package/lib/blocks/blockESLintMoreStyling.js.map +1 -1
- package/lib/blocks/blockESLintNode.d.ts +2 -2
- package/lib/blocks/blockESLintNode.d.ts.map +1 -1
- package/lib/blocks/blockESLintNode.js +10 -2
- package/lib/blocks/blockESLintNode.js.map +1 -1
- package/lib/blocks/blockESLintPackageJson.d.ts +2 -2
- package/lib/blocks/blockESLintPackageJson.d.ts.map +1 -1
- package/lib/blocks/blockESLintPackageJson.js +4 -1
- package/lib/blocks/blockESLintPackageJson.js.map +1 -1
- package/lib/blocks/blockESLintPerfectionist.d.ts +2 -2
- package/lib/blocks/blockESLintPerfectionist.d.ts.map +1 -1
- package/lib/blocks/blockESLintPerfectionist.js +11 -7
- package/lib/blocks/blockESLintPerfectionist.js.map +1 -1
- package/lib/blocks/blockESLintPlugin.d.ts +2 -2
- package/lib/blocks/blockESLintPlugin.d.ts.map +1 -1
- package/lib/blocks/blockESLintPlugin.js +5 -1
- package/lib/blocks/blockESLintPlugin.js.map +1 -1
- package/lib/blocks/blockESLintRegexp.d.ts +2 -2
- package/lib/blocks/blockESLintRegexp.d.ts.map +1 -1
- package/lib/blocks/blockESLintRegexp.js +6 -2
- package/lib/blocks/blockESLintRegexp.js.map +1 -1
- package/lib/blocks/blockESLintYML.d.ts +2 -2
- package/lib/blocks/blockExampleFiles.d.ts +2 -2
- package/lib/blocks/blockFunding.d.ts +2 -2
- package/lib/blocks/blockGitHubActionsCI.d.ts +2 -2
- package/lib/blocks/blockGitHubApps.d.ts +2 -2
- package/lib/blocks/blockGitHubApps.d.ts.map +1 -1
- package/lib/blocks/blockGitHubIssueTemplates.d.ts +2 -2
- package/lib/blocks/blockGitHubIssueTemplates.d.ts.map +1 -1
- package/lib/blocks/blockGitHubPRTemplate.d.ts +2 -2
- package/lib/blocks/blockGitHubPRTemplate.d.ts.map +1 -1
- package/lib/blocks/blockGitignore.d.ts +2 -2
- package/lib/blocks/blockKnip.d.ts +2 -2
- package/lib/blocks/blockKnip.d.ts.map +1 -1
- package/lib/blocks/blockMITLicense.d.ts +2 -2
- package/lib/blocks/blockMITLicense.d.ts.map +1 -1
- package/lib/blocks/blockMain.d.ts +2 -2
- package/lib/blocks/blockMain.d.ts.map +1 -1
- package/lib/blocks/blockMarkdownlint.d.ts +2 -2
- package/lib/blocks/blockMarkdownlint.d.ts.map +1 -1
- package/lib/blocks/blockNcc.d.ts +2 -2
- package/lib/blocks/blockNcc.d.ts.map +1 -1
- package/lib/blocks/blockNvmrc.d.ts +2 -2
- package/lib/blocks/blockNvmrc.d.ts.map +1 -1
- package/lib/blocks/blockOctoGuide.d.ts +2 -2
- package/lib/blocks/blockOctoGuide.d.ts.map +1 -1
- package/lib/blocks/blockOctoGuideStrict.d.ts +2 -2
- package/lib/blocks/blockOctoGuideStrict.d.ts.map +1 -1
- package/lib/blocks/blockPackageJson.d.ts +2 -2
- package/lib/blocks/blockPackageJson.d.ts.map +1 -1
- package/lib/blocks/blockPackageJson.js +2 -5
- package/lib/blocks/blockPackageJson.js.map +1 -1
- package/lib/blocks/blockPnpmDedupe.d.ts +2 -2
- package/lib/blocks/blockPnpmDedupe.d.ts.map +1 -1
- package/lib/blocks/blockPrettier.d.ts +2 -2
- package/lib/blocks/blockPrettier.d.ts.map +1 -1
- package/lib/blocks/blockPrettierPluginCurly.d.ts +2 -2
- package/lib/blocks/blockPrettierPluginCurly.d.ts.map +1 -1
- package/lib/blocks/blockPrettierPluginPackageJson.d.ts +2 -2
- package/lib/blocks/blockPrettierPluginSentencesPerLine.d.ts +2 -2
- package/lib/blocks/blockPrettierPluginSh.d.ts +2 -2
- package/lib/blocks/blockPrettierPluginSh.d.ts.map +1 -1
- package/lib/blocks/blockREADME.d.ts +3 -3
- package/lib/blocks/blockReleaseIt.d.ts +2 -2
- package/lib/blocks/blockRemoveDependencies.d.ts +2 -2
- package/lib/blocks/blockRemoveFiles.d.ts +2 -2
- package/lib/blocks/blockRemoveWorkflows.d.ts +2 -2
- package/lib/blocks/blockRemoveWorkflows.d.ts.map +1 -1
- package/lib/blocks/blockRenovate.d.ts +2 -2
- package/lib/blocks/blockRenovate.d.ts.map +1 -1
- package/lib/blocks/blockRepositoryBranchRuleset.d.ts +2 -2
- package/lib/blocks/blockRepositoryBranchRuleset.d.ts.map +1 -1
- package/lib/blocks/blockRepositoryLabels.d.ts +2 -2
- package/lib/blocks/blockRepositoryLabels.d.ts.map +1 -1
- package/lib/blocks/blockRepositorySecrets.d.ts +2 -2
- package/lib/blocks/blockRepositorySecrets.d.ts.map +1 -1
- package/lib/blocks/blockRepositorySettings.d.ts +2 -2
- package/lib/blocks/blockRepositorySettings.d.ts.map +1 -1
- package/lib/blocks/blockSecurityDocs.d.ts +2 -2
- package/lib/blocks/blockTSDown.d.ts +2 -2
- package/lib/blocks/blockTSDown.d.ts.map +1 -1
- package/lib/blocks/blockTemplatedWith.d.ts +2 -2
- package/lib/blocks/blockTemplatedWith.d.ts.map +1 -1
- package/lib/blocks/blockTypeScript.d.ts +2 -2
- package/lib/blocks/blockTypeScript.d.ts.map +1 -1
- package/lib/blocks/blockVSCode.d.ts +2 -2
- package/lib/blocks/blockVSCode.d.ts.map +1 -1
- package/lib/blocks/blockVitest.d.ts +2 -2
- package/lib/blocks/blockVitest.d.ts.map +1 -1
- package/lib/blocks/blockVitest.js +3 -3
- package/lib/blocks/blockVitest.js.map +1 -1
- package/lib/blocks/blockWebExt.d.ts +2 -2
- package/lib/blocks/blockWebExt.d.ts.map +1 -1
- package/lib/blocks/eslint/getScriptFileExtension.d.ts +8 -0
- package/lib/blocks/eslint/getScriptFileExtension.d.ts.map +1 -0
- package/lib/blocks/eslint/getScriptFileExtension.js +8 -0
- package/lib/blocks/eslint/getScriptFileExtension.js.map +1 -0
- package/lib/blocks/eslint/mergeAllExtensions.d.ts +18 -0
- package/lib/blocks/eslint/mergeAllExtensions.d.ts.map +1 -0
- package/lib/blocks/eslint/mergeAllExtensions.js +48 -0
- package/lib/blocks/eslint/mergeAllExtensions.js.map +1 -0
- package/lib/blocks/eslint/schemas.d.ts +23 -10
- package/lib/blocks/eslint/schemas.d.ts.map +1 -1
- package/lib/blocks/eslint/schemas.js +5 -3
- package/lib/blocks/eslint/schemas.js.map +1 -1
- package/lib/blocks/index.d.ts +64 -69
- package/lib/presets/common.d.ts +69 -69
- package/lib/presets/common.d.ts.map +1 -1
- package/lib/presets/everything.d.ts +69 -69
- package/lib/presets/everything.d.ts.map +1 -1
- package/lib/presets/index.d.ts +203 -203
- package/lib/presets/minimal.d.ts +69 -69
- package/lib/presets/minimal.d.ts.map +1 -1
- package/lib/schemas.d.ts.map +1 -1
- package/lib/template.d.ts +67 -67
- package/package.json +2 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as bingo_stratum3 from "bingo-stratum";
|
|
2
2
|
|
|
3
3
|
//#region src/blocks/blockAllContributors.d.ts
|
|
4
|
-
declare const blockAllContributors:
|
|
4
|
+
declare const blockAllContributors: bingo_stratum3.BlockWithoutAddons<{
|
|
5
5
|
access: "public" | "restricted";
|
|
6
6
|
description: string;
|
|
7
7
|
directory: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as bingo_stratum1 from "bingo-stratum";
|
|
2
2
|
|
|
3
3
|
//#region src/blocks/blockAreTheTypesWrong.d.ts
|
|
4
|
-
declare const blockAreTheTypesWrong:
|
|
4
|
+
declare const blockAreTheTypesWrong: bingo_stratum1.BlockWithoutAddons<{
|
|
5
5
|
access: "public" | "restricted";
|
|
6
6
|
description: string;
|
|
7
7
|
directory: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as bingo_stratum34 from "bingo-stratum";
|
|
2
2
|
|
|
3
3
|
//#region src/blocks/blockCSpell.d.ts
|
|
4
|
-
declare const blockCSpell:
|
|
4
|
+
declare const blockCSpell: bingo_stratum34.BlockWithAddons<{
|
|
5
5
|
words: string[];
|
|
6
6
|
ignorePaths: string[];
|
|
7
7
|
}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockCSpell.d.ts","names":[],"sources":["../../src/blocks/blockCSpell.ts"],"sourcesContent":[],"mappings":";;;cAwBa,
|
|
1
|
+
{"version":3,"file":"blockCSpell.d.ts","names":[],"sources":["../../src/blocks/blockCSpell.ts"],"sourcesContent":[],"mappings":";;;cAwBa,6BAAW;;;AAAxB,CAAA,EAAA;;;;;;;;;WAAwB,CAAA,EAAA,MAAA,GAAA,SAAA;IAAA,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as bingo_stratum2 from "bingo-stratum";
|
|
2
2
|
|
|
3
3
|
//#region src/blocks/blockCTATransitions.d.ts
|
|
4
|
-
declare const blockCTATransitions:
|
|
4
|
+
declare const blockCTATransitions: bingo_stratum2.BlockWithoutAddons<{
|
|
5
5
|
access: "public" | "restricted";
|
|
6
6
|
description: string;
|
|
7
7
|
directory: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockCTATransitions.d.ts","names":[],"sources":["../../src/blocks/blockCTATransitions.ts"],"sourcesContent":[],"mappings":";;;cAQa,
|
|
1
|
+
{"version":3,"file":"blockCTATransitions.d.ts","names":[],"sources":["../../src/blocks/blockCTATransitions.ts"],"sourcesContent":[],"mappings":";;;cAQa,oCAAmB;;;EAAnB,SAAA,EAAA,MAAA;;;;;;;;;;EAAmB,KAAA,EAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as bingo_stratum7 from "bingo-stratum";
|
|
2
2
|
|
|
3
3
|
//#region src/blocks/blockCodecov.d.ts
|
|
4
|
-
declare const blockCodecov:
|
|
4
|
+
declare const blockCodecov: bingo_stratum7.BlockWithAddons<{
|
|
5
5
|
env?: Record<string, string> | undefined;
|
|
6
6
|
}, {
|
|
7
7
|
access: "public" | "restricted";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as bingo_stratum9 from "bingo-stratum";
|
|
2
2
|
|
|
3
3
|
//#region src/blocks/blockContributingDocs.d.ts
|
|
4
|
-
declare const blockContributingDocs:
|
|
4
|
+
declare const blockContributingDocs: bingo_stratum9.BlockWithoutAddons<{
|
|
5
5
|
access: "public" | "restricted";
|
|
6
6
|
description: string;
|
|
7
7
|
directory: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as bingo_stratum14 from "bingo-stratum";
|
|
2
2
|
|
|
3
3
|
//#region src/blocks/blockContributorCovenant.d.ts
|
|
4
|
-
declare const blockContributorCovenant:
|
|
4
|
+
declare const blockContributorCovenant: bingo_stratum14.BlockWithoutAddons<{
|
|
5
5
|
access: "public" | "restricted";
|
|
6
6
|
description: string;
|
|
7
7
|
directory: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockContributorCovenant.d.ts","names":[],"sources":["../../src/blocks/blockContributorCovenant.ts"],"sourcesContent":[],"mappings":";;;cAKa,
|
|
1
|
+
{"version":3,"file":"blockContributorCovenant.d.ts","names":[],"sources":["../../src/blocks/blockContributorCovenant.ts"],"sourcesContent":[],"mappings":";;;cAKa,0CAAwB;;;EAAxB,SAAA,EAAA,MAAA;;;;;;;;;;EAAwB,KAAA,EAAA"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as bingo_stratum12 from "bingo-stratum";
|
|
2
2
|
|
|
3
3
|
//#region src/blocks/blockDevelopmentDocs.d.ts
|
|
4
|
-
declare const blockDevelopmentDocs:
|
|
4
|
+
declare const blockDevelopmentDocs: bingo_stratum12.BlockWithAddons<{
|
|
5
5
|
hints: string[];
|
|
6
6
|
sections: Record<string, {
|
|
7
7
|
contents?: string | {
|
|
8
|
-
after?: string[] | undefined;
|
|
9
8
|
before?: string | undefined;
|
|
9
|
+
after?: string[] | undefined;
|
|
10
10
|
items?: string[] | undefined;
|
|
11
11
|
plural?: string | undefined;
|
|
12
12
|
} | undefined;
|
|
@@ -1,19 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as bingo_stratum20 from "bingo-stratum";
|
|
2
2
|
|
|
3
3
|
//#region src/blocks/blockESLint.d.ts
|
|
4
|
-
declare const blockESLint:
|
|
5
|
-
extensions: (string | {
|
|
6
|
-
files?: string[] | undefined;
|
|
7
|
-
settings?: Record<string, unknown> | undefined;
|
|
8
|
-
rules?: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]> | {
|
|
9
|
-
entries: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]>;
|
|
10
|
-
comment?: string | undefined;
|
|
11
|
-
}[] | undefined;
|
|
12
|
-
plugins?: Record<string, string> | undefined;
|
|
13
|
-
extends?: string[] | undefined;
|
|
14
|
-
languageOptions?: unknown;
|
|
15
|
-
linterOptions?: unknown;
|
|
16
|
-
})[];
|
|
4
|
+
declare const blockESLint: bingo_stratum20.BlockWithAddons<{
|
|
17
5
|
imports: {
|
|
18
6
|
source: string | {
|
|
19
7
|
version: string;
|
|
@@ -23,12 +11,19 @@ declare const blockESLint: bingo_stratum11.BlockWithAddons<{
|
|
|
23
11
|
types?: boolean | undefined;
|
|
24
12
|
}[];
|
|
25
13
|
ignores: string[];
|
|
14
|
+
extensions: {
|
|
15
|
+
files: string[];
|
|
16
|
+
rules?: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]> | {
|
|
17
|
+
entries: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]>;
|
|
18
|
+
comment?: string | undefined;
|
|
19
|
+
}[] | undefined;
|
|
20
|
+
plugins?: Record<string, string> | undefined;
|
|
21
|
+
settings?: Record<string, unknown> | undefined;
|
|
22
|
+
extends?: string[] | undefined;
|
|
23
|
+
languageOptions?: unknown;
|
|
24
|
+
linterOptions?: unknown;
|
|
25
|
+
}[];
|
|
26
26
|
explanations: string[];
|
|
27
|
-
settings?: Record<string, unknown> | undefined;
|
|
28
|
-
rules?: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]> | {
|
|
29
|
-
entries: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]>;
|
|
30
|
-
comment?: string | undefined;
|
|
31
|
-
}[] | undefined;
|
|
32
27
|
beforeLint?: string | undefined;
|
|
33
28
|
}, {
|
|
34
29
|
access: "public" | "restricted";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockESLint.d.ts","names":[],"sources":["../../src/blocks/blockESLint.ts"],"sourcesContent":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"blockESLint.d.ts","names":[],"sources":["../../src/blocks/blockESLint.ts"],"sourcesContent":[],"mappings":";;;cA2Ba,6BAAW;;;MAAX,OA6OX,EAAA,MAAA;;;;;;;;;;;;;oBA7OsB,CAAA,MAAA,EAAA,MAAA,CAAA,GAAA,SAAA;IAAA,QAAA,CAAA,QAAA,CAAA,MAAA,EAAA,OAAA,CAAA,GAAA,SAAA"}
|
|
@@ -9,8 +9,10 @@ import { blockDevelopmentDocs } from "./blockDevelopmentDocs.js";
|
|
|
9
9
|
import { blockRemoveWorkflows } from "./blockRemoveWorkflows.js";
|
|
10
10
|
import { blockVSCode } from "./blockVSCode.js";
|
|
11
11
|
import { blockRemoveDependencies } from "./blockRemoveDependencies.js";
|
|
12
|
-
import {
|
|
12
|
+
import { getScriptFileExtension } from "./eslint/getScriptFileExtension.js";
|
|
13
|
+
import { zExtension, zPackageImport } from "./eslint/schemas.js";
|
|
13
14
|
import { blockESLintIntake } from "./eslint/blockESLintIntake.js";
|
|
15
|
+
import { mergeAllExtensions } from "./eslint/mergeAllExtensions.js";
|
|
14
16
|
import { z } from "zod";
|
|
15
17
|
import sortKeys from "sort-keys";
|
|
16
18
|
import { parse } from "parse-package-name";
|
|
@@ -21,19 +23,17 @@ const blockESLint = base.createBlock({
|
|
|
21
23
|
addons: {
|
|
22
24
|
beforeLint: z.string().optional(),
|
|
23
25
|
explanations: z.array(z.string()).default([]),
|
|
24
|
-
extensions: z.array(
|
|
26
|
+
extensions: z.array(zExtension).default([]),
|
|
25
27
|
ignores: z.array(z.string()).default([]),
|
|
26
|
-
imports: z.array(zPackageImport).default([])
|
|
27
|
-
rules: zExtensionRules.optional(),
|
|
28
|
-
settings: z.record(z.string(), z.unknown()).optional()
|
|
28
|
+
imports: z.array(zPackageImport).default([])
|
|
29
29
|
},
|
|
30
30
|
intake({ files }) {
|
|
31
31
|
const eslintConfigRaw = intakeFile(files, [["eslint.config.js", "eslint.config.mjs"]]);
|
|
32
32
|
return eslintConfigRaw ? blockESLintIntake(eslintConfigRaw[0]) : void 0;
|
|
33
33
|
},
|
|
34
34
|
produce({ addons, options }) {
|
|
35
|
-
const { explanations, extensions, ignores, imports
|
|
36
|
-
const
|
|
35
|
+
const { explanations, extensions, ignores, imports } = addons;
|
|
36
|
+
const configFileName = options.type === "commonjs" ? "eslint.config.mjs" : "eslint.config.js";
|
|
37
37
|
const explanation = explanations.length > 0 ? `${explanations.map((explanation$1) => `/*\n${explanation$1}\n*/\n`).join("")}\n` : "";
|
|
38
38
|
const importLines = [
|
|
39
39
|
"import eslint from \"@eslint/js\";",
|
|
@@ -47,20 +47,18 @@ const blockESLint = base.createBlock({
|
|
|
47
47
|
"pnpm-lock.yaml",
|
|
48
48
|
...ignores
|
|
49
49
|
].map((ignore) => JSON.stringify(ignore)))).sort();
|
|
50
|
-
const extensionLines =
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
...extensions.map((extension) => typeof extension === "string" ? extension : printExtension(extension))
|
|
63
|
-
].sort((a, b) => processForSort(a).localeCompare(processForSort(b))).map((t) => t);
|
|
50
|
+
const extensionLines = mergeAllExtensions({
|
|
51
|
+
extends: [
|
|
52
|
+
"eslint.configs.recommended",
|
|
53
|
+
"tseslint.configs.strictTypeChecked",
|
|
54
|
+
"tseslint.configs.stylisticTypeChecked"
|
|
55
|
+
],
|
|
56
|
+
files: [getScriptFileExtension(options)],
|
|
57
|
+
languageOptions: { parserOptions: { projectService: { allowDefaultProject: Array.from(new Set(["*.config.*s", ...typeof options.bin === "object" ? Object.values(options.bin) : [options.bin]].filter(Boolean).sort())) } } }
|
|
58
|
+
}, ...extensions, ...options.type === "commonjs" ? [{
|
|
59
|
+
files: ["*.mjs"],
|
|
60
|
+
languageOptions: { sourceType: "module" }
|
|
61
|
+
}] : []).sort((a, b) => processForSort(a.files).localeCompare(processForSort(b.files))).map(printExtension);
|
|
64
62
|
return {
|
|
65
63
|
addons: [
|
|
66
64
|
blockDevelopmentDocs({ sections: { Linting: { contents: {
|
|
@@ -117,8 +115,7 @@ Each should be shown in VS Code, and can be run manually on the command-line:
|
|
|
117
115
|
|
|
118
116
|
export default defineConfig(
|
|
119
117
|
{ ignores: [${ignoreLines.join(", ")}] },
|
|
120
|
-
|
|
121
|
-
eslint.configs.recommended,
|
|
118
|
+
{ linterOptions: { reportUnusedDisableDirectives: "error" } },
|
|
122
119
|
${extensionLines.join(",")}
|
|
123
120
|
);` },
|
|
124
121
|
scripts: [{
|
|
@@ -169,7 +166,7 @@ function printExtension(extension) {
|
|
|
169
166
|
return [
|
|
170
167
|
"{",
|
|
171
168
|
extension.extends && `extends: [${extension.extends.join(", ")}],`,
|
|
172
|
-
|
|
169
|
+
`files: [${extension.files.map((glob) => JSON.stringify(glob)).join(", ")}],`,
|
|
173
170
|
extension.languageOptions && `languageOptions: ${JSON.stringify(extension.languageOptions).replace("\"import.meta.dirname\"", "import.meta.dirname")},`,
|
|
174
171
|
extension.linterOptions && `linterOptions: ${JSON.stringify(extension.linterOptions)}`,
|
|
175
172
|
extension.rules && `rules: ${printExtensionRules(extension.rules)},`,
|
|
@@ -188,9 +185,8 @@ function printExtensionRules(rules) {
|
|
|
188
185
|
function printGroupComment(comment) {
|
|
189
186
|
return comment ? `\n\n// ${comment.replaceAll("\n", "\n// ")}\n` : "";
|
|
190
187
|
}
|
|
191
|
-
function processForSort(
|
|
192
|
-
|
|
193
|
-
return `B\n${(/files: (.+)/.exec(line)?.[1] ?? line).replaceAll(/\W+/g, "")}`;
|
|
188
|
+
function processForSort(files) {
|
|
189
|
+
return files.join("").replaceAll("{", "");
|
|
194
190
|
}
|
|
195
191
|
|
|
196
192
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockESLint.js","names":["explanation","parsePackageName","grouped: typeof rulesGroups"],"sources":["../../src/blocks/blockESLint.ts"],"sourcesContent":["// @ts-expect-error -- https://github.com/egoist/parse-package-name/issues/30\nimport { parse as parsePackageName } from \"parse-package-name\";\nimport sortKeys from \"sort-keys\";\nimport { z } from \"zod\";\n\nimport { base } from \"../base.js\";\nimport { getPackageDependencies } from \"../data/packageData.js\";\nimport { blockDevelopmentDocs } from \"./blockDevelopmentDocs.js\";\nimport { blockGitHubActionsCI } from \"./blockGitHubActionsCI.js\";\nimport { blockPackageJson } from \"./blockPackageJson.js\";\nimport { blockRemoveDependencies } from \"./blockRemoveDependencies.js\";\nimport { blockRemoveFiles } from \"./blockRemoveFiles.js\";\nimport { blockRemoveWorkflows } from \"./blockRemoveWorkflows.js\";\nimport { blockVSCode } from \"./blockVSCode.js\";\nimport { blockESLintIntake } from \"./eslint/blockESLintIntake.js\";\nimport {\n\tExtension,\n\tExtensionRuleGroup,\n\tExtensionRules,\n\tzExtension,\n\tzExtensionRules,\n\tzPackageImport,\n} from \"./eslint/schemas.js\";\nimport { intakeFile } from \"./intake/intakeFile.js\";\nimport { CommandPhase } from \"./phases.js\";\n\nexport const blockESLint = base.createBlock({\n\tabout: {\n\t\tname: \"ESLint\",\n\t},\n\taddons: {\n\t\tbeforeLint: z.string().optional(),\n\t\texplanations: z.array(z.string()).default([]),\n\t\textensions: z.array(z.union([z.string(), zExtension])).default([]),\n\t\tignores: z.array(z.string()).default([]),\n\t\timports: z.array(zPackageImport).default([]),\n\t\trules: zExtensionRules.optional(),\n\t\tsettings: z.record(z.string(), z.unknown()).optional(),\n\t},\n\tintake({ files }) {\n\t\tconst eslintConfigRaw = intakeFile(files, [\n\t\t\t[\"eslint.config.js\", \"eslint.config.mjs\"],\n\t\t]);\n\n\t\treturn eslintConfigRaw ? blockESLintIntake(eslintConfigRaw[0]) : undefined;\n\t},\n\tproduce({ addons, options }) {\n\t\tconst { explanations, extensions, ignores, imports, rules, settings } =\n\t\t\taddons;\n\n\t\tconst [configFileName, fileExtensions] =\n\t\t\toptions.type === \"commonjs\"\n\t\t\t\t? [\"eslint.config.mjs\", \"js,mjs,ts\"]\n\t\t\t\t: [\"eslint.config.js\", \"js,ts\"];\n\n\t\tconst explanation =\n\t\t\texplanations.length > 0\n\t\t\t\t? `${explanations\n\t\t\t\t\t\t.map((explanation) => `/*\\n${explanation}\\n*/\\n`)\n\t\t\t\t\t\t.join(\"\")}\\n`\n\t\t\t\t: \"\";\n\n\t\tconst importLines = [\n\t\t\t'import eslint from \"@eslint/js\";',\n\t\t\t'import { defineConfig } from \"eslint/config\";',\n\t\t\t'import tseslint from \"typescript-eslint\";',\n\t\t\t...imports.map(\n\t\t\t\t(packageImport) =>\n\t\t\t\t\t`import ${packageImport.specifier} from \"${typeof packageImport.source === \"string\" ? packageImport.source : packageImport.source.packageName}\"`,\n\t\t\t),\n\t\t].sort((a, b) =>\n\t\t\ta.replace(/.+from/, \"\").localeCompare(b.replace(/.+from/, \"\")),\n\t\t);\n\n\t\tconst ignoreLines = Array.from(\n\t\t\tnew Set(\n\t\t\t\t[\"lib\", \"node_modules\", \"pnpm-lock.yaml\", ...ignores].map((ignore) =>\n\t\t\t\t\tJSON.stringify(ignore),\n\t\t\t\t),\n\t\t\t),\n\t\t).sort();\n\n\t\tconst extensionLines = [\n\t\t\tprintExtension({\n\t\t\t\textends: [\n\t\t\t\t\t\"tseslint.configs.strictTypeChecked\",\n\t\t\t\t\t\"tseslint.configs.stylisticTypeChecked\",\n\t\t\t\t],\n\t\t\t\tfiles: [`**/*.{${fileExtensions}}`],\n\t\t\t\tlanguageOptions: {\n\t\t\t\t\tparserOptions: {\n\t\t\t\t\t\tprojectService: {\n\t\t\t\t\t\t\tallowDefaultProject: Array.from(\n\t\t\t\t\t\t\t\tnew Set(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\"*.config.*s\",\n\t\t\t\t\t\t\t\t\t\t...(typeof options.bin === \"object\"\n\t\t\t\t\t\t\t\t\t\t\t? Object.values(options.bin)\n\t\t\t\t\t\t\t\t\t\t\t: [options.bin]),\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t\t\t\t\t.sort(),\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...(rules && { rules }),\n\t\t\t\t...(settings && { settings }),\n\t\t\t}),\n\t\t\t...(options.type === \"commonjs\"\n\t\t\t\t? [\n\t\t\t\t\t\tprintExtension({\n\t\t\t\t\t\t\tfiles: [\"*.mjs\"],\n\t\t\t\t\t\t\tlanguageOptions: { sourceType: \"module\" },\n\t\t\t\t\t\t}),\n\t\t\t\t\t]\n\t\t\t\t: []),\n\t\t\t...extensions.map((extension) =>\n\t\t\t\ttypeof extension === \"string\" ? extension : printExtension(extension),\n\t\t\t),\n\t\t]\n\t\t\t.sort((a, b) => processForSort(a).localeCompare(processForSort(b)))\n\t\t\t.map((t) => t);\n\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockDevelopmentDocs({\n\t\t\t\t\tsections: {\n\t\t\t\t\t\tLinting: {\n\t\t\t\t\t\t\tcontents: {\n\t\t\t\t\t\t\t\tafter: [\n\t\t\t\t\t\t\t\t\t`\nFor example, ESLint can be run with \\`--fix\\` to auto-fix some lint rule complaints:\n\n\\`\\`\\`shell\npnpm run lint --fix\n\\`\\`\\`\n`,\n\t\t\t\t\t\t\t\t\t...(addons.beforeLint ? [addons.beforeLint] : []),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tbefore: `\nThis package includes several forms of linting to enforce consistent code quality and styling.\nEach should be shown in VS Code, and can be run manually on the command-line:\n`,\n\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t`- \\`pnpm lint\\` ([ESLint](https://eslint.org) with [typescript-eslint](https://typescript-eslint.io)): Lints JavaScript and TypeScript source files`,\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tplural: `Read the individual documentation for each linter to understand how it can be configured and used best.`,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockGitHubActionsCI({\n\t\t\t\t\tjobs: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"Lint\",\n\t\t\t\t\t\t\tsteps: [\n\t\t\t\t\t\t\t\t...(options.bin ? [{ run: \"pnpm build\" }] : []),\n\t\t\t\t\t\t\t\t{ run: \"pnpm lint\" },\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockPackageJson({\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tdevDependencies: {\n\t\t\t\t\t\t\t...getPackageDependencies(\n\t\t\t\t\t\t\t\t\"@eslint/js\",\n\t\t\t\t\t\t\t\t\"@types/node\",\n\t\t\t\t\t\t\t\t\"eslint\",\n\t\t\t\t\t\t\t\t\"typescript-eslint\",\n\t\t\t\t\t\t\t\t...imports\n\t\t\t\t\t\t\t\t\t.filter((imported) => typeof imported.source === \"string\")\n\t\t\t\t\t\t\t\t\t.flatMap(({ source, types }) => {\n\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-call -- https://github.com/egoist/parse-package-name/issues/30\n\t\t\t\t\t\t\t\t\t\tconst { name } = parsePackageName(source) as {\n\t\t\t\t\t\t\t\t\t\t\tname: string;\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\treturn types ? [name, `@types/${name}`] : [name];\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t...Object.fromEntries(\n\t\t\t\t\t\t\t\timports\n\t\t\t\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\timported,\n\t\t\t\t\t\t\t\t\t\t): imported is typeof imported & { source: object } =>\n\t\t\t\t\t\t\t\t\t\t\ttypeof imported.source === \"object\",\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.map((imported) => [\n\t\t\t\t\t\t\t\t\t\timported.source.packageName,\n\t\t\t\t\t\t\t\t\t\timported.source.version,\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tscripts: {\n\t\t\t\t\t\t\tlint: \"eslint . --max-warnings 0\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockVSCode({\n\t\t\t\t\textensions: [\"dbaeumer.vscode-eslint\"],\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\t\"editor.codeActionsOnSave\": {\n\t\t\t\t\t\t\t\"source.fixAll.eslint\": \"explicit\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"eslint.probe\": [\n\t\t\t\t\t\t\t\"javascript\",\n\t\t\t\t\t\t\t\"javascriptreact\",\n\t\t\t\t\t\t\t\"json\",\n\t\t\t\t\t\t\t\"jsonc\",\n\t\t\t\t\t\t\t\"markdown\",\n\t\t\t\t\t\t\t\"typescript\",\n\t\t\t\t\t\t\t\"typescriptreact\",\n\t\t\t\t\t\t\t\"yaml\",\n\t\t\t\t\t\t],\n\t\t\t\t\t\t\"eslint.rules.customizations\": [{ rule: \"*\", severity: \"warn\" }],\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t\tfiles: {\n\t\t\t\t[configFileName]: `${explanation}${importLines.join(\"\\n\")}\n\nexport default defineConfig(\n\t{ ignores: [${ignoreLines.join(\", \")}] },\n\t${printExtension({\n\t\tlinterOptions: { reportUnusedDisableDirectives: \"error\" },\n\t})},\n\teslint.configs.recommended,\n\t${extensionLines.join(\",\")}\n);`,\n\t\t\t},\n\t\t\tscripts: [\n\t\t\t\t{\n\t\t\t\t\tcommands: [\"pnpm lint --fix\"],\n\t\t\t\t\tphase: CommandPhase.Process,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n\ttransition({ options }) {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockRemoveDependencies({\n\t\t\t\t\tdependencies: [\n\t\t\t\t\t\t\"@types/eslint\",\n\t\t\t\t\t\t\"@typescript-eslint/eslint-plugin\",\n\t\t\t\t\t\t\"@typescript-eslint/parser\",\n\t\t\t\t\t\t\"eslint-plugin-deprecation\",\n\t\t\t\t\t\t\"eslint-plugin-eslint-comments\",\n\t\t\t\t\t\t\"eslint-plugin-no-only-tests\",\n\t\t\t\t\t\t\"yaml-eslint-parser\",\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockRemoveFiles({\n\t\t\t\t\tfiles: [\n\t\t\t\t\t\t\".eslintrc*\",\n\t\t\t\t\t\t\".eslintignore\",\n\t\t\t\t\t\toptions.type === \"commonjs\"\n\t\t\t\t\t\t\t? \"eslint.config.{cjs,js}\"\n\t\t\t\t\t\t\t: \"eslint.config.{cjs,mjs}\",\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockRemoveWorkflows({\n\t\t\t\t\tworkflows: [\"eslint\", \"lint\"],\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\t},\n});\n\nfunction groupByComment(rulesGroups: ExtensionRuleGroup[]) {\n\tconst byComment = new Map<string | undefined, ExtensionRuleGroup>();\n\tconst grouped: typeof rulesGroups = [];\n\n\tfor (const group of rulesGroups) {\n\t\tconst existing = byComment.get(group.comment);\n\n\t\tif (existing) {\n\t\t\texisting.entries = {\n\t\t\t\t...existing.entries,\n\t\t\t\t...group.entries,\n\t\t\t};\n\t\t\tcontinue;\n\t\t} else {\n\t\t\tbyComment.set(group.comment, group);\n\t\t\tgrouped.push(group);\n\t\t}\n\t}\n\n\treturn grouped;\n}\n\nfunction printExtension(extension: Extension) {\n\treturn [\n\t\t\"{\",\n\t\textension.extends && `extends: [${extension.extends.join(\", \")}],`,\n\t\textension.files &&\n\t\t\t`files: [${extension.files.map((glob) => JSON.stringify(glob)).join(\", \")}],`,\n\t\textension.languageOptions &&\n\t\t\t`languageOptions: ${JSON.stringify(extension.languageOptions).replace('\"import.meta.dirname\"', \"import.meta.dirname\")},`,\n\t\textension.linterOptions &&\n\t\t\t`linterOptions: ${JSON.stringify(extension.linterOptions)}`,\n\t\textension.rules && `rules: ${printExtensionRules(extension.rules)},`,\n\t\textension.settings &&\n\t\t\t`settings: ${JSON.stringify(sortKeys(extension.settings))},`,\n\t\t\"}\",\n\t]\n\t\t.filter(Boolean)\n\t\t.join(\" \");\n}\n\nfunction printExtensionRules(rules: ExtensionRules) {\n\tif (!Array.isArray(rules)) {\n\t\treturn JSON.stringify(rules);\n\t}\n\n\treturn [\n\t\t\"{\",\n\t\t...groupByComment(rules).flatMap((group) => [\n\t\t\tprintGroupComment(group.comment),\n\t\t\t...Object.entries(group.entries).map(\n\t\t\t\t([ruleName, options]) => `\"${ruleName}\": ${JSON.stringify(options)},`,\n\t\t\t),\n\t\t]),\n\t\t\"}\",\n\t].join(\"\");\n}\n\nfunction printGroupComment(comment: string | undefined) {\n\treturn comment ? `\\n\\n// ${comment.replaceAll(\"\\n\", \"\\n// \")}\\n` : \"\";\n}\n\nfunction processForSort(line: string) {\n\tif (line.startsWith(\"...\") || /\\w+/.test(line[0])) {\n\t\treturn `A\\n${line.replaceAll(/\\W+/g, \"\")}`;\n\t}\n\n\treturn `B\\n${(/files: (.+)/.exec(line)?.[1] ?? line).replaceAll(/\\W+/g, \"\")}`;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"blockESLint.js","names":["explanation","parsePackageName","grouped: typeof rulesGroups"],"sources":["../../src/blocks/blockESLint.ts"],"sourcesContent":["// @ts-expect-error -- https://github.com/egoist/parse-package-name/issues/30\nimport { parse as parsePackageName } from \"parse-package-name\";\nimport sortKeys from \"sort-keys\";\nimport { z } from \"zod\";\n\nimport { base } from \"../base.js\";\nimport { getPackageDependencies } from \"../data/packageData.js\";\nimport { blockDevelopmentDocs } from \"./blockDevelopmentDocs.js\";\nimport { blockGitHubActionsCI } from \"./blockGitHubActionsCI.js\";\nimport { blockPackageJson } from \"./blockPackageJson.js\";\nimport { blockRemoveDependencies } from \"./blockRemoveDependencies.js\";\nimport { blockRemoveFiles } from \"./blockRemoveFiles.js\";\nimport { blockRemoveWorkflows } from \"./blockRemoveWorkflows.js\";\nimport { blockVSCode } from \"./blockVSCode.js\";\nimport { blockESLintIntake } from \"./eslint/blockESLintIntake.js\";\nimport { getScriptFileExtension } from \"./eslint/getScriptFileExtension.js\";\nimport { mergeAllExtensions } from \"./eslint/mergeAllExtensions.js\";\nimport {\n\tExtension,\n\tExtensionRuleGroup,\n\tExtensionRules,\n\tzExtension,\n\tzPackageImport,\n} from \"./eslint/schemas.js\";\nimport { intakeFile } from \"./intake/intakeFile.js\";\nimport { CommandPhase } from \"./phases.js\";\n\nexport const blockESLint = base.createBlock({\n\tabout: {\n\t\tname: \"ESLint\",\n\t},\n\taddons: {\n\t\tbeforeLint: z.string().optional(),\n\t\texplanations: z.array(z.string()).default([]),\n\t\textensions: z.array(zExtension).default([]),\n\t\tignores: z.array(z.string()).default([]),\n\t\timports: z.array(zPackageImport).default([]),\n\t},\n\tintake({ files }) {\n\t\tconst eslintConfigRaw = intakeFile(files, [\n\t\t\t[\"eslint.config.js\", \"eslint.config.mjs\"],\n\t\t]);\n\n\t\treturn eslintConfigRaw ? blockESLintIntake(eslintConfigRaw[0]) : undefined;\n\t},\n\tproduce({ addons, options }) {\n\t\tconst { explanations, extensions, ignores, imports } = addons;\n\n\t\tconst configFileName =\n\t\t\toptions.type === \"commonjs\" ? \"eslint.config.mjs\" : \"eslint.config.js\";\n\n\t\tconst explanation =\n\t\t\texplanations.length > 0\n\t\t\t\t? `${explanations\n\t\t\t\t\t\t.map((explanation) => `/*\\n${explanation}\\n*/\\n`)\n\t\t\t\t\t\t.join(\"\")}\\n`\n\t\t\t\t: \"\";\n\n\t\tconst importLines = [\n\t\t\t'import eslint from \"@eslint/js\";',\n\t\t\t'import { defineConfig } from \"eslint/config\";',\n\t\t\t'import tseslint from \"typescript-eslint\";',\n\t\t\t...imports.map(\n\t\t\t\t(packageImport) =>\n\t\t\t\t\t`import ${packageImport.specifier} from \"${typeof packageImport.source === \"string\" ? packageImport.source : packageImport.source.packageName}\"`,\n\t\t\t),\n\t\t].sort((a, b) =>\n\t\t\ta.replace(/.+from/, \"\").localeCompare(b.replace(/.+from/, \"\")),\n\t\t);\n\n\t\tconst ignoreLines = Array.from(\n\t\t\tnew Set(\n\t\t\t\t[\"lib\", \"node_modules\", \"pnpm-lock.yaml\", ...ignores].map((ignore) =>\n\t\t\t\t\tJSON.stringify(ignore),\n\t\t\t\t),\n\t\t\t),\n\t\t).sort();\n\n\t\tconst extensionEntries = mergeAllExtensions(\n\t\t\t{\n\t\t\t\textends: [\n\t\t\t\t\t\"eslint.configs.recommended\",\n\t\t\t\t\t\"tseslint.configs.strictTypeChecked\",\n\t\t\t\t\t\"tseslint.configs.stylisticTypeChecked\",\n\t\t\t\t],\n\t\t\t\tfiles: [getScriptFileExtension(options)],\n\t\t\t\tlanguageOptions: {\n\t\t\t\t\tparserOptions: {\n\t\t\t\t\t\tprojectService: {\n\t\t\t\t\t\t\tallowDefaultProject: Array.from(\n\t\t\t\t\t\t\t\tnew Set(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\"*.config.*s\",\n\t\t\t\t\t\t\t\t\t\t...(typeof options.bin === \"object\"\n\t\t\t\t\t\t\t\t\t\t\t? Object.values(options.bin)\n\t\t\t\t\t\t\t\t\t\t\t: [options.bin]),\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t\t\t\t\t.sort(),\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t...extensions,\n\t\t\t...(options.type === \"commonjs\"\n\t\t\t\t? [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfiles: [\"*.mjs\"],\n\t\t\t\t\t\t\tlanguageOptions: { sourceType: \"module\" },\n\t\t\t\t\t\t},\n\t\t\t\t\t]\n\t\t\t\t: []),\n\t\t);\n\n\t\tconst extensionLines = extensionEntries\n\t\t\t.sort((a, b) =>\n\t\t\t\tprocessForSort(a.files).localeCompare(processForSort(b.files)),\n\t\t\t)\n\t\t\t.map(printExtension);\n\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockDevelopmentDocs({\n\t\t\t\t\tsections: {\n\t\t\t\t\t\tLinting: {\n\t\t\t\t\t\t\tcontents: {\n\t\t\t\t\t\t\t\tafter: [\n\t\t\t\t\t\t\t\t\t`\nFor example, ESLint can be run with \\`--fix\\` to auto-fix some lint rule complaints:\n\n\\`\\`\\`shell\npnpm run lint --fix\n\\`\\`\\`\n`,\n\t\t\t\t\t\t\t\t\t...(addons.beforeLint ? [addons.beforeLint] : []),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tbefore: `\nThis package includes several forms of linting to enforce consistent code quality and styling.\nEach should be shown in VS Code, and can be run manually on the command-line:\n`,\n\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t`- \\`pnpm lint\\` ([ESLint](https://eslint.org) with [typescript-eslint](https://typescript-eslint.io)): Lints JavaScript and TypeScript source files`,\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tplural: `Read the individual documentation for each linter to understand how it can be configured and used best.`,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockGitHubActionsCI({\n\t\t\t\t\tjobs: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"Lint\",\n\t\t\t\t\t\t\tsteps: [\n\t\t\t\t\t\t\t\t...(options.bin ? [{ run: \"pnpm build\" }] : []),\n\t\t\t\t\t\t\t\t{ run: \"pnpm lint\" },\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockPackageJson({\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tdevDependencies: {\n\t\t\t\t\t\t\t...getPackageDependencies(\n\t\t\t\t\t\t\t\t\"@eslint/js\",\n\t\t\t\t\t\t\t\t\"@types/node\",\n\t\t\t\t\t\t\t\t\"eslint\",\n\t\t\t\t\t\t\t\t\"typescript-eslint\",\n\t\t\t\t\t\t\t\t...imports\n\t\t\t\t\t\t\t\t\t.filter((imported) => typeof imported.source === \"string\")\n\t\t\t\t\t\t\t\t\t.flatMap(({ source, types }) => {\n\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-call -- https://github.com/egoist/parse-package-name/issues/30\n\t\t\t\t\t\t\t\t\t\tconst { name } = parsePackageName(source) as {\n\t\t\t\t\t\t\t\t\t\t\tname: string;\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\treturn types ? [name, `@types/${name}`] : [name];\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t...Object.fromEntries(\n\t\t\t\t\t\t\t\timports\n\t\t\t\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\timported,\n\t\t\t\t\t\t\t\t\t\t): imported is typeof imported & { source: object } =>\n\t\t\t\t\t\t\t\t\t\t\ttypeof imported.source === \"object\",\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.map((imported) => [\n\t\t\t\t\t\t\t\t\t\timported.source.packageName,\n\t\t\t\t\t\t\t\t\t\timported.source.version,\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tscripts: {\n\t\t\t\t\t\t\tlint: \"eslint . --max-warnings 0\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockVSCode({\n\t\t\t\t\textensions: [\"dbaeumer.vscode-eslint\"],\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\t\"editor.codeActionsOnSave\": {\n\t\t\t\t\t\t\t\"source.fixAll.eslint\": \"explicit\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"eslint.probe\": [\n\t\t\t\t\t\t\t\"javascript\",\n\t\t\t\t\t\t\t\"javascriptreact\",\n\t\t\t\t\t\t\t\"json\",\n\t\t\t\t\t\t\t\"jsonc\",\n\t\t\t\t\t\t\t\"markdown\",\n\t\t\t\t\t\t\t\"typescript\",\n\t\t\t\t\t\t\t\"typescriptreact\",\n\t\t\t\t\t\t\t\"yaml\",\n\t\t\t\t\t\t],\n\t\t\t\t\t\t\"eslint.rules.customizations\": [{ rule: \"*\", severity: \"warn\" }],\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t\tfiles: {\n\t\t\t\t[configFileName]: `${explanation}${importLines.join(\"\\n\")}\n\nexport default defineConfig(\n\t{ ignores: [${ignoreLines.join(\", \")}] },\n\t{ linterOptions: { reportUnusedDisableDirectives: \"error\" } },\n\t${extensionLines.join(\",\")}\n);`,\n\t\t\t},\n\t\t\tscripts: [\n\t\t\t\t{\n\t\t\t\t\tcommands: [\"pnpm lint --fix\"],\n\t\t\t\t\tphase: CommandPhase.Process,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n\ttransition({ options }) {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockRemoveDependencies({\n\t\t\t\t\tdependencies: [\n\t\t\t\t\t\t\"@types/eslint\",\n\t\t\t\t\t\t\"@typescript-eslint/eslint-plugin\",\n\t\t\t\t\t\t\"@typescript-eslint/parser\",\n\t\t\t\t\t\t\"eslint-plugin-deprecation\",\n\t\t\t\t\t\t\"eslint-plugin-eslint-comments\",\n\t\t\t\t\t\t\"eslint-plugin-no-only-tests\",\n\t\t\t\t\t\t\"yaml-eslint-parser\",\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockRemoveFiles({\n\t\t\t\t\tfiles: [\n\t\t\t\t\t\t\".eslintrc*\",\n\t\t\t\t\t\t\".eslintignore\",\n\t\t\t\t\t\toptions.type === \"commonjs\"\n\t\t\t\t\t\t\t? \"eslint.config.{cjs,js}\"\n\t\t\t\t\t\t\t: \"eslint.config.{cjs,mjs}\",\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockRemoveWorkflows({\n\t\t\t\t\tworkflows: [\"eslint\", \"lint\"],\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\t},\n});\n\nfunction groupByComment(rulesGroups: ExtensionRuleGroup[]) {\n\tconst byComment = new Map<string | undefined, ExtensionRuleGroup>();\n\tconst grouped: typeof rulesGroups = [];\n\n\tfor (const group of rulesGroups) {\n\t\tconst existing = byComment.get(group.comment);\n\n\t\tif (existing) {\n\t\t\texisting.entries = {\n\t\t\t\t...existing.entries,\n\t\t\t\t...group.entries,\n\t\t\t};\n\t\t\tcontinue;\n\t\t} else {\n\t\t\tbyComment.set(group.comment, group);\n\t\t\tgrouped.push(group);\n\t\t}\n\t}\n\n\treturn grouped;\n}\n\nfunction printExtension(extension: Extension) {\n\treturn [\n\t\t\"{\",\n\t\textension.extends && `extends: [${extension.extends.join(\", \")}],`,\n\t\t`files: [${extension.files.map((glob) => JSON.stringify(glob)).join(\", \")}],`,\n\t\textension.languageOptions &&\n\t\t\t`languageOptions: ${JSON.stringify(extension.languageOptions).replace('\"import.meta.dirname\"', \"import.meta.dirname\")},`,\n\t\textension.linterOptions &&\n\t\t\t`linterOptions: ${JSON.stringify(extension.linterOptions)}`,\n\t\textension.rules && `rules: ${printExtensionRules(extension.rules)},`,\n\t\textension.settings &&\n\t\t\t`settings: ${JSON.stringify(sortKeys(extension.settings))},`,\n\t\t\"}\",\n\t]\n\t\t.filter(Boolean)\n\t\t.join(\" \");\n}\n\nfunction printExtensionRules(rules: ExtensionRules) {\n\tif (!Array.isArray(rules)) {\n\t\treturn JSON.stringify(rules);\n\t}\n\n\treturn [\n\t\t\"{\",\n\t\t...groupByComment(rules).flatMap((group) => [\n\t\t\tprintGroupComment(group.comment),\n\t\t\t...Object.entries(group.entries).map(\n\t\t\t\t([ruleName, options]) => `\"${ruleName}\": ${JSON.stringify(options)},`,\n\t\t\t),\n\t\t]),\n\t\t\"}\",\n\t].join(\"\");\n}\n\nfunction printGroupComment(comment: string | undefined) {\n\treturn comment ? `\\n\\n// ${comment.replaceAll(\"\\n\", \"\\n// \")}\\n` : \"\";\n}\n\nfunction processForSort(files: string[]) {\n\treturn files.join(\"\").replaceAll(\"{\", \"\");\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockESLintComments.d.ts","names":[],"sources":["../../src/blocks/blockESLintComments.ts"],"sourcesContent":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"blockESLintComments.d.ts","names":[],"sources":["../../src/blocks/blockESLintComments.ts"],"sourcesContent":[],"mappings":";;;cAIa,qCAAmB;;;EAAnB,SAAA,EAAA,MAAA;;;;;;;;;;EAAmB,KAAA,EAAA"}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { base } from "../base.js";
|
|
2
|
+
import { getScriptFileExtension } from "./eslint/getScriptFileExtension.js";
|
|
2
3
|
import { blockESLint } from "./blockESLint.js";
|
|
3
4
|
|
|
4
5
|
//#region src/blocks/blockESLintComments.ts
|
|
5
6
|
const blockESLintComments = base.createBlock({
|
|
6
7
|
about: { name: "ESLint Comments Plugin" },
|
|
7
|
-
produce() {
|
|
8
|
+
produce({ options }) {
|
|
8
9
|
return { addons: [blockESLint({
|
|
9
|
-
extensions: [
|
|
10
|
+
extensions: [{
|
|
11
|
+
extends: ["comments.recommended"],
|
|
12
|
+
files: [getScriptFileExtension(options)]
|
|
13
|
+
}],
|
|
10
14
|
imports: [{
|
|
11
15
|
source: "@eslint-community/eslint-plugin-eslint-comments/configs",
|
|
12
16
|
specifier: "comments"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockESLintComments.js","names":[],"sources":["../../src/blocks/blockESLintComments.ts"],"sourcesContent":["import { base } from \"../base.js\";\nimport { blockESLint } from \"./blockESLint.js\";\n\nexport const blockESLintComments = base.createBlock({\n\tabout: {\n\t\tname: \"ESLint Comments Plugin\",\n\t},\n\tproduce() {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockESLint({\n\t\t\t\t\textensions: [\"comments.recommended\"],\n\t\t\t\t\timports: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tsource: \"@eslint-community/eslint-plugin-eslint-comments/configs\",\n\t\t\t\t\t\t\tspecifier: \"comments\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\t},\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"blockESLintComments.js","names":[],"sources":["../../src/blocks/blockESLintComments.ts"],"sourcesContent":["import { base } from \"../base.js\";\nimport { blockESLint } from \"./blockESLint.js\";\nimport { getScriptFileExtension } from \"./eslint/getScriptFileExtension.js\";\n\nexport const blockESLintComments = base.createBlock({\n\tabout: {\n\t\tname: \"ESLint Comments Plugin\",\n\t},\n\tproduce({ options }) {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockESLint({\n\t\t\t\t\textensions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\textends: [\"comments.recommended\"],\n\t\t\t\t\t\t\tfiles: [getScriptFileExtension(options)],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\timports: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tsource: \"@eslint-community/eslint-plugin-eslint-comments/configs\",\n\t\t\t\t\t\t\tspecifier: \"comments\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\t},\n});\n"],"mappings":";;;;;AAIA,MAAa,sBAAsB,KAAK,YAAY;CACnD,OAAO,EACN,MAAM,0BACN;CACD,QAAQ,EAAE,WAAW;AACpB,SAAO,EACN,QAAQ,CACP,YAAY;GACX,YAAY,CACX;IACC,SAAS,CAAC,uBAAuB;IACjC,OAAO,CAAC,uBAAuB,QAAQ,CAAC;IACxC,CACD;GACD,SAAS,CACR;IACC,QAAQ;IACR,WAAW;IACX,CACD;GACD,CAAC,CACF,EACD;;CAEF,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as bingo_stratum18 from "bingo-stratum";
|
|
2
2
|
|
|
3
3
|
//#region src/blocks/blockESLintJSDoc.d.ts
|
|
4
|
-
declare const blockESLintJSDoc:
|
|
4
|
+
declare const blockESLintJSDoc: bingo_stratum18.BlockWithoutAddons<{
|
|
5
5
|
access: "public" | "restricted";
|
|
6
6
|
description: string;
|
|
7
7
|
directory: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockESLintJSDoc.d.ts","names":[],"sources":["../../src/blocks/blockESLintJSDoc.ts"],"sourcesContent":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"blockESLintJSDoc.d.ts","names":[],"sources":["../../src/blocks/blockESLintJSDoc.ts"],"sourcesContent":[],"mappings":";;;cAIa,kCAAgB;;;EAAhB,SAAA,EAAA,MAAA;;;;;;;;;;EAAgB,KAAA,EAAA"}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
import { base } from "../base.js";
|
|
2
|
+
import { getScriptFileExtension } from "./eslint/getScriptFileExtension.js";
|
|
2
3
|
import { blockESLint } from "./blockESLint.js";
|
|
3
4
|
|
|
4
5
|
//#region src/blocks/blockESLintJSDoc.ts
|
|
5
6
|
const blockESLintJSDoc = base.createBlock({
|
|
6
7
|
about: { name: "ESLint JSDoc Plugin" },
|
|
7
|
-
produce() {
|
|
8
|
+
produce({ options }) {
|
|
8
9
|
return { addons: [blockESLint({
|
|
9
|
-
extensions: [
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
extensions: [{
|
|
11
|
+
extends: [
|
|
12
|
+
"jsdoc.configs[\"flat/contents-typescript-error\"]",
|
|
13
|
+
"jsdoc.configs[\"flat/logical-typescript-error\"]",
|
|
14
|
+
"jsdoc.configs[\"flat/stylistic-typescript-error\"]"
|
|
15
|
+
],
|
|
16
|
+
files: [getScriptFileExtension(options)]
|
|
17
|
+
}],
|
|
14
18
|
imports: [{
|
|
15
19
|
source: "eslint-plugin-jsdoc",
|
|
16
20
|
specifier: "jsdoc"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockESLintJSDoc.js","names":[],"sources":["../../src/blocks/blockESLintJSDoc.ts"],"sourcesContent":["import { base } from \"../base.js\";\nimport { blockESLint } from \"./blockESLint.js\";\n\nexport const blockESLintJSDoc = base.createBlock({\n\tabout: {\n\t\tname: \"ESLint JSDoc Plugin\",\n\t},\n\tproduce() {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockESLint({\n\t\t\t\t\textensions: [\n\t\t\t\t\t\t'jsdoc.configs[\"flat/contents-typescript-error\"]',\n\t\t\t\t\t\t'jsdoc.configs[\"flat/logical-typescript-error\"]',\n\t\t\t\t\t\t'jsdoc.configs[\"flat/stylistic-typescript-error\"]',\n\t\t\t\t\t],\n\t\t\t\t\timports: [{ source: \"eslint-plugin-jsdoc\", specifier: \"jsdoc\" }],\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\t},\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"blockESLintJSDoc.js","names":[],"sources":["../../src/blocks/blockESLintJSDoc.ts"],"sourcesContent":["import { base } from \"../base.js\";\nimport { blockESLint } from \"./blockESLint.js\";\nimport { getScriptFileExtension } from \"./eslint/getScriptFileExtension.js\";\n\nexport const blockESLintJSDoc = base.createBlock({\n\tabout: {\n\t\tname: \"ESLint JSDoc Plugin\",\n\t},\n\tproduce({ options }) {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockESLint({\n\t\t\t\t\textensions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\textends: [\n\t\t\t\t\t\t\t\t'jsdoc.configs[\"flat/contents-typescript-error\"]',\n\t\t\t\t\t\t\t\t'jsdoc.configs[\"flat/logical-typescript-error\"]',\n\t\t\t\t\t\t\t\t'jsdoc.configs[\"flat/stylistic-typescript-error\"]',\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tfiles: [getScriptFileExtension(options)],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\timports: [{ source: \"eslint-plugin-jsdoc\", specifier: \"jsdoc\" }],\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\t},\n});\n"],"mappings":";;;;;AAIA,MAAa,mBAAmB,KAAK,YAAY;CAChD,OAAO,EACN,MAAM,uBACN;CACD,QAAQ,EAAE,WAAW;AACpB,SAAO,EACN,QAAQ,CACP,YAAY;GACX,YAAY,CACX;IACC,SAAS;KACR;KACA;KACA;KACA;IACD,OAAO,CAAC,uBAAuB,QAAQ,CAAC;IACxC,CACD;GACD,SAAS,CAAC;IAAE,QAAQ;IAAuB,WAAW;IAAS,CAAC;GAChE,CAAC,CACF,EACD;;CAEF,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as bingo_stratum6 from "bingo-stratum";
|
|
2
2
|
|
|
3
3
|
//#region src/blocks/blockESLintJSONC.d.ts
|
|
4
|
-
declare const blockESLintJSONC:
|
|
4
|
+
declare const blockESLintJSONC: bingo_stratum6.BlockWithoutAddons<{
|
|
5
5
|
access: "public" | "restricted";
|
|
6
6
|
description: string;
|
|
7
7
|
directory: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockESLintJSONC.d.ts","names":[],"sources":["../../src/blocks/blockESLintJSONC.ts"],"sourcesContent":[],"mappings":";;;cAGa,
|
|
1
|
+
{"version":3,"file":"blockESLintJSONC.d.ts","names":[],"sources":["../../src/blocks/blockESLintJSONC.ts"],"sourcesContent":[],"mappings":";;;cAGa,iCAAgB;;;EAAhB,SAAA,EAAA,MAAA;;;;;;;;;;EAAgB,KAAA,EAAA"}
|
|
@@ -6,7 +6,10 @@ const blockESLintJSONC = base.createBlock({
|
|
|
6
6
|
about: { name: "ESLint JSONC Plugin" },
|
|
7
7
|
produce() {
|
|
8
8
|
return { addons: [blockESLint({
|
|
9
|
-
extensions: [
|
|
9
|
+
extensions: [{
|
|
10
|
+
extends: [`jsonc.configs["flat/recommended-with-json"]`],
|
|
11
|
+
files: ["**/*.json"]
|
|
12
|
+
}],
|
|
10
13
|
imports: [{
|
|
11
14
|
source: "eslint-plugin-jsonc",
|
|
12
15
|
specifier: "jsonc"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockESLintJSONC.js","names":[],"sources":["../../src/blocks/blockESLintJSONC.ts"],"sourcesContent":["import { base } from \"../base.js\";\nimport { blockESLint } from \"./blockESLint.js\";\n\nexport const blockESLintJSONC = base.createBlock({\n\tabout: {\n\t\tname: \"ESLint JSONC Plugin\",\n\t},\n\tproduce() {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockESLint({\n\t\t\t\t\textensions: [`jsonc.configs[\"flat/recommended-with-json\"]`],\n\t\t\t\t\timports: [{ source: \"eslint-plugin-jsonc\", specifier: \"jsonc\" }],\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\t},\n});\n"],"mappings":";;;;AAGA,MAAa,mBAAmB,KAAK,YAAY;CAChD,OAAO,EACN,MAAM,uBACN;CACD,UAAU;AACT,SAAO,EACN,QAAQ,CACP,YAAY;GACX,YAAY,CAAC,8CAA8C;
|
|
1
|
+
{"version":3,"file":"blockESLintJSONC.js","names":[],"sources":["../../src/blocks/blockESLintJSONC.ts"],"sourcesContent":["import { base } from \"../base.js\";\nimport { blockESLint } from \"./blockESLint.js\";\n\nexport const blockESLintJSONC = base.createBlock({\n\tabout: {\n\t\tname: \"ESLint JSONC Plugin\",\n\t},\n\tproduce() {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockESLint({\n\t\t\t\t\textensions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\textends: [`jsonc.configs[\"flat/recommended-with-json\"]`],\n\t\t\t\t\t\t\tfiles: [\"**/*.json\"],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\timports: [{ source: \"eslint-plugin-jsonc\", specifier: \"jsonc\" }],\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\t},\n});\n"],"mappings":";;;;AAGA,MAAa,mBAAmB,KAAK,YAAY;CAChD,OAAO,EACN,MAAM,uBACN;CACD,UAAU;AACT,SAAO,EACN,QAAQ,CACP,YAAY;GACX,YAAY,CACX;IACC,SAAS,CAAC,8CAA8C;IACxD,OAAO,CAAC,YAAY;IACpB,CACD;GACD,SAAS,CAAC;IAAE,QAAQ;IAAuB,WAAW;IAAS,CAAC;GAChE,CAAC,CACF,EACD;;CAEF,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as bingo_stratum8 from "bingo-stratum";
|
|
2
2
|
|
|
3
3
|
//#region src/blocks/blockESLintMarkdown.d.ts
|
|
4
|
-
declare const blockESLintMarkdown:
|
|
4
|
+
declare const blockESLintMarkdown: bingo_stratum8.BlockWithoutAddons<{
|
|
5
5
|
access: "public" | "restricted";
|
|
6
6
|
description: string;
|
|
7
7
|
directory: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockESLintMarkdown.d.ts","names":[],"sources":["../../src/blocks/blockESLintMarkdown.ts"],"sourcesContent":[],"mappings":";;;cAGa,
|
|
1
|
+
{"version":3,"file":"blockESLintMarkdown.d.ts","names":[],"sources":["../../src/blocks/blockESLintMarkdown.ts"],"sourcesContent":[],"mappings":";;;cAGa,oCAAmB;;;EAAnB,SAAA,EAAA,MAAA;;;;;;;;;;EAAmB,KAAA,EAAA"}
|
|
@@ -6,7 +6,10 @@ const blockESLintMarkdown = base.createBlock({
|
|
|
6
6
|
about: { name: "ESLint Markdown Plugin" },
|
|
7
7
|
produce() {
|
|
8
8
|
return { addons: [blockESLint({
|
|
9
|
-
extensions: [
|
|
9
|
+
extensions: [{
|
|
10
|
+
extends: ["markdown.configs.recommended"],
|
|
11
|
+
files: ["**/*.md"]
|
|
12
|
+
}],
|
|
10
13
|
imports: [{
|
|
11
14
|
source: "eslint-plugin-markdown",
|
|
12
15
|
specifier: "markdown",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockESLintMarkdown.js","names":[],"sources":["../../src/blocks/blockESLintMarkdown.ts"],"sourcesContent":["import { base } from \"../base.js\";\nimport { blockESLint } from \"./blockESLint.js\";\n\nexport const blockESLintMarkdown = base.createBlock({\n\tabout: {\n\t\tname: \"ESLint Markdown Plugin\",\n\t},\n\tproduce() {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockESLint({\n\t\t\t\t\textensions: [\"markdown.configs.recommended\"],\n\t\t\t\t\timports: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tsource: \"eslint-plugin-markdown\",\n\t\t\t\t\t\t\tspecifier: \"markdown\",\n\t\t\t\t\t\t\ttypes: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\t},\n});\n"],"mappings":";;;;AAGA,MAAa,sBAAsB,KAAK,YAAY;CACnD,OAAO,EACN,MAAM,0BACN;CACD,UAAU;AACT,SAAO,EACN,QAAQ,CACP,YAAY;GACX,YAAY,CAAC,+BAA+B;
|
|
1
|
+
{"version":3,"file":"blockESLintMarkdown.js","names":[],"sources":["../../src/blocks/blockESLintMarkdown.ts"],"sourcesContent":["import { base } from \"../base.js\";\nimport { blockESLint } from \"./blockESLint.js\";\n\nexport const blockESLintMarkdown = base.createBlock({\n\tabout: {\n\t\tname: \"ESLint Markdown Plugin\",\n\t},\n\tproduce() {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockESLint({\n\t\t\t\t\textensions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\textends: [\"markdown.configs.recommended\"],\n\t\t\t\t\t\t\tfiles: [\"**/*.md\"],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\timports: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tsource: \"eslint-plugin-markdown\",\n\t\t\t\t\t\t\tspecifier: \"markdown\",\n\t\t\t\t\t\t\ttypes: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\t},\n});\n"],"mappings":";;;;AAGA,MAAa,sBAAsB,KAAK,YAAY;CACnD,OAAO,EACN,MAAM,0BACN;CACD,UAAU;AACT,SAAO,EACN,QAAQ,CACP,YAAY;GACX,YAAY,CACX;IACC,SAAS,CAAC,+BAA+B;IACzC,OAAO,CAAC,UAAU;IAClB,CACD;GACD,SAAS,CACR;IACC,QAAQ;IACR,WAAW;IACX,OAAO;IACP,CACD;GACD,CAAC,CACF,EACD;;CAEF,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as bingo_stratum10 from "bingo-stratum";
|
|
2
2
|
|
|
3
3
|
//#region src/blocks/blockESLintMoreStyling.d.ts
|
|
4
4
|
declare const stylisticComment = "Stylistic concerns that don't interfere with Prettier";
|
|
5
|
-
declare const blockESLintMoreStyling:
|
|
5
|
+
declare const blockESLintMoreStyling: bingo_stratum10.BlockWithoutAddons<{
|
|
6
6
|
access: "public" | "restricted";
|
|
7
7
|
description: string;
|
|
8
8
|
directory: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockESLintMoreStyling.d.ts","names":[],"sources":["../../src/blocks/blockESLintMoreStyling.ts"],"sourcesContent":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"blockESLintMoreStyling.d.ts","names":[],"sources":["../../src/blocks/blockESLintMoreStyling.ts"],"sourcesContent":[],"mappings":";;;cAIa,gBAAA;cAGA,wCAAsB;;EAHtB,WAAA,EAAA,MAAgB;EAGhB,SAAA,EAAA,MAAA;;;;;;;;;;EAAsB,KAAA,EAAA"}
|
|
@@ -1,23 +1,27 @@
|
|
|
1
1
|
import { base } from "../base.js";
|
|
2
|
+
import { getScriptFileExtension } from "./eslint/getScriptFileExtension.js";
|
|
2
3
|
import { blockESLint } from "./blockESLint.js";
|
|
3
4
|
|
|
4
5
|
//#region src/blocks/blockESLintMoreStyling.ts
|
|
5
6
|
const stylisticComment = "Stylistic concerns that don't interfere with Prettier";
|
|
6
7
|
const blockESLintMoreStyling = base.createBlock({
|
|
7
8
|
about: { name: "ESLint More Styling" },
|
|
8
|
-
produce() {
|
|
9
|
-
return { addons: [blockESLint({
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
9
|
+
produce({ options }) {
|
|
10
|
+
return { addons: [blockESLint({ extensions: [{
|
|
11
|
+
files: [getScriptFileExtension(options)],
|
|
12
|
+
rules: [{
|
|
13
|
+
comment: stylisticComment,
|
|
14
|
+
entries: {
|
|
15
|
+
"logical-assignment-operators": [
|
|
16
|
+
"error",
|
|
17
|
+
"always",
|
|
18
|
+
{ enforceForIfStatements: true }
|
|
19
|
+
],
|
|
20
|
+
"no-useless-rename": "error",
|
|
21
|
+
"object-shorthand": "error",
|
|
22
|
+
"operator-assignment": "error"
|
|
23
|
+
}
|
|
24
|
+
}]
|
|
21
25
|
}] })] };
|
|
22
26
|
}
|
|
23
27
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockESLintMoreStyling.js","names":[],"sources":["../../src/blocks/blockESLintMoreStyling.ts"],"sourcesContent":["import { base } from \"../base.js\";\nimport { blockESLint } from \"./blockESLint.js\";\n\nexport const stylisticComment =\n\t\"Stylistic concerns that don't interfere with Prettier\";\n\nexport const blockESLintMoreStyling = base.createBlock({\n\tabout: {\n\t\tname: \"ESLint More Styling\",\n\t},\n\tproduce() {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockESLint({\n\t\t\t\t\trules: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcomment: stylisticComment,\n\t\t\t\t\t\t\tentries: {\n\t\t\t\t\t\t\t\t\"logical-assignment-operators\": [\n\t\t\t\t\t\t\t\t\t\"error\",\n\t\t\t\t\t\t\t\t\t\"always\",\n\t\t\t\t\t\t\t\t\t{ enforceForIfStatements: true },\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\"no-useless-rename\": \"error\",\n\t\t\t\t\t\t\t\t\"object-shorthand\": \"error\",\n\t\t\t\t\t\t\t\t\"operator-assignment\": \"error\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\t},\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"blockESLintMoreStyling.js","names":[],"sources":["../../src/blocks/blockESLintMoreStyling.ts"],"sourcesContent":["import { base } from \"../base.js\";\nimport { blockESLint } from \"./blockESLint.js\";\nimport { getScriptFileExtension } from \"./eslint/getScriptFileExtension.js\";\n\nexport const stylisticComment =\n\t\"Stylistic concerns that don't interfere with Prettier\";\n\nexport const blockESLintMoreStyling = base.createBlock({\n\tabout: {\n\t\tname: \"ESLint More Styling\",\n\t},\n\tproduce({ options }) {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockESLint({\n\t\t\t\t\textensions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfiles: [getScriptFileExtension(options)],\n\t\t\t\t\t\t\trules: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcomment: stylisticComment,\n\t\t\t\t\t\t\t\t\tentries: {\n\t\t\t\t\t\t\t\t\t\t\"logical-assignment-operators\": [\n\t\t\t\t\t\t\t\t\t\t\t\"error\",\n\t\t\t\t\t\t\t\t\t\t\t\"always\",\n\t\t\t\t\t\t\t\t\t\t\t{ enforceForIfStatements: true },\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\"no-useless-rename\": \"error\",\n\t\t\t\t\t\t\t\t\t\t\"object-shorthand\": \"error\",\n\t\t\t\t\t\t\t\t\t\t\"operator-assignment\": \"error\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\t},\n});\n"],"mappings":";;;;;AAIA,MAAa,mBACZ;AAED,MAAa,yBAAyB,KAAK,YAAY;CACtD,OAAO,EACN,MAAM,uBACN;CACD,QAAQ,EAAE,WAAW;AACpB,SAAO,EACN,QAAQ,CACP,YAAY,EACX,YAAY,CACX;GACC,OAAO,CAAC,uBAAuB,QAAQ,CAAC;GACxC,OAAO,CACN;IACC,SAAS;IACT,SAAS;KACR,gCAAgC;MAC/B;MACA;MACA,EAAE,wBAAwB,MAAM;MAChC;KACD,qBAAqB;KACrB,oBAAoB;KACpB,uBAAuB;KACvB;IACD,CACD;GACD,CACD,EACD,CAAC,CACF,EACD;;CAEF,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as bingo_stratum11 from "bingo-stratum";
|
|
2
2
|
|
|
3
3
|
//#region src/blocks/blockESLintNode.d.ts
|
|
4
|
-
declare const blockESLintNode:
|
|
4
|
+
declare const blockESLintNode: bingo_stratum11.BlockWithoutAddons<{
|
|
5
5
|
access: "public" | "restricted";
|
|
6
6
|
description: string;
|
|
7
7
|
directory: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockESLintNode.d.ts","names":[],"sources":["../../src/blocks/blockESLintNode.ts"],"sourcesContent":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"blockESLintNode.d.ts","names":[],"sources":["../../src/blocks/blockESLintNode.ts"],"sourcesContent":[],"mappings":";;;cAIa,iCAAe;;;EAAf,SAAA,EAAA,MAAA;;;;;;;;;;EAAe,KAAA,EAAA"}
|