Conversation
Co-Authored-By: Claude <noreply@anthropic.com>
Opt-in ngAnimate module upgrading an always-on core $animate façade + instant engine via the DI last-wins $$animateQueue seam. Wires the full directive parity set (ng-if/repeat/switch/include/view + ng-show/hide/ class family + forms state classes) through enter/leave/move/addClass/ removeClass/setClass. Ships the CSS transition/keyframe driver, JS animations via $animateProvider.register + the .animation module DSL, completion promises (pre-handled rejections), enabled()/classNameFilter/ startup grace, staggering, ng-animate-children, $animate.on/off listeners, and the full cancel/join + cleanup interruption matrix. Adds the 14th '$animate' EXCEPTION_HANDLER_CAUSES token. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The typed ESLint pass grew past the default Node heap and OOMs (exit 134) on the CI runner. Mirror the existing build script's approach — invoke eslint via `node --max-old-space-size=8192` so lint self-bumps its heap locally and in CI without a NODE_OPTIONS wrapper. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Revert the package.json lint-script change (invoking eslint through a hardcoded node_modules path is brittle) in favor of a job-level NODE_OPTIONS=--max-old-space-size=8192 in the CI workflow. Keeps `lint` as plain `eslint src/` and also covers the equally heap-heavy typecheck and test steps that OOM (exit 134) on the runner's default heap. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements the Animations roadmap item (spec 041): the classic AngularJS
ngAnimateexperience, adapted to this project's ESM-first conventions. An always-on core$animatefaçade + synchronous instant engine ships onng; the opt-inngAnimatemodule upgrades it to animated behavior via the DI last-wins$$animateQueueoverride seam — apps that don't animate pay nothing, and existing synchronous behavior is byte-identical.$$animateQueue(synchronous, zero behavior change) vs. thengAnimateengine (digest-end flush, cancel/join matrix, startup grace). DI last-wins makes the upgrade automatic.ng-if/ng-repeat/ng-switch/ng-include/ng-viewroute DOM ops throughenter/leave/move;ng-show/ng-hide/ng-classfamily / forms state classes route throughaddClass/removeClass/setClass.ng-enter/-active+<cls>-add/-activeclass conventions,ng-animatemarker, transition + keyframe duration detection, injectablecomputeStyle/raf/timer seams.$animateProvider.register+ the.animation(name, fn)module DSL (shared registry), class-gated, throw-routed.enabled()(global/per-element) +classNameFilter+ startup grace, staggering,ng-animate-children,$animate.on/offlisteners, and the full interruption/cleanup matrix.'$animate'EXCEPTION_HANDLER_CAUSEStoken (append-only).Test plan
pnpm lint— cleanpnpm format:check— cleanpnpm typecheck— cleanpnpm build— succeeds;./animatesubpath emits ESM + CJS +.d.tspnpm test— 244 files, 4948 passing (21 pre-existing skips)animatemodule coverage — 97% stmts / 93% branches / 96% funcs / 97% lines (≥90% threshold)94f8f2a(raised the runner's Node heap to fix a type-aware-ESLint OOM)Docs
src/animate/README.md— worked CSS + JS examples, digest/promise/cancellation contracts, documented divergences.context/diagrams/animate.md(+ index link + structural-test guard) — collaborator graph and call order.CLAUDE.md—./animatemodule-table row, new invariants, and "Where to look when…" rows.🤖 Generated with Claude Code