Skip to content

feat: phases B and C (type ratchet, bridge tests, a11y, generator, OnPush) - #609

Merged
ghoshArnab merged 4 commits into
chore/phase-a-modernizationfrom
chore/phase-b-c
Oct 1, 2026
Merged

ghoshArnab merged 4 commits into
chore/phase-a-modernizationfrom
chore/phase-b-c

Conversation

@ghoshArnab

Copy link
Copy Markdown
Collaborator

Summary

Phases B and C of the modernization plan, stacked on #608 (base is chore/phase-a-modernization; retarget to master after #608 merges). See docs/adr/0002-phase-b-c-outcomes.md.

Phase B (additive)

  • noImplicitAny per-file ratchet (npm run check:any); _bridge is clean.
  • FieldBase<TValue = any> generic (non-breaking) + markForCheck() hook called by the bridge.
  • Characterization tests for AngularPConnectService and the component map.
  • axe-core accessibility checks for 12 field components.
  • npm run new:component generator (scaffold + public-api.ts + component-map registration).
  • npm run check:overrides type-checks the generated overrides package. This found a real bug: build-overrides left import type relative paths unrewritten, so the shipped field.base.ts in @pega/angular-sdk-overrides could not resolve its import. Fixed.
  • Generated docs/components.md, plus testing and theming guides.

Phase C (where verifiable without Infinity)

  • OnPush for 17 synchronous field components and 6 presentational components.
  • Deferred with reasons in ADR 0002: signal inputs, OnPush for remaining components, secondary entry points, @defer, bridge split.

Needs review before merge

OnPush changes are unit-tested but not exercised end-to-end (Playwright needs a Pega Infinity server). Please run MediaCo portal + embedded before merging.

Checklist

  • Conventional commits
  • New components n/a (generator only; no new SDK components)
  • Public API report refreshed (etc/angular-sdk-components.api.md)
  • Tests added

Validation

  • npm run lint — passed
  • npm run build-angular-sdk-components — passed
  • npm run test:unit — 131 passed, 43 skipped (legacy specs)
  • npm run check:any, api:check, check:overrides, docs:components:check, smoke:pack — passed
  • npm run build (test app) — passed
  • Playwright E2E — not run

Arnab Ghosh added 4 commits October 1, 2026 15:36
…ents

- noImplicitAny ratchet script with baseline; bridge files clean
- FieldBase<TValue> generic (default any), markForCheck hook called by bridge
- OnPush for 17 synchronous field components
- characterization tests for AngularPConnectService and component map
- refresh API report
…port type paths)

build-overrides left 'import type' relative paths untouched, so the shipped field.base.ts in the overrides package could not resolve its import.
@ghoshArnab
ghoshArnab merged commit ce5774d into chore/phase-a-modernization Oct 1, 2026
1 check passed
@ghoshArnab
ghoshArnab deleted the chore/phase-b-c branch October 1, 2026 10:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant