japgolly/scalajs-react
60.4
Adequate · 27 September 2026
31.8k
lines of production code
Scala
primary language
4
measurements over time
What this system is
This release introduces a comprehensive callback and effect system, featuring first-class support for Cats and Cats Effect alongside new \Callback\ and \AsyncCallback\ abstractions. It significantly expands React 19 compatibility, adding support for new hooks like \useActionState\ and \useOptimistic\, while also introducing a fluent component builder API for both Scala 2 and 3. The update includes a major refactor of the Virtual DOM package, new testing utilities for DOM simulation and React 18/19 features, and extensive downstream integration tests to validate these changes.
Features
Add Cats and Cats Effect integration for React
Users can now use Cats typeclasses (such as MonadThrow and Monoid) with React's effect system. This includes support for SyncIO and IO types from Cats Effect, enabling functional programming patterns like error handling and monadic composition directly within React components.
library/coreExtCats, library/coreExtCatsEffect · high confidence
Add GitHub Pages demo application with routing and examples
Added a new demo application for GitHub Pages that showcases React.js components and examples. The application includes a router for navigating between Home, Examples, Documentation, and Test pages, along with a navigation menu. It also provides example components demonstrating the use of OnUnmount for timer management and TimerSupport for set intervals, serving as practical references for users.
library/ghpages/src/main/scala/ghpages · high confidence
Add React 19 hooks and options to the Scala.js React facade
The \library/facadeMain\ module now exposes new React 19 APIs, including the \useActionState\, \useOptimistic\, and \useEffectEvent\ hooks, as well as \ReactDOM.requestFormReset\ and the \prefetchDNS\, \preconnect\, \preload\, and \preinit\ performance optimization functions. Additionally, \createRoot\ and \hydrateRoot\ now support \onCaughtError\ and \onUncaughtError\ error handling options.
library/facadeMain · high confidence
Add testingLibraryDom module for DOM event simulation
A new \testingLibraryDom\ module has been added to provide a Scala.js wrapper around the \@testing-library/dom\ library. This includes a \FireEvent\ facade, a \Simulate\ object for triggering DOM events, a \Simulation\ class for composing event sequences, and a \SimEvent\ object with helper methods for keyboard and mouse events. This enables users to simulate user interactions like clicks, key presses, and other DOM events in their React/Scala.js tests.
library/testingLibraryDom · high confidence
Added Monocle integration for React components and state snapshots
Developers can now use Monocle optics (Lens, Prism, Optional, Traversal) to access and modify React component state, props, and router rules. This change introduces new implicit classes and extension methods on \ModStateFn\, \ModStateWithPropsFn\, \StateAccess\, \StateSnapshot\, and router DSLs, enabling functional updates to React state using Monocle's functional optics. The implementation provides both synchronous and asynchronous state modification methods, as well as support for optional and traversable state updates.
library/extraExtMonocle2, library/extraExtMonocle3 · high confidence
Added React 19.2.5 UMD build for unit testing
A new \react-umd\ directory has been introduced to generate a UMD (Universal Module Definition) build of React v19.2.5. This addresses the fact that React v19 no longer ships UMD builds, which are required for unit tests running in JSDOM environments that do not support module-based imports. The build process uses Vite to bundle React into \dist/react.umd.js\ and \dist/react.umd.min.js\, enabling Scala.js unit tests to load the library via the \dist/react.umd.js\ path.
react-umd · high confidence
Added build and maintenance scripts to the bin directory
The repository now includes several new executable scripts in the bin directory to support the build and maintenance workflow. The bin/ci script automates the CI pipeline by running SBT tests for Scala 2 and 3, managing Node.js and Java environments, and executing downstream tests. Additional scripts include bin/gen-px and bin/gen-reusability for generating Scala code for function and tuple types, bin/gen-router for router composition logic, and bin/update\_react\_version and bin/update\_version\_in\_docs for managing version numbers across the project. Utility scripts for finding TODOs, formatting attributes, and generating SVG images are also added.
bin · high confidence
Added downstream-tests directory for local library testing
A new 'downstream-tests' directory has been added to the project to facilitate testing the library via a locally-published version. This includes a test runner script ('run') that executes various configurations (such as different effect libraries and reusability settings) outside of SBT, along with supporting files like a Nix flake for the development environment, a Scalafix configuration, and symlinks to shared project configuration files.
downstream-tests · high confidence
Added new example components for the ghpages documentation site
The ghpages documentation site now includes a comprehensive set of new example components, including Ajax, CallbackOption, CatsEffect, HelloMessage, Hooks, ProductTable, Refs, StateSnapshot, Suspense, Timer, Todo, Touch, TriStateCheckbox, and WebSockets. These examples demonstrate various features of the library, such as handling asynchronous operations, managing state, and integrating with external APIs.
library/ghpages/src/main/scala/ghpages/examples · high confidence
Added utility components for displaying code snippets and side-by-side comparisons
New utility components have been added to the examples library to support syntax-highlighted code display and side-by-side source code comparison. The \CodeSnippets\ object provides reusable functions for rendering JavaScript and Scala code blocks with automatic syntax highlighting via highlight.js. Additionally, \SideBySide\ and \SingleSide\ components offer pre-built layouts for displaying example code alongside or in place of demo content, simplifying the creation of example pages that show both the rendered UI and its underlying source code.
library/ghpages/src/main/scala/ghpages/examples/util · high confidence
Adds Cats Effect and Cats integration for React callbacks
The library now provides first-class support for the Cats Effect ecosystem. New modules \callbackExtCats\ and \callbackExtCatsEffect\ implement \MonadError\ and \Sync\/\Async\ typeclasses for \CallbackTo\, \AsyncCallback\, and \CallbackOption\, enabling seamless integration with the Cats ecosystem. Additionally, \coreBundleCBIO\ and \coreBundleCatsEffect\ bundles are introduced to provide default effect types (\CallbackTo\ and \SyncIO\/\IO\ respectively), allowing users to choose their preferred effect type for React callbacks. Tests are added to verify the correctness of these new typeclass instances.
(repo-wide) · high confidence
Introduce Delayed type and monadic hooks support
Added a new \Delayed\ class that wraps a \Trampoline\ to support monadic hooks in forward reference components. This change introduces \map\ and \flatMap\ methods on \Delayed\, enabling functional programming patterns for handling delayed or asynchronous computations in the component lifecycle. The \Delayed\ object provides \fromFunction\ methods to create \Delayed\ instances from functions of various arities, facilitating the integration of side-effectful or asynchronous logic into the React component model.
library/coreGeneric/src/main/scala/japgolly/scalajs/react/component · high confidence
Introduce Scala 3-specific core abstractions and compile-time configuration
Added a suite of new Scala 3-specific files to the core library, including \PropsChildren\ for handling React children, \ReusabilityMacros\ for deriving reusability instances via macros, \ScalaComponent\ for component building, and \ScalaJsReactConfig\ for compile-time configuration of component naming and reusability overrides. These changes provide the foundational types and macro-based derivation logic required for the library's Scala 3 implementation.
library/coreGeneric/src/main/scala-3/japgolly/scalajs/react · high confidence
Introduce new callback and async callback abstractions
The library introduces new \Callback\, \CallbackTo\, \AsyncCallback\, and \CallbackOption\ types in the \japgolly.scalajs.react.callback\ package. These provide a structured way to handle side effects, asynchronous operations, and optional short-circuiting in React components. \Callback\ represents a side-effecting action with no return value, \CallbackTo\ wraps a value that can be executed, \AsyncCallback\ handles asynchronous operations with cancellation support, and \CallbackOption\ allows for early termination of a chain of callbacks. These types are available for both Scala 2 and Scala 3.
library/callback/src/main · high confidence
Introduce new component builder API for Scala 3
The library introduces a new, fluent component builder API for Scala 3, defined in \ComponentBuilder\ and \EntryPoint\. This new builder pattern allows users to construct React components by chaining methods such as \.stateless\, \.noBackend\, and various \.render\*\ methods. The builder enforces a step-by-step process: first defining state (or lack thereof), then backend (or lack thereof), and finally the render function. This replaces the previous approach, providing a more structured and type-safe way to define components in Scala 3.
library/coreGeneric/src/main/scala-3/japgolly/scalajs/react/component · high confidence
Introduced callback-based effect system and callback extensions
Added new files in the coreBundleCallback module that define the callback-based effect system (DefaultEffects) and provide extension methods for Callback, CallbackOption, and Reusable types (ReactCallbackExtensions). This introduces a new way to handle side effects and callbacks within the React library, replacing or supplementing previous effect handling mechanisms.
library/coreBundleCallback · high confidence
Major refactor of the hooks DSL and component builder
The hooks API has been refactored to use a new internal DSL built on \Api.Primary\ and \Api.Secondary\ traits, which manage the context and step-based composition of hooks. This change introduces \HookCtx\ to carry props and hook results through the chain, and \CustomHook\ to encapsulate hook logic. The \HookComponentBuilder\ now uses this new DSL to define functional components with props and children. This structural change supports the addition of new React 18/19 hooks (such as \useTransition\, \useId\, \useFormStatus\, \useActionState\, \useOptimistic\, \useEffectEvent\, and \useInsertionEffect\) by providing a consistent, type-safe way to compose them within the library.
library/coreGeneric/src/main/scala/japgolly/scalajs/react/hooks · high confidence
New React 19 and 16.9+ features: Activity, Context, Profiler, and Fragment
The library adds support for several React features: a new \Activity\ component for hiding and restoring UI state (React 19), a \Context\ API for managing global state (React 16.3+), a \Profiler\ for measuring render performance (React 16.9+), and a \ReactFragment\ for grouping children. These additions expand the library's coverage of modern React capabilities.
library/coreGeneric/src/main/scala/japgolly/scalajs/react/feature · high confidence
New extra utilities and hooks for state management, routing, and side effects
Added several new utilities to the \extra\ package to improve state management and side-effect handling. Introduced \StateSnapshot\ and \StateSnapshotF\ to provide a reusable, memoized state hook that batches updates and avoids unnecessary re-renders. Added \Px\ (Performance eXtension) for caching and dependency tracking, \Broadcaster\ and \Listenable\ for pub/sub event handling, \OnUnmount\ for cleanup logic, and \TimerSupport\ for safe timer management. The router now supports flexible route models with macro-generated \caseClass\ mappings for both Scala 2 and Scala 3. Additionally, \EventListenerF\ provides a functional wrapper for DOM event listeners, and \TriStateCheckbox\ is exposed as a reusable component.
library/extra · high confidence
New test utilities for React 18 and modernized testing API
The test utility library introduces a modernized testing API aligned with React 18's concurrent features. New classes including \ReactTestUtils\ (with \act\ and \actSync\ methods), \TestReactRoot\, \TestDom\, \TestDomWithRoot\, \TestContainer\, \MockRouterCtl\, \MockRouterCtlF\, \ReactTestVarF\, \TestBroadcaster\, and \ReactEventType\ provide comprehensive support for rendering, asserting, and mocking React components and state in tests. These utilities enable async testing patterns and improved DOM manipulation for UI tests.
library/testUtil/src/main/scala/japgolly/scalajs/react/test · high confidence
New utility library for effects, console hijacking, and functional helpers
The \library/util\ module now includes a new \Effect\ abstraction supporting sync, async, and dispatch-based execution models, along with syntax extensions (\EffectSyntax\) for chaining and running effects. A \ConsoleHijack\ utility allows intercepting and modifying browser console methods (e.g., to treat warnings as errors). Additional utilities include a \Trampoline\ for safe recursion, \DomUtil\ for DOM node casting, \JsUtil\ for JavaScript interop helpers, and \Monad\/\Semigroup\ type classes. A \NotAllowed\ marker type is also introduced to prevent certain method calls.
library/util · high confidence
Restructured vdom package with new exports and implicits
The vdom module has been reorganized into a new package structure, introducing \Exports\ to centralize type aliases and constants, \Implicits\ to provide automatic conversions for vdom nodes and attributes, and \PackageBase\ to compose the public API. This change exposes the vdom types and helper methods through a cleaner, more modular interface, allowing users to access \HtmlTag\, \SvgTag\, \VdomNode\, and various attribute/stylesheet helpers via the new \Exports\ object and implicit conversions for common Scala types.
library/coreGeneric/src/main/scala/japgolly/scalajs/react/vdom · high confidence
Support for React 19 and React 18 features
The library now supports React 19, introducing new APIs such as \React.Activity\, \React.use\ for resources and async values, and \ReactDOM.requestFormReset\, \prefetchDNS\, \preconnect\, \preload\, and \preinit\ for performance optimization. Additionally, \createRoot\ and \hydrateRoot\ options now support \onCaughtError\ and \onUncaughtError\ handlers for improved error tracking. The \ReactDOM\ and \ReactDOMClient\ modules have been separated to align with React's modular architecture, and the library adds a \Renderable\ typeclass to handle rendering of various types.
library/coreGeneric/src/main/scala/japgolly/scalajs/react · high confidence
Behavioural changes
Build system restructured and dependencies updated
The build configuration has been reorganized by moving the main library code into its own directory, with the \library/project\ folder now containing the SBT build definitions (\Build.scala\, \Dependencies.scala\, \Lib.scala\, etc.). This change includes updating the SBT version to 1.12.13, upgrading the Scala.js plugin to 1.20.1, and updating various library dependencies such as Cats, Cats-Effect, and Microlibs to their latest specified versions.
library/project · high confidence
Centralize DOM testing utilities for MIMA 2.0.0
The DOM testing utilities used for MIMA 2.0.0 downstream tests have been consolidated into a shared location. The local implementation in the MIMA 2.0.0 test directory has been replaced with a symbolic link to the main library's test utilities, ensuring that downstream tests use the same DOM testing helpers as the main project.
downstream-tests/mima-2.0.0/src/main/scala · medium confidence
Changelog files reorganized and updated across multiple versions
The changelog directory has been reorganized, with new version-specific markdown files created for versions 0.5.0 through 0.11.3, 1.0.0-RC, and others. These files document changes such as unified callback handling, React version upgrades, and new features like Router2. The structure now separates changelogs by version for better clarity and maintenance.
doc/changelog · high confidence
Library refactoring and tooling updates
The library module has been reorganized into its own directory, accompanied by the addition of a documentation symlink for improved developer experience. Configuration files for Scalafix have been introduced to manage import organization and unused code removal, while the build configuration now enforces stable SNAPSHOT versioning by stripping timestamps. Additionally, the SemanticDB version has been upgraded to 4.13.10 to support these linting and analysis tools.
library · medium confidence
New component builder API for React components
The library introduces a new, fluent builder API for defining React components, located in \japgolly.scalajs.react.component.builder\. This new interface replaces the previous construction methods, offering a step-by-step approach to configure component properties, state, backend, and render functions. The \EntryPoint\ object provides the entry point for this builder pattern, allowing developers to construct components with explicit control over lifecycle methods like \getDerivedStateFromProps\ and state initialization. This change represents a significant behavioral shift in how components are instantiated and configured within the library.
library/coreGeneric/src/main/scala-2/japgolly/scalajs/react/component · high confidence
React 19 upgrade and new sandbox demos
The js-sandbox has been upgraded to load React v19 (specifically 19.2.5) via ESM imports, enabling the use of modern React features. New demo files have been added to the sandbox: an events demo showcasing form and mouse event handling, a hooks demo demonstrating functional components with useState, a lifecycle demo testing component mounting and updating, and a keyboard event generator. These files serve as practical examples of the updated React version's capabilities.
js-sandbox · medium confidence
Redesign of the vdom package with Scala 3-specific implementations
The vdom package has been restructured for Scala 3, introducing new core abstractions such as TagMod, TagLite, and VdomNode to replace the previous implementation. This change includes the addition of a CssUnits extension for convenient CSS unit suffixes (px, em, rem, etc.) and a refactored Attr system that supports Action and Event handlers with improved type safety. These files represent the foundational vdom layer, providing the building blocks for rendering HTML and SVG elements in the library.
library/coreGeneric/src/main/scala-3/japgolly/scalajs/react/vdom · medium confidence
Refactored component builder internals to support React 18 and 19 lifecycle hooks
The component builder's internal architecture has been refactored to support React 18 and 19 lifecycle hooks. New files \InitState.scala\, \Lifecycle.scala\, and \LifecycleF.scala\ introduce a generic \LifecycleF\ structure that explicitly supports modern React lifecycle methods such as \getDerivedStateFromError\ and \getDerivedStateFromProps\. This change updates the \builder\ package to handle state initialization and lifecycle callbacks in a way that is compatible with the latest React versions, while also removing code deprecated in previous versions.
library/coreGeneric/src/main/scala/japgolly/scalajs/react/component/builder · medium confidence
Removed legacy ScalaJS DOM manipulation entry point
The file Golly.scala, which previously served as the main entry point for the ScalaJS application, has been removed. This file contained the original implementation for direct DOM manipulation using ScalaJS and the DOM library. Its removal indicates a shift away from this specific prototype or experimental setup.
src/main · medium confidence
Restructured and expanded documentation for callbacks, hooks, and configuration
The documentation has been reorganized into the \doc/\ directory, introducing dedicated pages for \Callback\ usage, React Hooks, and global configuration. The \Callback\ documentation now includes a new 'Common Mistakes' section and deeper coverage of monadic learning curves. Hooks documentation distinguishes between a concise composition-based DSL and a safer builder-style DSL. Configuration documentation now covers compile-time and runtime settings for component naming and reusability overrides. Additionally, new files provide guidance on functional programming patterns, effect-agnostic library authoring, and interoperability with JavaScript components.
doc · high confidence
Restructured documentation and example pages
The library's documentation and example pages have been reorganized into dedicated components. A new DocoPage provides a static landing page, while the main content is now split into a HomePage, an ExamplesPage that lists all available examples, and an ExampleComponents module that handles the rendering of the example menu and body. This refactoring separates the static documentation from the dynamic example listings, improving the structure of the ghpages module.
library/ghpages/src/main/scala/ghpages/pages · high confidence
Restructures vdom package with new core abstractions
The vdom package has been reorganized, introducing new core types including \Attr\, \TagMod\, \TagLite\, \VdomNode\, and \VdomElement\ to handle virtual DOM rendering. This refactoring introduces \Action\ and \Event\ attribute types that support callback handling via \ActionCallback\ and \EventCallback\ typeclasses, enabling more robust event and action handling in React components. Additionally, \CssUnits\ is added to provide a fluent API for CSS length values (px, em, rem, etc.), and \TagMod\ gains conditional rendering support via \when\ and \unless\ methods.
library/coreGeneric/src/main/scala-2/japgolly/scalajs/react/vdom · medium confidence
Updated ghpages demo to use React 19
The ghpages demo HTML files (dev2.html, dev3.html, and prod.html) have been updated to import React 19.2.5 and ReactDOM 19.2.5 from esm.sh. This change ensures the demo pages utilize the latest version of React for rendering the application.
library/ghpages · high confidence
Test coverage
Add CBIO downstream integration tests; Add Cats Effect integration tests for React components; Add MIMA 2.0.0 test for Hooks.UseRef; Add Scala 3 downstream test configurations for reusability overrides; Add comprehensive test coverage for the callback library; Add downstream test components for React.js integration; Added JVM-based downstream integration tests; Added Scala 3-specific test suites; Added Scalafix test; Added automated async and AJAX test suite for ghpages; Added comprehensive test coverage for the React.js library; Added downstream test fixtures for React 19 and Cats Effect; Added downstream tests for async rendering and reusability; Added internal test utilities for HTML assertions and resource management; Added test resource files for downstream tests; Added test resources for React 19 compatibility; Added test resources for downstream tests.
Dependencies
Restructures build configuration and updates JavaScript dependencies
The project's build configuration has been reorganized: the root \build.sbt\ is removed and replaced with a \library/build.sbt\ that defines the main library modules, while a new \downstream-tests/build.sbt\ is introduced to manage downstream test scenarios. Additionally, the \react-umd\ directory now includes \package.json\ and \package-lock.json\ files that pin React and React-DOM to version 19.2.5, and the \library\ directory's \package.json\ specifies jsdom version 26.1.0.
(dependencies) · high confidence
Housekeeping
Project infrastructure and documentation updates
The repository received several non-code updates: a new \.envrc\ file for Nix flake-based development environments, a \.scala-steward.conf\ to manage dependency updates, and new documentation files including \CODE\_OF\_CONDUCT.md\, \CONTRIBUTING.md\, and \HISTORY.md\. The project's license was updated to Apache 2.0 (\LICENCE\), and the \README.md\ was refreshed with current versioning and requirements. Additionally, the legacy \index.html\ was removed, and the \.gitignore\ was expanded to include modern IDE and build artifacts.
(repo-wide) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 39 → 60 (+21.5)
- Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 52 → 85 (+33.6)
- Architecture 69 → 97 (+27.9)
- Maturity 48 → 68 (+20.3)
- Readiness 24 → 76 (+51.8)
- Security 56 → 77 (+20.8)
- Accessibility 44 (new)
Resolved (30)
- Dimension evaluation failed
- High CVE: [GHSA redacted] (react-umd/package-lock.json)
- High CVE: [GHSA redacted] (library/package-lock.json)
- High CVE: [GHSA redacted] (react-umd/package-lock.json)
- High CVE: [GHSA redacted] (react-umd/package-lock.json)
- High CVE: [GHSA redacted] (react-umd/package-lock.json)
- High CVE: [GHSA redacted] (react-umd/package-lock.json)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- Hotspot: downstream-tests/js-cbio/src/test/resources/react.umd.js (downstream-tests/js-cbio/src/test/resources/react.umd.js)
- Hotspot: downstream-tests/js-ce/src/test/resources/react.umd.js (downstream-tests/js-ce/src/test/resources/react.umd.js)
- Hotspot: downstream-tests/js/src/test/resources/react.umd.js (downstream-tests/js/src/test/resources/react.umd.js)
- Hotspot: library/tests/src/test/resources/react.umd.js (library/tests/src/test/resources/react.umd.js)
- Low CVE: [GHSA redacted] (react-umd/package-lock.json)
- Low CVE: [GHSA redacted] (react-umd/package-lock.json)
- Medium CVE: [GHSA redacted] (react-umd/package-lock.json)
- …and 10 more
New (182)
- Documentation: no contributor guidance (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (10 lines × 2) (library/callback/src/main/scala-2/japgolly/scalajs/react/callback/AsyncCallback.scala)
- Duplicated block (10 lines × 2) (library/callback/src/main/scala-2/japgolly/scalajs/react/callback/CallbackOption.scala)
- Duplicated block (10 lines × 2) (library/callback/src/main/scala-2/japgolly/scalajs/react/callback/CallbackTo.scala)
- Duplicated block (11 lines × 2) (library/coreGeneric/src/main/scala-2/japgolly/scalajs/react/component/builder/ComponentBuilder.scala)
- Duplicated block (12 lines × 2) (library/callback/src/main/scala-2/japgolly/scalajs/react/callback/AsyncCallback.scala)
- Duplicated block (12 lines × 2) (library/callback/src/main/scala-2/japgolly/scalajs/react/callback/AsyncCallback.scala)
- Duplicated block (13 lines × 2) (library/callback/src/main/scala-2/japgolly/scalajs/react/callback/CallbackTo.scala)
- Duplicated block (13 lines × 2) (library/coreGeneric/src/main/scala-2/japgolly/scalajs/react/component/builder/ComponentBuilder.scala)
- Duplicated block (14 lines × 2) (library/callback/src/main/scala-2/japgolly/scalajs/react/callback/AsyncCallback.scala)
- Duplicated block (14 lines × 2) (library/callback/src/main/scala-2/japgolly/scalajs/react/callback/AsyncCallback.scala)
- Duplicated block (15 lines × 2) (library/callback/src/main/scala-2/japgolly/scalajs/react/callback/CallbackOption.scala)
- Duplicated block (16 lines × 2) (library/callback/src/main/scala-2/japgolly/scalajs/react/callback/AsyncCallback.scala)
- Duplicated block (166 lines × 2) (library/callback/src/main/scala-2/japgolly/scalajs/react/callback/Callback.scala)
- Duplicated block (20 lines × 2) (library/callback/src/main/scala-2/japgolly/scalajs/react/callback/AsyncCallback.scala)
- Duplicated block (22 lines × 2) (library/callback/src/main/scala-2/japgolly/scalajs/react/callback/AsyncCallback.scala)
- Duplicated block (22 lines × 2) (library/extraExtMonocle2/src/main/scala/japgolly/scalajs/react/ReactMonocle.scala)
- Duplicated block (23 lines × 2) (library/callback/src/main/scala-2/japgolly/scalajs/react/callback/AsyncCallback.scala)
- Duplicated block (24 lines × 2) (library/extra/src/main/scala-3/japgolly/scalajs/react/extra/internal/RouterMacros.scala)
- …and 162 more
Architecture
- Containers 0 added · 0 removed · contexts 2 added · 0 removed · edges 2 added · 0 removed
Added bounded contexts (2)
- downstream-tests
- library
Added dependency edges (2)
- downstream-tests → library
- library → downstream-tests (coupling)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
japgolly/scalajs-react was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 27 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 0c9e1de9fc2aa25ce0bef67b6a0dc4dff7a36276 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-d00c643c3f66.