@thethracian/oxlint-config 0.2.0 → 0.2.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/CHANGELOG.md +6 -0
- package/README.md +3 -3
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/rules/acronym-case.d.ts.map +1 -1
- package/dist/rules/acronym-case.js +0 -2
- package/dist/rules/acronym-case.js.map +1 -1
- package/dist/rules/effect-default-helpers.d.ts.map +1 -1
- package/dist/rules/effect-default-helpers.js +105 -28
- package/dist/rules/effect-default-helpers.js.map +1 -1
- package/dist/rules/effect-default.d.ts.map +1 -1
- package/dist/rules/effect-default.js +269 -133
- package/dist/rules/effect-default.js.map +1 -1
- package/dist/rules/effect-rule-core.d.ts +8 -0
- package/dist/rules/effect-rule-core.d.ts.map +1 -1
- package/dist/rules/effect-rule-core.js +208 -61
- package/dist/rules/effect-rule-core.js.map +1 -1
- package/dist/rules/effect-source-helpers.d.ts.map +1 -1
- package/dist/rules/effect-source-helpers.js +37 -12
- package/dist/rules/effect-source-helpers.js.map +1 -1
- package/dist/rules/effect-source-scan.d.ts.map +1 -1
- package/dist/rules/effect-source-scan.js +18 -10
- package/dist/rules/effect-source-scan.js.map +1 -1
- package/dist/rules/effect-strict-helpers.d.ts.map +1 -1
- package/dist/rules/effect-strict-helpers.js +180 -11
- package/dist/rules/effect-strict-helpers.js.map +1 -1
- package/dist/rules/effect-strict.d.ts.map +1 -1
- package/dist/rules/effect-strict.js +87 -23
- package/dist/rules/effect-strict.js.map +1 -1
- package/dist/rules/max-line-length.d.ts.map +1 -1
- package/dist/rules/max-line-length.js +25 -7
- package/dist/rules/max-line-length.js.map +1 -1
- package/dist/rules/plugin.d.ts +2 -121
- package/dist/rules/plugin.d.ts.map +1 -1
- package/dist/rules/plugin.js +78 -94
- package/dist/rules/plugin.js.map +1 -1
- package/dist/rules/require-function-doc.d.ts.map +1 -1
- package/dist/rules/require-function-doc.js +32 -21
- package/dist/rules/require-function-doc.js.map +1 -1
- package/dist/rules/source-cache.d.ts +11 -0
- package/dist/rules/source-cache.d.ts.map +1 -0
- package/dist/rules/source-cache.js +50 -0
- package/dist/rules/source-cache.js.map +1 -0
- package/package.json +6 -9
|
@@ -32,13 +32,6 @@ function memberParts(node) {
|
|
|
32
32
|
propertyName: identifierName(member.property),
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
|
-
function isEffectMember(node, source, methods) {
|
|
36
|
-
const { objectName, propertyName } = memberParts(node);
|
|
37
|
-
return Boolean(objectName &&
|
|
38
|
-
propertyName &&
|
|
39
|
-
effectImportAliases(source).includes(objectName) &&
|
|
40
|
-
methods.has(propertyName));
|
|
41
|
-
}
|
|
42
35
|
function isMember(node, objectName, propertyName) {
|
|
43
36
|
const parts = memberParts(node);
|
|
44
37
|
return parts.objectName === objectName && parts.propertyName === propertyName;
|
|
@@ -49,9 +42,18 @@ function isSchemaMember(node, source, propertyName) {
|
|
|
49
42
|
parts.propertyName === propertyName &&
|
|
50
43
|
effectApiAliases(source, 'Schema').includes(parts.objectName));
|
|
51
44
|
}
|
|
52
|
-
function
|
|
53
|
-
const
|
|
54
|
-
|
|
45
|
+
function effectCallPredicate(source, names) {
|
|
46
|
+
const memberNames = new Set(names);
|
|
47
|
+
const importAliases = new Set(effectImportAliases(source));
|
|
48
|
+
const functionAliases = new Set(names.flatMap((name) => effectFunctionAliases(source, 'Effect', name)));
|
|
49
|
+
return (callee) => {
|
|
50
|
+
const { objectName, propertyName } = memberParts(callee);
|
|
51
|
+
if (objectName && propertyName) {
|
|
52
|
+
return importAliases.has(objectName) && memberNames.has(propertyName);
|
|
53
|
+
}
|
|
54
|
+
const calleeName = identifierName(callee);
|
|
55
|
+
return Boolean(calleeName && functionAliases.has(calleeName));
|
|
56
|
+
};
|
|
55
57
|
}
|
|
56
58
|
function serviceKeyFromClass(node, source) {
|
|
57
59
|
const { id, superClass } = node;
|
|
@@ -247,6 +249,7 @@ const effectStrictSpecs = [
|
|
|
247
249
|
{
|
|
248
250
|
name: 'effect-no-run-outside-entrypoints',
|
|
249
251
|
message: 'Run Effect programs only from configured entrypoints.',
|
|
252
|
+
tokens: ['Effect', 'effect', 'runMain'],
|
|
250
253
|
check: (source, context) => hasRuntimeCall(source) &&
|
|
251
254
|
!hasExportedRunPromiseApi(source) &&
|
|
252
255
|
!hasRunForkWithoutObserver(source) &&
|
|
@@ -256,46 +259,54 @@ const effectStrictSpecs = [
|
|
|
256
259
|
{
|
|
257
260
|
name: 'effect-require-platform-runmain-at-entrypoints',
|
|
258
261
|
message: 'Entrypoints should use the platform runMain boundary instead of raw Effect runners.',
|
|
262
|
+
tokens: ['Effect.run', 'effect/Effect', 'runPromise', 'runSync', 'runFork'],
|
|
259
263
|
check: (source, context) => isConfiguredPath(context, 'entrypoints') &&
|
|
260
264
|
/Effect\.run(?:Promise|Sync|Fork)/.test(stripCommentsAndStrings(source)),
|
|
261
265
|
},
|
|
262
266
|
{
|
|
263
267
|
name: 'effect-no-runSync-in-server-request-handlers',
|
|
264
268
|
message: 'Server handlers must not synchronously run Effects.',
|
|
269
|
+
tokens: ['Effect.runSync'],
|
|
265
270
|
check: hasRunSyncInServerRequestHandler,
|
|
266
271
|
},
|
|
267
272
|
{
|
|
268
273
|
name: 'effect-no-promise-returning-public-api',
|
|
269
274
|
message: 'Public APIs should expose Effect return types instead of Promise.',
|
|
275
|
+
tokens: ['Promise', 'async'],
|
|
270
276
|
check: hasPromiseReturningPublicApi,
|
|
271
277
|
},
|
|
272
278
|
{
|
|
273
279
|
name: 'effect-no-direct-process-env-outside-config-layer',
|
|
274
280
|
message: 'Read process.env only inside the configured Effect Config layer.',
|
|
275
|
-
|
|
281
|
+
tokens: ['process'],
|
|
282
|
+
check: (source, context) => /\bprocess\s*\.\s*env\b/.test(stripCommentsAndStrings(source)) &&
|
|
276
283
|
!hasEffectSignal(source) &&
|
|
277
284
|
!isConfiguredPath(context, 'configLayers'),
|
|
278
285
|
},
|
|
279
286
|
{
|
|
280
287
|
name: 'effect-no-direct-clock-random-outside-adapters',
|
|
281
288
|
message: 'Use Clock and Random services outside configured adapter modules.',
|
|
282
|
-
|
|
289
|
+
tokens: ['Date', 'Math'],
|
|
290
|
+
check: (source, context) => /\b(?:Date\s*\.\s*now|Math\s*\.\s*random)\s*\(/.test(stripCommentsAndStrings(source)) &&
|
|
283
291
|
!hasEffectSignal(source) &&
|
|
284
292
|
!isConfiguredPath(context, 'adapterLayers'),
|
|
285
293
|
},
|
|
286
294
|
{
|
|
287
295
|
name: 'effect-no-direct-http-fs-outside-platform-services',
|
|
288
296
|
message: 'Use Effect platform services for HTTP and filesystem access outside adapters.',
|
|
297
|
+
tokens: ['fetch', 'readFileSync', 'writeFileSync', 'createReadStream'],
|
|
289
298
|
check: hasDirectPlatformAccess,
|
|
290
299
|
},
|
|
291
300
|
{
|
|
292
301
|
name: 'effect-require-service-class-pattern',
|
|
293
302
|
message: 'Services must use the configured class-based Effect service pattern.',
|
|
303
|
+
tokens: ['Context.GenericTag'],
|
|
294
304
|
patterns: [/Context\.GenericTag(?:<[^>]+>)?\s*\(\s*['"`]/],
|
|
295
305
|
},
|
|
296
306
|
{
|
|
297
307
|
name: 'effect-require-tag-identifier',
|
|
298
308
|
message: 'Service tags require stable identifiers.',
|
|
309
|
+
tokens: ['Context.Tag', 'Context.GenericTag'],
|
|
299
310
|
patterns: [
|
|
300
311
|
/Context\.Tag(?:<[^>]+>)?\s*\(\s*\)/,
|
|
301
312
|
/Context\.GenericTag(?:<[^>]+>)?\s*\(\s*\)/,
|
|
@@ -305,33 +316,39 @@ const effectStrictSpecs = [
|
|
|
305
316
|
{
|
|
306
317
|
name: 'effect-no-leaked-service-dependencies',
|
|
307
318
|
message: 'Domain exports must not leak raw service implementation dependencies.',
|
|
319
|
+
tokens: ['Layer', 'Live'],
|
|
308
320
|
check: (source, context) => isConfiguredPath(context, 'domain') && /Layer\.|Live\b/.test(stripCommentsAndStrings(source)),
|
|
309
321
|
},
|
|
310
322
|
{
|
|
311
323
|
name: 'effect-no-duplicate-layer-instances',
|
|
312
324
|
message: 'Do not construct the same Layer multiple times in one module.',
|
|
325
|
+
tokens: ['Layer'],
|
|
313
326
|
check: hasDuplicateLayerInstance,
|
|
314
327
|
},
|
|
315
328
|
{
|
|
316
329
|
name: 'effect-require-centralized-provision',
|
|
317
330
|
message: 'Provide layers only from configured composition roots.',
|
|
331
|
+
tokens: ['Effect.provide', 'Layer.provide'],
|
|
318
332
|
check: (source, context) => /Effect\.provide|Layer\.provide/.test(stripCommentsAndStrings(source)) &&
|
|
319
333
|
!isConfiguredPath(context, 'compositionRoots'),
|
|
320
334
|
},
|
|
321
335
|
{
|
|
322
336
|
name: 'effect-no-provide-in-domain-modules',
|
|
323
337
|
message: 'Domain modules should declare requirements, not provide concrete layers.',
|
|
338
|
+
tokens: ['Effect.provide', 'Layer.provide'],
|
|
324
339
|
check: (source, context) => isConfiguredPath(context, 'domain') &&
|
|
325
340
|
/Effect\.provide|Layer\.provide/.test(stripCommentsAndStrings(source)),
|
|
326
341
|
},
|
|
327
342
|
{
|
|
328
343
|
name: 'effect-require-layer-memoization-constant',
|
|
329
344
|
message: 'Shared layers should be memoized constants instead of functions that recreate resources.',
|
|
345
|
+
tokens: ['Layer'],
|
|
330
346
|
check: hasLayerFactory,
|
|
331
347
|
},
|
|
332
348
|
{
|
|
333
349
|
name: 'effect-require-suspend-for-circular-deps',
|
|
334
350
|
message: 'Circular layer dependencies must be suspended.',
|
|
351
|
+
tokens: ['Layer'],
|
|
335
352
|
patterns: [
|
|
336
353
|
/Layer\.(?:effect|scoped)\s*\([\s\S]*?Layer\.(?:effect|scoped)\s*\((?![\s\S]*Effect\.suspend)/,
|
|
337
354
|
],
|
|
@@ -339,6 +356,7 @@ const effectStrictSpecs = [
|
|
|
339
356
|
{
|
|
340
357
|
name: 'effect-avoid-layer-explosion',
|
|
341
358
|
message: 'Avoid tiny one-off Layer declarations that fragment dependency wiring.',
|
|
359
|
+
tokens: ['Layer'],
|
|
342
360
|
patterns: [
|
|
343
361
|
/const\s+[A-Za-z_$][\w$]*Layer\s*=\s*Layer\.[\s\S]*const\s+[A-Za-z_$][\w$]*Layer\s*=\s*Layer\./,
|
|
344
362
|
],
|
|
@@ -346,16 +364,19 @@ const effectStrictSpecs = [
|
|
|
346
364
|
{
|
|
347
365
|
name: 'effect-prefer-succeed-for-static-layers',
|
|
348
366
|
message: 'Use Layer.succeed for static pure services.',
|
|
367
|
+
tokens: ['Layer.effect', 'Effect.succeed'],
|
|
349
368
|
patterns: [/Layer\.effect\s*\([^,]+,\s*Effect\.succeed\s*\(/],
|
|
350
369
|
},
|
|
351
370
|
{
|
|
352
371
|
name: 'effect-require-scoped-for-resource-layers',
|
|
353
372
|
message: 'Layers that allocate resources must be scoped.',
|
|
373
|
+
tokens: ['Layer'],
|
|
354
374
|
check: hasUnscopedResourceLayer,
|
|
355
375
|
},
|
|
356
376
|
{
|
|
357
377
|
name: 'effect-no-service-construction-outside-layer',
|
|
358
378
|
message: 'Construct services inside Layers, not directly in domain or application logic.',
|
|
379
|
+
tokens: ['Service', 'Repo', 'Client'],
|
|
359
380
|
check: (source, context) => !isConfiguredPath(context, 'adapterLayers') &&
|
|
360
381
|
!isConfiguredPath(context, 'configLayers') &&
|
|
361
382
|
!/Layer\./.test(stripCommentsAndStrings(source)) &&
|
|
@@ -364,26 +385,31 @@ const effectStrictSpecs = [
|
|
|
364
385
|
{
|
|
365
386
|
name: 'effect-schema-require-validation-at-input-boundaries',
|
|
366
387
|
message: 'Input boundaries must decode request, command, or message data with Schema.',
|
|
388
|
+
tokens: ['.body', '.params', '.query', '.payload'],
|
|
367
389
|
check: hasBoundaryDataWithoutSchema,
|
|
368
390
|
},
|
|
369
391
|
{
|
|
370
392
|
name: 'effect-schema-require-validation-at-output-boundaries',
|
|
371
393
|
message: 'Output boundaries should encode or validate public response data.',
|
|
394
|
+
tokens: ['Response.json', 'return json'],
|
|
372
395
|
check: hasOutputBoundaryWithoutSchema,
|
|
373
396
|
},
|
|
374
397
|
{
|
|
375
398
|
name: 'effect-schema-require-http-client-response-schema',
|
|
376
399
|
message: 'HTTP client responses must be decoded with Schema.',
|
|
400
|
+
tokens: ['HttpClient.', 'response.json'],
|
|
377
401
|
check: hasHttpClientResponseWithoutSchema,
|
|
378
402
|
},
|
|
379
403
|
{
|
|
380
404
|
name: 'effect-schema-require-http-server-request-schema',
|
|
381
405
|
message: 'HTTP server requests must be decoded with Schema.',
|
|
406
|
+
tokens: ['HttpRouter.', 'HttpServerRequest'],
|
|
382
407
|
check: hasHttpServerRequestWithoutSchema,
|
|
383
408
|
},
|
|
384
409
|
{
|
|
385
410
|
name: 'effect-schema-require-config-schema',
|
|
386
411
|
message: 'Configuration modules must decode configuration with Schema.',
|
|
412
|
+
tokens: ['Config'],
|
|
387
413
|
check: (source, context) => isConfiguredPath(context, 'configLayers') &&
|
|
388
414
|
/Config\./.test(stripCommentsAndStrings(source)) &&
|
|
389
415
|
!/Schema\./.test(stripCommentsAndStrings(source)),
|
|
@@ -391,122 +417,146 @@ const effectStrictSpecs = [
|
|
|
391
417
|
{
|
|
392
418
|
name: 'effect-schema-require-persistence-schema',
|
|
393
419
|
message: 'Persistence boundaries must validate loaded records with Schema.',
|
|
420
|
+
tokens: ['db.', 'database.', 'collection.', 'repository.'],
|
|
394
421
|
check: hasPersistenceReadWithoutSchema,
|
|
395
422
|
},
|
|
396
423
|
{
|
|
397
424
|
name: 'effect-schema-require-public-command-schema',
|
|
398
425
|
message: 'Public command handlers must declare and use input schemas.',
|
|
426
|
+
tokens: ['handler'],
|
|
399
427
|
check: hasCommandHandlerWithoutSchema,
|
|
400
428
|
},
|
|
401
429
|
{
|
|
402
430
|
name: 'effect-schema-no-unknown-crossing-boundary',
|
|
403
431
|
message: 'unknown values must be decoded before crossing configured boundaries.',
|
|
432
|
+
tokens: ['unknown'],
|
|
404
433
|
check: (source) => exportedDeclarationTexts(source).some((declaration) => /\bunknown\b/.test(stripCommentsAndStrings(publicApiDeclarationSignature(declaration)))),
|
|
405
434
|
},
|
|
406
435
|
{
|
|
407
436
|
name: 'effect-require-timeout-on-external-effects',
|
|
408
437
|
message: 'External effects must declare a timeout.',
|
|
438
|
+
tokens: ['HttpClient.', 'fetch', 'FileSystem.', 'SqlClient.'],
|
|
409
439
|
check: (source) => hasExternalEffectWithoutTimeout(source),
|
|
410
440
|
},
|
|
411
441
|
{
|
|
412
442
|
name: 'effect-require-retry-policy-for-idempotent-external-effects',
|
|
413
443
|
message: 'Idempotent external effects must declare retry policy deliberately.',
|
|
444
|
+
tokens: ['HttpClient.', 'fetch', 'find', 'lookup', 'read'],
|
|
414
445
|
check: (source) => hasIdempotentExternalEffectWithoutRetry(source),
|
|
415
446
|
},
|
|
416
447
|
{
|
|
417
448
|
name: 'effect-require-schedule-jitter-for-retries',
|
|
418
449
|
message: 'Retry schedules must include jitter.',
|
|
450
|
+
tokenGroups: [['Effect.retry'], ['Schedule.']],
|
|
419
451
|
check: hasRetryScheduleWithoutJitter,
|
|
420
452
|
},
|
|
421
453
|
{
|
|
422
454
|
name: 'effect-require-span-external',
|
|
423
455
|
message: 'External effects must declare an observability span.',
|
|
456
|
+
tokens: ['HttpClient.', 'fetch', 'FileSystem.', 'SqlClient.'],
|
|
424
457
|
check: (source) => hasExternalEffectWithoutSpan(source),
|
|
425
458
|
},
|
|
426
459
|
{
|
|
427
460
|
name: 'effect-require-semaphore-for-shared-resources',
|
|
428
461
|
message: 'Shared scarce resources must be guarded by Semaphore.',
|
|
462
|
+
tokens: ['Effect.forEach'],
|
|
429
463
|
check: hasSharedResourceForEachWithoutSemaphore,
|
|
430
464
|
},
|
|
431
465
|
{
|
|
432
466
|
name: 'effect-require-ref-for-shared-mutable-state',
|
|
433
467
|
message: 'Shared mutable state must use Ref, SynchronizedRef, or scoped services.',
|
|
468
|
+
tokens: ['let '],
|
|
434
469
|
check: hasSharedMutableStateWithoutRef,
|
|
435
470
|
},
|
|
436
471
|
{
|
|
437
472
|
name: 'effect-require-scoped-in-loops',
|
|
438
473
|
message: 'Loops that acquire resources must scope each acquisition.',
|
|
474
|
+
tokens: ['open', 'connect', 'subscribe', 'listen'],
|
|
439
475
|
check: hasUnscopedResourceLoop,
|
|
440
476
|
},
|
|
441
477
|
{
|
|
442
478
|
name: 'effect-require-onExit-for-cleanup',
|
|
443
479
|
message: 'Cleanup logic should use onExit so success, failure, and interruption are handled.',
|
|
480
|
+
tokens: ['Effect.ensuring', 'cleanup'],
|
|
444
481
|
check: hasEnsuringCleanupWithoutOnExit,
|
|
445
482
|
},
|
|
446
483
|
{
|
|
447
484
|
name: 'effect-require-stream-resource-safety',
|
|
448
485
|
message: 'Streams over resources must be scoped or bracketed.',
|
|
486
|
+
tokens: ['Stream'],
|
|
449
487
|
check: hasUnsafeResourceStream,
|
|
450
488
|
},
|
|
451
489
|
{
|
|
452
490
|
name: 'effect-require-stream-termination',
|
|
453
491
|
message: 'Long-running streams must declare termination or shutdown behavior.',
|
|
492
|
+
tokens: ['Stream'],
|
|
454
493
|
check: hasUnterminatedLongRunningStream,
|
|
455
494
|
},
|
|
456
495
|
{
|
|
457
496
|
name: 'effect-require-explicit-asyncPush-buffer',
|
|
458
497
|
message: 'Stream.asyncPush must declare an explicit buffer/backpressure policy.',
|
|
498
|
+
tokens: ['Stream.asyncPush'],
|
|
459
499
|
check: hasAsyncPushWithoutBuffer,
|
|
460
500
|
},
|
|
461
501
|
{
|
|
462
502
|
name: 'effect-require-batching-for-resolver',
|
|
463
503
|
message: 'RequestResolver implementations should batch requests.',
|
|
504
|
+
tokens: ['RequestResolver'],
|
|
464
505
|
check: hasUnbatchedResolver,
|
|
465
506
|
},
|
|
466
507
|
{
|
|
467
508
|
name: 'effect-use-batched-resolver-for-n-plus-one',
|
|
468
509
|
message: 'Potential N+1 data access should use a batched RequestResolver.',
|
|
510
|
+
tokens: ['Effect.forEach'],
|
|
469
511
|
check: hasNPlusOneWithoutBatchedResolver,
|
|
470
512
|
},
|
|
471
513
|
{
|
|
472
514
|
name: 'effect-prefer-pubsub-for-broadcast',
|
|
473
515
|
message: 'Use PubSub for broadcast semantics instead of manually fanning out queues.',
|
|
516
|
+
tokens: ['Queue', 'broadcast', 'subscribers'],
|
|
474
517
|
patterns: [/Queue\.[\s\S]*?\bsubscribers\b|broadcast\s*\([\s\S]*?Queue\./],
|
|
475
518
|
},
|
|
476
519
|
{
|
|
477
520
|
name: 'effect-require-provided-services-in-tests',
|
|
478
521
|
message: 'Effect tests must provide required services explicitly.',
|
|
522
|
+
tokens: ['Service', 'Repo', 'Client'],
|
|
479
523
|
check: (source, context) => isEffectTestPath(context) && hasUnprovidedServiceInEffectTest(source),
|
|
480
524
|
},
|
|
481
525
|
{
|
|
482
526
|
name: 'effect-prefer-in-memory-implementations',
|
|
483
527
|
message: 'Unit tests should use in-memory service implementations.',
|
|
528
|
+
tokens: ['real'],
|
|
484
529
|
check: (source, context) => isUnitTestPath(context) && hasRealTestService(source),
|
|
485
530
|
},
|
|
486
531
|
{
|
|
487
532
|
name: 'effect-no-live-services-in-unit-tests',
|
|
488
533
|
message: 'Live services belong in integration tests, not unit tests.',
|
|
534
|
+
tokens: ['Live', 'Layer.live'],
|
|
489
535
|
check: (source, context) => isUnitTestPath(context) && hasLiveTestService(source),
|
|
490
536
|
},
|
|
491
537
|
{
|
|
492
538
|
name: 'effect-require-testclock-for-time-code',
|
|
493
539
|
message: 'Tests for time-dependent Effect code should use TestClock.',
|
|
540
|
+
tokens: ['Effect.timeout', 'Effect.delay', 'Clock.'],
|
|
494
541
|
check: (source, context) => isEffectTestPath(context) && hasTimeCodeWithoutTestClock(source),
|
|
495
542
|
},
|
|
496
543
|
{
|
|
497
544
|
name: 'effect-no-test-runtime-leakage',
|
|
498
545
|
message: 'Do not share mutable runtime, layer, or service state across Effect tests.',
|
|
546
|
+
tokens: ['Runtime', 'Layer', 'Service'],
|
|
499
547
|
check: (source, context) => isEffectTestPath(context) &&
|
|
500
548
|
/const\s+[A-Za-z_$][\w$]*(?:Runtime|Layer|Service)\s*=/.test(source),
|
|
501
549
|
},
|
|
502
550
|
{
|
|
503
551
|
name: 'effect-no-ad-hoc-effect-wrapper-abstractions',
|
|
504
552
|
message: 'Do not hide Effect semantics behind local wrapper DSLs.',
|
|
553
|
+
tokens: ['runEffect', 'makeEffect', 'effectify', 'toEffect'],
|
|
505
554
|
patterns: [/function\s+(?:runEffect|makeEffect|effectify|toEffect)\s*\(/],
|
|
506
555
|
},
|
|
507
556
|
{
|
|
508
557
|
name: 'effect-require-effect-suppression-reason-and-ticket',
|
|
509
558
|
message: 'Effect rule suppressions must name a rule, a reason, and a tracking ticket.',
|
|
559
|
+
tokens: ['disable', 'effect-'],
|
|
510
560
|
check: (source) => source.split('\n').some((line) => {
|
|
511
561
|
if (!/(?:eslint|oxlint)-disable[^\n]*effect-/.test(line)) {
|
|
512
562
|
return false;
|
|
@@ -517,6 +567,7 @@ const effectStrictSpecs = [
|
|
|
517
567
|
{
|
|
518
568
|
name: 'effect-no-crypto-randomUUID',
|
|
519
569
|
message: 'Use Effect Random or an injected UUID service instead of crypto.randomUUID.',
|
|
570
|
+
tokens: ['crypto.randomUUID'],
|
|
520
571
|
check: hasCryptoRandomUuid,
|
|
521
572
|
ast: (context) => ({
|
|
522
573
|
CallExpression(node) {
|
|
@@ -529,6 +580,7 @@ const effectStrictSpecs = [
|
|
|
529
580
|
{
|
|
530
581
|
name: 'effect-require-schema-is-over-instanceof',
|
|
531
582
|
message: 'Use Schema.is for schema-modeled domain checks instead of instanceof.',
|
|
583
|
+
tokens: ['instanceof'],
|
|
532
584
|
check: hasSchemaInstanceof,
|
|
533
585
|
ast: (context) => ({
|
|
534
586
|
BinaryExpression(node) {
|
|
@@ -545,6 +597,7 @@ const effectStrictSpecs = [
|
|
|
545
597
|
{
|
|
546
598
|
name: 'effect-prefer-schema-tagged-struct',
|
|
547
599
|
message: 'Use Schema.TaggedStruct or Schema.TaggedClass instead of Struct with _tag.',
|
|
600
|
+
tokens: ['Schema', '_tag'],
|
|
548
601
|
check: hasSchemaStructWithTag,
|
|
549
602
|
ast: (context, source) => ({
|
|
550
603
|
CallExpression(node) {
|
|
@@ -568,6 +621,7 @@ const effectStrictSpecs = [
|
|
|
568
621
|
{
|
|
569
622
|
name: 'effect-prefer-single-schema-literal-union',
|
|
570
623
|
message: 'Combine literal alternatives into one Schema.Literal call.',
|
|
624
|
+
tokens: ['Schema.Union', 'Schema.Literal', 'effect'],
|
|
571
625
|
check: hasSchemaUnionOfLiterals,
|
|
572
626
|
ast: (context, source) => ({
|
|
573
627
|
CallExpression(node) {
|
|
@@ -582,6 +636,7 @@ const effectStrictSpecs = [
|
|
|
582
636
|
{
|
|
583
637
|
name: 'effect-require-deterministic-service-keys',
|
|
584
638
|
message: 'Service/tag identifiers must deterministically match the service class.',
|
|
639
|
+
tokens: ['Context.Tag', 'Effect.Service', 'Effect.Tag'],
|
|
585
640
|
check: hasNonDeterministicServiceKey,
|
|
586
641
|
ast: (context, source) => ({
|
|
587
642
|
ClassDeclaration(node) {
|
|
@@ -595,16 +650,19 @@ const effectStrictSpecs = [
|
|
|
595
650
|
{
|
|
596
651
|
name: 'effect-no-multiple-provide-chain',
|
|
597
652
|
message: 'Avoid chaining Effect.provide calls; compose layers deliberately at the root.',
|
|
653
|
+
tokens: ['Effect.provide'],
|
|
598
654
|
check: hasMultipleProvideChain,
|
|
599
655
|
},
|
|
600
656
|
{
|
|
601
657
|
name: 'effect-require-layer-scoped-when-scope-required',
|
|
602
658
|
message: 'Use Layer.scoped when a Layer effect requires Scope.',
|
|
659
|
+
tokens: ['Layer.effect', 'Scope'],
|
|
603
660
|
check: hasLayerEffectWithScope,
|
|
604
661
|
},
|
|
605
662
|
{
|
|
606
663
|
name: 'effect-no-node-builtins-when-effect-platform-exists',
|
|
607
664
|
message: 'Use Effect platform services instead of direct Node built-in imports.',
|
|
665
|
+
tokens: ['node:'],
|
|
608
666
|
check: hasNodeBuiltinImport,
|
|
609
667
|
ast: (context) => ({
|
|
610
668
|
ImportDeclaration(node) {
|
|
@@ -620,6 +678,7 @@ const effectStrictSpecs = [
|
|
|
620
678
|
{
|
|
621
679
|
name: 'effect-no-global-fetch',
|
|
622
680
|
message: 'Use the Effect HTTP client or an adapter service instead of global fetch.',
|
|
681
|
+
tokens: ['fetch'],
|
|
623
682
|
check: hasGlobalFetch,
|
|
624
683
|
ast: (context, source) => ({
|
|
625
684
|
CallExpression(node) {
|
|
@@ -634,27 +693,32 @@ const effectStrictSpecs = [
|
|
|
634
693
|
{
|
|
635
694
|
name: 'effect-prefer-effect-void',
|
|
636
695
|
message: 'Use Effect.void instead of Effect.succeed(undefined).',
|
|
696
|
+
tokens: ['succeed'],
|
|
637
697
|
check: hasEffectSucceedWithVoid,
|
|
638
|
-
ast: (context, source) =>
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
698
|
+
ast: (context, source) => {
|
|
699
|
+
const isEffectSucceed = effectCallPredicate(source, ['succeed']);
|
|
700
|
+
return {
|
|
701
|
+
CallExpression(node) {
|
|
702
|
+
const call = node;
|
|
703
|
+
const firstArg = call.arguments?.[0];
|
|
704
|
+
if (isEffectSucceed(call.callee) &&
|
|
705
|
+
(!firstArg || identifierName(firstArg) === 'undefined' || isVoidZero(firstArg))) {
|
|
706
|
+
reportAst(context, 'Use Effect.void instead of Effect.succeed(undefined).', node);
|
|
707
|
+
}
|
|
708
|
+
},
|
|
709
|
+
};
|
|
710
|
+
},
|
|
649
711
|
},
|
|
650
712
|
{
|
|
651
713
|
name: 'effect-prefer-asVoid',
|
|
652
714
|
message: 'Use Effect.asVoid instead of mapping to undefined or an empty block.',
|
|
715
|
+
tokens: ['Effect', 'effect'],
|
|
653
716
|
check: hasMapToVoid,
|
|
654
717
|
},
|
|
655
718
|
{
|
|
656
719
|
name: 'effect-prefer-flatMap-over-map-flatten',
|
|
657
720
|
message: 'Use Effect.flatMap instead of Effect.map followed by Effect.flatten.',
|
|
721
|
+
tokens: ['Effect', 'effect'],
|
|
658
722
|
check: hasMapFlatten,
|
|
659
723
|
},
|
|
660
724
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effect-strict.js","sourceRoot":"","sources":["../../src/rules/effect-strict.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"effect-strict.js","sourceRoot":"","sources":["../../src/rules/effect-strict.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"max-line-length.d.ts","sourceRoot":"","sources":["../../src/rules/max-line-length.ts"],"names":[],"mappings":"AAAA,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;
|
|
1
|
+
{"version":3,"file":"max-line-length.d.ts","sourceRoot":"","sources":["../../src/rules/max-line-length.ts"],"names":[],"mappings":"AAAA,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAcF,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,MAAM,EAAE,MAAM,EACd,SAAS,SAAqB,GAC7B,mBAAmB,EAAE,CA6BvB"}
|
|
@@ -1,14 +1,32 @@
|
|
|
1
1
|
const DEFAULT_MAX_LENGTH = 150;
|
|
2
|
-
|
|
2
|
+
function lineContainsUrl(source, start, end) {
|
|
3
|
+
const httpIndex = source.indexOf('http://', start);
|
|
4
|
+
if (httpIndex !== -1 && httpIndex < end) {
|
|
5
|
+
return true;
|
|
6
|
+
}
|
|
7
|
+
const httpsIndex = source.indexOf('https://', start);
|
|
8
|
+
return httpsIndex !== -1 && httpsIndex < end;
|
|
9
|
+
}
|
|
3
10
|
export default function findLongLines(source, maxLength = DEFAULT_MAX_LENGTH) {
|
|
11
|
+
if (source.length <= maxLength) {
|
|
12
|
+
return [];
|
|
13
|
+
}
|
|
4
14
|
const violations = [];
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
15
|
+
let lineStart = 0;
|
|
16
|
+
let lineNumber = 1;
|
|
17
|
+
while (lineStart <= source.length) {
|
|
18
|
+
const newlineIndex = source.indexOf('\n', lineStart);
|
|
19
|
+
const lineEnd = newlineIndex === -1 ? source.length : newlineIndex;
|
|
20
|
+
const contentEnd = lineEnd > lineStart && source.charCodeAt(lineEnd - 1) === 13 ? lineEnd - 1 : lineEnd;
|
|
21
|
+
const length = contentEnd - lineStart;
|
|
22
|
+
if (length > maxLength && !lineContainsUrl(source, lineStart, contentEnd)) {
|
|
23
|
+
violations.push({ line: lineNumber, length });
|
|
24
|
+
}
|
|
25
|
+
if (newlineIndex === -1) {
|
|
26
|
+
break;
|
|
10
27
|
}
|
|
11
|
-
|
|
28
|
+
lineStart = newlineIndex + 1;
|
|
29
|
+
lineNumber += 1;
|
|
12
30
|
}
|
|
13
31
|
return violations;
|
|
14
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"max-line-length.js","sourceRoot":"","sources":["../../src/rules/max-line-length.ts"],"names":[],"mappings":"AAKA,MAAM,kBAAkB,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"max-line-length.js","sourceRoot":"","sources":["../../src/rules/max-line-length.ts"],"names":[],"mappings":"AAKA,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,SAAS,eAAe,CAAC,MAAc,EAAE,KAAa,EAAE,GAAW;IACjE,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACnD,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACrD,OAAO,UAAU,KAAK,CAAC,CAAC,IAAI,UAAU,GAAG,GAAG,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,MAAc,EACd,SAAS,GAAG,kBAAkB;IAE9B,IAAI,MAAM,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,UAAU,GAA0B,EAAE,CAAC;IAC7C,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,OAAO,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC;QACnE,MAAM,UAAU,GACd,OAAO,GAAG,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACvF,MAAM,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;QAEtC,IAAI,MAAM,GAAG,SAAS,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC;YAC1E,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;YACxB,MAAM;QACR,CAAC;QAED,SAAS,GAAG,YAAY,GAAG,CAAC,CAAC;QAC7B,UAAU,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
|