@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.
Files changed (45) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +3 -3
  3. package/dist/index.d.ts +2 -2
  4. package/dist/index.js +2 -2
  5. package/dist/index.js.map +1 -1
  6. package/dist/rules/acronym-case.d.ts.map +1 -1
  7. package/dist/rules/acronym-case.js +0 -2
  8. package/dist/rules/acronym-case.js.map +1 -1
  9. package/dist/rules/effect-default-helpers.d.ts.map +1 -1
  10. package/dist/rules/effect-default-helpers.js +105 -28
  11. package/dist/rules/effect-default-helpers.js.map +1 -1
  12. package/dist/rules/effect-default.d.ts.map +1 -1
  13. package/dist/rules/effect-default.js +269 -133
  14. package/dist/rules/effect-default.js.map +1 -1
  15. package/dist/rules/effect-rule-core.d.ts +8 -0
  16. package/dist/rules/effect-rule-core.d.ts.map +1 -1
  17. package/dist/rules/effect-rule-core.js +208 -61
  18. package/dist/rules/effect-rule-core.js.map +1 -1
  19. package/dist/rules/effect-source-helpers.d.ts.map +1 -1
  20. package/dist/rules/effect-source-helpers.js +37 -12
  21. package/dist/rules/effect-source-helpers.js.map +1 -1
  22. package/dist/rules/effect-source-scan.d.ts.map +1 -1
  23. package/dist/rules/effect-source-scan.js +18 -10
  24. package/dist/rules/effect-source-scan.js.map +1 -1
  25. package/dist/rules/effect-strict-helpers.d.ts.map +1 -1
  26. package/dist/rules/effect-strict-helpers.js +180 -11
  27. package/dist/rules/effect-strict-helpers.js.map +1 -1
  28. package/dist/rules/effect-strict.d.ts.map +1 -1
  29. package/dist/rules/effect-strict.js +87 -23
  30. package/dist/rules/effect-strict.js.map +1 -1
  31. package/dist/rules/max-line-length.d.ts.map +1 -1
  32. package/dist/rules/max-line-length.js +25 -7
  33. package/dist/rules/max-line-length.js.map +1 -1
  34. package/dist/rules/plugin.d.ts +2 -121
  35. package/dist/rules/plugin.d.ts.map +1 -1
  36. package/dist/rules/plugin.js +78 -94
  37. package/dist/rules/plugin.js.map +1 -1
  38. package/dist/rules/require-function-doc.d.ts.map +1 -1
  39. package/dist/rules/require-function-doc.js +32 -21
  40. package/dist/rules/require-function-doc.js.map +1 -1
  41. package/dist/rules/source-cache.d.ts +11 -0
  42. package/dist/rules/source-cache.d.ts.map +1 -0
  43. package/dist/rules/source-cache.js +50 -0
  44. package/dist/rules/source-cache.js.map +1 -0
  45. 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 isEffectFunctionCall(callee, source, functionName) {
53
- const calleeName = identifierName(callee);
54
- return Boolean(calleeName && effectFunctionAliases(source, 'Effect', functionName).includes(calleeName));
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
- check: (source, context) => /\bprocess\.env\b/.test(stripCommentsAndStrings(source)) &&
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
- check: (source, context) => /\b(?:Date\.now|Math\.random)\s*\(/.test(stripCommentsAndStrings(source)) &&
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
- CallExpression(node) {
640
- const call = node;
641
- const firstArg = call.arguments?.[0];
642
- if ((isEffectMember(call.callee, source, new Set(['succeed'])) ||
643
- isEffectFunctionCall(call.callee, source, 'succeed')) &&
644
- (!firstArg || identifierName(firstArg) === 'undefined' || isVoidZero(firstArg))) {
645
- reportAst(context, 'Use Effect.void instead of Effect.succeed(undefined).', node);
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;AAKF,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,MAAM,EAAE,MAAM,EACd,SAAS,SAAqB,GAC7B,mBAAmB,EAAE,CAavB"}
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
- const URL_PATTERN = /https?:\/\//;
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
- const lines = source.split('\n');
6
- for (let index = 0; index < lines.length; index += 1) {
7
- const line = lines[index];
8
- if (line.length <= maxLength || URL_PATTERN.test(line)) {
9
- continue;
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
- violations.push({ line: index + 1, length: line.length });
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;AAC/B,MAAM,WAAW,GAAG,aAAa,CAAC;AAElC,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,MAAc,EACd,SAAS,GAAG,kBAAkB;IAE9B,MAAM,UAAU,GAA0B,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvD,SAAS;QACX,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,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"}