@deslop/coding-standards 0.1.1243 → 0.1.1245
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 -4
- package/dist/install.js +1 -1
- package/dist/lint.js +164 -9
- package/package.json +3 -3
- package/tsconfig.json +0 -184
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @deslop/coding-standards
|
|
2
2
|
|
|
3
|
-
A Vite+ lint preset, a strict TypeScript configuration
|
|
3
|
+
A Vite+ lint preset that runs the Effect rules and TypeScript diagnostics in Oxlint on tsrs, a strict TypeScript configuration, and the `lint-companion`, `pull-requests` and `review` skills for Claude Code and Codex.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
6
|
vpx @deslop/coding-standards@latest # installs the skills
|
|
@@ -20,13 +20,14 @@ export default defineConfig({lint: {extends: [lint]}})
|
|
|
20
20
|
// package.json
|
|
21
21
|
{
|
|
22
22
|
"scripts": {
|
|
23
|
-
"prepare": "effect-tsgo patch --no-typescript --tsrs",
|
|
24
|
-
"
|
|
25
|
-
"check": "vp check && vp run typecheck"
|
|
23
|
+
"prepare": "effect-tsgo patch --no-typescript --tsrs --oxlint",
|
|
24
|
+
"check": "effect-tsgo --tsrs-lint vp lint --type-aware --type-check"
|
|
26
25
|
}
|
|
27
26
|
}
|
|
28
27
|
```
|
|
29
28
|
|
|
29
|
+
The preset leaves type-aware lint and type checking off, so a syntax-only pass stays possible; the two flags turn them on, and `--tsrs-lint` runs them on tsrs instead of Oxlint's tsgolint backend.
|
|
30
|
+
|
|
30
31
|
```jsonc
|
|
31
32
|
// tsconfig.json
|
|
32
33
|
{"extends": "@deslop/coding-standards/tsconfig.json"}
|
package/dist/install.js
CHANGED
|
@@ -27604,7 +27604,7 @@ const runWith = (command, config) => {
|
|
|
27604
27604
|
}, ({ error, userMessage }) => andThen(showUserError(error, userMessage), fail$3(error))), catchFilter((e) => isQuitError(e) ? succeed$6(e) : fail$8(e), (_) => interrupt$1));
|
|
27605
27605
|
};
|
|
27606
27606
|
// package.json
|
|
27607
|
-
var version = "0.1.
|
|
27607
|
+
var version = "0.1.1245";
|
|
27608
27608
|
// src/install.ts
|
|
27609
27609
|
const cli = pipe(make("deslop-coding-standards", {}, fnUntraced(function* () {
|
|
27610
27610
|
const fs = yield* FileSystem;
|
package/dist/lint.js
CHANGED
|
@@ -2929,7 +2929,7 @@ const noPipeMethod = defineRule({
|
|
|
2929
2929
|
});
|
|
2930
2930
|
return;
|
|
2931
2931
|
}
|
|
2932
|
-
if (call.parent
|
|
2932
|
+
if (call.parent.type === "MemberExpression" && isNotNullish(call.parent.parent) && pipeCall(call.parent.parent)) {
|
|
2933
2933
|
context.report({
|
|
2934
2934
|
message: MESSAGE$5,
|
|
2935
2935
|
node
|
|
@@ -4146,12 +4146,7 @@ function skips(context, node) {
|
|
|
4146
4146
|
context,
|
|
4147
4147
|
node: chain.root,
|
|
4148
4148
|
source: TEST_RUNNERS
|
|
4149
|
-
}) ||
|
|
4150
|
-
"describe",
|
|
4151
|
-
"it",
|
|
4152
|
-
"suite",
|
|
4153
|
-
"test"
|
|
4154
|
-
], chain.root.name) || hasEffectMember(chain.members));
|
|
4149
|
+
}) || hasEffectMember(chain.members));
|
|
4155
4150
|
}));
|
|
4156
4151
|
}
|
|
4157
4152
|
const noSkippedTest = defineRule({
|
|
@@ -5299,12 +5294,15 @@ const lint = {
|
|
|
5299
5294
|
{
|
|
5300
5295
|
files: ["**/*.tsx"],
|
|
5301
5296
|
rules: {
|
|
5297
|
+
"effecttsgo/async-function": "off",
|
|
5302
5298
|
"eslint/require-await": "error",
|
|
5299
|
+
"typescript/strict-void-return": "off",
|
|
5303
5300
|
"unicorn/no-null": "off"
|
|
5304
5301
|
}
|
|
5305
5302
|
}
|
|
5306
5303
|
],
|
|
5307
5304
|
plugins: [
|
|
5305
|
+
"effecttsgo",
|
|
5308
5306
|
"eslint",
|
|
5309
5307
|
"typescript",
|
|
5310
5308
|
"oxc",
|
|
@@ -5316,6 +5314,123 @@ const lint = {
|
|
|
5316
5314
|
],
|
|
5317
5315
|
rules: {
|
|
5318
5316
|
...mapEntries(RULES, (_, name) => [`@deslop/coding-standards/${name}`, "error"]),
|
|
5317
|
+
"effecttsgo/any-unknown-in-error-context": "error",
|
|
5318
|
+
"effecttsgo/class-self-mismatch": "error",
|
|
5319
|
+
"effecttsgo/duplicate-package": "error",
|
|
5320
|
+
"effecttsgo/effect-fn-implicit-any": "error",
|
|
5321
|
+
"effecttsgo/error-payload-shadows-name": "error",
|
|
5322
|
+
"effecttsgo/floating-effect": "error",
|
|
5323
|
+
"effecttsgo/floating-effect-in-vitest": "error",
|
|
5324
|
+
"effecttsgo/missing-effect-context": "error",
|
|
5325
|
+
"effecttsgo/missing-effect-error": "error",
|
|
5326
|
+
"effecttsgo/missing-layer-context": "error",
|
|
5327
|
+
"effecttsgo/missing-return-yield-star": "error",
|
|
5328
|
+
"effecttsgo/missing-star-in-yield-effect-gen": "error",
|
|
5329
|
+
"effecttsgo/obsolete-match-import": "error",
|
|
5330
|
+
"effecttsgo/obsolete-schema-import": "error",
|
|
5331
|
+
"effecttsgo/outdated-api": "error",
|
|
5332
|
+
"effecttsgo/overridden-schema-constructor": "error",
|
|
5333
|
+
"effecttsgo/promise-in-effect-success": "error",
|
|
5334
|
+
"effecttsgo/schema-class-object-literal": "error",
|
|
5335
|
+
"effecttsgo/schema-literal-non-finite": "error",
|
|
5336
|
+
"effecttsgo/unsafe-effect-type-assertion": "error",
|
|
5337
|
+
"effecttsgo/catch-unfailable-effect": "error",
|
|
5338
|
+
"effecttsgo/effect-fn-iife": "error",
|
|
5339
|
+
"effecttsgo/effect-gen-uses-adapter": "error",
|
|
5340
|
+
"effecttsgo/effect-in-failure": "error",
|
|
5341
|
+
"effecttsgo/effect-in-void-success": "error",
|
|
5342
|
+
"effecttsgo/effect-try-without-catch": "error",
|
|
5343
|
+
"effecttsgo/global-error-in-effect-catch": "error",
|
|
5344
|
+
"effecttsgo/global-error-in-effect-failure": "error",
|
|
5345
|
+
"effecttsgo/layer-merge-all-with-dependencies": "error",
|
|
5346
|
+
"effecttsgo/lazy-effect": "error",
|
|
5347
|
+
"effecttsgo/lazy-promise-in-effect-sync": "error",
|
|
5348
|
+
"effecttsgo/leaking-requirements": "error",
|
|
5349
|
+
"effecttsgo/multiple-effect-provide": "error",
|
|
5350
|
+
"effecttsgo/return-effect-in-gen": "error",
|
|
5351
|
+
"effecttsgo/schema-sync-in-effect": "error",
|
|
5352
|
+
"effecttsgo/strict-effect-provide": "error",
|
|
5353
|
+
"effecttsgo/try-catch-in-effect-gen": "error",
|
|
5354
|
+
"effecttsgo/async-function": "error",
|
|
5355
|
+
"effecttsgo/global-console": "error",
|
|
5356
|
+
"effecttsgo/global-console-in-effect": "error",
|
|
5357
|
+
"effecttsgo/global-date": "error",
|
|
5358
|
+
"effecttsgo/global-date-in-effect": "error",
|
|
5359
|
+
"effecttsgo/global-fetch": "error",
|
|
5360
|
+
"effecttsgo/global-fetch-in-effect": "error",
|
|
5361
|
+
"effecttsgo/global-json": "error",
|
|
5362
|
+
"effecttsgo/global-json-in-effect": "error",
|
|
5363
|
+
"effecttsgo/global-random": "error",
|
|
5364
|
+
"effecttsgo/global-random-in-effect": "error",
|
|
5365
|
+
"effecttsgo/global-timers": "error",
|
|
5366
|
+
"effecttsgo/global-timers-in-effect": "error",
|
|
5367
|
+
"effecttsgo/instance-of-schema": "error",
|
|
5368
|
+
"effecttsgo/node-builtin-import": "error",
|
|
5369
|
+
"effecttsgo/prefer-effect-array": "error",
|
|
5370
|
+
"effecttsgo/prefer-effect-record": "error",
|
|
5371
|
+
"effecttsgo/prefer-effect-string": "error",
|
|
5372
|
+
"effecttsgo/process-env": "error",
|
|
5373
|
+
"effecttsgo/process-env-in-effect": "error",
|
|
5374
|
+
"effecttsgo/acquire-release-disposable": "error",
|
|
5375
|
+
"effecttsgo/all-of-map-to-for-each": "error",
|
|
5376
|
+
"effecttsgo/catch-all-tag-dispatch-to-catch-tag": "error",
|
|
5377
|
+
"effecttsgo/catch-all-to-map-error": "error",
|
|
5378
|
+
"effecttsgo/catch-chain-to-first-success-of": "error",
|
|
5379
|
+
"effecttsgo/catch-conditional-refail-to-catch-if": "error",
|
|
5380
|
+
"effecttsgo/catch-if-tag-to-catch-tag": "error",
|
|
5381
|
+
"effecttsgo/catch-refail-to-tap-error": "error",
|
|
5382
|
+
"effecttsgo/catch-tag-to-catch-reason": "error",
|
|
5383
|
+
"effecttsgo/catch-to-or-else-succeed": "error",
|
|
5384
|
+
"effecttsgo/deterministic-keys": "error",
|
|
5385
|
+
"effecttsgo/effect-do-notation": "error",
|
|
5386
|
+
"effecttsgo/effect-fn-opportunity": "error",
|
|
5387
|
+
"effecttsgo/effect-map-flatten": "error",
|
|
5388
|
+
"effecttsgo/effect-map-void": "error",
|
|
5389
|
+
"effecttsgo/effect-sleep-zero-to-yield-now": "error",
|
|
5390
|
+
"effecttsgo/effect-succeed-with-undefined": "error",
|
|
5391
|
+
"effecttsgo/effect-succeed-with-void": "error",
|
|
5392
|
+
"effecttsgo/fail-cause-to-constructor": "error",
|
|
5393
|
+
"effecttsgo/flat-map-conditional-to-filter-or-fail": "error",
|
|
5394
|
+
"effecttsgo/flat-map-identity-to-flatten": "error",
|
|
5395
|
+
"effecttsgo/flat-map-ignored-param-to-and-then": "error",
|
|
5396
|
+
"effecttsgo/flat-map-to-map": "error",
|
|
5397
|
+
"effecttsgo/flat-map-to-tap": "error",
|
|
5398
|
+
"effecttsgo/manual-metric-tap-to-track": "error",
|
|
5399
|
+
"effecttsgo/map-const-to-as": "error",
|
|
5400
|
+
"effecttsgo/map-map-error-to-map-both": "error",
|
|
5401
|
+
"effecttsgo/map-some-catch-no-such-element": "error",
|
|
5402
|
+
"effecttsgo/map-some-to-as-some": "error",
|
|
5403
|
+
"effecttsgo/match-boolean-to-is-success": "error",
|
|
5404
|
+
"effecttsgo/match-effect-to-map-both": "error",
|
|
5405
|
+
"effecttsgo/match-effect-to-match": "error",
|
|
5406
|
+
"effecttsgo/match-to-result-or-option": "error",
|
|
5407
|
+
"effecttsgo/multiple-catch-tag": "error",
|
|
5408
|
+
"effecttsgo/nested-effect-gen-yield": "error",
|
|
5409
|
+
"effecttsgo/new-schema-class": "error",
|
|
5410
|
+
"effecttsgo/option-match-to-from-option": "error",
|
|
5411
|
+
"effecttsgo/prefer-schema-type-property": "error",
|
|
5412
|
+
"effecttsgo/prefer-succeed-some-or-none": "error",
|
|
5413
|
+
"effecttsgo/prefer-typed-schema-decoder": "error",
|
|
5414
|
+
"effecttsgo/provide-layer-succeed-to-provide-service": "error",
|
|
5415
|
+
"effecttsgo/provide-merge-all-to-array": "error",
|
|
5416
|
+
"effecttsgo/race-first-with-sleep-to-timeout": "error",
|
|
5417
|
+
"effecttsgo/redundant-map-error": "error",
|
|
5418
|
+
"effecttsgo/redundant-or-die": "error",
|
|
5419
|
+
"effecttsgo/redundant-schema-tag-identifier": "error",
|
|
5420
|
+
"effecttsgo/result-match-to-from-result": "error",
|
|
5421
|
+
"effecttsgo/run-of-exit-to-run-exit": "error",
|
|
5422
|
+
"effecttsgo/schema-number": "error",
|
|
5423
|
+
"effecttsgo/schema-struct-with-tag": "error",
|
|
5424
|
+
"effecttsgo/service-not-as-class": "error",
|
|
5425
|
+
"effecttsgo/suspend-fail-to-fail-sync": "error",
|
|
5426
|
+
"effecttsgo/sync-to-succeed": "error",
|
|
5427
|
+
"effecttsgo/timeout-catch-tag-to-timeout-or-else": "error",
|
|
5428
|
+
"effecttsgo/type-union-to-schema-union": "error",
|
|
5429
|
+
"effecttsgo/unnecessary-effect-gen": "error",
|
|
5430
|
+
"effecttsgo/unnecessary-fail-yieldable-error": "error",
|
|
5431
|
+
"effecttsgo/unnecessary-pipe": "error",
|
|
5432
|
+
"effecttsgo/unnecessary-pipe-chain": "error",
|
|
5433
|
+
"effecttsgo/unnecessary-typeof-type": "error",
|
|
5319
5434
|
"eslint/arrow-body-style": ["error", "as-needed"],
|
|
5320
5435
|
"eslint/constructor-super": "error",
|
|
5321
5436
|
"eslint/curly": [
|
|
@@ -5736,7 +5851,6 @@ const lint = {
|
|
|
5736
5851
|
"eslint/no-with": "error",
|
|
5737
5852
|
"eslint/object-shorthand": "error",
|
|
5738
5853
|
"eslint/prefer-arrow-callback": "error",
|
|
5739
|
-
"eslint/prefer-const": ["error", { destructuring: "all" }],
|
|
5740
5854
|
"eslint/prefer-template": "error",
|
|
5741
5855
|
"eslint/preserve-caught-error": "error",
|
|
5742
5856
|
"eslint/require-yield": "error",
|
|
@@ -5948,7 +6062,7 @@ const lint = {
|
|
|
5948
6062
|
"typescript/no-explicit-any": "error",
|
|
5949
6063
|
"typescript/no-extraneous-class": "error",
|
|
5950
6064
|
"typescript/no-import-type-side-effects": "error",
|
|
5951
|
-
"typescript/no-inferrable-types": "error",
|
|
6065
|
+
"typescript/no-inferrable-types": ["error", { ignoreParameters: true }],
|
|
5952
6066
|
"typescript/no-misused-new": "error",
|
|
5953
6067
|
"typescript/no-namespace": ["error", { allowDeclarations: true }],
|
|
5954
6068
|
"typescript/no-non-null-assertion": "error",
|
|
@@ -5975,6 +6089,47 @@ const lint = {
|
|
|
5975
6089
|
"typescript/prefer-function-type": "error",
|
|
5976
6090
|
"typescript/triple-slash-reference": "error",
|
|
5977
6091
|
"typescript/unified-signatures": "error",
|
|
6092
|
+
"typescript/await-thenable": "error",
|
|
6093
|
+
"typescript/consistent-type-exports": "error",
|
|
6094
|
+
"typescript/dot-notation": "error",
|
|
6095
|
+
"typescript/no-array-delete": "error",
|
|
6096
|
+
"typescript/no-base-to-string": "error",
|
|
6097
|
+
"typescript/no-confusing-void-expression": ["error", { ignoreVoidReturningFunctions: true }],
|
|
6098
|
+
"typescript/no-deprecated": "error",
|
|
6099
|
+
"typescript/no-duplicate-type-constituents": "error",
|
|
6100
|
+
"typescript/no-floating-promises": "error",
|
|
6101
|
+
"typescript/no-for-in-array": "error",
|
|
6102
|
+
"typescript/no-generated-empty-object-type": "error",
|
|
6103
|
+
"typescript/no-misused-promises": ["error", { checksVoidReturn: { attributes: false } }],
|
|
6104
|
+
"typescript/no-misused-spread": "error",
|
|
6105
|
+
"typescript/no-redundant-type-constituents": "error",
|
|
6106
|
+
"typescript/no-unnecessary-boolean-literal-compare": "error",
|
|
6107
|
+
"typescript/no-unnecessary-condition": "error",
|
|
6108
|
+
"typescript/no-unnecessary-qualifier": "error",
|
|
6109
|
+
"typescript/no-unnecessary-template-expression": "error",
|
|
6110
|
+
"typescript/no-unnecessary-type-arguments": "error",
|
|
6111
|
+
"typescript/no-unnecessary-type-assertion": "error",
|
|
6112
|
+
"typescript/no-unnecessary-type-conversion": "error",
|
|
6113
|
+
"typescript/no-unnecessary-type-parameters": "error",
|
|
6114
|
+
"typescript/no-unsafe-argument": "error",
|
|
6115
|
+
"typescript/no-unsafe-assignment": "error",
|
|
6116
|
+
"typescript/no-unsafe-call": "error",
|
|
6117
|
+
"typescript/no-unsafe-member-access": "error",
|
|
6118
|
+
"typescript/no-unsafe-return": "error",
|
|
6119
|
+
"typescript/no-unsafe-unary-minus": "error",
|
|
6120
|
+
"typescript/no-useless-default-assignment": "error",
|
|
6121
|
+
"typescript/prefer-nullish-coalescing": ["error", { ignoreTernaryTests: true }],
|
|
6122
|
+
"typescript/prefer-optional-chain": "error",
|
|
6123
|
+
"typescript/restrict-plus-operands": "error",
|
|
6124
|
+
"typescript/restrict-template-expressions": "error",
|
|
6125
|
+
"typescript/strict-boolean-expressions": ["error", {
|
|
6126
|
+
allowNullableObject: false,
|
|
6127
|
+
allowNullableString: true,
|
|
6128
|
+
allowNumber: false,
|
|
6129
|
+
allowString: true
|
|
6130
|
+
}],
|
|
6131
|
+
"typescript/strict-void-return": "error",
|
|
6132
|
+
"typescript/unbound-method": "error",
|
|
5978
6133
|
"unicorn/consistent-function-scoping": "error",
|
|
5979
6134
|
"unicorn/filename-case": "error",
|
|
5980
6135
|
"unicorn/no-abusive-eslint-disable": "error",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deslop/coding-standards",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1245",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/MP281X/deslop.git",
|
|
@@ -36,11 +36,11 @@
|
|
|
36
36
|
"oxlint-plugin-react-doctor": "latest"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
|
+
"@effect/tsgo": ">=0.67",
|
|
39
40
|
"vite-plus": "^1.3"
|
|
40
41
|
},
|
|
41
42
|
"scripts": {
|
|
42
43
|
"build": "vp pack",
|
|
43
|
-
"test": "vp test --config ../../vite.config.ts"
|
|
44
|
-
"typecheck": "tsrs --checkerAssignment go --pretty false"
|
|
44
|
+
"test": "vp test --config ../../vite.config.ts"
|
|
45
45
|
}
|
|
46
46
|
}
|
package/tsconfig.json
CHANGED
|
@@ -24,190 +24,6 @@
|
|
|
24
24
|
"noUncheckedSideEffectImports": true,
|
|
25
25
|
"noEmit": true,
|
|
26
26
|
"incremental": false,
|
|
27
|
-
"plugins": [
|
|
28
|
-
{
|
|
29
|
-
"name": "@effect/language-service",
|
|
30
|
-
"effectFn": ["span", "untraced"],
|
|
31
|
-
"diagnosticSeverity": {
|
|
32
|
-
"abortControllerInEffect": "off",
|
|
33
|
-
"acquireReleaseDisposable": "error",
|
|
34
|
-
"allOfMapToForEach": "error",
|
|
35
|
-
"anyUnknownInErrorContext": "error",
|
|
36
|
-
"apiStabilityLeak": "off",
|
|
37
|
-
"asyncFunction": "error",
|
|
38
|
-
"catchAllTagDispatchToCatchTag": "error",
|
|
39
|
-
"catchAllToMapError": "error",
|
|
40
|
-
"catchChainToFirstSuccessOf": "error",
|
|
41
|
-
"catchConditionalRefailToCatchIf": "error",
|
|
42
|
-
"catchDieToOrDie": "off",
|
|
43
|
-
"catchIfTagToCatchTag": "error",
|
|
44
|
-
"catchRefailToTapError": "error",
|
|
45
|
-
"catchTagToCatchReason": "error",
|
|
46
|
-
"catchToIgnore": "off",
|
|
47
|
-
"catchToOrElseSucceed": "error",
|
|
48
|
-
"catchUnfailableEffect": "error",
|
|
49
|
-
"classSelfMismatch": "error",
|
|
50
|
-
"cryptoRandomUUID": "off",
|
|
51
|
-
"cryptoRandomUUIDInEffect": "off",
|
|
52
|
-
"deterministicKeys": "error",
|
|
53
|
-
"duplicatePackage": "error",
|
|
54
|
-
"effectDoNotation": "error",
|
|
55
|
-
"effectFnIife": "error",
|
|
56
|
-
"effectFnImplicitAny": "error",
|
|
57
|
-
"effectFnOpportunity": "error",
|
|
58
|
-
"effectGenUsesAdapter": "error",
|
|
59
|
-
"effectInFailure": "error",
|
|
60
|
-
"effectInVoidSuccess": "error",
|
|
61
|
-
"effectMapFlatten": "error",
|
|
62
|
-
"effectMapVoid": "error",
|
|
63
|
-
"effectSleepZeroToYieldNow": "error",
|
|
64
|
-
"effectSucceedWithUndefined": "error",
|
|
65
|
-
"effectSucceedWithVoid": "error",
|
|
66
|
-
"effectTryWithoutCatch": "error",
|
|
67
|
-
"errorPayloadShadowsName": "error",
|
|
68
|
-
"experimentalApiUsage": "off",
|
|
69
|
-
"extendsNativeError": "off",
|
|
70
|
-
"failCauseToConstructor": "error",
|
|
71
|
-
"flatMapConditionalToFilterOrFail": "error",
|
|
72
|
-
"flatMapIdentityToFlatten": "error",
|
|
73
|
-
"flatMapIgnoredParamToAndThen": "error",
|
|
74
|
-
"flatMapToMap": "error",
|
|
75
|
-
"flatMapToTap": "error",
|
|
76
|
-
"floatingEffect": "error",
|
|
77
|
-
"floatingEffectInVitest": "error",
|
|
78
|
-
"globalConsole": "error",
|
|
79
|
-
"globalConsoleInEffect": "error",
|
|
80
|
-
"globalDate": "error",
|
|
81
|
-
"globalDateInEffect": "error",
|
|
82
|
-
"globalErrorInEffectCatch": "error",
|
|
83
|
-
"globalErrorInEffectFailure": "error",
|
|
84
|
-
"globalFetch": "error",
|
|
85
|
-
"globalFetchInEffect": "error",
|
|
86
|
-
"globalJson": "error",
|
|
87
|
-
"globalJsonInEffect": "error",
|
|
88
|
-
"globalRandom": "error",
|
|
89
|
-
"globalRandomInEffect": "error",
|
|
90
|
-
"globalTimers": "error",
|
|
91
|
-
"globalTimersInEffect": "error",
|
|
92
|
-
"instanceOfSchema": "error",
|
|
93
|
-
"layerMergeAllWithDependencies": "error",
|
|
94
|
-
"lazyEffect": "error",
|
|
95
|
-
"lazyPromiseInEffectSync": "error",
|
|
96
|
-
"leakingRequirements": "error",
|
|
97
|
-
"manualMetricTapToTrack": "error",
|
|
98
|
-
"mapConstToAs": "error",
|
|
99
|
-
"mapMapErrorToMapBoth": "error",
|
|
100
|
-
"mapSomeCatchNoSuchElement": "error",
|
|
101
|
-
"mapSomeToAsSome": "error",
|
|
102
|
-
"matchBooleanToIsSuccess": "error",
|
|
103
|
-
"matchEffectToMapBoth": "error",
|
|
104
|
-
"matchEffectToMatch": "error",
|
|
105
|
-
"missedPipeableOpportunity": "off",
|
|
106
|
-
"missingEffectContext": "error",
|
|
107
|
-
"missingEffectError": "error",
|
|
108
|
-
"missingLayerContext": "error",
|
|
109
|
-
"missingPipeableSignature": "off",
|
|
110
|
-
"missingReturnYieldStar": "error",
|
|
111
|
-
"missingStarInYieldEffectGen": "error",
|
|
112
|
-
"multipleCatchTag": "error",
|
|
113
|
-
"multipleEffectProvide": "error",
|
|
114
|
-
"nestedEffectGenYield": "error",
|
|
115
|
-
"newPromise": "off",
|
|
116
|
-
"newSchemaClass": "error",
|
|
117
|
-
"nodeBuiltinImport": "error",
|
|
118
|
-
"obsoleteMatchImport": "error",
|
|
119
|
-
"obsoleteSchemaImport": "error",
|
|
120
|
-
"optionMatchToFromOption": "error",
|
|
121
|
-
"outdatedApi": "error",
|
|
122
|
-
"overriddenSchemaConstructor": "error",
|
|
123
|
-
"preferBarrelImport": "off",
|
|
124
|
-
"preferEffectArray": "error",
|
|
125
|
-
"preferEffectRecord": "error",
|
|
126
|
-
"preferEffectString": "error",
|
|
127
|
-
"preferNamespaceImport": "off",
|
|
128
|
-
"preferSchemaTaggedError": "off",
|
|
129
|
-
"preferSchemaTypeProperty": "error",
|
|
130
|
-
"preferSucceedSomeOrNone": "error",
|
|
131
|
-
"preferTypedSchemaDecoder": "error",
|
|
132
|
-
"preferUnsafeConstructor": "off",
|
|
133
|
-
"processEnv": "error",
|
|
134
|
-
"processEnvInEffect": "error",
|
|
135
|
-
"promiseInEffectSuccess": "error",
|
|
136
|
-
"provideLayerSucceedToProvideService": "error",
|
|
137
|
-
"provideMergeAllToArray": "error",
|
|
138
|
-
"raceFirstWithSleepToTimeout": "error",
|
|
139
|
-
"redundantMapError": "error",
|
|
140
|
-
"redundantOrDie": "error",
|
|
141
|
-
"redundantSchemaTagIdentifier": "error",
|
|
142
|
-
"resultMatchToFromResult": "error",
|
|
143
|
-
"returnEffectInGen": "error",
|
|
144
|
-
"runEffectInsideEffect": "off",
|
|
145
|
-
"runOfExitToRunExit": "error",
|
|
146
|
-
"schemaClassMissingBrand": "off",
|
|
147
|
-
"schemaClassObjectLiteral": "error",
|
|
148
|
-
"schemaLiteralNonFinite": "error",
|
|
149
|
-
"schemaNumber": "error",
|
|
150
|
-
"schemaOpaqueInstanceMember": "off",
|
|
151
|
-
"schemaStructWithTag": "error",
|
|
152
|
-
"schemaSync": "off",
|
|
153
|
-
"schemaSyncInEffect": "error",
|
|
154
|
-
"serviceNotAsClass": "error",
|
|
155
|
-
"strictBooleanExpressions": "error",
|
|
156
|
-
"strictEffectProvide": "error",
|
|
157
|
-
"suspendFailToFailSync": "error",
|
|
158
|
-
"syncToSucceed": "error",
|
|
159
|
-
"timeoutCatchTagToTimeoutOrElse": "error",
|
|
160
|
-
"tryCatchInEffectGen": "error",
|
|
161
|
-
"typeUnionToSchemaUnion": "error",
|
|
162
|
-
"unknownInEffectCatch": "off",
|
|
163
|
-
"unnecessaryArrowBlock": "off",
|
|
164
|
-
"unnecessaryEffectGen": "error",
|
|
165
|
-
"unnecessaryFailYieldableError": "error",
|
|
166
|
-
"unnecessaryPipe": "error",
|
|
167
|
-
"unnecessaryPipeChain": "error",
|
|
168
|
-
"unnecessaryTypeofType": "error",
|
|
169
|
-
"unsafeEffectTypeAssertion": "error",
|
|
170
|
-
"unstableApiUsage": "off",
|
|
171
|
-
"unusedDirective": "error",
|
|
172
|
-
// no-single-use-value inlines a single-use yield into its call instead.
|
|
173
|
-
"yieldInCallArgument": "off"
|
|
174
|
-
},
|
|
175
|
-
"ignoreEffectErrorsInTscExitCode": false,
|
|
176
|
-
"ignoreEffectWarningsInTscExitCode": false,
|
|
177
|
-
"ignoreEffectSuggestionsInTscExitCode": false,
|
|
178
|
-
"overrides": [
|
|
179
|
-
{
|
|
180
|
-
// Absolute globs survive extends; the explicit dot component also covers hidden worktrees.
|
|
181
|
-
"include": ["/**/*.tsx", "/**/.*/**/*.tsx"],
|
|
182
|
-
"options": {"diagnosticSeverity": {"asyncFunction": "off"}}
|
|
183
|
-
},
|
|
184
|
-
{
|
|
185
|
-
// shadcn's components stay exactly what its CLI writes, so Effect's style checks do not apply to them.
|
|
186
|
-
"include": [
|
|
187
|
-
"/**/components-web/src/ui/**/*.ts",
|
|
188
|
-
"/**/components-web/src/ui/**/*.tsx",
|
|
189
|
-
"/**/.*/**/components-web/src/ui/**/*.ts",
|
|
190
|
-
"/**/.*/**/components-web/src/ui/**/*.tsx"
|
|
191
|
-
],
|
|
192
|
-
"options": {
|
|
193
|
-
"diagnosticSeverity": {
|
|
194
|
-
"globalRandom": "off",
|
|
195
|
-
"globalTimers": "off",
|
|
196
|
-
"preferEffectArray": "off",
|
|
197
|
-
"preferEffectRecord": "off",
|
|
198
|
-
"preferEffectString": "off",
|
|
199
|
-
"strictBooleanExpressions": "off"
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
},
|
|
203
|
-
{
|
|
204
|
-
// The directive scan reads string literals too, and test fixtures hold source text with directives.
|
|
205
|
-
"include": ["/**/*.test.ts", "/**/.*/**/*.test.ts"],
|
|
206
|
-
"options": {"diagnosticSeverity": {"unusedDirective": "off"}}
|
|
207
|
-
}
|
|
208
|
-
]
|
|
209
|
-
}
|
|
210
|
-
],
|
|
211
27
|
"noUnusedLocals": true,
|
|
212
28
|
"noUnusedParameters": true
|
|
213
29
|
},
|