@skapxd/eslint-opinionated 0.1.0 → 0.1.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/README.md +5 -1
- package/dist/astro/index.d.mts +21 -0
- package/dist/astro/index.d.ts +21 -0
- package/dist/astro/index.js +33 -1
- package/dist/astro/index.js.map +1 -1
- package/dist/astro/index.mjs +2 -2
- package/dist/{chunk-CQKEQ32W.mjs → chunk-DITFYRKS.mjs} +17 -1
- package/dist/chunk-DITFYRKS.mjs.map +1 -0
- package/dist/{chunk-3FB4H7N6.mjs → chunk-LJBYVPVK.mjs} +14 -3
- package/dist/chunk-LJBYVPVK.mjs.map +1 -0
- package/dist/{chunk-BAHAXSWA.mjs → chunk-XGWQ7UQ4.mjs} +6 -2
- package/dist/chunk-XGWQ7UQ4.mjs.map +1 -0
- package/dist/cli.js +15 -10
- package/dist/cli.js.map +1 -1
- package/dist/cli.mjs +15 -10
- package/dist/cli.mjs.map +1 -1
- package/dist/index.js +30 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4 -4
- package/dist/index.mjs.map +1 -1
- package/dist/next/index.d.mts +9 -2
- package/dist/next/index.d.ts +9 -2
- package/dist/next/index.js +25 -0
- package/dist/next/index.js.map +1 -1
- package/dist/next/index.mjs +2 -2
- package/dist/shared/index.d.mts +11 -0
- package/dist/shared/index.d.ts +11 -0
- package/dist/shared/index.js +15 -0
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/index.mjs +1 -1
- package/package.json +1 -1
- package/dist/chunk-3FB4H7N6.mjs.map +0 -1
- package/dist/chunk-BAHAXSWA.mjs.map +0 -1
- package/dist/chunk-CQKEQ32W.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -257,7 +257,7 @@ completo**, también dispara las reglas estructurales (p. ej.
|
|
|
257
257
|
src/
|
|
258
258
|
├── shared/
|
|
259
259
|
│ ├── rules.ts
|
|
260
|
-
│ ├── configs
|
|
260
|
+
│ ├── configs/
|
|
261
261
|
│ └── index.ts
|
|
262
262
|
├── next/
|
|
263
263
|
│ ├── configs.ts
|
|
@@ -379,6 +379,10 @@ export default [
|
|
|
379
379
|
];
|
|
380
380
|
```
|
|
381
381
|
|
|
382
|
+
> Para los archivos `.astro` el preset no impone parser: necesitas tener
|
|
383
|
+
> `eslint-plugin-astro` configurado (su preset recomendado ya lo aporta).
|
|
384
|
+
> Los `.ts/.tsx` sí traen el parser de `typescript-eslint` incluido.
|
|
385
|
+
|
|
382
386
|
También puedes importar solo el factory de Astro:
|
|
383
387
|
|
|
384
388
|
```js
|
package/dist/astro/index.d.mts
CHANGED
|
@@ -1,4 +1,24 @@
|
|
|
1
|
+
import * as typescript_eslint from 'typescript-eslint';
|
|
2
|
+
|
|
1
3
|
declare function createAstroConfigs(pluginReference: unknown): ({
|
|
4
|
+
files: string[];
|
|
5
|
+
languageOptions: {
|
|
6
|
+
parser: typescript_eslint.CompatibleParser;
|
|
7
|
+
};
|
|
8
|
+
name: string;
|
|
9
|
+
plugins: {
|
|
10
|
+
skapxd: unknown;
|
|
11
|
+
};
|
|
12
|
+
rules: {
|
|
13
|
+
"skapxd/no-ad-hoc-ok-result": string;
|
|
14
|
+
"skapxd/no-deep-relative-imports": string;
|
|
15
|
+
"skapxd/no-promise-chain": string;
|
|
16
|
+
"skapxd/no-try-catch": string;
|
|
17
|
+
"skapxd/one-root-function-per-file": string;
|
|
18
|
+
"skapxd/prefer-ts-pattern": string;
|
|
19
|
+
"skapxd/result-error-requires-cause": string;
|
|
20
|
+
};
|
|
21
|
+
} | {
|
|
2
22
|
files: string[];
|
|
3
23
|
name: string;
|
|
4
24
|
plugins: {
|
|
@@ -17,6 +37,7 @@ declare function createAstroConfigs(pluginReference: unknown): ({
|
|
|
17
37
|
} | {
|
|
18
38
|
files: string[];
|
|
19
39
|
languageOptions: {
|
|
40
|
+
parser: typescript_eslint.CompatibleParser;
|
|
20
41
|
parserOptions: {
|
|
21
42
|
projectService: boolean;
|
|
22
43
|
};
|
package/dist/astro/index.d.ts
CHANGED
|
@@ -1,4 +1,24 @@
|
|
|
1
|
+
import * as typescript_eslint from 'typescript-eslint';
|
|
2
|
+
|
|
1
3
|
declare function createAstroConfigs(pluginReference: unknown): ({
|
|
4
|
+
files: string[];
|
|
5
|
+
languageOptions: {
|
|
6
|
+
parser: typescript_eslint.CompatibleParser;
|
|
7
|
+
};
|
|
8
|
+
name: string;
|
|
9
|
+
plugins: {
|
|
10
|
+
skapxd: unknown;
|
|
11
|
+
};
|
|
12
|
+
rules: {
|
|
13
|
+
"skapxd/no-ad-hoc-ok-result": string;
|
|
14
|
+
"skapxd/no-deep-relative-imports": string;
|
|
15
|
+
"skapxd/no-promise-chain": string;
|
|
16
|
+
"skapxd/no-try-catch": string;
|
|
17
|
+
"skapxd/one-root-function-per-file": string;
|
|
18
|
+
"skapxd/prefer-ts-pattern": string;
|
|
19
|
+
"skapxd/result-error-requires-cause": string;
|
|
20
|
+
};
|
|
21
|
+
} | {
|
|
2
22
|
files: string[];
|
|
3
23
|
name: string;
|
|
4
24
|
plugins: {
|
|
@@ -17,6 +37,7 @@ declare function createAstroConfigs(pluginReference: unknown): ({
|
|
|
17
37
|
} | {
|
|
18
38
|
files: string[];
|
|
19
39
|
languageOptions: {
|
|
40
|
+
parser: typescript_eslint.CompatibleParser;
|
|
20
41
|
parserOptions: {
|
|
21
42
|
projectService: boolean;
|
|
22
43
|
};
|
package/dist/astro/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
5
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
8
|
var __export = (target, all) => {
|
|
7
9
|
for (var name in all)
|
|
@@ -15,6 +17,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
17
|
}
|
|
16
18
|
return to;
|
|
17
19
|
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
18
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
29
|
|
|
20
30
|
// src/astro/index.ts
|
|
@@ -35,9 +45,21 @@ var baseRules = {
|
|
|
35
45
|
"skapxd/result-error-requires-cause": "error"
|
|
36
46
|
};
|
|
37
47
|
|
|
48
|
+
// src/shared/configs/create-base-language-options.ts
|
|
49
|
+
var import_typescript_eslint = __toESM(require("typescript-eslint"));
|
|
50
|
+
function createBaseLanguageOptions() {
|
|
51
|
+
return {
|
|
52
|
+
parser: import_typescript_eslint.default.parser
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
|
|
38
56
|
// src/shared/configs/create-typed-language-options.ts
|
|
57
|
+
var import_typescript_eslint2 = __toESM(require("typescript-eslint"));
|
|
39
58
|
function createTypedLanguageOptions() {
|
|
40
59
|
return {
|
|
60
|
+
// Sin el parser explícito, un consumidor que use solo estos presets
|
|
61
|
+
// obtiene "Parsing error" en cada archivo TS (espree no parsea TS).
|
|
62
|
+
parser: import_typescript_eslint2.default.parser,
|
|
41
63
|
parserOptions: {
|
|
42
64
|
projectService: true
|
|
43
65
|
}
|
|
@@ -46,14 +68,24 @@ function createTypedLanguageOptions() {
|
|
|
46
68
|
|
|
47
69
|
// src/astro/configs.ts
|
|
48
70
|
function createAstroConfigs(pluginReference) {
|
|
71
|
+
const baseLanguageOptions = createBaseLanguageOptions();
|
|
49
72
|
const typedLanguageOptions = createTypedLanguageOptions();
|
|
50
73
|
return [
|
|
51
74
|
{
|
|
52
|
-
files: ["src/**/*.{ts,tsx
|
|
75
|
+
files: ["src/**/*.{ts,tsx}"],
|
|
76
|
+
languageOptions: baseLanguageOptions,
|
|
53
77
|
name: "skapxd/astro/base",
|
|
54
78
|
plugins: { skapxd: pluginReference },
|
|
55
79
|
rules: baseRules
|
|
56
80
|
},
|
|
81
|
+
// Los .astro no llevan parser propio: lo aporta eslint-plugin-astro,
|
|
82
|
+
// que el consumidor debe tener configurado.
|
|
83
|
+
{
|
|
84
|
+
files: ["src/**/*.astro"],
|
|
85
|
+
name: "skapxd/astro/astro-files",
|
|
86
|
+
plugins: { skapxd: pluginReference },
|
|
87
|
+
rules: baseRules
|
|
88
|
+
},
|
|
57
89
|
{
|
|
58
90
|
files: ["src/**/*.{ts,tsx}"],
|
|
59
91
|
languageOptions: typedLanguageOptions,
|
package/dist/astro/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/astro/index.ts","../../src/shared/configs/base-rules.ts","../../src/shared/configs/create-typed-language-options.ts","../../src/astro/configs.ts"],"sourcesContent":["export { createAstroConfigs } from \"./configs\";\n","export const baseRules = {\n \"skapxd/no-ad-hoc-ok-result\": \"warn\",\n \"skapxd/no-deep-relative-imports\": \"warn\",\n \"skapxd/no-promise-chain\": \"error\",\n \"skapxd/no-try-catch\": \"error\",\n \"skapxd/one-root-function-per-file\": \"error\",\n \"skapxd/prefer-ts-pattern\": \"error\",\n \"skapxd/result-error-requires-cause\": \"error\",\n};\n","
|
|
1
|
+
{"version":3,"sources":["../../src/astro/index.ts","../../src/shared/configs/base-rules.ts","../../src/shared/configs/create-base-language-options.ts","../../src/shared/configs/create-typed-language-options.ts","../../src/astro/configs.ts"],"sourcesContent":["export { createAstroConfigs } from \"./configs\";\n","export const baseRules = {\n \"skapxd/no-ad-hoc-ok-result\": \"warn\",\n \"skapxd/no-deep-relative-imports\": \"warn\",\n \"skapxd/no-promise-chain\": \"error\",\n \"skapxd/no-try-catch\": \"error\",\n \"skapxd/one-root-function-per-file\": \"error\",\n \"skapxd/prefer-ts-pattern\": \"error\",\n \"skapxd/result-error-requires-cause\": \"error\",\n};\n","import tseslint from \"typescript-eslint\";\n\n// Variante sin type-checking: solo el parser, para presets que aplican a TS\n// pero no necesitan projectService (base, package, next/base, next/react).\nexport function createBaseLanguageOptions() {\n return {\n parser: tseslint.parser,\n };\n}\n","import tseslint from \"typescript-eslint\";\n\nexport function createTypedLanguageOptions() {\n return {\n // Sin el parser explícito, un consumidor que use solo estos presets\n // obtiene \"Parsing error\" en cada archivo TS (espree no parsea TS).\n parser: tseslint.parser,\n parserOptions: {\n projectService: true,\n },\n };\n}\n","import {\n baseRules,\n createBaseLanguageOptions,\n createTypedLanguageOptions,\n} from \"#/shared/configs\";\n\nexport function createAstroConfigs(pluginReference: unknown) {\n const baseLanguageOptions = createBaseLanguageOptions();\n const typedLanguageOptions = createTypedLanguageOptions();\n\n return [\n {\n files: [\"src/**/*.{ts,tsx}\"],\n languageOptions: baseLanguageOptions,\n name: \"skapxd/astro/base\",\n plugins: { skapxd: pluginReference },\n rules: baseRules,\n },\n // Los .astro no llevan parser propio: lo aporta eslint-plugin-astro,\n // que el consumidor debe tener configurado.\n {\n files: [\"src/**/*.astro\"],\n name: \"skapxd/astro/astro-files\",\n plugins: { skapxd: pluginReference },\n rules: baseRules,\n },\n {\n files: [\"src/**/*.{ts,tsx}\"],\n languageOptions: typedLanguageOptions,\n name: \"skapxd/astro/typescript\",\n plugins: { skapxd: pluginReference },\n rules: {\n \"skapxd/result-error-requires-cause\": \"error\",\n },\n },\n ];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAO,IAAM,YAAY;AAAA,EACvB,8BAA8B;AAAA,EAC9B,mCAAmC;AAAA,EACnC,2BAA2B;AAAA,EAC3B,uBAAuB;AAAA,EACvB,qCAAqC;AAAA,EACrC,4BAA4B;AAAA,EAC5B,sCAAsC;AACxC;;;ACRA,+BAAqB;AAId,SAAS,4BAA4B;AAC1C,SAAO;AAAA,IACL,QAAQ,yBAAAA,QAAS;AAAA,EACnB;AACF;;;ACRA,IAAAC,4BAAqB;AAEd,SAAS,6BAA6B;AAC3C,SAAO;AAAA;AAAA;AAAA,IAGL,QAAQ,0BAAAC,QAAS;AAAA,IACjB,eAAe;AAAA,MACb,gBAAgB;AAAA,IAClB;AAAA,EACF;AACF;;;ACLO,SAAS,mBAAmB,iBAA0B;AAC3D,QAAM,sBAAsB,0BAA0B;AACtD,QAAM,uBAAuB,2BAA2B;AAExD,SAAO;AAAA,IACL;AAAA,MACE,OAAO,CAAC,mBAAmB;AAAA,MAC3B,iBAAiB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS,EAAE,QAAQ,gBAAgB;AAAA,MACnC,OAAO;AAAA,IACT;AAAA;AAAA;AAAA,IAGA;AAAA,MACE,OAAO,CAAC,gBAAgB;AAAA,MACxB,MAAM;AAAA,MACN,SAAS,EAAE,QAAQ,gBAAgB;AAAA,MACnC,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO,CAAC,mBAAmB;AAAA,MAC3B,iBAAiB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS,EAAE,QAAQ,gBAAgB;AAAA,MACnC,OAAO;AAAA,QACL,sCAAsC;AAAA,MACxC;AAAA,IACF;AAAA,EACF;AACF;","names":["tseslint","import_typescript_eslint","tseslint"]}
|
package/dist/astro/index.mjs
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
// src/shared/configs/create-typed-language-options.ts
|
|
2
|
+
import tseslint from "typescript-eslint";
|
|
2
3
|
function createTypedLanguageOptions() {
|
|
3
4
|
return {
|
|
5
|
+
// Sin el parser explícito, un consumidor que use solo estos presets
|
|
6
|
+
// obtiene "Parsing error" en cada archivo TS (espree no parsea TS).
|
|
7
|
+
parser: tseslint.parser,
|
|
4
8
|
parserOptions: {
|
|
5
9
|
projectService: true
|
|
6
10
|
}
|
|
@@ -18,8 +22,17 @@ var baseRules = {
|
|
|
18
22
|
"skapxd/result-error-requires-cause": "error"
|
|
19
23
|
};
|
|
20
24
|
|
|
25
|
+
// src/shared/configs/create-base-language-options.ts
|
|
26
|
+
import tseslint2 from "typescript-eslint";
|
|
27
|
+
function createBaseLanguageOptions() {
|
|
28
|
+
return {
|
|
29
|
+
parser: tseslint2.parser
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
|
|
21
33
|
// src/shared/configs/create-shared-configs.ts
|
|
22
34
|
function createSharedConfigs(pluginReference) {
|
|
35
|
+
const baseLanguageOptions = createBaseLanguageOptions();
|
|
23
36
|
const typedLanguageOptions = createTypedLanguageOptions();
|
|
24
37
|
return {
|
|
25
38
|
backend: {
|
|
@@ -38,6 +51,7 @@ function createSharedConfigs(pluginReference) {
|
|
|
38
51
|
}
|
|
39
52
|
},
|
|
40
53
|
base: {
|
|
54
|
+
languageOptions: baseLanguageOptions,
|
|
41
55
|
name: "skapxd/shared/base",
|
|
42
56
|
plugins: { skapxd: pluginReference },
|
|
43
57
|
rules: baseRules
|
|
@@ -73,6 +87,7 @@ function createSharedConfigs(pluginReference) {
|
|
|
73
87
|
}
|
|
74
88
|
},
|
|
75
89
|
package: {
|
|
90
|
+
languageOptions: baseLanguageOptions,
|
|
76
91
|
name: "skapxd/shared/package",
|
|
77
92
|
plugins: { skapxd: pluginReference },
|
|
78
93
|
rules: {
|
|
@@ -92,8 +107,9 @@ var strictConfig = {
|
|
|
92
107
|
|
|
93
108
|
export {
|
|
94
109
|
baseRules,
|
|
110
|
+
createBaseLanguageOptions,
|
|
95
111
|
createTypedLanguageOptions,
|
|
96
112
|
createSharedConfigs,
|
|
97
113
|
strictConfig
|
|
98
114
|
};
|
|
99
|
-
//# sourceMappingURL=chunk-
|
|
115
|
+
//# sourceMappingURL=chunk-DITFYRKS.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/shared/configs/create-typed-language-options.ts","../src/shared/configs/base-rules.ts","../src/shared/configs/create-base-language-options.ts","../src/shared/configs/create-shared-configs.ts","../src/shared/configs/strict-config.ts"],"sourcesContent":["import tseslint from \"typescript-eslint\";\n\nexport function createTypedLanguageOptions() {\n return {\n // Sin el parser explícito, un consumidor que use solo estos presets\n // obtiene \"Parsing error\" en cada archivo TS (espree no parsea TS).\n parser: tseslint.parser,\n parserOptions: {\n projectService: true,\n },\n };\n}\n","export const baseRules = {\n \"skapxd/no-ad-hoc-ok-result\": \"warn\",\n \"skapxd/no-deep-relative-imports\": \"warn\",\n \"skapxd/no-promise-chain\": \"error\",\n \"skapxd/no-try-catch\": \"error\",\n \"skapxd/one-root-function-per-file\": \"error\",\n \"skapxd/prefer-ts-pattern\": \"error\",\n \"skapxd/result-error-requires-cause\": \"error\",\n};\n","import tseslint from \"typescript-eslint\";\n\n// Variante sin type-checking: solo el parser, para presets que aplican a TS\n// pero no necesitan projectService (base, package, next/base, next/react).\nexport function createBaseLanguageOptions() {\n return {\n parser: tseslint.parser,\n };\n}\n","import { baseRules } from \"./base-rules\";\nimport { createBaseLanguageOptions } from \"./create-base-language-options\";\nimport { createTypedLanguageOptions } from \"./create-typed-language-options\";\n\nexport function createSharedConfigs(pluginReference: unknown) {\n const baseLanguageOptions = createBaseLanguageOptions();\n const typedLanguageOptions = createTypedLanguageOptions();\n\n return {\n backend: {\n languageOptions: typedLanguageOptions,\n name: \"skapxd/shared/backend\",\n plugins: { skapxd: pluginReference },\n rules: {\n ...baseRules,\n \"skapxd/async-functions-return-result\": [\n \"error\",\n {\n checkMissingReturnType: true,\n resultTypeNames: [\"Result\", \"ResultValue\", \"SafeResult\"],\n },\n ],\n },\n },\n base: {\n languageOptions: baseLanguageOptions,\n name: \"skapxd/shared/base\",\n plugins: { skapxd: pluginReference },\n rules: baseRules,\n },\n frontend: {\n languageOptions: typedLanguageOptions,\n name: \"skapxd/shared/frontend\",\n plugins: { skapxd: pluginReference },\n rules: {\n ...baseRules,\n \"skapxd/jsx-return-name-pascal-case\": \"error\",\n \"skapxd/no-functions-inside-components\": \"error\",\n \"skapxd/no-jsx-ternary-null\": \"error\",\n \"skapxd/max-hook-size\": [\n \"warn\",\n {\n maxLines: 120,\n maxUseState: 1,\n },\n ],\n },\n },\n // Capa de servicios del front (peticiones, clientes de API): todo await\n // debe ir envuelto en trySafe de @skapxd/result. El consumidor puede\n // sobreescribir `files` si sus servicios viven en otra carpeta.\n frontendServices: {\n files: [\"**/services/**/*.{ts,tsx}\", \"**/api/**/*.{ts,tsx}\"],\n languageOptions: typedLanguageOptions,\n name: \"skapxd/shared/frontend-services\",\n plugins: { skapxd: pluginReference },\n rules: {\n \"skapxd/await-requires-try-safe\": \"error\",\n },\n },\n package: {\n languageOptions: baseLanguageOptions,\n name: \"skapxd/shared/package\",\n plugins: { skapxd: pluginReference },\n rules: {\n \"skapxd/one-root-function-per-file\": \"error\",\n },\n },\n };\n}\n","// Config endurecida: ignora TODOS los comentarios `eslint-disable` (y demás\n// directivas inline) en los archivos que cubre. Así ni una persona ni un agente\n// pueden saltarse una regla con `// eslint-disable-next-line`.\nexport const strictConfig = {\n linterOptions: {\n noInlineConfig: true,\n },\n name: \"skapxd/strict\",\n};\n"],"mappings":";AAAA,OAAO,cAAc;AAEd,SAAS,6BAA6B;AAC3C,SAAO;AAAA;AAAA;AAAA,IAGL,QAAQ,SAAS;AAAA,IACjB,eAAe;AAAA,MACb,gBAAgB;AAAA,IAClB;AAAA,EACF;AACF;;;ACXO,IAAM,YAAY;AAAA,EACvB,8BAA8B;AAAA,EAC9B,mCAAmC;AAAA,EACnC,2BAA2B;AAAA,EAC3B,uBAAuB;AAAA,EACvB,qCAAqC;AAAA,EACrC,4BAA4B;AAAA,EAC5B,sCAAsC;AACxC;;;ACRA,OAAOA,eAAc;AAId,SAAS,4BAA4B;AAC1C,SAAO;AAAA,IACL,QAAQA,UAAS;AAAA,EACnB;AACF;;;ACJO,SAAS,oBAAoB,iBAA0B;AAC5D,QAAM,sBAAsB,0BAA0B;AACtD,QAAM,uBAAuB,2BAA2B;AAExD,SAAO;AAAA,IACL,SAAS;AAAA,MACP,iBAAiB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS,EAAE,QAAQ,gBAAgB;AAAA,MACnC,OAAO;AAAA,QACL,GAAG;AAAA,QACH,wCAAwC;AAAA,UACtC;AAAA,UACA;AAAA,YACE,wBAAwB;AAAA,YACxB,iBAAiB,CAAC,UAAU,eAAe,YAAY;AAAA,UACzD;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,MAAM;AAAA,MACJ,iBAAiB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS,EAAE,QAAQ,gBAAgB;AAAA,MACnC,OAAO;AAAA,IACT;AAAA,IACA,UAAU;AAAA,MACR,iBAAiB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS,EAAE,QAAQ,gBAAgB;AAAA,MACnC,OAAO;AAAA,QACL,GAAG;AAAA,QACH,sCAAsC;AAAA,QACtC,yCAAyC;AAAA,QACzC,8BAA8B;AAAA,QAC9B,wBAAwB;AAAA,UACtB;AAAA,UACA;AAAA,YACE,UAAU;AAAA,YACV,aAAa;AAAA,UACf;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAIA,kBAAkB;AAAA,MAChB,OAAO,CAAC,6BAA6B,sBAAsB;AAAA,MAC3D,iBAAiB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS,EAAE,QAAQ,gBAAgB;AAAA,MACnC,OAAO;AAAA,QACL,kCAAkC;AAAA,MACpC;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,iBAAiB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS,EAAE,QAAQ,gBAAgB;AAAA,MACnC,OAAO;AAAA,QACL,qCAAqC;AAAA,MACvC;AAAA,IACF;AAAA,EACF;AACF;;;AClEO,IAAM,eAAe;AAAA,EAC1B,eAAe;AAAA,IACb,gBAAgB;AAAA,EAClB;AAAA,EACA,MAAM;AACR;","names":["tseslint"]}
|
|
@@ -1,18 +1,29 @@
|
|
|
1
1
|
import {
|
|
2
2
|
baseRules,
|
|
3
|
+
createBaseLanguageOptions,
|
|
3
4
|
createTypedLanguageOptions
|
|
4
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-DITFYRKS.mjs";
|
|
5
6
|
|
|
6
7
|
// src/astro/configs.ts
|
|
7
8
|
function createAstroConfigs(pluginReference) {
|
|
9
|
+
const baseLanguageOptions = createBaseLanguageOptions();
|
|
8
10
|
const typedLanguageOptions = createTypedLanguageOptions();
|
|
9
11
|
return [
|
|
10
12
|
{
|
|
11
|
-
files: ["src/**/*.{ts,tsx
|
|
13
|
+
files: ["src/**/*.{ts,tsx}"],
|
|
14
|
+
languageOptions: baseLanguageOptions,
|
|
12
15
|
name: "skapxd/astro/base",
|
|
13
16
|
plugins: { skapxd: pluginReference },
|
|
14
17
|
rules: baseRules
|
|
15
18
|
},
|
|
19
|
+
// Los .astro no llevan parser propio: lo aporta eslint-plugin-astro,
|
|
20
|
+
// que el consumidor debe tener configurado.
|
|
21
|
+
{
|
|
22
|
+
files: ["src/**/*.astro"],
|
|
23
|
+
name: "skapxd/astro/astro-files",
|
|
24
|
+
plugins: { skapxd: pluginReference },
|
|
25
|
+
rules: baseRules
|
|
26
|
+
},
|
|
16
27
|
{
|
|
17
28
|
files: ["src/**/*.{ts,tsx}"],
|
|
18
29
|
languageOptions: typedLanguageOptions,
|
|
@@ -28,4 +39,4 @@ function createAstroConfigs(pluginReference) {
|
|
|
28
39
|
export {
|
|
29
40
|
createAstroConfigs
|
|
30
41
|
};
|
|
31
|
-
//# sourceMappingURL=chunk-
|
|
42
|
+
//# sourceMappingURL=chunk-LJBYVPVK.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/astro/configs.ts"],"sourcesContent":["import {\n baseRules,\n createBaseLanguageOptions,\n createTypedLanguageOptions,\n} from \"#/shared/configs\";\n\nexport function createAstroConfigs(pluginReference: unknown) {\n const baseLanguageOptions = createBaseLanguageOptions();\n const typedLanguageOptions = createTypedLanguageOptions();\n\n return [\n {\n files: [\"src/**/*.{ts,tsx}\"],\n languageOptions: baseLanguageOptions,\n name: \"skapxd/astro/base\",\n plugins: { skapxd: pluginReference },\n rules: baseRules,\n },\n // Los .astro no llevan parser propio: lo aporta eslint-plugin-astro,\n // que el consumidor debe tener configurado.\n {\n files: [\"src/**/*.astro\"],\n name: \"skapxd/astro/astro-files\",\n plugins: { skapxd: pluginReference },\n rules: baseRules,\n },\n {\n files: [\"src/**/*.{ts,tsx}\"],\n languageOptions: typedLanguageOptions,\n name: \"skapxd/astro/typescript\",\n plugins: { skapxd: pluginReference },\n rules: {\n \"skapxd/result-error-requires-cause\": \"error\",\n },\n },\n ];\n}\n"],"mappings":";;;;;;;AAMO,SAAS,mBAAmB,iBAA0B;AAC3D,QAAM,sBAAsB,0BAA0B;AACtD,QAAM,uBAAuB,2BAA2B;AAExD,SAAO;AAAA,IACL;AAAA,MACE,OAAO,CAAC,mBAAmB;AAAA,MAC3B,iBAAiB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS,EAAE,QAAQ,gBAAgB;AAAA,MACnC,OAAO;AAAA,IACT;AAAA;AAAA;AAAA,IAGA;AAAA,MACE,OAAO,CAAC,gBAAgB;AAAA,MACxB,MAAM;AAAA,MACN,SAAS,EAAE,QAAQ,gBAAgB;AAAA,MACnC,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO,CAAC,mBAAmB;AAAA,MAC3B,iBAAiB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS,EAAE,QAAQ,gBAAgB;AAAA,MACnC,OAAO;AAAA,QACL,sCAAsC;AAAA,MACxC;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
baseRules,
|
|
3
|
+
createBaseLanguageOptions,
|
|
3
4
|
createTypedLanguageOptions
|
|
4
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-DITFYRKS.mjs";
|
|
5
6
|
|
|
6
7
|
// src/next/configs.ts
|
|
7
8
|
function createNextConfigs(pluginReference) {
|
|
9
|
+
const baseLanguageOptions = createBaseLanguageOptions();
|
|
8
10
|
const typedLanguageOptions = createTypedLanguageOptions();
|
|
9
11
|
return [
|
|
10
12
|
{
|
|
13
|
+
languageOptions: baseLanguageOptions,
|
|
11
14
|
name: "skapxd/next/base",
|
|
12
15
|
plugins: { skapxd: pluginReference },
|
|
13
16
|
rules: baseRules
|
|
@@ -38,6 +41,7 @@ function createNextConfigs(pluginReference) {
|
|
|
38
41
|
},
|
|
39
42
|
{
|
|
40
43
|
files: ["**/*.tsx"],
|
|
44
|
+
languageOptions: baseLanguageOptions,
|
|
41
45
|
name: "skapxd/next/react",
|
|
42
46
|
plugins: { skapxd: pluginReference },
|
|
43
47
|
rules: {
|
|
@@ -59,4 +63,4 @@ function createNextConfigs(pluginReference) {
|
|
|
59
63
|
export {
|
|
60
64
|
createNextConfigs
|
|
61
65
|
};
|
|
62
|
-
//# sourceMappingURL=chunk-
|
|
66
|
+
//# sourceMappingURL=chunk-XGWQ7UQ4.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/next/configs.ts"],"sourcesContent":["import {\n baseRules,\n createBaseLanguageOptions,\n createTypedLanguageOptions,\n} from \"#/shared/configs\";\n\nexport function createNextConfigs(pluginReference: unknown) {\n const baseLanguageOptions = createBaseLanguageOptions();\n const typedLanguageOptions = createTypedLanguageOptions();\n\n return [\n {\n languageOptions: baseLanguageOptions,\n name: \"skapxd/next/base\",\n plugins: { skapxd: pluginReference },\n rules: baseRules,\n },\n {\n files: [\"src/app/api/**/*.{ts,tsx}\", \"src/server/**/*.{ts,tsx}\"],\n languageOptions: typedLanguageOptions,\n name: \"skapxd/next/server\",\n plugins: { skapxd: pluginReference },\n rules: {\n ...baseRules,\n \"skapxd/async-functions-return-result\": [\n \"error\",\n {\n allowFilePatterns: [\n \"/(route|page|layout|template|loading|error|not-found)\\\\.tsx?$\",\n ],\n allowNamePatterns: [\n \"^(GET|POST|PUT|PATCH|DELETE|HEAD|OPTIONS)$\",\n \"^handle(Get|Post|Put|Patch|Delete|Head|Options)$\",\n \"^start$\",\n ],\n checkMissingReturnType: true,\n resultTypeNames: [\"Result\", \"ResultValue\", \"SafeResult\"],\n },\n ],\n },\n },\n {\n files: [\"**/*.tsx\"],\n languageOptions: baseLanguageOptions,\n name: \"skapxd/next/react\",\n plugins: { skapxd: pluginReference },\n rules: {\n \"skapxd/jsx-return-name-pascal-case\": \"error\",\n \"skapxd/no-functions-inside-components\": \"error\",\n \"skapxd/no-jsx-ternary-null\": \"error\",\n \"skapxd/max-hook-size\": [\n \"warn\",\n {\n maxLines: 120,\n maxUseState: 1,\n },\n ],\n },\n },\n ];\n}\n"],"mappings":";;;;;;;AAMO,SAAS,kBAAkB,iBAA0B;AAC1D,QAAM,sBAAsB,0BAA0B;AACtD,QAAM,uBAAuB,2BAA2B;AAExD,SAAO;AAAA,IACL;AAAA,MACE,iBAAiB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS,EAAE,QAAQ,gBAAgB;AAAA,MACnC,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO,CAAC,6BAA6B,0BAA0B;AAAA,MAC/D,iBAAiB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS,EAAE,QAAQ,gBAAgB;AAAA,MACnC,OAAO;AAAA,QACL,GAAG;AAAA,QACH,wCAAwC;AAAA,UACtC;AAAA,UACA;AAAA,YACE,mBAAmB;AAAA,cACjB;AAAA,YACF;AAAA,YACA,mBAAmB;AAAA,cACjB;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA,wBAAwB;AAAA,YACxB,iBAAiB,CAAC,UAAU,eAAe,YAAY;AAAA,UACzD;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,iBAAiB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS,EAAE,QAAQ,gBAAgB;AAAA,MACnC,OAAO;AAAA,QACL,sCAAsC;AAAA,QACtC,yCAAyC;AAAA,QACzC,8BAA8B;AAAA,QAC9B,wBAAwB;AAAA,UACtB;AAAA,UACA;AAAA,YACE,UAAU;AAAA,YACV,aAAa;AAAA,UACf;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|
package/dist/cli.js
CHANGED
|
@@ -25,6 +25,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
25
25
|
|
|
26
26
|
// src/cli.ts
|
|
27
27
|
var import_node_child_process2 = require("child_process");
|
|
28
|
+
var import_node_path2 = __toESM(require("path"));
|
|
28
29
|
var import_node_process2 = __toESM(require("process"));
|
|
29
30
|
var import_result = require("@skapxd/result");
|
|
30
31
|
|
|
@@ -3139,9 +3140,9 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
3139
3140
|
* @param {string} [path]
|
|
3140
3141
|
* @return {(string|null|Command)}
|
|
3141
3142
|
*/
|
|
3142
|
-
executableDir(
|
|
3143
|
-
if (
|
|
3144
|
-
this._executableDir =
|
|
3143
|
+
executableDir(path3) {
|
|
3144
|
+
if (path3 === void 0) return this._executableDir;
|
|
3145
|
+
this._executableDir = path3;
|
|
3145
3146
|
return this;
|
|
3146
3147
|
}
|
|
3147
3148
|
/**
|
|
@@ -3400,21 +3401,24 @@ var program = new Command();
|
|
|
3400
3401
|
var import_eslint = require("eslint");
|
|
3401
3402
|
var lintableFile = /\.(c|m)?[jt]sx?$/;
|
|
3402
3403
|
async function lintChanged(base) {
|
|
3403
|
-
function git(command) {
|
|
3404
|
+
function git(command, options = {}) {
|
|
3404
3405
|
const result = (0, import_result.trySafe)(
|
|
3405
|
-
() => (0, import_node_child_process2.execSync)(command, {
|
|
3406
|
+
() => (0, import_node_child_process2.execSync)(command, {
|
|
3407
|
+
encoding: "utf8",
|
|
3408
|
+
stdio: ["pipe", "pipe", "ignore"],
|
|
3409
|
+
...options
|
|
3410
|
+
})
|
|
3406
3411
|
);
|
|
3407
3412
|
return result.ok ? result.value : "";
|
|
3408
3413
|
}
|
|
3409
3414
|
function getChangedFiles() {
|
|
3415
|
+
const root = git("git rev-parse --show-toplevel").trim() || import_node_process2.default.cwd();
|
|
3410
3416
|
const range = base ? `${base}...HEAD` : "HEAD";
|
|
3411
3417
|
const changed = git(`git diff --name-only --diff-filter=ACMR ${range}`);
|
|
3412
|
-
const untracked = base ? "" : git("git ls-files --others --exclude-standard");
|
|
3418
|
+
const untracked = base ? "" : git("git ls-files --others --exclude-standard", { cwd: root });
|
|
3413
3419
|
const lines = `${changed}
|
|
3414
3420
|
${untracked}`.split("\n").map((line) => line.trim());
|
|
3415
|
-
return [...new Set(lines)].filter(
|
|
3416
|
-
(file) => file && lintableFile.test(file)
|
|
3417
|
-
);
|
|
3421
|
+
return [...new Set(lines)].filter((file) => file && lintableFile.test(file)).map((file) => import_node_path2.default.join(root, file));
|
|
3418
3422
|
}
|
|
3419
3423
|
const files = getChangedFiles();
|
|
3420
3424
|
if (files.length === 0) {
|
|
@@ -3423,12 +3427,13 @@ ${untracked}`.split("\n").map((line) => line.trim());
|
|
|
3423
3427
|
}
|
|
3424
3428
|
console.log(`skapxd-lint-changed: linteando ${files.length} archivo(s):`);
|
|
3425
3429
|
for (const file of files) {
|
|
3426
|
-
console.log(` \u2022 ${file}`);
|
|
3430
|
+
console.log(` \u2022 ${import_node_path2.default.relative(import_node_process2.default.cwd(), file)}`);
|
|
3427
3431
|
}
|
|
3428
3432
|
const eslint = new import_eslint.ESLint({ warnIgnored: false });
|
|
3429
3433
|
const lint = await (0, import_result.trySafe)(() => eslint.lintFiles(files));
|
|
3430
3434
|
if (!lint.ok) {
|
|
3431
3435
|
console.error("skapxd-lint-changed: ESLint fall\xF3 al ejecutarse.");
|
|
3436
|
+
console.error(lint.error);
|
|
3432
3437
|
import_node_process2.default.exitCode = 1;
|
|
3433
3438
|
return;
|
|
3434
3439
|
}
|